State of the Art in
Semantic Web standards
and technologies
Andreas Duscher
State of the Art in
Semantic Web Standards
and Technologies
General Overview
RDF / RDF Schema
OWL
OWL-S
Final words
Today´s web
It is designed for human consumption
Information retrieval is mainly supported by keyword-based
search engines
Some problems with information retrieval:
High recall, low precision
Low or no recall
Results are highly sensitive to vocabulary
Web content is not machine-proccessable
„I am a professor of computer science.“
-- or --
„I am a professor of computer science, you may
think. Well….“
Semantic Web Vision
„The Semantic Web provides a common framework that
allows data to be shared and reused across application,
enterprise, and community boundaries.“
[http://www.w3.org/2001/sw/]
Problem „Business-to-consumer
electronic commerce“
• Manually retrieving the best offers from
different online-shops is too time-consuming.
• Tools for shoping are available in the form of
shop bots.
• For every online shop a wrapper is needed
(information is extracted through text analysis).
Vision „Business-to-consumer
electronic commerce“
• The user asks a autonomously acting piece
of software for a certain product.
• The software retrieves all offers and
compares them with the user‘s preferences.
• If needed the sofware negotiates with the
shop for a special discount or tries to get a
trusted rating for the shop.
Semantic Web Technologies
Ontologies
An ontology describes formally a domain of
discourse.
It is a finite list of terms and the relationship
between these terms.
Types of relationship: subclass hierarchy,
properties, value restrictions, logical relationships
between objects
„In the context of web an ontology provide a
shared understanding of a domain.“
Semantic Web Technologies
Logic
„A discipline that studies the principles of reasoning.“
Automated reasoners allow to draw conclusions from
given knowledge, make implicit knowledge explicit.
prof(X) -> faculty(X)
faculty(X) -> staff(X)
prof(michael)
Semantic Web Technologies
Logic
„A discipline that studies the principles of reasoning.“
Automated reasoners allow to draw conclusions from
given knowledge, make implicit knowledge explicit.
prof(X) -> faculty(X)
faculty(X) -> staff(X)
prof(michael)
faculty(michael)
staff(michael)
prof(X) -> staff(X)
This example involves knowledge typically found in
ontologies.
Semantic Web Technologies
Agents
Agents are pieces of software that work autonomously
and proactively.
A personal agent would recieive some task and
preferences from the user, communicate with other
agents, compare information and select certain
choices.
Web services
collection of protocols and standard for exchanging
data between various applications
Semantic Web Technologies
How it fits together?
Onotologies can be used to represent knowledge, interpret
the retrieved information and communicate with other
agents.
Logic can be used for processing the retrieved information
and for drawing conclusions.
Agent / Web service technologies allow the communication
between different systems and the composition of
complexer services from simple ones.
Semantic Web Technologies
How it fits together?
Onotologies can be used to represent knowledge, interpret
the retrieved information and communicate with other
agents.
=> RDF / RDF Schema / OWL
Logic can be used for processing the retrieved information
and for drawing conclusions.
=> Defining an OWL-based language is in progress!
Agent / Web service technologies allow the communication
between different systems and the composition of
complexer services from simpler ones.
=> OWL-S
RDF Motivation
The Resource Description Framework (RDF) is a
language for representing resources in the World Wide
Web.
RDF is intended for situations in which this information
needs to be processed by applications, rather than being
only displayed to people.
RDF is based on the idea of identifying things using Web
identifiers (URIs).
RDF Basic Concepts
the thing the statement describes (the web page`s URL)
a specific property of the thing (e.g. creator)
the concrete message the statement wants to give,
in other words the value of the property (John Smith)
RDF basic ideas
Things being described have properties, which have values
Resources can be described by making statements
(similar to the above example)
http://www.example.org/index.html has a creator whose value is John Smith
Example
„Imagine trying to state that someone named John Smith created a particular
Web page.“
RDF Basic Concepts
RDF terminology
the part that identifies the thing the statemant is about is called subject
the part that identifies the property is called predicate
the part that identifies the value of the property is called object
Subject Object
Predicate
RDF Basic Concepts
RDF terminology
the part that identifies the thing the statemant is about is called subject
the part that identifies the property is called predicate
the part that identifies the value of the property is called object
Subject Object
Predicate
http://www.example.org/index.html has a creator whose value is John Smith
the subject is the URL „http://www.example.org/index.html“
the predicate is the word „creator“
the object is the name „John Smith“
RDF Basic Concepts
To make these statements machine-proccessable
two things are needed:
a system of machine-processable identifiers (for subjects, predicates
and objects) without any possibilty of confusion between similar looking
identifiers
RDF Basic Concepts
To make these statements machine-proccessable
two things are needed:
a system of machine-processable identifiers (for subjects, predicates
and objects) without any possibilty of confusion between similar looking
identifiers
a machine-processable language for representing these statements and
exchanging them between machines
RDF Basic Concepts
To make these statements machine-proccessable
two things are needed:
a system of machine-processable identifiers (for subjects, predicates
and objects) without any possibilty of confusion between similar looking
identifiers
a machine-processable language for representing these statements and
exchanging them between machines
Uniform Resource Identifiers (URI) allow to identify and uniquely
name things - even if they have no network-accessible location.
RDF Basic Concepts
To make these statements machine-proccessable
two things are needed:
a system of machine-processable identifiers (for subjects, predicates
and objects) without any possibilty of confusion between similar looking
identifiers
a machine-processable language for representing these statements and
exchanging them between machines
RDF defines a XML markup language, named RDF/XML, which
allows to represent RDF statements.
Uniform Resource Identifiers (URI) allow to identify and uniquely
name things - even if they have no network-accessible location.
RDF Model
As mentioned:
RDF makes statements about resources
Each statement consists of a subject, a predicate and an object
http://www.example.org/index.html has a creator whose value is John Smith
http://www.example.org/staffid/5232
http://purl.org/dc/elements/1.1/creator
http://www.example.org/index.html
RDF Model
As mentioned:
RDF makes statements about resources
Each statement consists of a subject, a predicate and an object
http://www.example.org/index.html has a creator whose value is John Smith
http://www.example.org/staffid/5232
http://purl.org/dc/elements/1.1/creator
http://www.example.org/index.html
subject
object
predicate
RDF Model
Conclusion
RDF documents are „nodes-and-arcs diagrams
interpreted as statements about things identified
by URIrefs“.
So subjects, predicates and objects can be
identified by URIrefs.
RDF Syntax
Abbreviating and Organizing RDF URIrefs
<?xml version="1.0"?>
<!DOCTYPE rdf:RDF [<!ENTITY xsd "http://www.w3.org/2001/XMLSchema#">]>
<rdf:RDF xmlns:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns#
xmlns:exterms="http://www.example.com/terms/">
<rdf:Description rdf:ID="item10245">
<exterms:model rdf:datatype="&xsd;string">Overnighter</exterms:model>
<exterms:sleeps rdf:datatype="&xsd;integer">2</exterms:sleeps>
<exterms:weight rdf:datatype="&xsd;decimal">2.4</exterms:weight>
<exterms:packedSize rdf:datatype="&xsd;integer">784</exterms:packedSize>
</rdf:Description>
rdf:about and rdf:ID are strictly speaking the same.
rdf:about is often used for talking about resources that have been defined
elsewhere.
The value of rdf:ID can only appear once in a document.
The fragment identifier item10245 will be interpreted relative to a base URI.
RDF Syntax
Typing in RDF
<?xml version="1.0"?>
<!DOCTYPE rdf:RDF [<!ENTITY xsd "http://www.w3.org/2001/XMLSchema#">]>
<rdf:RDF xmlns:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns#
xmlns:exterms="http://www.example.com/terms/">
<rdf:Description rdf:ID="item10245">
<rdf:type rdf:resource="http://www.example.com/terms/Tent"/>
<exterms:model rdf:datatype="&xsd;string">Overnighter</exterms:model>
<exterms:sleeps rdf:datatype="&xsd;integer">2</exterms:sleeps>
…
</rdf:Description>
RDF allows to classify resources with the special attribute rdf:type.
The resource item10245 is called a tpyed node.
It is similar to the programming language concept of objects and classes
=> RDF Schema (RDFS)
RDF Syntax
Typing in RDF (abbreviated form)
<?xml version="1.0"?>
<!DOCTYPE rdf:RDF [<!ENTITY xsd "http://www.w3.org/2001/XMLSchema#">]>
<rdf:RDF xmlns:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns#
xmlns:exterms="http://www.example.com/terms/">
<exterms:Tent rdf:ID="item10245">
<exterms:model rdf:datatype="&xsd;string">Overnighter</exterms:model>
<exterms:sleeps rdf:datatype="&xsd;integer">2</exterms:sleeps>
…
</exterms:Tent>
RDF allows to classify resources with the special attribute rdf:type.
The resource item10245 is called a tpyed node.
It is similar to the programming language concept of objects and classes
=> RDF Schema (RDFS)
RDFS Basics
What it is not
RDF Schema does not make any assumptions about any
application domain, nor does it define the semantics.
What it is
RDF Schema provides a vocabulary to describe classes of
things and/or resources.
Vocabulary descriptions written in RDF Schema language
are legal RDF graphs.
It is up to the user to devolpe a RDF Schema (RDFS) for
the needed application domain.
RDFS Basics
Own namespace http://www.w3.org/2000/01/rdf-schema#
Core classes
rdfs:Resource, the class of all resouces
rdfs:Class, the class of all classes
rdf:Property, the class of all properties
Properties can be used to characterize concrete classes
In RDF Schema, a class is any resource having an rdf:type
property whose value is the resource rdfs:Class.
RDFS Basics
Core properties
rdf:type, relates a resource to its class
So the resource is an instance of the class
rdfs:subClassOf, relates a class to one of its superclasses
rdfs:subPropertyOf, relates a property to one of its superproperties
The above properties are instances of the class
rdf:Property. Own properties can be defined by assigning
the type rdf:Property to any kind of resource.
RDFS Example (Classes)
<?xml version="1.0"?>
<!DOCTYPE rdf:RDF [<!ENTITY xsd "http://www.w3.org/2001/XMLSchema#">]>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xml:base="http://example.org/schemas/vehicles">
<rdf:Description rdf:ID="MotorVehicle">
<rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-chema#Class"/>
</rdf:Description>
<rdf:Description rdf:ID="PassengerVehicle">
<rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
<rdfs:subClassOf rdf:resource="#MotorVehicle"/>
</rdf:Description>
<rdf:Description rdf:ID="Truck">
<rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
<rdfs:subClassOf rdf:resource="#MotorVehicle"/>
</rdf:Description>
<rdf:Description rdf:ID="Van">
<rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
<rdfs:subClassOf rdf:resource="#MotorVehicle"/>
</rdf:Description>
<rdf:Description rdf:ID="MiniVan">
<rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
<rdfs:subClassOf rdf:resource="#Van"/>
<rdfs:subClassOf rdf:resource="#PassengerVehicle"/>
</rdf:Description>
</rdf:RDF>
resource with an unique id
property „rdf:type“
that defines this
resource as „Class“
property „rfds:subClassOf“ with
a resource as value, in this
case a formerly defined class
RDFS Example (Classes)
<?xml version="1.0"?>
<!DOCTYPE rdf:RDF [<!ENTITY xsd "http://www.w3.org/2001/XMLSchema#">]>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xml:base="http://example.org/schemas/vehicles">
<rdfs:Class rdf:ID="MotorVehicle"/>
<rdfs:Class rdf:ID="PassengerVehicle">
<rdfs:subClassOf rdf:resource="#MotorVehicle"/>
</rdfs:Class>
<rdfs:Class rdf:ID="Truck">
<rdfs:subClassOf rdf:resource="#MotorVehicle"/>
</rdfs:Class>
<rdfs:Class rdf:ID="Van">
<rdfs:subClassOf rdf:resource="#MotorVehicle"/>
</rdfs:Class>
<rdfs:Class rdf:ID="MiniVan">
<rdfs:subClassOf rdf:resource="#Van"/>
<rdfs:subClassOf rdf:resource="#PassengerVehicle"/>
</rdfs:Class>
</rdf:RDF>
Abbreviated form
The value of the
property „rdf:type“
can be used for
naming the whole
resource.
RDFS Example (Properties)
<?xml version="1.0"?>
<!DOCTYPE rdf:RDF [<!ENTITY xsd "http://www.w3.org/2001/XMLSchema#">]>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xml:base="http://example.org/schemas/vehicles">
…
<rdf:Property rdf:ID="registeredTo">
<rdfs:domain rdf:resource="#MotorVehicle"/>
<rdfs:range rdf:resource="#Person"/>
</rdf:Property>
<rdf:Property rdf:ID="rearSeatLegRoom">
<rdfs:domain rdf:resource="#PassengerVehicle"/>
<rdfs:range rdf:resource="&xsd;integer"/>
</rdf:Property>
<rdfs:Class rdf:ID="Person"/>
</rdf:RDF>
„rdfs:range“ indicates,
that the values of that
property are instances of a
certain class
„rdfs:domain“ indicates,
that the values of the
particular property applies
to a designated class
RDFS Example (Instances)
<?xml version="1.0"?> <!DOCTYPE rdf:RDF [<!ENTITY xsd
"http://www.w3.org/2001/XMLSchema#">]>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:ex="http://example.org/schemas/vehicles#"
xml:base="http://example.org/things">
<ex:PassengerVehicle rdf:ID="johnSmithsCar">
<ex:registeredTo rdf:resource="http://www.example.org/staffid/85740"/>
<ex:rearSeatLegRoom rdf:datatype="&xsd;integer">
127
</ex:rearSeatLegRoom>
</ex:PassengerVehicle>
</rdf:RDF>
an instance of the class
„PassengerVehicle“
the defined properties that
can be applied to this class
RDF / RDFS Conclusion
Expressivity of RDF and RDF Schema is limited
Local scope of properties
Disjointness of classes
Boolean combination of classes
Cardiniality restrictions
Special characteristics of properties
Need for standardized ontology language
that builds upon existing concepts of RDF / RDFS
=> OWL Web Ontology Language
Web Services and the
Semantic Web
The Semantic Web should enable users to
locate, select, employ, compose, and monitor
Web-based services automatically.
Computer-interpretable description of the
service is needed.
OWL-S defines an ontology for describing
web services.
Web Services and the
Semantic Web
What does the service
provide?
ServiceProfile
A profile is used for advertizing the
service.
How is it used?
ServiceModel
A model describes how a service
works.
How to interact with it?
ServiceGrounding
A grounding provides the needed
details about transport protocols.
Web Services and the
Semantic Web (ServiceProfile)
<owl:Class rdf:ID="Profile">
<rdfs:label>Profile</rdfs:label>
<rdfs:subClassOf rdf:resource="&service;#ServiceProfile" />
<rdfs:comment> Definition of Profile </rdfs:comment>
</owl:Class>
<owl:ObjectProperty rdf:ID="hasInput">
<rdfs:subPropertyOf rdf:resource="#hasParameter"/>
<rdfs:range rdf:resource="&process;#Input"/>
</owl:ObjectProperty>
Web Services and the
Semantic Web (ServiceModel)
Web Services and the
Semantic Web (ServiceModel)
<owl:Class rdf:ID="SimpleProcess">
<rdfs:subClassOf rdf:resource="#Process"/>
<owl:disjointWith
rdf:resource="#AtomicProcess"/>
</owl:Class>
<owl:ObjectProperty rdf:ID="realizedBy">
<rdfs:domain rdf:resource="#SimpleProcess"/>
<rdfs:range rdf:resource="#AtomicProcess"/>
<owl:inverseOf rdf:resource="#realizes"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="realizes">
<rdfs:domain rdf:resource="#AtomicProcess"/>
<rdfs:range rdf:resource="#SimpleProcess"/>
<owl:inverseOf rdf:resource="#realizedBy"/>
</owl:ObjectProperty>
Conclusion
Today‘s web and its problems
A vision for a possible semantic web application
Overview of important standards
RDF / RDF Schema
OWL
OWL-S
The basic technologies exist but
- standards have to mature and
- more practical problems have to be solved
(tool support, ontology matching, …)
Bibliography
D. Martin et al., „OWL-S Semantic Markup for Web Services“
http://www.daml.org/services/owl-s/1.1/overview/
F. Manola and E. Miller, eds. „RDF Primer“, February 10, 2004.
http://www.w3.org/TR/rdf-primer/
M. Smith et al., „OWL Web Ontology Language Guide“,
http://www.w3.org/TR/owl-guide/
G. Antoniou, F. van Harmelen, „A Semantic Web Primer“, MIT
Press, London, England, 2004.