Shared content-vocabularies: Ontologies Formal, machine - - PDF document

shared content vocabularies ontologies
SMART_READER_LITE
LIVE PREVIEW

Shared content-vocabularies: Ontologies Formal, machine - - PDF document

Semantic Web Languages: RDF, RDF Schema, OWL Frank van Harmelen Vrije Universiteit Amsterdam Shared content-vocabularies: Ontologies Formal, machine processable explicit specification concepts, properties, relations, functions of a


slide-1
SLIDE 1

1

Semantic Web Languages: RDF, RDF Schema, OWL

Frank van Harmelen Vrije Universiteit Amsterdam

Shared content-vocabularies: Ontologies

Formal, explicit specification

  • f a

shared conceptualisation Abstract model of some domain Consensual knowledge concepts, properties, relations, functions machine processable

slide-2
SLIDE 2

2

What’s inside an ontology?

Classes + class-hierarchy instances slots/values inheritance (multiple? defaults?) restrictions on slots (type, cardinality) properties of slots (symm., trans., …) relations between classes (disjoint, covers) reasoning tasks: classification, subsumption

Stack of languages

slide-3
SLIDE 3

3

Stack of languages

XML:

  • Surface syntax, no semantics

XML Schema:

  • Describes structure of XML documents

RDF:

  • Datamodel for “relations” between “things”

RDF Schema:

  • RDF Vocabulary Definition Language

OWL:

  • A more expressive

Vocabulary Definition Language

Bluffer’s guide to RDF (1)

Object -> Attribute-> Value triples

  • bjects are web-resources

Value is again an Object:

  • triples can be linked
  • data-model = graph

pers05 ISBN... Author-of pers05 ISBN... Author-of MIT ISBN... Publ- by A u t h

  • r
  • f

Publ- by

slide-4
SLIDE 4

4

Bluffer’s guide to RDF (2)

Every identifier is a URL

= world-wide unique naming!

Has XML syntax Any statement can be an object

  • graphs can be nested

pers05 ISBN... Author-of NYT claims

< rdf:Description rdf:about= “# pers05”> < authorOf> I SBN...< / authorOf> < / rdf:Description>

What does RDF Schema add?

  • Defines vocabulary for RDF
  • Organizes this vocabulary in a

typed hierarchy

  • Class, subClassOf, type
  • Property, subPropertyOf
  • domain, range

Person Supervisor Student subClassOf subClassOf Marta type supervises

domain range

Frank type supervises

slide-5
SLIDE 5

5

RDF(S) syntax: graphics

Turtle

<http://sem-web-primer> "Semantic Web Primer" "Frank van Harmelen" http://www.cs.vu.nl/~frankh dc:title fullname homepage dc:author

RDF(S) syntax: XML

<rdf:RDF> <rdf:Description rdf:about="http://sem-web-primer" dc:title="Semantic Web Primer"> <dc:author> <rdf:Description fullname="Frank van Harmelen"> <homePage rdf:resource="http://www.cs.vu.nl/~frankh"/> </rdf:Description> </dc:author> </rdf:Description> </rdf:RDF>

slide-6
SLIDE 6

6

RDF(S) syntax: Turtle

<http://sem-web-primer> dc:title "Semantic Web Primer" ; dc:author [ fullname "Frank van Harmelen"; homePage <http://www.cs.vu.nl/~frankh> ] .

RDF(S)/ XML relationship

XML is a just a syntax for RDF(S)

  • (one of many)

