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
http://www.example.org/terms/creation-date
http://www.example.org/index.html
August 16, 1999
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:exterms="http://www.example.org/terms/">
<rdf:Description rdf:about="http://www.example.org/index.html">
<exterms:creation-date>August 16, 1999</exterms:creation-
date>
</rdf:Description>
</rdf:RDF>
RDF Syntax
http://www.example.org/terms/creation-date
August 16, 1999
<?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:exterms="http://www.example.org/terms/">
<rdf:Description rdf:about="http://www.example.org/index.html">
<exterms:creation-date>August 16, 1999</exterms:creation-date>
<dc:creator rdf:resource="http://www.example.org/staffid/85740"/>
</rdf:Description>
</rdf:RDF>
http://www.example.org/staffid/4252
http://www.example.org/index.html
http://purl.org/dc/elements/1.1/creator
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>
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
OWL Hierarchy
rdfs:Resource
rdfs:Class rdf:Property
owl:Class owl:ObjectProperty owl:DatatypeProperty
OWL Syntax
 Class elements
 Classes are defined using owl:Class
<owl:Class rdf:ID=“associateProfessor“>
<rdfs:subClassOf rdf:resource=“#academicStaffMember“ />
</owl:Class>
 Disjoint classes
<owl:Class rdf:about=“#associateProfessor“>
<owl:disjointWith rdf:resource=“#professor“ />
<owl:disjointWith rdf:resource=“#assistantprofessor“ />
</owl:Class>
 Equivalence of classes
<owl:Class rdf:ID=“faculty“>
<owl:equivalentClass rdf:resource=“#academicStaffMember“/>
</owl:Class>
OWL Syntax
 Property elements
 Datatype properties relate objects to datatype values
<owl:DatatypeProperty rdf:ID=“age“>
<rdfs:range rdf:resource=“http://www.w3.org/2001/XMLSchema
#nonNegativeInteger“ />
</owl:Class>
 Object properties relate objects to other objects
<owl:ObjectProperty rdf:ID=“isTaughtBy“>
<rdfs:domain rdf:resource=“#course“/>
<rdfs:range rdf:resource=“#academicStaffMember“/>
</owl:Class>
<owl:ObjectProperty rdf:ID=“teaches“>
<rdfs:domain rdf:resource=“#academicStaffMember“/>
<rdfs:range rdf:resource=“#course“/>
<owl:inverseOf rdf:resource=“#isTaughtBy“/>
</owl:Class>
OWL Syntax
 Property restrictions
Allow to specify constraints on classes and properties
<owl:Class about:ID=“#firstYearCourse“>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource=“#isTaughtBy“/>
<owl:allValuesFrom rdf:resource=“#Professor“/>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
<owl:Class about:ID=“#course“>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource=“#isTaughtBy“/>
<owl:minCardinality
rdf:datatype=“#&xsd;nonNegativeInteger“/>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
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.

