1. Semantic Web ::: Serge Linckels ::: www.linckels.lu ::: serge@linckels.lu ::: 1
Semantic Web
Unit 4: RDF and RDF Schema
Faculty of Science, Technology and Communication (FSTC)
Bachelor en informatique (professionnel)
2. Semantic Web ::: Serge Linckels ::: www.linckels.lu ::: serge@linckels.lu ::: 2
4. RDF and RDF Schema
2
Semantic Web Roadmap:
Controlled growth bottom
up according to this
architecture.
Architecture was (slightly)
modified in the last years.
2
3. Semantic Web ::: Serge Linckels ::: www.linckels.lu ::: serge@linckels.lu ::: 3
4. RDF and RDF Schema
4.1. Why is XML not Sufficient?
4.2. RDF Specifications
4.3. RDF Schema (RDFS)
4.4. SPARQL – RDF Query Language
4.5. Sharing Vocabulary in RDF
4.6. Jena – RDF in Java
4.7. References
33
4. Semantic Web ::: Serge Linckels ::: www.linckels.lu ::: serge@linckels.lu ::: 4
4.1. Why is XML not Sufficient?
4. RDF and RDF Schema
Level of knowledge representation and semantics
XML / XML Schema
objects, structure
RDF / RDF Schema
knowledge about
objects, relations
between objects
OWL
domain knowledge,
interconnections
44
5. Semantic Web ::: Serge Linckels ::: www.linckels.lu ::: serge@linckels.lu ::: 5
4.1. Why is XML not Sufficient?
4. RDF and RDF Schema
Problem 1: missing relational expressivity
What is the relation between a
"Professor", a "Secretary" and a
"PhDStudent"?
Christoph Meinel
Viola Brehmer
Long Wang
Feng Cheng
Dirk Cordel
Serge Linckels
Harald Sack
<ChairMeinel>
<Professor>
<FirstName>Christoph</FirstName>
<LastName>Meinel</LastName>
</Professor>
<Secretary>Viola Brehmer</Secretary>
<PhDStudent>Long Wang</PhDStudent>
<PhDStudent>Feng Cheng</PhDStudent>
<PhDStudent>Dirk Cordel</PhDStudent>
<PhDStudent>Serge Linckels</PhDStudent>
<FormerPhDStudent>Harald Sack</FormerPhDStudent>
</ChairMeinel>
XML document
We need a more powerful formalism above XML to
describe relations between objects
55
6. Semantic Web ::: Serge Linckels ::: www.linckels.lu ::: serge@linckels.lu ::: 6
4.1. Why is XML not Sufficient?
4. RDF and RDF Schema
Problem 2: missing relational expressivity
Are all three documents
equivalent?
Do they represent the
same information?
<phonenumber>
<owner>Serge Linckels</owner>
<number>++352-691-123456</number>
</phonenumber>
XML document 1
We need a more powerful formalism above XML to
describe objects with a shared vocabulary
<person>
<name>Serge Linckels</name>
<phone>++352-691-123456</phone>
</person>
XML document 2
<person name="Serge Linckels" phone="++352-691-123456" />
XML document 3
Solving this kind of problem requires a
matching of all 3 documents and their
according DTD / XML Schema, e.g., with
XSLT. This reengineering is difficult,
complex and can be avoided.
66
7. Semantic Web ::: Serge Linckels ::: www.linckels.lu ::: serge@linckels.lu ::: 7
4.2. RDF Specifications
4. RDF and RDF Schema
RDF overview
Resource Description Framework
RDF allows to describe resources in
a more expressive way than XML
RDF can be serialized as XML (or in
other formats)
The syntax of a RDF document can
be described in a RDF Schema
RDF documents can be queried
using optimized query languages,
e.g., SPARQL
77
8. Semantic Web ::: Serge Linckels ::: www.linckels.lu ::: serge@linckels.lu ::: 8
RDF
English
4.2. RDF Specifications
4. RDF and RDF Schema
RDF standard
W3C recommendation
Make statements (assertions) about resources, e.g.,
"Serge Linckels is a teacher. He teaches RDF."
The object "Serge Linckels" has a property "hasJob" that has
the value "teacher"
The object "Serge Linckels" has a property "toTeach" that has
the value "RDF"
Statement 1
Statement 2
RDF statement
A RDF statement is a "triple": resource – property – value
teacherSerge Linckels
hasJob
Subject Predicate Object
Resource Property Value
88
9. Semantic Web ::: Serge Linckels ::: www.linckels.lu ::: serge@linckels.lu ::: 9
4.2. RDF Specifications
4. RDF and RDF Schema
RDF graph
RDF statements are represented as directed and labeled graphs, where each resource is
represented as a node
Each resource is identified by a URI
teacher
hasJob
RDF
toTeach
RDF graphs can be serialized in different formats, e.g., as XML
RDF serialization
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:myNS="http://www.linckels.lu/myNS/">
<rdf:Description rdf:about="http://www.linckels.lu/">
<myNS:hasJob>teacher</myNS:hasJob>
<myNS:toTeach>RDF</myNS:toTeach>
</rdf:Description>
</rdf:RDF>
http://www.linckels.lu/
99
10. Semantic Web ::: Serge Linckels ::: www.linckels.lu ::: serge@linckels.lu ::: 10
4.2. RDF Specifications
4. RDF and RDF Schema
RDF validation
RDF graphs can be validated with "a
validator", e.g.,
http://www.w3.org/RDF/Validator/
1010
11. Semantic Web ::: Serge Linckels ::: www.linckels.lu ::: serge@linckels.lu ::: 11
4.2. RDF Specifications
4. RDF and RDF Schema
More about objects
An RDF object can be a literal
teacherSerge Linckels
hasJob
is a literal
An RDF object can be a resource
Serge Linckels
worksWith
is a resource
Denis Zampuniéris
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:myNS="http://www.linckels.lu/myNS/">
<rdf:Description rdf:about="http://www.linckels.lu/">
<myNS:hasJob>teacher</myNS:hasJob>
<myNS:worksWith rdf:resource="http://www.zampunieris.be" />
</rdf:Description>
</rdf:RDF>
1111
12. Semantic Web ::: Serge Linckels ::: www.linckels.lu ::: serge@linckels.lu ::: 12
4.2. RDF Specifications
4. RDF and RDF Schema
Example – RDF graph
teacher
RDF
toTeach
Les Générations Pascal
professor
Serge Linckels
Denis Zampuniéris
hasName
hasJob
hasName
hasJob
hasTitle
http://www.zampunieris.be
http://www.linckels.lu/
ISBN: 2-495-10604-8
1212
13. Semantic Web ::: Serge Linckels ::: www.linckels.lu ::: serge@linckels.lu ::: 13
4.2. RDF Specifications
4. RDF and RDF Schema
Example – XML serialization
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:myNS="http://www.linckels.lu/myNS/">
<rdf:Description rdf:about="http://www.linckels.lu/">
<myNS:hasJob>teacher</myNS:hasJob>
<myNS:hasName>Serge Linckels</myNS:hasName>
<myNS:toTeach>RDF</myNS:toTeach>
<myNS:worksWith rdf:resource="http://www.zampunieris.be/" />
</rdf:Description>
<rdf:Description rdf:about="http://www.zampunieris.be/">
<myNS:hasJob>professor</myNS:hasJob>
<myNS:hasName>Denis Zampunieris</myNS:hasName>
<myNS:likesToRead rdf:resource="ISBN: 2-495-10604-8" />
</rdf:Description>
<rdf:Description rdf:about="ISBN: 2-495-10604-8">
<myNS:hasTitle>Les Générations Pascal</myNS:hasTitle>
<myNS:hasAuthor rdf:resource="http://www.linckels.lu/" />
</rdf:Description>
</rdf:RDF>
Related elements
must not be nested
within the elements
they are related to
1313
19. Semantic Web ::: Serge Linckels ::: www.linckels.lu ::: serge@linckels.lu ::: 19
4.2. RDF Specifications
4. RDF and RDF Schema
RDF containers - overview
rdf:Bag – containing unordered lists of resources or literals, with duplicate data allowed
rdf:Seq – containing ordered lists of resources or literals, with duplicate data allowed
rdf:Alt – containing resources or literals that represent possible alternatives for a specific
value
RDF collections - overview
Unlike a container, a collection is a finite grouping of resources or literals
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:myNS="http://www.linckels.lu/myNS/">
<rdf:Description rdf:about="http://www.linckels.lu/">
<myNS:hasFriends rdf:parseType="Collection">
<rdf:Description rdf:about="http://www.toto.lu" />
<rdf:Description rdf:about="http://www.titi.lu" />
<rdf:Description rdf:about="http://www.tata.lu" />
</myNS:hasFriends>
<myNS:hasName>Serge Linckels</myNS:hasName>
</rdf:Description>
</rdf:RDF>
1919
20. Semantic Web ::: Serge Linckels ::: www.linckels.lu ::: serge@linckels.lu ::: 20
rdf:list
4.2. RDF Specifications
4. RDF and RDF Schema
RDF lists
Serge Linckels
http://www.linckels.lu/
hasName
http://www.toto.lu/
rdf:first
http://www.titi.lu/
rdf:first
rdf:rest
http://www.tata.lu/
rdf:first
rdf:rest
rdf:nil
rdf:rest
A list is a terminated sequence of
items
Traversing a list becomes a
matter of finding the start node
and then accessing the next
predicates for that node
2020
22. Semantic Web ::: Serge Linckels ::: www.linckels.lu ::: serge@linckels.lu ::: 22
rdf:Statement
4.2. RDF Specifications
4. RDF and RDF Schema
Reification
Reification is a method of formally
modeling a statement about another
statement
sweetThis lemon
are
Serge Linckels
says
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:myNS="http://www.linckels.lu/myNS/">
<rdf:Description rdf:about="http://www.linckels.lu/">
<myNS:says rdf:resource="#myStatement" />
</rdf:Description>
<rdf:Statement rdf:about="#myStatement">
<rdf:subject rdf:resource="http://www.lemon123.lu" />
<rdf:predicate rdf:resource="myNS:are" />
<rdf:object>sweet</rdf:object>
</rdf:Statement>
</rdf:RDF>
identification of
the statement
2222
23. Semantic Web ::: Serge Linckels ::: www.linckels.lu ::: serge@linckels.lu ::: 23
4.2. RDF Specifications
4. RDF and RDF Schema
rdf:Statement
Reification – problem
Reification is always an subjective view and can cause ambiguities
sweetThis lemon
are
Serge Linckels
says
rdf:Statement
bitter
are
DenisZampunieris
says
Who do you believe?
2323
24. Semantic Web ::: Serge Linckels ::: www.linckels.lu ::: serge@linckels.lu ::: 24
4.2. RDF Specifications
4. RDF and RDF Schema
Reification is useful
Useful to formally express trust
1.61803
π hasValue
Serge Linckels
says
3.14159
hasValue
Who do you believe?
A. Einstein
D. Zampunieris
M. Planck
O. Hahn
says
says
Create metadata over assertions (assertion ≠ fact)
2424
25. Semantic Web ::: Serge Linckels ::: www.linckels.lu ::: serge@linckels.lu ::: 25
Database 1
Database 2
4.2. RDF Specifications
4. RDF and RDF Schema
RDF helps to make semantic relations between databases
Les Générations
Pascal
hasAuthor
http://www.linckels.lu/
ISBN: 2-495-10604-8
http://www.men.lu
publishedBy
http://www.myschool.lu
http://www.men.lu
hasProject
Ministère de
l'Éducation
Nationale
hasName
Relations between distinct databases can made explicit same URI = same resources
Data can be integrated (from one database into another) same URI, same vocabulary
2525
26. Semantic Web ::: Serge Linckels ::: www.linckels.lu ::: serge@linckels.lu ::: 26
4.2. RDF Specifications
4. RDF and RDF Schema
RDF helps to make semantic relations between databases
Relations between distinct databases can made explicit same URI = same resources
Data can be integrated (from one database into another) same URI, same vocabulary
26
Les Générations
Pascal
hasAuthor
http://www.linckels.lu/
ISBN: 2-495-10604-8
publishedBy
hasTitle
http://www.myschool.lu
http://www.men.lu
hasProject
Ministère de
l'Éducation
Nationale
hasName
26
27. Semantic Web ::: Serge Linckels ::: www.linckels.lu ::: serge@linckels.lu ::: 27
4.3. RDF Schema (RDFS)
4. RDF and RDF Schema
RDFS overview
RDFS specifies:
- how RDF constructs relate to each other
- how RDF constructs can be diagrammed in XML
RDFS is a rules-based dictionary that:
- defines the elements of importance to a domain
- describes how these elements relate to one another
RDF is a way of describing data
RDFS is a domain-neutral way of describing the metadata that can be used to
describe the data for domain-specific vocabulary
RDFS allows to define:
- abstract datatypes (classes)
- hierarchically structure the datamodel
- properties and relations (e.g., inheritance)
2727
28. Semantic Web ::: Serge Linckels ::: www.linckels.lu ::: serge@linckels.lu ::: 28
4.3. RDF Schema (RDFS)
4. RDF and RDF Schema
RDFS – defining classes
rdfs:Resource is the RDFS top-class
rdfs:Resource
myNS:Person
fullname
Example:
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
<rdfs:class rdf:about="http://www.linckels.lu/myNS/Person">
<rdfs:subClassOf
rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Resource" />
</rdfs:class>
<rdf:Property rdf:about="http://www.linckels.lu/myNS/fullname">
<rdfs:domain rdf:resource="http://www.linckels.lu/myNS/Person" />
</rdf:Property>
</rdf:RDF>
rdfs:class – definition of a new class that inherits from the super class
specified in rdfs:subClassOf
rdf:Property – definition of a new property of a class specified in
rdfs:domain
2828
30. Semantic Web ::: Serge Linckels ::: www.linckels.lu ::: serge@linckels.lu ::: 30
4.3. RDF Schema (RDFS)
4. RDF and RDF Schema
RDFS – defining relations and restrictions rdfs:Resource
myNS:Person
worksFor
age
<rdf:Property rdf:about="http://www.linckels.lu/myNS/worksFor">
<rdfs:domain rdf:resource="http://www.linckels.lu/myNS/Person" />
<rdfs:range rdf:resource="http://www.linckels.lu/myNS/Firm" />
</rdf:Property>
myNS:Firm
rdfs:range – specifies the classes the property can
reference as values
<rdf:Property rdf:about="http://www.linckels.lu/myNS/age">
<rdfs:domain rdf:resource="http://www.linckels.lu/myNS/Person" />
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#integer" />
</rdf:Property>
This mechanism allows to define basic relations between
classes and to define datatypes for property values
A validator checks only the syntax, not if
the values for properties are correct. This
task must be assumed by the application.
!
3030
31. Semantic Web ::: Serge Linckels ::: www.linckels.lu ::: serge@linckels.lu ::: 31
4.3. RDF Schema (RDFS)
4. RDF and RDF Schema
RDFS – other elements
rdfs:label – provides a (human) readable version the resource's name
rdfs:Literal - defines a node as being a literal value, not a resource
rdfs:Comment – defines a comment
rdfs:Container – superclass of all RDF container elements (rdf:Bag, rdf:Seq and rdf:Alt)
rdfs:member – superproperty for each numbered container element (e.g., _1, _2, etc.)
rdfs:subPropertyOf – specifies a property as a refinement of another property
rdfs:seeAlso – identifies another resource that contains additional information
rdfs:isDefinedBy – identifies the namespace for the resource, preventing any ambiguity
3131
32. Semantic Web ::: Serge Linckels ::: www.linckels.lu ::: serge@linckels.lu ::: 32
4.4. SPARQL – RDF Query Language
4. RDF and RDF Schema
RDF query languages – overview
There exists multiple languages to query RDF data: ARQ, RDQL, N3QL, RQL, SPARQL, SeRQL,
Versa, XUL, Adenine, RDQ, N3QL…
SPARQL (SPARQL Protocol and RDF Query Language) was standardized in January 2008 by the
W3C
"SQL like" syntax to query RDF data as triples
@prefix myNS: <http://www.linckels.lu/myNS#>
SELECT DISTINCT ?X
FROM <http://www.linckels.lu/myRDF-file.rdf>
WHERE
{
myNS:Person myNS:worksFor ?X .
}
Example: "show me all firms that have employees"
Complex filtering is possible, e.g.,
- string operations
- conjunctions and disjunctions of logical tests
- datatype checking
32
triple
32
33. Semantic Web ::: Serge Linckels ::: www.linckels.lu ::: serge@linckels.lu ::: 33
4.4. SPARQL – RDF Query Language
4. RDF and RDF Schema
RDF query languages – overview
@prefix myNS: <http://www.linckels.lu/myNS#>
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT ?person ?firm
FROM <http://www.linckels.lu/myRDF-file.rdf>
WHERE
{
?person rdf:type myNS:Person .
?person myNS:worksFor ?firm .
?firm rdf:type myNS:Firm .
?person myNS:age ?age .
FILTER (?age > 30) .
FILTER (?age <= 40) .
}
Example: "show me all persons and the firms they work for, who are between 31 and 40 in
age"
3333
34. Semantic Web ::: Serge Linckels ::: www.linckels.lu ::: serge@linckels.lu ::: 34
4.5. Sharing Vocabulary in RDF
4. RDF and RDF Schema
Problem with not identical predicates
Les Générations Pascal
hasTitle
ISBN: 2-495-10604-8
Les Générations Pascal
avoirTitre
ISBN: 2-495-10604-8
= ?
- Resources are equal because same URI
- Objects are equal because same value
are both predicates equal ?
Use (as far as possible) existing vocabulary for predicates, or share your own
vocabulary with others
Examples: Dublin Core (DC), Friend of a Friend (FOAF)
3434
35. Semantic Web ::: Serge Linckels ::: www.linckels.lu ::: serge@linckels.lu ::: 35
4.5. Sharing Vocabulary in RDF
4. RDF and RDF Schema
Dublin Core (DC)
Les Générations Pascal
dc:title
ISBN: 2-495-10604-8
DC metadata element set is a standard for cross-domain information resource description
Provides a simple and standardized set of conventions for describing resources
DC is widely used to describe digital materials such as video, sound, image, text, and
composite media like web pages
Dublin Core is defined by NISO Standard Z39.85-2007
http://dublincore.org/
DC is controlled by Dublin Core Metadata Initiative (DCMI), an organization providing an open
forum for the development of interoperable online metadata standards
3535
36. Semantic Web ::: Serge Linckels ::: www.linckels.lu ::: serge@linckels.lu ::: 36
4.5. Sharing Vocabulary in RDF
4. RDF and RDF Schema
Dublin Core (DC)
Simple Dublin Core Metadata Element Set (DCMES) consists of 15 metadata elements
Qualified Dublin Core Metadata Element Set (QDCME) includes three additional elements
(audience, provenance and rightsholder), as well as a group of element refinements
title : a name given to a resource
creator : an entity responsible for making the content of the resource
subject : the topic of the content of the resource
description : an account of the content of the resource
publisher : an entity responsible for making the content available
contributor : an entity responsible for making contributions to the content of the resource
date : a date associated with an event in the life cycle of the resource
type : the nature or genre of the content of the resource
format : the physical or digital manifestation of the resource
identifier : an unambiguous reference to the resource within a given context
source : a reference to the resource from which the present resource is derived
language : a language of the intellectual content of the resource
relation : a reference to a related resource
coverage : the extent or scope of the content of the resource
rights : information about rights held in and over the resource
3636
37. Semantic Web ::: Serge Linckels ::: www.linckels.lu ::: serge@linckels.lu ::: 37
FOAF Basics
Personal Info
Online Accounts
Projects & Groups
Documents & Images
4.5. Sharing Vocabulary in RDF
4. RDF and RDF Schema
Friend of a Friend (FOAF)
FOAF is a way to describe people and relationships to computers; it is a vocabulary
http://www.foaf-project.org/
Agent
Person
name
nick
title
homepage
mbox
mbox_sha1sum
img
depiction
surname
family_name
givenname
firstName
weblog
knows
interest
currentProject
pastProject
plan
based_near
workplaceHomepage
workInfoHomepage
schoolHomepage
topic_interest
publications
geekcode
myersBriggs
dnaChecksum
OnlineAccount
OnlineChatAccount
OnlineEcommerceAccount
OnlineGamingAccount
holdsAccount
accountServiceHomepage
accountName
icqChatID
msnChatID
aimChatID
jabberID
yahooChatID
Project
Organization
Group
member
membershipClass
fundedBy
theme
Document
Image
PersonalProfileDocument
topic (page)
primaryTopic
tipjar
sha1
made (maker)
thumbnail
logo
3737
39. Semantic Web ::: Serge Linckels ::: www.linckels.lu ::: serge@linckels.lu ::: 39
4.6. Jena – RDF in Java
4. RDF and RDF Schema
Jena – overview
Jena is a Java framework for building Semantic Web applications
Jena provides a programmatic environment for RDF, RDFS, OWL and SPARQL
Jena is open source and grown out of work with the HP Labs Semantic Web Programme
http://jena.sourceforge.net/
3939
40. Semantic Web ::: Serge Linckels ::: www.linckels.lu ::: serge@linckels.lu ::: 40
4.6. Jena – RDF in Java
4. RDF and RDF Schema
Jena – example: creating a resource
import com.hp.hpl.jena.mem.ModelMem;
import com.hp.hpl.jena.rdf.model.*;
static String myDemo= "http://www.linckels.lu/";
static String myNS = " http://www.linckels.lu/myNS";
// create an empty graph
Model myModel = new ModelMem();
// create the resource
Resource myResource = myModel.createResource(myDemo);
// create the predicate (property)
Property fullname = myModel.createProperty(myNS,"fullname");
// add the property with associated value (object)
myResource.addProperty(fullname, "Serge Linckels");
// print RDF/XML of model to system out
myModel.write(new PrintWriter(System.out));
4040
41. Semantic Web ::: Serge Linckels ::: www.linckels.lu ::: serge@linckels.lu ::: 41
4.6. Jena – RDF in Java
4. RDF and RDF Schema
Jena – example: browsing through a graph
// using a statement iterator
StmtIterator iter = myModel.listStatements();
while (iter.hasNext()) {
// read a statement (resource, predicate, object)
Statement stmt = iter.next();
// identify resource
Resource subject = stmt.getSubject();
// identify predicate
Property predicate = stmt.getPredicate();
// identify object
RDFNode object = stmt.getObject();
// output
System.out.print("("+predicate.toString()+",");
System.out.print(subject.toString()+",");
System.out.println(object.toString()+")");
}
4141
42. Semantic Web ::: Serge Linckels ::: www.linckels.lu ::: serge@linckels.lu ::: 42
4.6. Jena – RDF in Java
4. RDF and RDF Schema
Jena – example: read and write a file
String filename = "myFile.rdf";
// creating a model
Model myModel = new ModelMem();
// read a file
Model.read(new FileReader(filename));
// write a file
Model.write(new PrintWriter(System.out));
Jena – example: creating a container
Bag bag = myModel.createBag();
bag.add("Romeo and Juliet")
bag.add("Hamlet")
bag.add("Othello");
NodeIterator iter = bag.iterator();
while (iter.hasNext()) {
System.out.println(" " + iter.next().toString());
}
4242
43. Semantic Web ::: Serge Linckels ::: www.linckels.lu ::: serge@linckels.lu ::: 43
Creating the Semantic Web with RDF: Professional Developer's Guide
Johan Hjelm
4.7. References
4. RDF and RDF Schema
Practical RDF
Shelley Powers
4343
E-Librarian Service
User-Friendly Semantic Search in Digital Libraries
Serge Linckels, Christoph Meinel
44. Semantic Web ::: Serge Linckels ::: www.linckels.lu ::: serge@linckels.lu ::: 44
A Semantic Web Primer (Cooperative Information Systems)
Grigoris Antoniou , Frank van Harmelen
Semantic Web: Concepts, Technologies and Applications
K.K. Breitman, M.A. Casanova, W. Truszkowski
4.7. References
4. RDF and RDF Schema
44
Foundations of Semantic Web Technologies
Pascal Hitzler, Markus Krötzsch, Sebastian Rudolph
44