RDF(S) assigns meaning to some terms

  • (XML doesn't)

This allows greater interoperability:

  • tools/tools
  • thesaurus/thesaurus
  • tools/thesaurus
slide-7
SLIDE 7

7

Crucial RDF(S) property:

All identifiers are URL's

  • Allows total decoupling of
  • data
  • ontology
  • meta-data

[<x> IsOfType <T>] different

  • wners & locations

data

  • ntology

meta-data

RDF(S) is a logic

  • nly ground binary predicates
  • nly conjunction

limited form of ∃ (anonymous individuals) implication between ∀ predicates

(subsumption)

slide-8
SLIDE 8

8

RDF(S) is a logic

(Non-standard) model-theory (Pat Hayes)

  • E.g: classes members of themselves

Simple model-theoretic properties:

  • Entailment,
  • skolemisation,
  • (strong) Herbrand property,
  • interpolation theorem

Axiomatisations (Stanford, Essen, Lyon)

  • Some of these machine verified

RDF(S) have a (very small) formal semantics

Defines what other statements are implied by a

given set of RDF(S) statements

Ensures mutual agreement on minimal content

between parties without further contact

Sound & complete “entailment rules” Very simple to compute

(and not explosive in practice, compute full closure of > 109 statements)

slide-9
SLIDE 9

9

Things RDF(S) can’t do

(in)equality enumeration boolean algebra

  • Union, complement

number restrictions

  • Single-valued/multi-valued
  • Optional/required values

inverse, symmetric, transitive … OWL extends RDF Schema

to a full-fledged knowledge representation language.

  • logical expressions
  • data-typing
  • cardinality
  • quantifiers

OWL is simply a Description Logic SHOIN(D)

with an RDF/XML syntax

Beyond RDF: OWL

slide-10
SLIDE 10

10

Layered language

OWL Lite:

Classification hierarchy Simple constraints

OWL DL:

Maximal expressiveness While maintaining tractability Standard formalisation

OWL Full:

Very high expressiveness Loosing tractability Non-standard formalisation All syntactic freedom of RDF

(self-modifying)

Syntactic layering Semantic layering Syntactic layering Semantic layering

Full DL Lite

Language Layers

Full DL Lite OWL Full

Allow meta-classes etc

OWL DL

Negation Disjunction Full Cardinality Enumerated types

OWL Light

(sub)classes, individuals (sub)properties, domain, range conjunction (in)equality cardinality 0/1 datatypes inverse, transitive, symmetric hasValue someValuesFrom allValuesFrom

RDF Schema

slide-11
SLIDE 11

11

Language Layers: Full

No restriction on use of vocabulary

(as long as legal RDF)

  • Classes as instances

(and much more)

RDF style model theory

  • Reasoning using FOL engines
  • via axiomatisation
  • Semantics should correspond with OWL DL

for suitably restricted KBs

Full

Language Layers: DL

DL Use of OWL vocabulary restricted

  • Can’t be used to do “nasty things”

(I.e., modify OWL)

  • No classes as instances
  • Defined by abstract syntax

Standard FOL model theory (definitive)

  • Direct correspondence with FOL
  • Reasoning via DL engines
  • Reasoning for full language via FOL engines
  • No need for axiomatisation (unlike full)
  • Would need built in datatypes for performance
slide-12
SLIDE 12

12

Language Layers: Lite

No explicit negation or union Restricted cardinality (0/1) No nominals (oneOf) Semantics as in DL

  • Reasoning via DL engines

(+ datatypes)

  • E.g., FaCT, RACER, Cerebra

Lite

OWL also has a formal semantics

Defines what other statements are implied by a

given set of statements

Ensures mutual agreement on content

(both minimal and maximal) between parties without further contact

Can be used for integrity/consistency checking Hard to compute

(and rarely/sometime/always explosive in practice)

slide-13
SLIDE 13

13

Different syntaxes for OWL

RDF

  • Official exchange syntax
  • Hard for humans

UML

  • Large user base
  • Masahiro Hori, IBM Japan

XML

  • Not the RDF syntax
  • Better for humans
  • Masahiro Hori, IBM Japan

“Abstract” syntax

  • Human readable/writeable

<owl:Class rdf:ID="Wine"> <rdfs:subClassOf rdf:resource="PotableLiquid"/> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#madeFromGrape"/> <owl:minCardinality>1</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#hasMaker" /> <owl:allValuesFrom rdf:resource="#Winery" /> </owl:Restriction> </rdfs:subClassOf> <owl:equivalentClass rdf:resource=“Vin"/> </owl:Class> <owl:Class rdf:ID="Wine"> <rdfs:subClassOf rdf:resource="PotableLiquid"/> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#madeFromGrape"/> <owl:minCardinality>1</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#hasMaker" /> <owl:allValuesFrom rdf:resource="#Winery" /> </owl:Restriction> </rdfs:subClassOf> <owl:equivalentClass rdf:resource=“Vin"/> </owl:Class> <owl:Class rdf:ID="Wine"> <rdfs:subClassOf rdf:resource="PotableLiquid"/> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#madeFromGrape"/> <owl:minCardinality>1</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#hasMaker" /> <owl:allValuesFrom rdf:resource="#Winery" /> </owl:Restriction> </rdfs:subClassOf> <owl:equivalentClass rdf:resource=“Vin"/> </owl:Class> <owl:Class rdf:ID="Wine"> <rdfs:subClassOf rdf:resource="PotableLiquid"/> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#madeFromGrape"/> <owl:minCardinality>1</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#hasMaker" /> <owl:allValuesFrom rdf:resource="#Winery" /> </owl:Restriction> </rdfs:subClassOf> <owl:equivalentClass rdf:resource=“Vin"/> </owl:Class> <owl:Class rdf:ID="Wine"> <rdfs:subClassOf rdf:resource="PotableLiquid"/> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#madeFromGrape"/> <owl:minCardinality>1</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#hasMaker" /> <owl:allValuesFrom rdf:resource="#Winery" /> </owl:Restriction> </rdfs:subClassOf> <owl:equivalentClass rdf:resource=“Vin"/> </owl:Class> <owl:Class rdf:ID="Wine"> <rdfs:subClassOf rdf:resource="PotableLiquid"/> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#madeFromGrape"/> <owl:minCardinality>1</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#hasMaker" /> <owl:allValuesFrom rdf:resource="#Winery" /> </owl:Restriction> </rdfs:subClassOf> <owl:equivalentClass rdf:resource=“Vin"/> </owl:Class> <owl:Class rdf:ID="Wine"> <rdfs:subClassOf rdf:resource="PotableLiquid"/> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#madeFromGrape"/> <owl:minCardinality>1</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#hasMaker" /> <owl:allValuesFrom rdf:resource="#Winery" /> </owl:Restriction> </rdfs:subClassOf> <owl:equivalentClass rdf:resource=“Vin"/> </owl:Class> <owl:Class rdf:ID="Wine"> <rdfs:subClassOf rdf:resource="PotableLiquid"/> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#madeFromGrape"/> <owl:minCardinality>1</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#hasMaker" /> <owl:allValuesFrom rdf:resource="#Winery" /> </owl:Restriction> </rdfs:subClassOf> <owl:equivalentClass rdf:resource=“Vin"/> </owl:Class> <owl:Class rdf:ID="Wine"> <rdfs:subClassOf rdf:resource="PotableLiquid"/> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#madeFromGrape"/> <owl:minCardinality>1</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#hasMaker" /> <owl:allValuesFrom rdf:resource="#Winery" /> </owl:Restriction> </rdfs:subClassOf> <owl:equivalentClass rdf:resource=“Vin"/> </owl:Class> <owl:Class rdf:ID="Wine"> <rdfs:subClassOf rdf:resource="PotableLiquid"/> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#madeFromGrape"/> <owl:minCardinality>1</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#hasMaker" /> <owl:allValuesFrom rdf:resource="#Winery" /> </owl:Restriction> </rdfs:subClassOf> <owl:equivalentClass rdf:resource=“Vin"/> </owl:Class>

slide-14
SLIDE 14

14

Things OWL doesn’t do

– default values – closed world option – property chaining – arithmetic – string operations – partial imports – view definitions – procedural attachment – default values – closed world option – property chaining – arithmetic – string operations – partial imports – view definitions – procedural attachment

I llustrating OWL in its abstract syntax

slide-15
SLIDE 15

15

Class(professor partial) Class(associateProfessor partial academicStaffMember) DisjointClasses(associateProfessor assistantProfessor) DisjointClasses(professor associateProfessor) Class(faculty complete academicStaffMember) Class(professor partial) Class(associateProfessor partial academicStaffMember) DisjointClasses(associateProfessor assistantProfessor) DisjointClasses(professor associateProfessor) Class(faculty complete academicStaffMember) DatatypeProperty(age range(xsd:nonNegativeInteger)) ObjectProperty(lecturesIn) ObjectProperty(isTaughtBy domain(course) range(academicStaffMember)) SubPropertyOf(isTaughtBy involves) ObjectProperty(teaches inverseOf(isTaughtBy) domain(academicStaffMember) range(course)) EquivalentProperties(lecturesIn teaches) ObjectProperty(hasSameGradeAs Transitive Symmetric domain(student) range(student)) DatatypeProperty(age range(xsd:nonNegativeInteger)) ObjectProperty(lecturesIn) ObjectProperty(isTaughtBy domain(course) range(academicStaffMember)) SubPropertyOf(isTaughtBy involves) ObjectProperty(teaches inverseOf(isTaughtBy) domain(academicStaffMember) range(course)) EquivalentProperties(lecturesIn teaches) ObjectProperty(hasSameGradeAs Transitive Symmetric domain(student) range(student))

slide-16
SLIDE 16

16

Individual(949318 type(lecturer)) Individual(949352 type(academicStaffMember) value(age "39"^^&xsd;integer)) ObjectProperty(isTaughtBy Functional) Individual(CIT1111 type(course) value(isTaughtBy 949352) value(isTaughtBy 949318)) DifferentIndividuals(949318 949352) DifferentIndividuals(949352 949111 949318) Individual(949318 type(lecturer)) Individual(949352 type(academicStaffMember) value(age "39"^^&xsd;integer)) ObjectProperty(isTaughtBy Functional) Individual(CIT1111 type(course) value(isTaughtBy 949352) value(isTaughtBy 949318)) DifferentIndividuals(949318 949352) DifferentIndividuals(949352 949111 949318) Class(firstYearCourse partial restriction(isTaughtBy allValuesFrom (Professor))) Class(mathCourse partial restriction(isTaughtBy hasValue (949352))) Class(academicStaffMember partial restriction(teaches someValuesFrom (undergraduateCourse))) Class(course partial restriction(isTaughtBy minCardinality(1))) Class(department partial restriction(hasMember minCardinality(10)) restriction(hasMember maxCardinality(30))) Class(firstYearCourse partial restriction(isTaughtBy allValuesFrom (Professor))) Class(mathCourse partial restriction(isTaughtBy hasValue (949352))) Class(academicStaffMember partial restriction(teaches someValuesFrom (undergraduateCourse))) Class(course partial restriction(isTaughtBy minCardinality(1))) Class(department partial restriction(hasMember minCardinality(10)) restriction(hasMember maxCardinality(30)))

slide-17
SLIDE 17

17

Class(course partial complementOf(staffMember)) Class(peopleAtUni complete unionOf(staffMember student)) Class(facultyInCS complete intersectionOf(faculty restriction(belongsTo hasValue (CSDepartment)))) Class(adminStaff complete intersectionOf(staffMember complementOf(unionOf(faculty techSupportStaff)))) Class(course partial complementOf(staffMember)) Class(peopleAtUni complete unionOf(staffMember student)) Class(facultyInCS complete intersectionOf(faculty restriction(belongsTo hasValue (CSDepartment)))) Class(adminStaff complete intersectionOf(staffMember complementOf(unionOf(faculty techSupportStaff)))) EnumeratedClass(weekdays Monday Tuesday Wednesday Thursday Friday Saturday Sunday) EnumeratedClass(weekdays Monday Tuesday Wednesday Thursday Friday Saturday Sunday)