SemanticdddddddddddddddddddddddddddddddddeeeWeb.ppt

  • 1.
    State of theArt in Semantic Web standards and technologies Andreas Duscher
  • 2.
    State of theArt in Semantic Web Standards and Technologies  General Overview  RDF / RDF Schema  OWL  OWL-S  Final words
  • 3.
    Today´s web  Itis 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….“
  • 4.
    Semantic Web Vision „TheSemantic 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.
  • 5.
    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.“
  • 6.
    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)
  • 7.
    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.
  • 8.
    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
  • 9.
    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.
  • 10.
    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
  • 11.
    RDF Motivation  TheResource 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).
  • 12.
    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.“
  • 13.
    RDF Basic Concepts RDFterminology  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
  • 14.
    RDF Basic Concepts RDFterminology  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“
  • 15.
    RDF Basic Concepts Tomake 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
  • 16.
    RDF Basic Concepts Tomake 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
  • 17.
    RDF Basic Concepts Tomake 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.
  • 18.
    RDF Basic Concepts Tomake 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.
  • 19.
    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
  • 20.
    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
  • 21.
    RDF Model Conclusion  RDFdocuments are „nodes-and-arcs diagrams interpreted as statements about things identified by URIrefs“.  So subjects, predicates and objects can be identified by URIrefs.
  • 22.
    RDF Syntax http://www.example.org/terms/creation-date http://www.example.org/index.html August 16,1999 <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:exterms="http://www.example.org/terms/"> <rdf:Description rdf:about="http://www.example.org/index.html"> <exterms:creation-date>August 16, 1999</exterms:creation- date> </rdf:Description> </rdf:RDF>
  • 23.
    RDF Syntax http://www.example.org/terms/creation-date August 16,1999 <?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:exterms="http://www.example.org/terms/"> <rdf:Description rdf:about="http://www.example.org/index.html"> <exterms:creation-date>August 16, 1999</exterms:creation-date> <dc:creator rdf:resource="http://www.example.org/staffid/85740"/> </rdf:Description> </rdf:RDF> http://www.example.org/staffid/4252 http://www.example.org/index.html http://purl.org/dc/elements/1.1/creator
  • 24.
    RDF Syntax Abbreviating andOrganizing 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.
  • 25.
    RDF Syntax Typing inRDF <?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)
  • 26.
    RDF Syntax Typing inRDF (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)
  • 27.
    RDFS Basics  Whatit 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.
  • 28.
    RDFS Basics  Ownnamespace 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.
  • 29.
    RDFS Basics  Coreproperties  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.
  • 30.
    RDFS Example (Classes) <?xmlversion="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>
  • 31.
    RDFS Example (Classes) <?xmlversion="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
  • 32.
    RDFS Example (Classes) <?xmlversion="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.
  • 33.
    RDFS Example (Properties) <?xmlversion="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
  • 34.
    RDFS Example (Instances) <?xmlversion="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
  • 35.
    RDF / RDFSConclusion  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
  • 36.
  • 37.
    OWL Syntax  Classelements  Classes are defined using owl:Class <owl:Class rdf:ID=“associateProfessor“> <rdfs:subClassOf rdf:resource=“#academicStaffMember“ /> </owl:Class>  Disjoint classes <owl:Class rdf:about=“#associateProfessor“> <owl:disjointWith rdf:resource=“#professor“ /> <owl:disjointWith rdf:resource=“#assistantprofessor“ /> </owl:Class>  Equivalence of classes <owl:Class rdf:ID=“faculty“> <owl:equivalentClass rdf:resource=“#academicStaffMember“/> </owl:Class>
  • 38.
    OWL Syntax  Propertyelements  Datatype properties relate objects to datatype values <owl:DatatypeProperty rdf:ID=“age“> <rdfs:range rdf:resource=“http://www.w3.org/2001/XMLSchema #nonNegativeInteger“ /> </owl:Class>  Object properties relate objects to other objects <owl:ObjectProperty rdf:ID=“isTaughtBy“> <rdfs:domain rdf:resource=“#course“/> <rdfs:range rdf:resource=“#academicStaffMember“/> </owl:Class> <owl:ObjectProperty rdf:ID=“teaches“> <rdfs:domain rdf:resource=“#academicStaffMember“/> <rdfs:range rdf:resource=“#course“/> <owl:inverseOf rdf:resource=“#isTaughtBy“/> </owl:Class>
  • 39.
    OWL Syntax  Propertyrestrictions Allow to specify constraints on classes and properties <owl:Class about:ID=“#firstYearCourse“> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource=“#isTaughtBy“/> <owl:allValuesFrom rdf:resource=“#Professor“/> </owl:Restriction> </rdfs:subClassOf> </owl:Class> <owl:Class about:ID=“#course“> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource=“#isTaughtBy“/> <owl:minCardinality rdf:datatype=“#&xsd;nonNegativeInteger“/> </owl:Restriction> </rdfs:subClassOf> </owl:Class>
  • 40.
    Web Services andthe 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.
  • 41.
    Web Services andthe 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.
  • 42.
    Web Services andthe 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>
  • 43.
    Web Services andthe Semantic Web (ServiceModel)
  • 44.
    Web Services andthe 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>
  • 45.
    Conclusion  Today‘s weband 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, …)
  • 46.
    Bibliography  D. Martinet 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.