state of the art in semantic web standards and technologies andreas duscher
Post on 15-Jan-2016
217 views
TRANSCRIPT
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 ObjectPredicate
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 ObjectPredicate
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.htmlsubject
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 SyntaxAbbreviating 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 SyntaxTyping 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 SyntaxTyping 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 classSo 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 languagethat 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 restrictionsAllow 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?ServiceProfileA profile is used for advertizing the service.
How is it used?ServiceModelA model describes how a service works.
How to interact with it?ServiceGroundingA 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.