View
823
Download
0
Category
Tags:
Preview:
Citation preview
Co-funded by the European Union
Semantic CMS Community
The Semantic Web – Part 2
Modeling Complex Knowledge Domains
Copyright IKS Consortium1
LecturerOrganization
Date of presentation
www.iks-project.eu
Page:
Copyright IKS Consortium
Introduction of Content Management
Foundations of Semantic Web Technologies
Storing and Accessing Semantic Data
Knowledge Interaction and Presentation
Knowledge Representation and Reasoning
Semantic Lifting
Designing Interactive Ubiquitous IS
Requirements Engineering for Semantic CMS
Designing Semantic CMS
Semantifying your CMS
Part I: Foundations
Part II: Semantic Content Management
Part III: Methodologies
(2) (1)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
www.iks-project.eu
Page:
Semantic Web Layer Cake
Copyright IKS Consortium
3
Semantic Web Layer Cake, Image source: http://www.w3.org/2007/03/layerCake.svg
Unique identification of resources
A format for specifying structured data in a machine-readable form
A model for describing resources with properties
and property values.
A language for querying information specified in
RDF.
www.iks-project.eu
Page:
RDF
RDF can be used to make statements about single resources identified by URIs
RDF is able to define relations among resources Literals can be assigned as values to properties of
resources
Copyright IKS Consortium
4
http://example.org/myCarhttp://example.org/
Jaguar
http://example.org/rel/Brand
XFhttp://example.org/rel/Model
http://example.org/myCar
www.iks-project.eu
Page:
RDF Classes
Copyright IKS Consortium
5
http://example.org/myCarhttp://example.org/
Jaguar
http://example.org/rel/Brand
http://example.org/VWVehicle
Car
How are these terms related to each other?
Do these terms have anything in common?
www.iks-project.eu
Page:
RDF Properties
We need to do statements about properties What is the type of the property?
Definition of valid types for subjects and objects Definition of hierarchies of properties
Copyright IKS Consortium
6
http://example.org/myCar
http://example.org/UniversityPaderborn
http://example.org/rel/Brand
Is “UniversityPaderborn” a valid value for property “Brand”?
www.iks-project.eu
Page:
Copyright IKS Consortium
7
We need to define
a vocabulary for
our domain!
www.iks-project.eu
Page:
RDF Schema
“RDF's vocabulary description language, RDF Schema, is a semantic extension of RDF. It provides mechanisms for describing groups of related resources and the relationships between these resources.”
W3C Recommendation RDF Vocabulary Description Language 1.0: RDF Schema
The RDFS namespace is:
“rdfs: http://www.w3.org/2000/01/rdf-schema#”
But RDFS also uses elements from the rdf namespace!
Copyright IKS Consortium
8
http://www.w3.org/TR/rdf-schema/
www.iks-project.eu
Page:
RDF Schema
RDFS does not provide a specific vocabulary for describing properties such as “Brand”, but a language to define vocabularies
RDFS uses RDF to define RDF
vocabularies
Due to it's limited expressiveness,
RDFS is a language to define lightweight ontologies
Copyright IKS Consortium
9
http://www.w3.org/TR/rdf-schema/
”A little semantics goes a long way“
- Jim Hendler
www.iks-project.eu
Page:
RDFS Classes
“Resources may be divided into groups called classes. The members of a class are known as instances of the class. Classes are themselves resources.”
The members (resources) of a class A are termed instances of the class A
Classes are resource, e.g. “http://example.org/CarManufacturer” and can be described by RDF properties
Copyright IKS Consortium
10
www.iks-project.eu
Page:
RDFS Classes
The predicate rdf:type assigns the object as type of the subject
The assignment to a type is not exclusive
A subject can be typed by several objects!
Example:
Copyright IKS Consortium
11
ex:Jaguar rdf:type ex:CarManufacturer
www.iks-project.eu
Page:
RDFS Classes
A resource can be defined as a class explicitly The type rdfs:Class defines a resource as a class
Example:
rdfs:Class is the “class of all classes”, i.e.:
Copyright IKS Consortium
12
ex:CarManufacturer rdf:type rdfs:Class
rdfs:Class rdf:type rdfs:Class
www.iks-project.eu
Page:
Hierarchies of Classes
“The property rdfs:subClassOf is an instance of rdf:Property that is used to state that all the instances of one class are instances of another.”
The subject and object of the predicate “rdfs:subClassOf” must be instances of rdfs:Class
The property rdfs:subClassOf is transitive
Example:
Copyright IKS Consortium
13
ex:CarManufacturer rdfs:subClassOf ex:Company
www.iks-project.eu
Page:
RDFS Constructs - Predefined Classes
Copyright IKS Consortium
14
rdfs:ResourceAll things described by RDF are called resources, and are instances of the class rdfs:Resource.
rdfs:ClassThis is the class of resources that are classes. rdfs:Class is an instance of rdfs:Class.
rdfs:LiteralThe class rdfs:Literal is the class of literal values such as strings and integers. rdfs:Literal is an instance of rdfs:Class. rdfs:Literal is a subclass of rdfs:Resource.
rdfs:Datatyperdfs:Datatype is the class of datatypes. rdfs:Datatype is both an instance of and a subclass of rdfs:Class. Each instance of rdfs:Datatype is a subclass of rdfs:Literal.
rdf:XMLLiteralThe class rdf:XMLLiteral is the class of XML literal values. rdf:XMLLiteral is an instance of rdfs:Datatype and a subclass of rdfs:Literal.
rdf:Propertyrdf:Property is the class of RDF properties. rdf:Property is an instance of rdfs:Class.
http://www.w3.org/TR/rdf-schema/
Typos?
www.iks-project.eu
Page:
RDFS Properties
“The RDF Concepts and Abstract Syntax specification describes the concept of an RDF property as a relation between subject resources and object resources”
A resource can be defined as property explicitly
Copyright IKS Consortium
15
ex:Brand rdf:type rdf:Property
www.iks-project.eu
Page:
Hierarchies of Properties
“The property rdfs:subPropertyOf is an instance of rdf:Property that is used to state that all resources related by one property are also related by another.”
The subject and object of the predicate “rdfs:subPropertyOf ” must be instances of rdf:Property
The property rdfs:subPropertyOf is transitive
Example:
Copyright IKS Consortium
16
ex:friendOf rdfs:subPropertyOf ex:knows
www.iks-project.eu
Page:
Property Restrictions
We need to express, that only subjects and objects of specific types should be used for the predicate “Brand”
Copyright IKS Consortium
17
http://example.org/myCar
http://example.org/UniversityPaderborn
http://example.org/rel/Brand
Is “UniversityPaderborn” a valid value for property “Brand”?
www.iks-project.eu
Page:
Domain
“rdfs:domain is an instance of rdf:Property that is used to state that any resource that has a given property is an instance of one or more classes.”
States that each subject with the predicate (property) is an instance of the defined class
If more than one domain is defined, the subjects are instances of all classes!
Example:
Copyright IKS Consortium
18
ex:Brand rdfs:domain ex:Vehicle
www.iks-project.eu
Page:
Range
“rdfs:range is an instance of rdf:Property that is used to state that the values of a property are instances of one or more classes.”
States that each object of the predicate (property) is an instance of the defined class
If more than one range is defined, the objects are instances of all classes!
Example:
Copyright IKS Consortium
19
ex:Brand rdfs:range ex:Company
www.iks-project.eu
Page:
RDFS Constructs – Predefined Properties (I)
Copyright IKS Consortium
20
rdfs:rangerdfs:range is an instance of rdf:Property that is used to state that the values of a property are instances of one or more classes.
rdfs:domainrdfs:domain is an instance of rdf:Property that is used to state that any resource that has a given property is an instance of one or more classes.
rdf:typerdf:type is an instance of rdf:Property that is used to state that a resource is an instance of a class.
rdfs:subClassOfThe property rdfs:subClassOf is an instance of rdf:Property that is used to state that all the instances of one class are instances of another.
rdfs:subPropertyOfThe property rdfs:subPropertyOf is an instance of rdf:Property that is used to state that all resources related by one property are also related by another.
www.iks-project.eu
Page:
RDFS Constructs – Predefined Properties (II)
Copyright IKS Consortium
21
rdfs:labelrdfs:label is an instance of rdf:Property that may be used to provide a human-readable version of a resource's name.
rdfs:commentrdfs:comment is an instance of rdf:Property that may be used to provide a human-readable description of a resource.
www.iks-project.eu
Page:
RDFS - Example
Copyright IKS Consortium
22
ex:CarManufacturer
rdf:type
ex:myCar ex:Jaguarex:Brand
ex:Car
rdf:type
rdfs:domain
rdf:rangeex:Company
ex:Vehicle
rdfs:subClassOfrdfs:subClassOf
RDFAssertional knowledge
RDFS Terminological knowledge
class
class property
class
class
ex:Brand
www.iks-project.eu
Page:
Back to the Cake ...
Copyright IKS Consortium
23
Semantic Web Layer Cake, Image source: http://www.w3.org/2007/03/layerCake.svg
Unique identification of resources
A format for specifying structured data in a machine-readable form
A model for describing resources with properties
and property values.
A language for describing a lightweight ontology.
A language for querying information specified in
RDF.
www.iks-project.eu
Page:
Why is RDFS not enough?
RDFS cannot express negations
Defined property restrictions are global
Missing cardinalities for properties
Relations between (sub-)classes (e.g. disjunction)
Copyright IKS Consortium
24
www.iks-project.eu
Page:
OWL – Web Ontology Language
“The OWL Web Ontology Language is designed for use by applications that need to process the content of information instead of just presenting information to humans.”
OWL has been developed as a vocabulary extension of RDF
Explicitly represents the meaning of terms in vocabularies and the relationships between those terms. (Ontology)
Copyright IKS Consortium
25
http://www.w3.org/TR/2004/REC-owl-features-20040210/
www.iks-project.eu
Page:
OWL – The Story
2004 - OWL W3C Recommendation 2009 - OWL 2 W3C Recommendation
OWL = Web Ontology Language
Why not WOL? Obvious pronunciation which is easy on the ear Opens up great opportunities for logos Owls are associated with wisdom It has an interesting back story
Copyright IKS Consortium
26
http://lists.w3.org/Archives/Public/www-webont-wg/2001Dec/0169.html
http://piqs.de
www.iks-project.eu
Page:
Dialects of OWL
OWL Lite Provides classification hierarchy and simple constraint
features OWL DL (description logic) - Includes OWL Lite
Provides the maximum expressiveness without losing computational completeness and decidability of reasoning systems.
OWL Full - Includes OWL DL Is meant for users who want maximum expressiveness
and the syntactic freedom of RDF with no computational guarantees.
Copyright IKS Consortium
27
http://www.w3.org/TR/2004/REC-owl-features-20040210/
www.iks-project.eu
Page:
How does OWL look like?
Basic structure of an OWL Document
Copyright IKS Consortium
28
<rdf:RDF xmlns:owl ="http://www.w3.org/2002/07/owl#" xmlns:rdf ="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:xsd ="http://www.w3.org/2001/XMLSchema#"> xmlns="http://example.org/">
<owl:Ontology rdf:about=“”> <rdfs:comment>An example OWL ontology</rdfs:comment> <owl:priorVersion rdf:resource="http://example.org/20120101/cars"/>
<owl:imports rdf:resource="http://example.org/20110707/manufacturer"/>
<rdfs:label>Car Ontology</rdfs:label> </owl:Ontology>
...
</rdf:RDF>
RDF DocumentNamespace Definitions
Ontology Header
Importing another ontology
Default Namespace
www.iks-project.eu
Page:
Simple OWL Classes
Comparable to RDFS classes Every individual in OWL is a member of the class
owl:Thing Each user-defined class is implicitly a subclass of
owl:Thing OWL also defines the empty class owl:Nothing Definition of domain-specific root classes:
Copyright IKS Consortium
29
<owl:Class rdf:ID=“Vehicle”/><owl:Class rdf:ID=“CarManufacturer”/>
Define class
www.iks-project.eu
Page:
Hierarchies of Classes
The definition of basic taxonomies for classes can be done by rdfs:subClassOf.
rdfs:subClassOf is transitive.
Copyright IKS Consortium
30
<owl:Class rdf:ID=“Car"> <rdfs:subClassOf rdf:resource="Vehicle"/> </owl:Class>
“Car” is a subclass of “Vehicle”
www.iks-project.eu
Page:
Disjoint Classes
“The disjointness of a set of classes can be expressed using the owl:disjointWith constructor. It guarantees that an individual that is a member of one class cannot simultaneously be an instance of a specified other class.“
Copyright IKS Consortium
31
<owl:Class rdf:about=“Car"> <owl:disjointWith rdf:resource=“Cat”/></owl>
The classes “Car” and “Vehicle” are
disjoint.
www.iks-project.eu
Page:
Infer about Disjoint Classes
Copyright IKS Consortium
32
<owl:Class rdf:ID=“Car"> <rdfs:subClassOf rdf:resource="Vehicle"/> </owl:Class>
<owl:Class rdf:ID=“Cat"> <rdfs:subClassOf rdf:resource=“Animal"/> </owl:Class>
<owl:Class rdf:about=“Vehicle"> <owl:disjointWith rdf:resource=“Animal”/></owl>
The class “Car” is a subclass of “Vehicle”
The class “Cat” is a subclass of “Animal”
The classes “Vehicle” and
“Animal” are disjoint
It can be inferred, that the classes “Car” and “Cat“are disjoint too!
www.iks-project.eu
Page:
Individuals
In addition to the definition of classes, we also need to describe the members of classes (individuals)
Abbreviated representation
Copyright IKS Consortium
33
<owl:Thing rdf:ID=“Jaguar"/>
<owl:Thing rdf:about=“Jaguar"> <rdf:type rdf:resource=“CarManufacturer"/> </owl:Thing>
Definition of individual “Jaguar”
Ties the individual to the class
< CarManufacturer rdf:ID="Jaguar"/>
www.iks-project.eu
Page:
Simple Properties
“This world of classes and individuals would be pretty uninteresting if we could only define taxonomies. Properties let us assert general facts about the members of classes and specific facts about individuals.“
Property are binary relations. In OWL, two different types of properties are distinguished: object properties, relations between instances of two
classes. datatype properties, relations between instances of
classes and RDF literals and XML Schema datatypes
Copyright IKS Consortium
34
http://www.w3.org/TR/owl-guide/
www.iks-project.eu
Page:
Object properties relate instances of classes by rdfs:domain and rdfs:range.
Object Properties
Copyright IKS Consortium
35
<owl:ObjectProperty rdf:ID=“Brand”>
<rdfs:domain rdf:resource=“Vehicle”/> <rdfs:range rdf:resource=“CarManufacturer”/>
</owl:Thing>
Domain and range for object property
“Brand”
<owl:ObjectProperty rdf:about=“Brand”/>
Properties are defined like classes
www.iks-project.eu
Page:
Datatype properties relate class instances and data values using rdfs:domain and rdfs:range.
Datatype Properties
Copyright IKS Consortium
36
http://www.w3.org/TR/owl-guide/
<owl:ObjectProperty rdf:ID=“ConstructionYear”>
<rdfs:domain rdf:resource=“Car”/> <rdfs:range rdf:resource=“&xsd;gYear”/>
</owl:Thing>
Domain and range for datatype property “ConstructionYear”
<owl:DatatypeProperty rdf:about=“ConstructionYear”/>
Properties are defined like classes
www.iks-project.eu
Page:
Recommended XML Schema datatypes
xsd:string xsd:normalizedString xsd:boolean
xsd:decimal xsd:float xsd:double
xsd:integer xsd:nonNegativeInteger xsd:positiveInteger
xsd:nonPositiveInteger xsd:negativeInteger xsd:byte
xsd:long xsd:int xsd:short
xsd:unsignedLong xsd:unsignedInt xsd:unsignedShort
xsd:hexBinary xsd:base64Binary xsd:unsignedByte
xsd:dateTime xsd:time xsd:date
xsd:gYear xsd:gMonthDay xsd:gDay
xsd:anyURI xsd:token xsd:language
xsd:NMTOKEN xsd:Name xsd:NCName
xsd:gYearMonth xsd:gMonth
Copyright IKS Consortium
37
www.iks-project.eu
Page:
Cardinality Constraints for Properties
owl:minCardinality defines the minimal cardinality for the value of a property.
owl:maxCardinality defines the maximal cardinality for the value of a property.
Copyright IKS Consortium
38
<owl:Class rdf:ID=“Vehicle">
<rdfs:subClassOf> <owl:Restriction>
<owl:onProperty rdf:resource=“Wheels”/><owl:minCardinality rdf:datatype=“&xsd;nonNegativeInteger”>2
</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf>
</owl:Class>
Anonymous class Restriction for property “Wheels”
Minimal number of “Wheels” is “2”
www.iks-project.eu
Page:
Cardinality Constraints for Properties
“owl:cardinality permits the specification of exactly the number of elements in a relation.”
Copyright IKS Consortium
39
<owl:Class rdf:ID=“Motorcycle">
<rdfs:subClassOf> <owl:Restriction>
<owl:onProperty rdf:resource=“Wheels”/><owl:cardinality rdf:datatype=“&xsd;nonNegativeInteger”>2
</owl:cardinality> </owl:Restriction> </rdfs:subClassOf>
</owl:Class>
Restriction for property “Wheels”
Exact number of “Wheels” is “2”
www.iks-project.eu
Page:
Property Restrictions
“The owl:allValuesFrom restriction requires that for every instance of the class that has instances of the specified property, the values of the property are all members of the class indicated by the owl:allValuesFrom clause.”
Local restriction for class definition
Copyright IKS Consortium
40
<owl:Class rdf:ID=“Car"> <rdfs:subClassOf>
<owl:Restriction> <owl:onProperty rdf:resource=“preOwner” /> <owl:allValuesFrom rdf:resource=“Person” /></owl:Restriction>
<rdfs:subClassOf></owl:Class>
Restriction on property “PreOwner“ for
instances from class “Car”
Each value is member of class “Person”
www.iks-project.eu
Page:
Property Restrictions
Copyright IKS Consortium
41
<owl:Class rdf:ID=“Car">
<rdfs:subClassOf><owl:Restriction> <owl:onProperty rdf:resource=“preOwner” /> <owl:someValuesFrom rdf:resource=“Person” /></owl:Restriction>
<rdfs:subClassOf>
</owl:Class>
Restriction on property “PreOwner“ for
instances from class “Car”
At least one value is member of class
“Person”
Relation Implication
allValuesFrom For all cars, if they have a previous owner, all previous owners are persons.
someValuesFrom For all cars, they have at least one previous owner that is a person.
www.iks-project.eu
Page:
Property Restrictions with Constants
“owl:hasValue allows us to specify classes based on the existence of particular property values. Hence, an individual will be a member of such a class whenever at least one of its property values is equal to the owl:hasValue resource.”
Copyright IKS Consortium
42
<owl:Class rdf:ID=“myCars"> <rdfs:subClassOf> <owl:Restriction>
<owl:onProperty rdf:resource=“Owner”/><owl:hasValue rdf:”JohnMiller”>
</owl:Restriction> </rdfs:subClassOf></owl:Class>
Restriction for property “Owner”
The class “myCar” is defined by value
assignment
www.iks-project.eu
Page:
Intersection
owl:intersectionOf defines a class as an intersection of other classes.
Copyright IKS Consortium
43
<owl:Class rdf:ID=“CarsFromVW">
<owl:intersectionOf rdf:parseType=“Collection”><owl:Class rdf:about=”Cars”><owl:Class rdf:about=“VW”/>
</owl:intersectionOf>
</owl:Class>
If something is a “Car” and a “VW” it is a
”CarFromVW”
www.iks-project.eu
Page:
Union
“owl:unionOf describes a class that contains those individuals that occur in at least one of the class extensions of the class descriptions in the list”.
Copyright IKS Consortium
44
<owl:Class rdf:ID=“Gearbox">
<owl:unionOf rdf:parseType=“Collection”><owl:Class rdf:about=”ManualTransmission”><owl:Class rdf:about=“AutomaticTransmission”/>
</owl:intersectionOf>
</owl:Class>
Gearbox is everything that is “ManualTransmission”
or “AutomaticTransmission”.
www.iks-project.eu
Page:
Complement
“The owl:complementOf construct selects all individuals from the domain of discourse that do not belong to a certain class.”
Copyright IKS Consortium
45
<owl:Class rdf:about=”ManualTransmission”>
<owl:Class rdf:about=“AutomaticTransmission”/> </owl:complementOf ref:resource=“ManualTransmission” /></owl:Class>
“AutomaticTransmission” includes as members all individuals that do not
belong to “ManualTransmission”.
www.iks-project.eu
Page:
If you want to know more ...
There is stuff about OWL out there, which is not part of this course: Class axioms Global restriction for properties Logical characteristics of properties
If you are interested in learning more about OWL please check: The W3C OWL Reference (http://www.w3.org/TR/owl-ref) The W3C OWL Guide (http://www.w3.org/TR/owl-guide)
....
Copyright IKS Consortium
46
www.iks-project.eu
Page:
OWL 2
OWL 2 adds new functionality to OWL, while the overall structure is very similar
OWL 2 provides syntactic sugar e.g. disjoint union of classes
Some OWL 2 feature provide new expressivity: keys, property chains richer datatypes, data ranges; qualified cardinality restrictions asymmetric, reflexive, disjoint properties enhanced annotation capabilities
Copyright IKS Consortium
47
http://www.w3.org/TR/owl2-primer/
www.iks-project.eu
Page:
Back to the Cake ...
Copyright IKS Consortium
48
Semantic Web Layer Cake, Image source: http://www.w3.org/2007/03/layerCake.svg
Unique identification of resources
A format for specifying structured data in a machine-readable form
A model for describing resources with properties
and property values.
A language for describing a lightweight ontology.
A language for querying information specified in
RDF.
Highly expressive ontology language for modelling complex
knowledge domains.
www.iks-project.eu
Page:
Lessons Learned
Now you should know ...
... what is the main difference between RDF and ontology languages like RDF Schema and OWL.
... how can RDF Schema be used to build simple ontologies.
... what are the shortcomings of RDF Schema and why is it not enough in some application cases.
... the web ontology language OWL. .. in which sense OWL is more expressive than RDF
Schema.
Copyright IKS Consortium
49
www.iks-project.eu
Page:
References and Additional Material
RDF Vocabulary Description Language 1.0: RDF Schema http://www.w3.org/TR/rdf-schema/
OWL Web Ontology Language Guide http://www.w3.org/TR/owl-guide/
OWL Web Ontology Language Reference http://www.w3.org/TR/owl-ref/
OWL 2 Web Ontology Language Primer http://www.w3.org/TR/owl2-primer/
Copyright IKS Consortium
50
Recommended