Semantic Web - RISC

sounderslipInternet and Web Development

Oct 22, 2013 (4 years and 21 days ago)

108 views

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.