RDF & RDF Schema Machine Understandable Metadata for the Web Semantic Web - Spring 2006 Computer Engineering Department Sharif University of Technology Outline • • • • Metadata RDF RDFS RDF(S) Tools 2 Semantic Web: Problems • Too much Web information – around 1,000,000,000 (1109) resources – Many different types of resources • text, images, graphics, • audio, video, multimedia, • databases, Web applications, … 3 Semantic Web: Problems (2) • Information not indexable – No common “scheme” for doing so – Short-lived, dynamic resources – Differing relationships between authors, publishers, info intermediaries, users • Each community uses their own approach 4 Semantic Web: Problems (3) • Information not shareable – Difficult to share information – Difficult to share information about information • no common cataloging schemes 5 Main Issues: • Metadata – Information about information – Structured data about data • Many types/forms of metadata, dependent on role: 6 Types of Metadata: Web Resource discovery Document management administration (Intellectual) property rights management Content ratings (PICS) Security & User authentication Archival information / status Database / data schemas Process description & control Product & Services Descriptions 7 Second Issue: • Language for expressing metadata must be: – – – – – universal flexible extensible simple modular extended) (so all can understand) (to incorporate different types) (flexible to custom types) (to encourage adoption) (so that schemes can be mixed, 8 RDF • RDF stands for Resource Description Framework • It is a machine understandable metadata • RDF is graphical formalism ( + XML syntax + semantics) – for representing metadata – for describing the semantics of information in a machine- accessible way 9 RDF (cont.) • RDF is an assertional language intended to be used to express propositions using precise formal vocabularies. • It is intended to provide a basic foundation for more advanced assertional languages with a similar purpose • The overall design goals emphasise generality and precision in expressing propositions about any topic, rather than conformity to any particular processing model 10 RDF in SW Architecture 11 RDF Model • • • • • A model is a collection of statements Statement := (predicate,subject,object) Predicate is a resource Subject is a resource Object is either a resource or a literal Subject Object Predicate Statement 12 Example (generated by RDFPic) 13 Example shown in triples view 14 RDF model and natural language • Subject. In grammar, this is the noun or noun phrase that is the doer of the action. In the sentence “The company sells batteries,” the subject is “the company.” • Predicate. In grammar, this is the part of a sentence that modifies the subject and includes the verb phrase. In our sentence, the predicate is the phrase “sells” • Object. In grammar this is a noun that is acted upon by the verb. In our sentence, the object is the noun “batteries.” 15 XML vs. RDF • RDF is not just an XML dialect. – XML: • Has a tree structure data model. • Only nodes are labeled. – RDF: • Has a graph structure data model. • Both edges (properties) and nodes (subjects/objects) are labeled. 16 Linking Statements • The subject of one statement can be the object of another • Such collections of statements form a directed, labeled graph Ganji studentOF departmentOF Sharif CE hasHomePage http://ce.sharif.edu 17 RDF Graph: ‘anonymous’ nodes Person PersonName Literal Person12345 person.name first value Jonathan last value Borden 18 Using XPointer to name Person PersonName Literal Person12345 person.name first value Jonathan /1/1/1 /1/1 last /1/1/2 value Borden 19 How can RDF be implemented • Usually RDF/XML syntax • However other notations are possible – e.g. Notation3: • Buddy Belden owns a business. • The business has a Web site accessible at http://www.c2i2.com/~budstv. • Buddy is the father of Lynne. • <#Buddy> <#owns> <#business>. • <#business> <#has-website> <http://www.c2i2.com/~budstv>. • <#Buddy> <#father-of> <#Lynne>. 20 Converting N3 to RDF • Jena toolkit can do such conversion 21 XML Syntax for RDF • RDF has an XML syntax that has a specific meaning: • Every Description element describes a resource • Every attribute or nested element inside a Description is a property of that Resource • We can refer to resources by using URIs <rdf:Description about="some.uri/person/ganji"> <studentOf resource="some.uri/Sharif/CE"/> </Description> <Description about="some.uri/Sharif/CE"> <hasHomePage>http://ce.sharif.edu</hasHomePage> <departmentOf resource="some.uri/~Sharif"/> </rdf:Description> 22 RDF type • RDF predifined property • Its value – a resource that represent a category or class • Its subject – Instance of that category or class prefix ex: URI: http://www.example.org/terms 23 Containers • Containers are collections – they allow grouping of resources (or literal values) • It is possible to make statements about the container (as a whole) or about its members individually • It is also possible to create collections based on URI patterns – for example, all files in a particular web site 24 RDF containers • Bag: (A resource having type rdf:Bag) – Represents an unordered list of resources or literals – Duplicated values are prermitted • Sequence: (A resource having type rdf:Seq) – Represents ordered list of resources or literal – Duplicated values are permitted • Alternatives: (A resource having type rdf:Alt) – Represents group of resources or literals that are alternatives 25 Sequence example http://www.w3.org/TR/REC-rdf-syntax dc:Creator rdf:Type rdf:_1 “Ora Lassila” rdf:Seq rdf:_2 “Ralph Swick” 26 Bag example 27 RDF reification • association of a statement and a specific resource representing the statement • used to make statements about statements • Vocabulary: • type rdf:asserts • properties • rdf:subject • rdf:predicate • rdf:object 28 Reification example • In N3: 29 Reification example (cont.) • In RDF: 30 Reification example (cont.) • RDF Graph (by IsaViz): 31 RDF Schema (RDFS) • RDF gives a formalism for meta data annotation, and a way to write it down in XML, but it does not give any special meaning to vocabulary such as subClassOf or type – Interpretation is an arbitrary binary relation • RDF Schema allows you to define vocabulary terms and the relations between those terms – it gives “extra meaning” to particular RDF predicates and resources – this “extra meaning”, or semantics, specifies how a term should be interpreted 32 Core Classes & Properties rdfs:Resource Core Classes rdfs:Literal rdfs:XMLLiteral rdfs:Class rdfs:Property Core Properties rdfs:Type rdfs:SubClassOf rdfs:SubPropertyOf rdfs:Domain rdfs:Range rdfs:Label rdfs:Comment 33 RDFS Examples <Person,type,Class> <hasColleague,type,Property> <Professor,subClassOf,Person> <Carole,type,Professor> <hasColleague,range,Person> <hasColleague,domain,Person> 34 RDF/RDFS “Liberality” • No distinction between classes and instances (individuals) <Species,type,Class> <Lion,type,Species> <Leo,type,Lion> • Properties can themselves have properties <hasDaughter,subPropertyOf,hasChild> <hasDaughter,type,familyProperty> • No distinction between language constructors and ontology vocabulary, so constructors can be applied to themselves/each other <type,range,Class> <Property,type,Class> <type,subPropertyOf,subClassOf> 35 Problems with RDFS • RDFS too weak to describe resources in sufficient detail – No localised range and domain constraints • Can’t say that the range of hasChild is person when applied to persons and elephant when applied to elephants – No existence/cardinality constraints • Can’t say that all instances of person have a mother that is also a person, or that persons have exactly 2 parents – No transitive, inverse or symmetrical properties • Can’t say that isPartOf is a transitive property, that hasPart is the inverse of isPartOf or that touches is symmetrical – … • Difficult to provide reasoning support – No “native” reasoners for non-standard semantics – May be possible to reason via FO axiomatisation 36 RDF(S) tools • Read RDF data – Parsers: Jena, Redland, SWI-Prolog – Validators: W3C RDF validation service – Editors: IsaViz, RDF Author, RDFEd, InferEd • Store RDF data (XML format, tripples or relational/oo DB) – Sesame, RSSDB, RDFLib • Use RDF data (applications, RSS news, etc.) • Manipulate RDF data (inference, query, etc.) – Jena RDQL, etc. – Example: SELECT ?person, ?knows WHERE (?x <http://xmlns.com/foap/knows> ?z), (?x <http://xmlns.com/foap/name> ?person), (?z <http://xmlns.com/foap/name> ?knows) 37 RDF Validators • RDF Validation Service – http://www.w3.org/RDF/Validator/ • In general all the RDF parsers do some kind of validation 38 References • RDF Resource Guide: – http://www.ilrt.bris.ac.uk/discovery/rdf/resources/ • http://www.w3.org/RDF • http://www.w3.org/RDF/Validator/ • Chapter 5 of the book 39