
Open Information Systems 2019-2020 Lecture 2: RDF and RDF(S) Christophe Debruyne The problem Traditional SysA SysB SysA SysB SysC SysD SysC SysD SysE SysE 3/15/20 Christophe Debruyne 2 The Semantic Web Stack User Interface and Applications Trust Proof Unifying Logic Cryptography Querying: Ontologies: OWL Rules: RIF/SWRL SPARQL Taxonomies: RDFS Data Interchange: RDF Syntax: XML Identifiers: IRI Character Set: UNICODE Different stacks exist, but the gist remains the same: a layered approach. 3/15/20 Christophe Debruyne 4 Resource Description Framework We will familiarize ourselves with both the RDF/XML and TURTLE serialization of RDF. The former is useful for context and terminology, while the latter is more often adopted in practice. Resource Description Framework • RDF is not an ontology language but a data model (!!!) • RDF is a W3C Recommendation • RDF is designed to be read by computers • RDF is for describing resources on the Web • RDF uses URIs to identify and reference resources on the Web RDF/XML is just one way of serializing RDF. Other serializations format include TURTLE and N3. NQuads and Trig even support (named) graphs. 3/15/20 Christophe Debruyne 20 Example <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ex="http://www.example.org/ont#"> <rdf:Description rdf:about="http://www.christophedebruyne.be"> <ex:title>Christophe's Homepage</ex:title> <ex:topic>Semantics</ex:topic> </rdf:Description> RDF Namespace </rdf:RDF> ex:title Christophe's Homepage http://www.christo phedebruyne.be ex:topic Semantics Subject Predicate Object 3/15/20 Christophe Debruyne 21 Example <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ex="http://www.example.org/ont#"> <rdf:Description rdf:about="http://www.christophedebruyne.be"> <ex:title>Christophe's Homepage</ex:title> <ex:topic>Semantics</ex:topic> </rdf:Description> </rdf:RDF> RDF/XML @prefix ex: <http://www.example.org/ont#> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . <http://www.christophedebruyne.be> ex:title "Christophe's Homepage" . <http://www.christophedebruyne.be> ex:topic "Semantics" . TURTLE 3/15/20 Christophe Debruyne 22 Example <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ex="http://www.example.org/ont#"> <rdf:Description rdf:about="http://www.christophedebruyne.be"> <ex:title>Christophe's Homepage</ex:title> <ex:topic>Semantics</ex:topic> </rdf:Description> </rdf:RDF> RDF/XML @prefix ex: <http://www.example.org/ont#> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . <http://www.christophedebruyne.be> ex:title "Christophe's Homepage" ; ex:topic "Semantics" . TURTLE – more terse 3/15/20 Christophe Debruyne 23 Example @prefix ex: <http://www.example.org/ont#> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . <http://www.christophedebruyne.be> ex:title "Christophe's Homepage" ; ex:topic "Semantics" . HTTP GET http://www.example.org/ont# @base <http://www.example.org/ont> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . <#title> a rdf:Property . <#topic> a rdf:Property . 3/15/20 Christophe Debruyne 24 RDF Triples SUBJECT PREDICATE OBJECT RESOURCE IDENTIFIED Y Y Y WITH URI ANONYMOUS RESOURCE Y N Y (NO URI OR BLANK NODE) LITERAL N N Y 3/15/20 Christophe Debruyne 25 Example <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ex="http://www.example.org/ont#"> <rdf:Description rdf:about="http://www.christophedebruyne.be"> <ex:title>Christophe's Homepage</ex:title> <ex:topic>Semantics</ex:topic> </rdf:Description> </rdf:RDF> RDF/XML In RDF/XML • Property names must be associated with a schema • Qualify property names with a namespace prefix 3/15/20 Christophe Debruyne 26 RDF Description Elements • rdf:about refers to an existing resource • rdf:ID creates a new resource (a named node) 3/15/20 Christophe Debruyne 27 RDF Description Elements • rdf:about refers to an existing resource • rdf:ID creates a new resource (a named node) <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ex="http://www.example.org/ont#" The base URI is xml:base="http://www.example.org/example"> used to resolve relative URIs in <rdf:Description rdf:ID="Christophe"> <ex:name>Christophe Debruyne</ex:name> a document. </rdf:Description> <rdf:Description rdf:about="http://www.christophedebruyne.be"> <ex:author rdf:resource="#Christophe" /> </rdf:Description> </rdf:RDF> 3/15/20 Christophe Debruyne 28 RDF Description Elements This notion of rdf:about and rdf:ID does not exist in TURTLE. @prefix ex: <http://www.example.org/ont#> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . <http://www.example.org/example#Christophe> ex:name "Christophe Debruyne" . <http://www.christophedebruyne.be> ex:author <http://www.example.org/example#Christophe> . Properties have a value which can be either a literal or a resource. 3/15/20 Christophe Debruyne 29 Base URIs Relative URIs are resolved relative to the current base URI. The current base URI is the URI of the document. You can “overwrite” the base URI by providing an xml:base directive in RDF XML, or @base directive in TURTLE RDF/XML • xml:base="http://www.example.org/example" • rdf:ID="foo" à http://www.example.org/example#foo • rdf:about="#foo" à http://www.example.org/example#foo • rdf:about="foo" à http://www.example.org/example/foo TURTLE • @base <http://www.example.org/example> . • <#foo> à http://www.example.org/example#foo • <foo> à http://www.example.org/example/foo 3/15/20 Christophe Debruyne 30 RDF Property Elements <rdf:Description rdf:about="http://www.christophedebruyne.be"> <ex:title>Christophe's Homepage</ex:title> <ex:topic>Semantics</ex:topic> </rdf:Description> <rdf:Description rdf:about="http://www.christophedebruyne.be"> <ex:title>Christophe's Homepage</ex:title> <ex:author> <rdf:Description> ß Blank Node! (See later) <ex:name>Christophe Debruyne</ex:name> </rdf:Description> </ex:author> </rdf:Description> Can somebody see something strange in this example? 3/15/20 Christophe Debruyne 31 RDF Property Elements @prefix ex: <http://www.example.org/ont#> . "Inline declaration of @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . a blank node. A new <http://www.christophedebruyne.be> blank node identifier ex:author [ ex:name "Christophe Debruyne" ] ; will be generated for ex:title "Christophe's Homepage" ; each […] pair. ex:topic "Semantics" . @prefix ex: <http://www.example.org/ont#> . Here, we declare our @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . own blank node <http://www.christophedebruyne.be> identifiers, which we ex:author _:foo ; can use to refer to ex:title "Christophe's Homepage" ; blank nodes from ex:topic "Semantics" . various places in the graph. _:foo ex:name "Christophe Debruyne" . 3/15/20 Christophe Debruyne 32 ReusinG nodes in RDF/XML? @prefix ex: <http://www.example.org/cats#> . ex:Victor ex:ownedBy _:foo . ex:Bettina ex:ownedBy _:foo . ex:Gaston ex:ownedBy _:foo . _:foo ex:name "Christophe" . <rdf:Description rdf:about="http://www.example.org/cats#Bettina"> <ex:ownedBy> <rdf:Description rdf:nodeID="A0"> <ex:name>Christophe</ex:name> </rdf:Description> </ex:ownedBy> </rdf:Description> <rdf:Description rdf:about="http://www.example.org/cats#Victor"> <ex:ownedBy rdf:nodeID="A0"/> </rdf:Description> <rdf:Description rdf:about="http://www.example.org/cats#Gaston"> <ex:ownedBy rdf:nodeID="A0"/> </rdf:Description> 3/15/20 Christophe Debruyne 33 RDF Abbreviated Syntax • Property elements converted to attributes (only for literal values that occur once). <rdf:Description rdf:about="http://www.christophedebruyne.be"> <ex:title>Christophe's Homepage</ex:title> <ex:topic>Semantics</ex:topic> </rdf:Description> <rdf:Description rdf:about="http://www.christophedebruyne.be" ex:title="Christophe's Homepage" ex:topic="Semantics" /> 3/15/20 Christophe Debruyne 34 DeclarinG types of thinGs • Types can be declared next to properties • And things can have more than one type • Arguably "ontology-language-ish" <rdf:Description rdf:about="http://www.christophedebruyne.be"> <rdf:type rdf:resource="http://www.example.org/ont#Webpage"/> </rdf:Description> @prefix ex: <http://www.example.org/ont#> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . <http://www.christophedebruyne.be> rdf:type ex:Webpage . @prefix ex: <http://www.example.org/ont#> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . <http://www.christophedebruyne.be> a ex:Webpage . 3/15/20 Christophe Debruyne 35 RDF Abbreviated Syntax • Value of rdf:type used directly as an element name <rdf:Description rdf:about="http://www.christophedebruyne.be"> <rdf:type rdf:resource="http://www.example.org/ont#Webpage"/> <ex:title>Christophe's Homepage</ex:title> <ex:topic>Semantics</ex:topic> </rdf:Description> <s:Webpage rdf:about="http://www.christophedebruyne.be"> <ex:title>Christophe's Homepage</ex:title> <ex:topic>Semantics</ex:topic> </s:Webpage> xmlns:s="http://www.example.org/ont#" 3/15/20 Christophe Debruyne 36 Plain and Typed Literals • Two types of literals: plain and typed • Plain are strings that can have an optional language tag • Typed are strings that have a type (usually XSD) • Language tags have no meaning for typed literals <rdf:Description rdf:ID="Christophe"> <ex:name xml:lang="en">Christophe</ex:name> <ex:name>Christophe</ex:name> <ex:height rdf:datatype="http://www.w3.org/2001/XMLSchema#int">171</ex:height> <ex:name rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Christophe</ex:name> </rdf:Description> @prefix ex: <http://www.example.org/ont#> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . <http://www.example.org/example#Christophe> ex:height "171"^^xsd:int ; ex:name "Christophe"^^xsd:string , "Christophe" , "Christophe"@en .
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages36 Page
-
File Size-