Chapter: 2 (Tutorial)
1
RDF Graphs:
Give the RDF/XML, Notation 3, triples for the following sentences and also draw the RDF graph.
1. The lecture is attended by Kishoj, Pradeep, Mohan and Dipendra.
RDF/XML:
<rdf:RDF
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:ex = "http://example.org/"
>
<rdf:Description rdf:about="http://example.org/lecture">
<ex:isAttendedBy>
<rdf:Bag>
<rdf:li rdf:resource = "http://example.org/Kishoj"/>
<rdf:li rdf:resource = "http://example.org/Pradeep"/>
<rdf:li rdf:resource = "http://example.org/Mohan"/>
<rdf:li rdf:resource = "http://example.org/Dipendra"/>
</rdf:Bag>
</ex:isAttendedBy>
</rdf:Description>
</rdf:RDF>
Notation 3:
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix ex: <http://example.org/>.
ex:lecture ex:isAttendedBy _:bnode1.
_:bnode1 rdf:type rdf:Bag;
rdf:_1 ex:Kishoj;
rdf:_2 ex:Pradeep;
rdf:_3 ex:Mohan;
rdf:_4 ex:Dipendra.
Triples:
_:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/1999/02/22-rdf-
syntax-ns#Bag>.
_:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#_1> <http://example.org/Kishoj>.
_:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#_2> <http://example.org/Pradeep>.
_:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#_3> <http://example.org/Mohan>.
_:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#_4> <http://example.org/Dipendra>.
<http://example.org/lecture> <http://example.org/isAttendedBy> _:bnode1.
Chapter: 2 (Tutorial)
2
2. [RDF-Concept] is studied by Kishoj and Pradeep in order.
RDF/XML:
<rdf:RDF
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:ex = "http://example.org/"
>
<rdf:Description rdf:about="http://www.w3.org/TR/rdf-concepts/">
<ex:studiedBy>
<rdf:Seq>
<rdf:li rdf:resource = "http://example.org/Kishoj"/>
<rdf:li rdf:resource = "http://example.org/Pradeep"/>
</rdf:Seq>
</ex:studiedBy>
</rdf:Description>
</rdf:RDF>
Notation 3:
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix ex: <http://example.org/>.
<http://www.w3.org/TR/rdf-concepts/> ex:studiedBy _:bnode1.
_:bnode1 rdf:type rdf:Seq;
rdf:_1 ex:Kishoj;
rdf:_2 ex:Pradeep.
Triples:
_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/1999/02/22-rdf-
syntax-ns#Seq>.
_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#_1> <http://example.org/Kishoj>.
_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#_2> <http://example.org/Pradeep>.
<http://www.w3.org/TR/rdf-concepts/> <http://example.org/studiedBy> _:b1.
Chapter: 2 (Tutorial)
3
3. The software Mobile Tracker can be downloaded from three links link1or link2 or link3.
RDF/XML:
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:ex = "http://example.org/"
>
<rdf:Description rdf:about="http://example.org/MobileTraker">
<ex:sourceLocation>
<rdf:Alt>
<rdf:li rdf:resource = "http://example.org/Link1"/>
<rdf:li rdf:resource = "http://example.org/Link2"/>
<rdf:li rdf:resource = "http://example.org/Link3"/>
</rdf:Alt>
</ex:sourceLocation>
</rdf:Description>
</rdf:RDF>
Notation 3:
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix ex: <http://example.org/>.
ex:MobileTraker ex:sourceLocation _:bnode1.
_:bnode1 rdf:type rdf:Alt;
rdf:_1 ex:Link1;
rdf:_2 ex:Link2;
rdf:_3 ex:Link3.
Triples:
_:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/1999/02/22-rdf-
syntax-ns#Alt>.
_:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#_1> <http://example.org/Link1>.
_:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#_2> <http://example.org/Link2>.
_:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#_3> <http://example.org/Link3>.
<http://example.org/MobileTraker> <http://example.org/sourceLocation> _:bnode1.
Chapter: 2 (Tutorial)
4
Convert the given graph to RDF/XML, Notation 3, turtle, triples and JSON.
RDF/XML:
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:ex="http://example.org/stuff/1.0/">
<rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar"
dc:title="RDF/XML Syntax Specification (Revised)">
<ex:editor>
<rdf:Description ex:fullName="Dave Beckett">
<ex:homePage rdf:resource="http://purl.org/net/dajobe/" />
</rdf:Description>
</ex:editor>
</rdf:Description>
</rdf:RDF>
Notation 3:
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix dc: <http://purl.org/dc/elements/1.1/>.
@prefix ex: <http://example.org/stuff/1.0/>.
<http://www.w3.org/TR/rdf-syntax-grammar> ex:editor
[ ex:fullName "Dave Beckett"; ex:homePage <http://purl.org/net/dajobe/> ];
dc:title "RDF/XML Syntax Specification (Revised)".
Turtle: .ttl extension:
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix dc: <http://purl.org/dc/elements/1.1/>.
Chapter: 2 (Tutorial)
5
@prefix ex: <http://example.org/stuff/1.0/>.
<http://www.w3.org/TR/rdf-syntax-grammar> dc:title "RDF/XML Syntax Specification (Revised)";
ex:editor [ ex:fullname "Dave Beckett"; ex:homePage <http://purl.org/net/dajobe/>].
Triples:
<http://www.w3.org/TR/rdf-syntax-grammar> <http://purl.org/dc/elements/1.1/title> "RDF/XML Syntax
Specification (Revised)".
_:bnode1 <http://example.org/stuff/1.0/fullName> "Dave Beckett".
_:bnode1 <http://example.org/stuff/1.0/homePage> <http://purl.org/net/dajobe/>.
<http://www.w3.org/TR/rdf-syntax-grammar> <http://example.org/stuff/1.0/editor> _:bnode1.
RDF/XML:
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Seq rdf:about="http://example.org/favourite-fruit">
<rdf:li rdf:resource="http://example.org/banana"/>
<rdf:li rdf:resource="http://example.org/apple"/>
<rdf:li rdf:resource="http://example.org/pear"/>
</rdf:Seq>
</rdf:RDF>
Tripes: .nt extension
<http://example.org/favourite-fruit> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
<http://www.w3.org/1999/02/22-rdf-syntax-ns#Seq>.
<http://example.org/favourite-fruit> <http://www.w3.org/1999/02/22-rdf-syntax-ns#_1>
<http://example.org/banana>.
<http://example.org/favourite-fruit> <http://www.w3.org/1999/02/22-rdf-syntax-ns#_2>
<http://example.org/apple>.
<http://example.org/favourite-fruit> <http://www.w3.org/1999/02/22-rdf-syntax-ns#_3>
<http://example.org/pear>.
Turtle to graph:
@prefix : <http://example.org/stuff/1.0/>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
:a :b
[ rdf:first "apple";
rdf:rest [ rdf:first "banana";
rdf:rest rdf:nil ]
] .
Chapter: 2 (Tutorial)
6
RDF/XML:
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:ns="http://example.org/stuff/1.0/">
<rdf:Description rdf:about="http://example.org/stuff/1.0/a">
<ns:b>
<rdf:Description>
<rdf:first>apple</rdf:first>
<rdf:rest>
<rdf:Description>
<rdf:first>banana</rdf:first>
<rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil" />
</rdf:Description>
</rdf:rest>
</rdf:Description>
</ns:b>
</rdf:Description>
</rdf:RDF>
Triples:
<http://example.org/stuff/1.0/a> <http://example.org/stuff/1.0/b> _:bnode1.
_:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "apple".
_:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:bnode2.
_:bnode2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "banana".
_:bnode2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-
ns#nil>.
Chapter: 2 (Tutorial)
7
RDF collection of nodes using rdf:parseType="Collection"
RDF/XML:
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:ex="http://example.org/stuff/1.0/">
<rdf:Description rdf:about="http://example.org/basket">
<ex:hasFruit rdf:parseType="Collection">
<rdf:Description rdf:about="http://example.org/banana"/>
<rdf:Description rdf:about="http://example.org/apple"/>
<rdf:Description rdf:about="http://example.org/pear"/>
</ex:hasFruit>
</rdf:Description>
</rdf:RDF>
Notation 3:
@prefix ex: <http://example.org/stuff/1.0/>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
<http://example.org/basket> ex:hasFruit (<http://example.org/banana> <http://example.org/apple>
<http://example.org/pear>).
Triple:
<http://example.org/basket> <http://example.org/stuff/1.0/hasFruit> _:bnode1.
_:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://example.org/banana>.
_:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://example.org/apple>.
_:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:bnode2.
_:bnode2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://example.org/pear>.
_:bnode2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:bnode3.
_:bnode3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-
ns#nil>.
Differentiate between two RDF/XML statement.
1. <?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Seq rdf:about="http://example.org/favourite-fruit">
<rdf:_1 rdf:resource="http://example.org/banana"/>
<rdf:_2 rdf:resource="http://example.org/apple"/>
<rdf:_3 rdf:resource="http://example.org/pear"/>
</rdf:Seq>
Chapter: 2 (Tutorial)
8
</rdf:RDF>
2. <?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Seq rdf:about="http://example.org/favourite-fruit">
<rdf:li rdf:resource="http://example.org/banana"/>
<rdf:li rdf:resource="http://example.org/apple"/>
<rdf:li rdf:resource="http://example.org/pear"/>
</rdf:Seq>
</rdf:RDF>
Both are equivalent and produces same RDF graph as shown below in figure because rdf:li, special property
element, is equivalent to rdf:_1, rdf:_2 in order.
Complete example of rdf:datatype:
RDF/XML:
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:ex="http://example.org/stuff/1.0/">
<rdf:Description rdf:about="http://example.org/item01">
<ex:size rdf:datatype="http://www.w3.org/2001/XMLSchema#int">123</ex:size>
</rdf:Description>
</rdf:RDF>
Triples:
<http://example.org/item01> <http://example.org/stuff/1.0/size>
"123"^^<http://www.w3.org/2001/XMLSchema#int>.
Notation 3:
@prefix eg: <http://example.org/>.
@prefix ex: <http://example.org/stuff/1.0/>.
eg:item01 ex:size "123".
Reification: statements about statements.
1. {:John :Loves :Mary} :accordingTo :Bill.
2. Mary claims that John’s name is “John Smith”.
3. Romeo thought that {Juliet was dead}.
Romeo thought that Juliet was dead.
Chapter: 2 (Tutorial)
9
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:ex="http://example.org/#">
<rdf:Description rdf:about="http://example.org/#romeo">
<ex:thought>
<rdf:Description>
<rdf:subject>
<rdf:Description rdf:about="http://example.org/#juliet"/>
</rdf:subject>
<rdf:predicate>
<rdf:Description rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#type"/>
</rdf:predicate>
<rdf:object>
<rdf:Description rdf:about="http://example.org/#dead"/>
</rdf:object>
</rdf:Description>
</ex:thought>
</rdf:Description>
</rdf:RDF>
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:ex="http://example.org/#">
<rdf:Description rdf:about="http://example.org/romeo">
<ex:thought>
<rdf:Description>
<rdf:subject>
<rdf:Description rdf:about="http://example.org/juliet"/>
</rdf:subject>
<rdf:predicate>
<rdf:Description rdf:about="http://example.org/was"/>
</rdf:predicate>
<rdf:object>
<rdf:Description rdf:about="http://example.org/dead"/>
</rdf:object>
</rdf:Description>
</ex:thought>
</rdf:Description>
</rdf:RDF>
Notation 3:
Chapter: 2 (Tutorial)
10
@prefix ex: <http://example.org/#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
ex:romeo ex:thought _:bnode1.
_:bnode1 rdf:subject ex:Juliet;
rdf:object ex:dead;
rdf:predicate rdf:type.
Triples:
<http://example.org/#romeo> <http://example.org/#thought> _:bnode1.
_:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#subject> <http://example.org/#Juliet>.
_:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate> <http://www.w3.org/1999/02/22-rdf-
syntax-ns#type>.
_:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#object> <http://example.org/#dead>.
John loves Mary, according to Bill.
RDF/XML:
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:ex="http://example.org/">
<rdf:Description rdf:about="http://example.org/bill">
<ex:thought>
<rdf:Description>
<rdf:subject>
<rdf:Description rdf:about="http://example.org/john"/>
</rdf:subject>
<rdf:predicate>
<rdf:Description rdf:about="http://example.org/love"/>
</rdf:predicate>
<rdf:object>
<rdf:Description rdf:about="http://example.org/mary"/>
</rdf:object>
</rdf:Description>
</ex:thought>
</rdf:Description>
</rdf:RDF>
Notation 3:
@prefix ex: <http://example.org/>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
ex:bill ex:thought _:bnode1.
_:bnode1 rdf:subject ex:john;
Chapter: 2 (Tutorial)
11
rdf:predicate ex:love;
rdf:object ex:mary.
Triples:
_:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#subject> <http://example.org/john>.
_:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate> <http://example.org/love>.
_:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#object> <http://example.org/mary>.
<http://example.org/bill> <http://example.org/thought> _:bnode1.
Mary claims that John’s name is “John Smith”.
〈<#myStatement>, rdf:type, rdf:Statement〉
〈<#myStatement>, rdf:subject, <#john>〉
〈<#myStatement>, rdf:predicate, <#hasName>〉
〈<#myStatement>, rdf:object, ”John Smith”〉
〈<#mary>, <#claims>, <#myStatement>〉
RDF/XML:
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:ex="http://example.org/">
<rdf:Description rdf:about="http://example.org/mary">
<ex:claim>
<rdf:Description>
<rdf:subject>
<rdf:Description rdf:about="http://example.org/john"/>
</rdf:subject>
<rdf:predicate>
<rdf:Description rdf:about="http://example.org/hasName"/>
</rdf:predicate>
<rdf:object>
John Smith
</rdf:object>
</rdf:Description>
</ex:claim>
</rdf:Description>
</rdf:RDF>
Notation 3:
@prefix ex: <http://example.org/>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
ex:mary ex:claim _:bnode1.
_:bnode1 rdf:subject ex:john;
rdf:predicate ex:hasName;
rdf:object “John Smith”.
Triples:
_:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#subject> <http://example.org/john>.
_:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate> <http://example.org/hasName>.
_:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#object> “John Smith”.
<http://example.org/mary> <http://example.org/claim> _:bnode1.
Chapter: 2 (Tutorial)
12
RDF Entailment:
<http://example.org/#john> rdf:type <http://example.org/#Student>
<http://example.org/#> rdfs:subClassOf <http://example.org/#Person>
Entails: <http://example.org/#john> rdf:type <http://example.org/#Person>
Triples:
<http://example.org/#john> <http://example.org/#hasName> "John".
<http://example.org/#john> <http://example.org/#marriedTo> <http://example.org/#mary>.
RDF/XML:
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:ex="http://example.org/#">
<rdf:Description rdf:about="http://example.org/#john">
<ex:hasName>John</ex:hasName>
<ex:marriedTo rdf:resource = "http://example.org/#mary"/>
</rdf:Description>
</rdf:RDF>
Notation 3:
@prefix ex: <http://example.org/#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
ex:john ex:hasName "John";
ex:marriedTo ex:mary.
Exercise 1.2: Write the following part of an RDF document in Turtle syntax:
<?xml version="1.0"?>
Chapter: 2 (Tutorial)
13
<rdf:RDF xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="Jack">
<rdf:type>
<owl:Class>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="Person"/>
<owl:Class>
<owl:complementOf rdf:resource="Parent"/>
</owl:Class>
</owl:intersectionOf>
</owl:Class>
</rdf:type>
</rdf:Description>
</rdf:RDF>
Turtle syntax:
@prefix owl: <http://www.w3.org/2002/07/owl#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
<Jack> a _:bnode1.
<Person> a owl:Class.
_:bnode2 a owl:Class;
owl:complementOf <Parent>.
_:bnode1 a owl:Class;
owl:intersectionOf (<Person> _:bnode2).
Triples:
_:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class>.
<Person> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class>.
_:bnode2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <Person>.
_:bnode2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:bnode3.
_:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class>.
_:bnode4 <http://www.w3.org/2002/07/owl#complementOf> <Parent>.
_:bnode3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> _:bnode4.
_:bnode3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-
ns#nil>.
_:bnode1 <http://www.w3.org/2002/07/owl#intersectionOf> _:bnode2.
<Jack> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> _:bnode1.
Exercise 1.1 Write the following part of an RDF document in Turtle syntax:
<rdf:RDF
Chapter: 2 (Tutorial)
14
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
>
<owl:Class rdf:about="Parent">
<owl:equivalentClass>
<owl:Restriction>
<owl:onProperty rdf:resource="hasChild"/>
<owl:someValuesFrom rdf:resource="Person"/>
</owl:Restriction>
</owl:equivalentClass>
</owl:Class>
</rdf:RDF>
Notation 3:
@prefix owl: <http://www.w3.org/2002/07/owl#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
<Parent> a owl:Class;
owl:equivalentClass _:bnode1.
_:bnode1 rdf:type owl:Restriction;
owl:onProperty <hasChild>;
owl:someValuesFrom <Person>.
Triples:
<Parent> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class>.
_:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction>.
_:bnode1 <http://www.w3.org/2002/07/owl#onProperty> <hasChild>.
_:bnode1 <http://www.w3.org/2002/07/owl#someValuesFrom> <Person>.
<Parent> <http://www.w3.org/2002/07/owl#equivalentClass> _:bnode1.
Exercise 1.5:
Write the following Turtle triples in RDF/XML syntax: ([] can be used in Turtle for a blank node.)
@prefix owl: <http://www.w3.org/2002/07/owl#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
[] rdf:type owl:NegativePropertyAssertion;
owl:sourceIndividual :Bill;
owl:assertionProperty :hasDaughter;
owl:targetIndividual :Susan.
RDF/XML:
<?xml version="1.0"?>
<rdf:RDF xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-
ns#">
Chapter: 2 (Tutorial)
15
<owl:NegativePropertyAssertion>
<owl:sourceIndividual rdf:resource="#Bill" />
<owl:assertionProperty rdf:resource="#hasDaughter" />
<owl:targetIndividual rdf:resource="#Susan" />
</owl:NegativePropertyAssertion>
</rdf:RDF>
Triples:
_:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
<http://www.w3.org/2002/07/owl#NegativePropertyAssertion>.
_:bnode1 <http://www.w3.org/2002/07/owl#sourceIndividual> <#Bill>.
_:bnode1 <http://www.w3.org/2002/07/owl#assertionProperty> <#hasDaughter>.
_:bnode1 <http://www.w3.org/2002/07/owl#targetIndividual> <#Susan>.
Exercise 1.4 Write the following Turtle triple in RDF/XML syntax:
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix ex: <http://example.org/>.
@prefix xsd: <http://www.w3.org/2001/XMLSchema#>.
ex:Person rdfs:comment "Represents the set of all people."^^xsd:string .
RDF/XML:
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:ex="http://example.org/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="http://example.org/Person">
<rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string">
Represents the set of all people.
</rdfs:comment>
</rdf:Description>
</rdf:RDF>
Chapter: 2 (Tutorial)
16
Triples:
<http://example.org/Person> <http://www.w3.org/2000/01/rdf-schema#comment> "Represents the set of all
people."^^<http://www.w3.org/2001/XMLSchema#string>.

Tutorial for RDF Graphs

  • 1.
    Chapter: 2 (Tutorial) 1 RDFGraphs: Give the RDF/XML, Notation 3, triples for the following sentences and also draw the RDF graph. 1. The lecture is attended by Kishoj, Pradeep, Mohan and Dipendra. RDF/XML: <rdf:RDF xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ex = "http://example.org/" > <rdf:Description rdf:about="http://example.org/lecture"> <ex:isAttendedBy> <rdf:Bag> <rdf:li rdf:resource = "http://example.org/Kishoj"/> <rdf:li rdf:resource = "http://example.org/Pradeep"/> <rdf:li rdf:resource = "http://example.org/Mohan"/> <rdf:li rdf:resource = "http://example.org/Dipendra"/> </rdf:Bag> </ex:isAttendedBy> </rdf:Description> </rdf:RDF> Notation 3: @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>. @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>. @prefix ex: <http://example.org/>. ex:lecture ex:isAttendedBy _:bnode1. _:bnode1 rdf:type rdf:Bag; rdf:_1 ex:Kishoj; rdf:_2 ex:Pradeep; rdf:_3 ex:Mohan; rdf:_4 ex:Dipendra. Triples: _:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/1999/02/22-rdf- syntax-ns#Bag>. _:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#_1> <http://example.org/Kishoj>. _:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#_2> <http://example.org/Pradeep>. _:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#_3> <http://example.org/Mohan>. _:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#_4> <http://example.org/Dipendra>. <http://example.org/lecture> <http://example.org/isAttendedBy> _:bnode1.
  • 2.
    Chapter: 2 (Tutorial) 2 2.[RDF-Concept] is studied by Kishoj and Pradeep in order. RDF/XML: <rdf:RDF xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ex = "http://example.org/" > <rdf:Description rdf:about="http://www.w3.org/TR/rdf-concepts/"> <ex:studiedBy> <rdf:Seq> <rdf:li rdf:resource = "http://example.org/Kishoj"/> <rdf:li rdf:resource = "http://example.org/Pradeep"/> </rdf:Seq> </ex:studiedBy> </rdf:Description> </rdf:RDF> Notation 3: @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>. @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>. @prefix ex: <http://example.org/>. <http://www.w3.org/TR/rdf-concepts/> ex:studiedBy _:bnode1. _:bnode1 rdf:type rdf:Seq; rdf:_1 ex:Kishoj; rdf:_2 ex:Pradeep. Triples: _:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/1999/02/22-rdf- syntax-ns#Seq>. _:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#_1> <http://example.org/Kishoj>. _:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#_2> <http://example.org/Pradeep>. <http://www.w3.org/TR/rdf-concepts/> <http://example.org/studiedBy> _:b1.
  • 3.
    Chapter: 2 (Tutorial) 3 3.The software Mobile Tracker can be downloaded from three links link1or link2 or link3. RDF/XML: <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ex = "http://example.org/" > <rdf:Description rdf:about="http://example.org/MobileTraker"> <ex:sourceLocation> <rdf:Alt> <rdf:li rdf:resource = "http://example.org/Link1"/> <rdf:li rdf:resource = "http://example.org/Link2"/> <rdf:li rdf:resource = "http://example.org/Link3"/> </rdf:Alt> </ex:sourceLocation> </rdf:Description> </rdf:RDF> Notation 3: @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>. @prefix ex: <http://example.org/>. ex:MobileTraker ex:sourceLocation _:bnode1. _:bnode1 rdf:type rdf:Alt; rdf:_1 ex:Link1; rdf:_2 ex:Link2; rdf:_3 ex:Link3. Triples: _:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/1999/02/22-rdf- syntax-ns#Alt>. _:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#_1> <http://example.org/Link1>. _:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#_2> <http://example.org/Link2>. _:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#_3> <http://example.org/Link3>. <http://example.org/MobileTraker> <http://example.org/sourceLocation> _:bnode1.
  • 4.
    Chapter: 2 (Tutorial) 4 Convertthe given graph to RDF/XML, Notation 3, turtle, triples and JSON. RDF/XML: <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:ex="http://example.org/stuff/1.0/"> <rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar" dc:title="RDF/XML Syntax Specification (Revised)"> <ex:editor> <rdf:Description ex:fullName="Dave Beckett"> <ex:homePage rdf:resource="http://purl.org/net/dajobe/" /> </rdf:Description> </ex:editor> </rdf:Description> </rdf:RDF> Notation 3: @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>. @prefix dc: <http://purl.org/dc/elements/1.1/>. @prefix ex: <http://example.org/stuff/1.0/>. <http://www.w3.org/TR/rdf-syntax-grammar> ex:editor [ ex:fullName "Dave Beckett"; ex:homePage <http://purl.org/net/dajobe/> ]; dc:title "RDF/XML Syntax Specification (Revised)". Turtle: .ttl extension: @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>. @prefix dc: <http://purl.org/dc/elements/1.1/>.
  • 5.
    Chapter: 2 (Tutorial) 5 @prefixex: <http://example.org/stuff/1.0/>. <http://www.w3.org/TR/rdf-syntax-grammar> dc:title "RDF/XML Syntax Specification (Revised)"; ex:editor [ ex:fullname "Dave Beckett"; ex:homePage <http://purl.org/net/dajobe/>]. Triples: <http://www.w3.org/TR/rdf-syntax-grammar> <http://purl.org/dc/elements/1.1/title> "RDF/XML Syntax Specification (Revised)". _:bnode1 <http://example.org/stuff/1.0/fullName> "Dave Beckett". _:bnode1 <http://example.org/stuff/1.0/homePage> <http://purl.org/net/dajobe/>. <http://www.w3.org/TR/rdf-syntax-grammar> <http://example.org/stuff/1.0/editor> _:bnode1. RDF/XML: <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Seq rdf:about="http://example.org/favourite-fruit"> <rdf:li rdf:resource="http://example.org/banana"/> <rdf:li rdf:resource="http://example.org/apple"/> <rdf:li rdf:resource="http://example.org/pear"/> </rdf:Seq> </rdf:RDF> Tripes: .nt extension <http://example.org/favourite-fruit> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/1999/02/22-rdf-syntax-ns#Seq>. <http://example.org/favourite-fruit> <http://www.w3.org/1999/02/22-rdf-syntax-ns#_1> <http://example.org/banana>. <http://example.org/favourite-fruit> <http://www.w3.org/1999/02/22-rdf-syntax-ns#_2> <http://example.org/apple>. <http://example.org/favourite-fruit> <http://www.w3.org/1999/02/22-rdf-syntax-ns#_3> <http://example.org/pear>. Turtle to graph: @prefix : <http://example.org/stuff/1.0/>. @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>. :a :b [ rdf:first "apple"; rdf:rest [ rdf:first "banana"; rdf:rest rdf:nil ] ] .
  • 6.
    Chapter: 2 (Tutorial) 6 RDF/XML: <?xmlversion="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ns="http://example.org/stuff/1.0/"> <rdf:Description rdf:about="http://example.org/stuff/1.0/a"> <ns:b> <rdf:Description> <rdf:first>apple</rdf:first> <rdf:rest> <rdf:Description> <rdf:first>banana</rdf:first> <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil" /> </rdf:Description> </rdf:rest> </rdf:Description> </ns:b> </rdf:Description> </rdf:RDF> Triples: <http://example.org/stuff/1.0/a> <http://example.org/stuff/1.0/b> _:bnode1. _:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "apple". _:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:bnode2. _:bnode2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "banana". _:bnode2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax- ns#nil>.
  • 7.
    Chapter: 2 (Tutorial) 7 RDFcollection of nodes using rdf:parseType="Collection" RDF/XML: <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ex="http://example.org/stuff/1.0/"> <rdf:Description rdf:about="http://example.org/basket"> <ex:hasFruit rdf:parseType="Collection"> <rdf:Description rdf:about="http://example.org/banana"/> <rdf:Description rdf:about="http://example.org/apple"/> <rdf:Description rdf:about="http://example.org/pear"/> </ex:hasFruit> </rdf:Description> </rdf:RDF> Notation 3: @prefix ex: <http://example.org/stuff/1.0/>. @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>. <http://example.org/basket> ex:hasFruit (<http://example.org/banana> <http://example.org/apple> <http://example.org/pear>). Triple: <http://example.org/basket> <http://example.org/stuff/1.0/hasFruit> _:bnode1. _:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://example.org/banana>. _:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://example.org/apple>. _:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:bnode2. _:bnode2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://example.org/pear>. _:bnode2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:bnode3. _:bnode3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax- ns#nil>. Differentiate between two RDF/XML statement. 1. <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Seq rdf:about="http://example.org/favourite-fruit"> <rdf:_1 rdf:resource="http://example.org/banana"/> <rdf:_2 rdf:resource="http://example.org/apple"/> <rdf:_3 rdf:resource="http://example.org/pear"/> </rdf:Seq>
  • 8.
    Chapter: 2 (Tutorial) 8 </rdf:RDF> 2.<?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Seq rdf:about="http://example.org/favourite-fruit"> <rdf:li rdf:resource="http://example.org/banana"/> <rdf:li rdf:resource="http://example.org/apple"/> <rdf:li rdf:resource="http://example.org/pear"/> </rdf:Seq> </rdf:RDF> Both are equivalent and produces same RDF graph as shown below in figure because rdf:li, special property element, is equivalent to rdf:_1, rdf:_2 in order. Complete example of rdf:datatype: RDF/XML: <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ex="http://example.org/stuff/1.0/"> <rdf:Description rdf:about="http://example.org/item01"> <ex:size rdf:datatype="http://www.w3.org/2001/XMLSchema#int">123</ex:size> </rdf:Description> </rdf:RDF> Triples: <http://example.org/item01> <http://example.org/stuff/1.0/size> "123"^^<http://www.w3.org/2001/XMLSchema#int>. Notation 3: @prefix eg: <http://example.org/>. @prefix ex: <http://example.org/stuff/1.0/>. eg:item01 ex:size "123". Reification: statements about statements. 1. {:John :Loves :Mary} :accordingTo :Bill. 2. Mary claims that John’s name is “John Smith”. 3. Romeo thought that {Juliet was dead}. Romeo thought that Juliet was dead.
  • 9.
    Chapter: 2 (Tutorial) 9 <?xmlversion="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ex="http://example.org/#"> <rdf:Description rdf:about="http://example.org/#romeo"> <ex:thought> <rdf:Description> <rdf:subject> <rdf:Description rdf:about="http://example.org/#juliet"/> </rdf:subject> <rdf:predicate> <rdf:Description rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#type"/> </rdf:predicate> <rdf:object> <rdf:Description rdf:about="http://example.org/#dead"/> </rdf:object> </rdf:Description> </ex:thought> </rdf:Description> </rdf:RDF> <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ex="http://example.org/#"> <rdf:Description rdf:about="http://example.org/romeo"> <ex:thought> <rdf:Description> <rdf:subject> <rdf:Description rdf:about="http://example.org/juliet"/> </rdf:subject> <rdf:predicate> <rdf:Description rdf:about="http://example.org/was"/> </rdf:predicate> <rdf:object> <rdf:Description rdf:about="http://example.org/dead"/> </rdf:object> </rdf:Description> </ex:thought> </rdf:Description> </rdf:RDF> Notation 3:
  • 10.
    Chapter: 2 (Tutorial) 10 @prefixex: <http://example.org/#>. @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>. ex:romeo ex:thought _:bnode1. _:bnode1 rdf:subject ex:Juliet; rdf:object ex:dead; rdf:predicate rdf:type. Triples: <http://example.org/#romeo> <http://example.org/#thought> _:bnode1. _:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#subject> <http://example.org/#Juliet>. _:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate> <http://www.w3.org/1999/02/22-rdf- syntax-ns#type>. _:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#object> <http://example.org/#dead>. John loves Mary, according to Bill. RDF/XML: <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ex="http://example.org/"> <rdf:Description rdf:about="http://example.org/bill"> <ex:thought> <rdf:Description> <rdf:subject> <rdf:Description rdf:about="http://example.org/john"/> </rdf:subject> <rdf:predicate> <rdf:Description rdf:about="http://example.org/love"/> </rdf:predicate> <rdf:object> <rdf:Description rdf:about="http://example.org/mary"/> </rdf:object> </rdf:Description> </ex:thought> </rdf:Description> </rdf:RDF> Notation 3: @prefix ex: <http://example.org/>. @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>. ex:bill ex:thought _:bnode1. _:bnode1 rdf:subject ex:john;
  • 11.
    Chapter: 2 (Tutorial) 11 rdf:predicateex:love; rdf:object ex:mary. Triples: _:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#subject> <http://example.org/john>. _:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate> <http://example.org/love>. _:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#object> <http://example.org/mary>. <http://example.org/bill> <http://example.org/thought> _:bnode1. Mary claims that John’s name is “John Smith”. 〈<#myStatement>, rdf:type, rdf:Statement〉 〈<#myStatement>, rdf:subject, <#john>〉 〈<#myStatement>, rdf:predicate, <#hasName>〉 〈<#myStatement>, rdf:object, ”John Smith”〉 〈<#mary>, <#claims>, <#myStatement>〉 RDF/XML: <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ex="http://example.org/"> <rdf:Description rdf:about="http://example.org/mary"> <ex:claim> <rdf:Description> <rdf:subject> <rdf:Description rdf:about="http://example.org/john"/> </rdf:subject> <rdf:predicate> <rdf:Description rdf:about="http://example.org/hasName"/> </rdf:predicate> <rdf:object> John Smith </rdf:object> </rdf:Description> </ex:claim> </rdf:Description> </rdf:RDF> Notation 3: @prefix ex: <http://example.org/>. @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>. ex:mary ex:claim _:bnode1. _:bnode1 rdf:subject ex:john; rdf:predicate ex:hasName; rdf:object “John Smith”. Triples: _:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#subject> <http://example.org/john>. _:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate> <http://example.org/hasName>. _:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#object> “John Smith”. <http://example.org/mary> <http://example.org/claim> _:bnode1.
  • 12.
    Chapter: 2 (Tutorial) 12 RDFEntailment: <http://example.org/#john> rdf:type <http://example.org/#Student> <http://example.org/#> rdfs:subClassOf <http://example.org/#Person> Entails: <http://example.org/#john> rdf:type <http://example.org/#Person> Triples: <http://example.org/#john> <http://example.org/#hasName> "John". <http://example.org/#john> <http://example.org/#marriedTo> <http://example.org/#mary>. RDF/XML: <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ex="http://example.org/#"> <rdf:Description rdf:about="http://example.org/#john"> <ex:hasName>John</ex:hasName> <ex:marriedTo rdf:resource = "http://example.org/#mary"/> </rdf:Description> </rdf:RDF> Notation 3: @prefix ex: <http://example.org/#>. @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>. ex:john ex:hasName "John"; ex:marriedTo ex:mary. Exercise 1.2: Write the following part of an RDF document in Turtle syntax: <?xml version="1.0"?>
  • 13.
    Chapter: 2 (Tutorial) 13 <rdf:RDFxmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="Jack"> <rdf:type> <owl:Class> <owl:intersectionOf rdf:parseType="Collection"> <owl:Class rdf:about="Person"/> <owl:Class> <owl:complementOf rdf:resource="Parent"/> </owl:Class> </owl:intersectionOf> </owl:Class> </rdf:type> </rdf:Description> </rdf:RDF> Turtle syntax: @prefix owl: <http://www.w3.org/2002/07/owl#>. @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>. <Jack> a _:bnode1. <Person> a owl:Class. _:bnode2 a owl:Class; owl:complementOf <Parent>. _:bnode1 a owl:Class; owl:intersectionOf (<Person> _:bnode2). Triples: _:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class>. <Person> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class>. _:bnode2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <Person>. _:bnode2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:bnode3. _:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class>. _:bnode4 <http://www.w3.org/2002/07/owl#complementOf> <Parent>. _:bnode3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> _:bnode4. _:bnode3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax- ns#nil>. _:bnode1 <http://www.w3.org/2002/07/owl#intersectionOf> _:bnode2. <Jack> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> _:bnode1. Exercise 1.1 Write the following part of an RDF document in Turtle syntax: <rdf:RDF
  • 14.
    Chapter: 2 (Tutorial) 14 xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" > <owl:Classrdf:about="Parent"> <owl:equivalentClass> <owl:Restriction> <owl:onProperty rdf:resource="hasChild"/> <owl:someValuesFrom rdf:resource="Person"/> </owl:Restriction> </owl:equivalentClass> </owl:Class> </rdf:RDF> Notation 3: @prefix owl: <http://www.w3.org/2002/07/owl#>. @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>. <Parent> a owl:Class; owl:equivalentClass _:bnode1. _:bnode1 rdf:type owl:Restriction; owl:onProperty <hasChild>; owl:someValuesFrom <Person>. Triples: <Parent> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class>. _:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction>. _:bnode1 <http://www.w3.org/2002/07/owl#onProperty> <hasChild>. _:bnode1 <http://www.w3.org/2002/07/owl#someValuesFrom> <Person>. <Parent> <http://www.w3.org/2002/07/owl#equivalentClass> _:bnode1. Exercise 1.5: Write the following Turtle triples in RDF/XML syntax: ([] can be used in Turtle for a blank node.) @prefix owl: <http://www.w3.org/2002/07/owl#>. @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>. [] rdf:type owl:NegativePropertyAssertion; owl:sourceIndividual :Bill; owl:assertionProperty :hasDaughter; owl:targetIndividual :Susan. RDF/XML: <?xml version="1.0"?> <rdf:RDF xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax- ns#">
  • 15.
    Chapter: 2 (Tutorial) 15 <owl:NegativePropertyAssertion> <owl:sourceIndividualrdf:resource="#Bill" /> <owl:assertionProperty rdf:resource="#hasDaughter" /> <owl:targetIndividual rdf:resource="#Susan" /> </owl:NegativePropertyAssertion> </rdf:RDF> Triples: _:bnode1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#NegativePropertyAssertion>. _:bnode1 <http://www.w3.org/2002/07/owl#sourceIndividual> <#Bill>. _:bnode1 <http://www.w3.org/2002/07/owl#assertionProperty> <#hasDaughter>. _:bnode1 <http://www.w3.org/2002/07/owl#targetIndividual> <#Susan>. Exercise 1.4 Write the following Turtle triple in RDF/XML syntax: @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>. @prefix ex: <http://example.org/>. @prefix xsd: <http://www.w3.org/2001/XMLSchema#>. ex:Person rdfs:comment "Represents the set of all people."^^xsd:string . RDF/XML: <?xml version="1.0"?> <rdf:RDF xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:ex="http://example.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="http://example.org/Person"> <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"> Represents the set of all people. </rdfs:comment> </rdf:Description> </rdf:RDF>
  • 16.
    Chapter: 2 (Tutorial) 16 Triples: <http://example.org/Person><http://www.w3.org/2000/01/rdf-schema#comment> "Represents the set of all people."^^<http://www.w3.org/2001/XMLSchema#string>.