owl: web ontology language

57
1 OWL: Web Ontology Language Slides are from Grigoris Antoniou, Frank van Harmelen, “A Semantic Web Primer”

Upload: keelty

Post on 23-Feb-2016

38 views

Category:

Documents


0 download

DESCRIPTION

OWL: Web Ontology Language. Slides are from Grigoris Antoniou, Frank van Harmelen, “A Semantic Web Primer”. Limitations of RDF Schema. Equivalence of classes - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: OWL: Web Ontology Language

1

OWL: Web Ontology Language

Slides are from Grigoris Antoniou, Frank van Harmelen, “A Semantic Web Primer”

Page 2: OWL: Web Ontology Language

2

Limitations of RDF Schema• Equivalence of classes

– Two classes, same concept - people use different words to represent the same thing. It would be very useful to be able to state "this class is equivalent to this second class".

– E.g. One person may create an ontology with a class called "Airplane". Another person may create an ontology with a class called "Plane". It would be useful to be able to indicate that the two classes are equivalent.

• Boolean combinations of classes– Sometimes we wish to build new classes by combining other classes

using union, intersection, and complement.– E.g. Person is the union of the classes Male and Female persons.

• Disjointness of classes– Sometimes we wish to say that classes are disjoint – e.g. male and female are disjoint classes

Page 3: OWL: Web Ontology Language

3

Limitations of RDF Schema (continued)• Cardinality constraints - oftentimes it is useful to indicate the

allowable number of occurrences of a property– E.g. We would like to be able to express that a River has only "one"

officialLength property. – E.g. We would like to be able to express that an Ocean has one

maxDepth.– E.g. a person has exactly two parents, a course is taught by at least

one lecturer• Special characteristics of properties

– Transitive property (like “greater than”)– Unique property (like “is mother of”)– A property is the inverse of another property (like “eats” and “is eaten

by”)

Page 4: OWL: Web Ontology Language

4

RDF Schemas: Building Block to More Expressive Ontology Languages

RDF Schema was designed to be extended. The ontology languagesall use RDF Schema's basic notions of Class, Property, domain, and range.

Page 5: OWL: Web Ontology Language

5

What is OWL?• OWL stands for Web Ontology Language • OWL is built on top of RDF

– OWL is written in XML • OWL is for processing information on the web

– OWL was designed to be interpreted by computers – OWL was not designed for being read by people

• OWL is a web standard • OWL has three sublanguages (version 2004)

– OWL Lite, DL, Full• OWL 2 defines several profiles with different applications in

mindThe following slides are from Grigoris Antoniou, Frank van Harmelen, “A Semantic Web Primer”

Page 6: OWL: Web Ontology Language

6

Tradeoff between Expressive Power and Efficient Reasoning Support• The richer the language is, the more inefficient the reasoning

support becomes• Sometimes it crosses the border of non-computability• We need a compromise:

– A language supported by reasonably efficient reasoners – A language that can express large classes of ontologies and

knowledge.

Page 7: OWL: Web Ontology Language

7

OWL Sublanguages• OWL Lite

– Simple constraints and classification hierarchy

• OWL DL (includes OWL Lite) – Maximal expressiveness while

retaining computational completeness (all conclusions are computable)

• OWL Full (includes OWL DL) – Maximal expressiveness– Unlikely any reasoning software to

support OWL Full.

OWL Lite

OWL DL

OWL Full

Page 8: OWL: Web Ontology Language

8

OWL 2 and sublanguages (profiles)• OWL DL is decidable, but the performance is poor for non-

trivial knowledge base• OWL 2 (2009) gives several profiles of OWL language

– Each is intended for different users/applications– Include EL, QL, RL

• OWL 2 EL– Has polynomial time to determine consistency of an ontology– A restriction on DL– Disallowed class descriptions

• Cardinality• All-values-from• Union-of, disjoint union, complement-of

– Disallowed property description• Inverse, disjoint• Functional, symmetric, …

Page 9: OWL: Web Ontology Language

9

OWL 2 QL

• Efficient query• Similar to Entity-relationship modeling• Good to model information contained in existing database• Enable queries in logspace wrt knowledge base size

Page 10: OWL: Web Ontology Language

10

Reasoning About Knowledge in Ontology Languages

• Class membership – E.g., If x is an instance of a class C, and C is a subclass of D, then we

can infer that x is an instance of D.• Subclass and Equivalence of classes

– E.g., If class A is equivalent to class B, and class B is equivalent to class C, then A is equivalent to C, too.

• Consistency– E.g., X is an instance of classes A and B, but A and B are disjoint.– This is an indication of an error in the ontology.

Page 11: OWL: Web Ontology Language

11

Uses for Reasoning• Reasoning support is important for

– checking the consistency of the ontology and the knowledge– checking for unintended relationships between classes– automatically classifying instances in classes

• Checks like the preceding ones are valuable for – designing large ontologies, where multiple authors are involved– integrating and sharing ontologies from various sources

Page 12: OWL: Web Ontology Language

12

Reasoning support in OWL• Semantics is a prerequisite for reasoning support• Formal semantics and reasoning support are usually provided

by – mapping an ontology language to a known logical formalism– using automated reasoners that already exist for those formalisms

• OWL is (partially) mapped on a description logic, and makes use of reasoners such as FaCT and RACER

• Description logics are a subset of predicate logic for which efficient reasoning support is possible

Page 13: OWL: Web Ontology Language

13

OWL Compatibility with RDF Schema• All varieties of OWL use RDF

for their syntax• Instances are declared as in

RDF, using RDF descriptions and typing information

• OWL constructors are specializations of their RDF counterparts

Rdfs:Resource

Owl:DatatypePropertyowl:Class

Rdfs:PropertyRdfs:Class

Owl:ObjectProperty

OWLRDF/RDFS

XML Schema

Page 14: OWL: Web Ontology Language

14

OWL Syntactic Varieties• OWL builds on RDF and uses RDF’s XML-based syntax• Other syntactic forms for OWL have also been defined:

– An abstract syntax, that is much more compact and readable than the XML languages

– A graphic syntax based on the conventions of UML

Page 15: OWL: Web Ontology Language

15

OWL XML/RDF Syntax: Header<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/XLMSchema#>

Page 16: OWL: Web Ontology Language

16

owl:Ontology• An OWL ontology may start with a collection of assertions for

housekeeping purposes using owl:Ontology element

<owl:Ontology rdf:about=”…"><rdfs:comment>An example OWL ontology </rdfs:comment><owl:priorVersion rdf:resource="http://www.mydomain.org/uni-ns-old"/><owl:imports rdf:resource="http://www.mydomain.org/persons"/><rdfs:label>University Ontology</rdfs:label>

</owl:Ontology>

• owl:imports is a transitive property

Page 17: OWL: Web Ontology Language

17

OWL Class• Classes are defined using owl:Class

– owl:Class is a subclass of rdfs:Class<owl:Class rdf:ID=”associateProfessor”>

<rdfs:subClassOf rdf:resource=“#academicStaffMember”/></owl:Class>

• owl:equivalentClass defines equivalence of classes<owl:Class rdf:ID="faculty"> <owl:equivalentClass rdf:resource="#academicStaffMember"/></owl:Class>

• Disjointness is defined using owl:disjointWith<owl:Class rdf:about="#associateProfessor">

<owl:disjointWith rdf:resource="#professor"/> <owl:disjointWith rdf:resource="#assistantProfessor"/>

</owl:Class> • owl:Thing is the most general class, which contains everything• owl:Nothing is the empty class

Page 18: OWL: Web Ontology Language

18

Properties• In OWL there are two kinds of properties• Object properties, which relate objects to other objects

– E.g. is-TaughtBy, supervises<owl:ObjectProperty rdf:ID="isTaughtBy">

<rdfs:domain rdf:resource="#course"/><rdfs:range rdf:resource= "#academicStaffMember"/><rdfs:subPropertyOf rdf:resource="#involves"/>

</owl:ObjectProperty>• Data type properties, which relate objects to datatype values

– E.g. phone, age, etc. <owl:DatatypeProperty rdf:ID="age"> <rdfs:range rdf:resource=

"http://www.w3.org/2001/XLMSchema#nonNegativeInteger"/></owl:DatatypeProperty>

OWLRDF/RDFS

XML Schema

Page 19: OWL: Web Ontology Language

19

Relations to other properties

• Equivalent property<owl:ObjectProperty rdf:ID="lecturesIn">

<owl:equivalentProperty rdf:resource="#teaches"/></owl:ObjectProperty>

• Inverse property<owl:ObjectProperty rdf:ID="teaches">

<rdfs:range rdf:resource="#course"/><rdfs:domain rdf:resource= "#academicStaffMember"/><owl:inverseOf rdf:resource="#isTaughtBy"/>

</owl:ObjectProperty>

Page 20: OWL: Web Ontology Language

20

Property restriction • Value constraints: put constrains on the range of the property

when applied to this particular class description.– owl:allValuesFrom specifies universal quantification – owl:hasValue specifies a specific value – owl:someValuesFrom specifies existential quantification

• Cardinality constraints: the number of value a property can take.

• It is a way to define classes

Page 21: OWL: Web Ontology Language

21

owl:allValuesFrom• Define the class of persons whose parents are both

physicians.<owl:Restriction> <owl:onProperty rdf:resource="#hasParent" /> <owl:allValuesFrom rdf:resource="#Physician" /> </owl:Restriction> { x | (x, y) hasParent implies y Physician }∈ ∈

• Example:– Suppose: David hasParent Bill who is a Physician, and David hasParent

Rose who is a Phycisian– Conclusion: David belongs to the class defined above.

• Semanticsrestriction(p allValuesFrom(r)) : {x | (x,y) p implies y r} ∈ ∈

Page 22: OWL: Web Ontology Language

22

allValuesFrom• FirstYearCourse is a course that must be taught by professors

<owl:Class rdf:about="#firstYearCourse"><rdfs:subClassOf> <owl:Restriction>

<owl:onProperty rdf:resource="#isTaughtBy"/> <owl:allValuesFrom rdf:resource="#Professor"/>

</owl:Restriction></rdfs:subClassOf>

</owl:Class> { x | (x,y) isTaughtBy implies y Professor }∈ ∈

Page 23: OWL: Web Ontology Language

23

owl:someValuesFrom• Define the class of persons who has at least one physician

parent.<owl:Restriction> <owl:onProperty rdf:resource="#hasParent" /> <owl:someValuesFrom rdf:resource="#Physician" /></owl:Restriction>

{ x | (x, y) hasParent y Physician}∃ ∈ ∧ ∈

• Semanticsrestriction(p someValuesFrom(e)) : {x | (x,y) p y e} ∃ ∈ ∧ ∈

Page 24: OWL: Web Ontology Language

24

someValuesFrom• AcademicStaff must teach at least one under course.

<owl:Class rdf:about="#academicStaffMember"><rdfs:subClassOf> <owl:Restriction>

<owl:onProperty rdf:resource="#teaches"/><owl:someValuesFrom rdf:resource="#undergraduateCourse"/>

</owl:Restriction></rdfs:subClassOf>

</owl:Class>{ x | (x, y) Teaches y undergraduateCourse}∃ ∈ ∧ ∈

Page 25: OWL: Web Ontology Language

25

owl:hasValue

<owl:Restriction> <owl:onProperty rdf:resource="#hasParent" /> <owl:hasValue rdf:resource="#Bill" /> </owl:Restriction>

restriction(p value(i)), for i an individual ID {x | (x, i) p}∈

Page 26: OWL: Web Ontology Language

26

Cardinality restrictions• We can specify minimum and maximum number using owl:minCardinality

and owl:maxCardinality • It is possible to specify a precise number by using the same minimum and

maximum number• For convenience, OWL offers also owl:cardinality• E.g. Every course is taught by at least someone:

<owl:Class rdf:about="#course"><rdfs:subClassOf>

<owl:Restriction> <owl:onProperty rdf:resource="#isTaughtBy"/> <owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">

1 </owl:minCardinality></owl:Restriction>

</rdfs:subClassOf></owl:Class>

Page 27: OWL: Web Ontology Language

27

Example: Book Ontology<owl:Class rdf:ID="Book">

<rdfs:subClassOf rdf:resource="#REFERENCE" />

<rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#title" /> <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1 </owl:cardinality> </owl:Restriction> </rdfs:subClassOf>

<rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#volume" /> <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1 </owl:maxCardinality> </owl:Restriction> </rdfs:subClassOf>

<rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#publisher" /> <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1 </owl:maxCardinality> </owl:Restriction>…

Page 28: OWL: Web Ontology Language

28

Special properties• owl:TransitiveProperty (transitive property)

– E.g. “has better grade than”, “is ancestor of”• owl:SymmetricProperty (symmetry)

– E.g. “has same grade as”, “is sibling of”• owl:FunctionalProperty defines a property that has at most one value for

each object– E.g. “age”, “height”, “directSupervisor”

• owl:InverseFunctionalProperty defines a property for which two different objects cannot have the same value

<owl:ObjectProperty rdf:ID="hasSameGradeAs"><rdf:type rdf:resource="&owl;TransitiveProperty"/><rdf:type rdf:resource="&owl;SymmetricProperty"/><rdfs:domain rdf:resource="#student"/><rdfs:range rdf:resource="#student"/>

</owl:ObjectProperty>

Page 29: OWL: Web Ontology Language

29

Boolean Combinations: complementOf• We can combine classes using Boolean operations (union,

intersection, complement)

<owl:Class rdf:about="#course"><rdfs:subClassOf>

<owl:Restriction> <owl:complementOf rdf:resource="#staffMember"/></owl:Restriction>

</rdfs:subClassOf></owl:Class>

Page 30: OWL: Web Ontology Language

30

Boolean Combinations: unionOf<owl:Class rdf:ID="peopleAtUni">

<owl:unionOf rdf:parseType="Collection"> <owl:Class rdf:about="#staffMember"/> <owl:Class rdf:about="#student"/>

</owl:unionOf></owl:Class>

• The new class is not a subclass of the union, but rather equal to the union– We have stated an equivalence of classes

Page 31: OWL: Web Ontology Language

31

Boolean Combinations: intersectionOf<owl:Class rdf:ID="facultyInCS">

<owl:intersectionOf rdf:parseType="Collection"><owl:Class rdf:about="#faculty"/><owl:Restriction> <owl:onProperty rdf:resource="#belongsTo"/>

<owl:hasValue rdf:resource= "#CSDepartment"/></owl:Restriction>

</owl:intersectionOf></owl:Class>

Exercise: describe the class of faculty who have joint appointment in CS and ECE.

Page 32: OWL: Web Ontology Language

32

Nesting of Boolean OperatorsAdministrative staff: staff members who are neither faculty nor technical support

staff.

<owl:Class rdf:ID="adminStaff"><owl:intersectionOf rdf:parseType="Collection">

<owl:Class rdf:about="#staffMember"/> <owl:complementOf> <owl:unionOf rdf:parseType="Collection"> <owl:Class rdf:about="#faculty"/> <owl:Class rdf:about= "#techSupportStaff"/> </owl:unionOf> </owl:complementOf>

</owl:intersectionOf></owl:Class>

faculty

admintech

staff

Page 33: OWL: Web Ontology Language

33

Enumerations with owl:oneOf<owl:oneOf rdf:parseType="Collection">

<owl:Thing rdf:about="#Monday"/><owl:Thing rdf:about="#Tuesday"/><owl:Thing rdf:about="#Wednesday"/><owl:Thing rdf:about="#Thursday"/><owl:Thing rdf:about="#Friday"/><owl:Thing rdf:about="#Saturday"/><owl:Thing rdf:about="#Sunday"/>

</owl:oneOf>

• Now we have talked about three ways to describe a class:– Enumeration– Set operation– Property restriction

Page 34: OWL: Web Ontology Language

34

Declaring instances• Instances of classes are declared as in RDF:

<rdf:Description rdf:ID="949352"><rdf:type rdf:resource= "#academicStaffMember"/>

</rdf:Description>

Or alternatively, we can have the following simplified notation: <academicStaffMember rdf:ID="949352"></academicStaffMember>

Page 35: OWL: Web Ontology Language

35

No Unique-Names Assumption• OWL does not adopt the unique-names assumption of

database systems– If two instances have different names or IDs, it does not imply that

they are different individuals• Suppose we state

– each course is taught by at most one staff member, and – a given course is taught by two staff members

– An OWL reasoner does not flag an error; – Instead it infers that the two resources are equal.

Page 36: OWL: Web Ontology Language

36

Distinct Objects• To ensure that different individuals are indeed recognized as such, we

must explicitly assert their inequality:<lecturer rdf:about="949318">

<owl:differentFrom rdf:resource="949352"/></lecturer>

• OWL provides a shorthand notation to assert the pairwise inequality of all individuals in a given list<owl:allDifferent>

<owl:distinctMembers rdf:parseType="Collection"><lecturer rdf:about="949318"/><lecturer rdf:about="949352"/><lecturer rdf:about="949111"/>

</owl:distinctMembers></owl:allDifferent>

Page 37: OWL: Web Ontology Language

37

Data Types in OWL• XML Schema provides a mechanism to construct user-defined

data types – E.g., the data type of adultAge includes all integers greater than 18

• Such derived data types cannot be used in OWL – The OWL reference document lists all the XML Schema data types that

can be used– These include the most frequently used types such as string, integer,

Boolean, time, and date.

Page 38: OWL: Web Ontology Language

38

An African Wildlife Ontology – Class Hierarchy

Animal

liongiraffe

carnivoreherbivore tree

plant

Page 39: OWL: Web Ontology Language

39

An African Wildlife Ontology – Properties<owl:TransitiveProperty rdf:ID="is-part-of"/>

<owl:ObjectProperty rdf:ID="eats"><rdfs:domain rdf:resource="#animal"/>

</owl:ObjectProperty>

<owl:ObjectProperty rdf:ID="eaten-by"><owl:inverseOf rdf:resource="#eats"/>

</owl:ObjectProperty>

Page 40: OWL: Web Ontology Language

40

An African Wildlife Ontology –Plants and Trees

<owl:Class rdf:ID=“animal“/>

<owl:Class rdf:ID="plant"><rdfs:comment>Plants are disjoint from animals.

</rdfs:comment><owl:disjointWith="#animal"/>

</owl:Class>

<owl:Class rdf:ID="tree"><rdfs:comment>Trees are a type of plant.

</rdfs:comment><rdfs:subClassOf rdf:resource="#plant"/>

</owl:Class>

Page 41: OWL: Web Ontology Language

41

An African Wildlife Ontology –Branches

<owl:Class rdf:ID="branch"><rdfs:comment>Branches are parts of trees. </rdfs:comment><rdfs:subClassOf>

<owl:Restriction><owl:onProperty rdf:resource="#is-part-of"/><owl:allValuesFrom rdf:resource="#tree"/>

</owl:Restriction></rdfs:subClassOf>

</owl:Class>

Page 42: OWL: Web Ontology Language

42

An African Wildlife Ontology – Leaves

<owl:Class rdf:ID="leaf"><rdfs:comment>Leaves are parts of branches. </rdfs:comment><rdfs:subClassOf>

<owl:Restriction><owl:onProperty rdf:resource="#is-part-of"/><owl:allValuesFrom rdf:resource="#branch"/>

</owl:Restriction></rdfs:subClassOf>

</owl:Class>

Page 43: OWL: Web Ontology Language

43

An African Wildlife Ontology – Carnivores

<owl:Class rdf:ID="carnivore"> <rdfs:comment> Carnivores are exactly those animals that eat also animals. </rdfs:comment>

<owl:intersectionOf rdf:parsetype="Collection"> <owl:Class rdf:about="#animal"/>

<owl:Restriction><owl:onProperty rdf:resource="#eats"/><owl:someValuesFrom rdf:resource="#animal"/>

</owl:Restriction></owl:intersectionOf>

</owl:Class>

Page 44: OWL: Web Ontology Language

44

An African Wildlife Ontology –Herbivores<owl:Class rdf:ID="herbivore"> <rdfs:comment> Herbivores are exactly those animals

that eat only plants or parts of plants. <owl:intersectionOf rdf:parseType=“Collection”> <owl:Class rdf=about=“#animal”/> <owl:Restriction> <owl:onProperty rdf:resource=“#eats”/> <owl:allValuesFrom> <owl:Class> <owl:unionOf rdf:parseType=“Collection”>

<owl:Class rdf:resource=“plant”/> <owl:Restriction> <owl:onProperty rdf;resource=“#is_part_of”/> <owl:allValuesFrom rdf:resource=“#plant”/> </owl:Restriction> </owl:unionOf> </class> </owl:allValuesFrom> </owl:Restrcition> </owl:intersectionOf></owl:Class>

Page 45: OWL: Web Ontology Language

45

An African Wildlife Ontology –Giraffes

<owl:Class rdf:ID="giraffe"><rdfs:comment>Giraffes are herbivores, and they eat only leaves.

</rdfs:comment><rdfs:subClassOf rdf:type="#herbivore"/><rdfs:subClassOf>

<owl:Restriction> <owl:onProperty rdf:resource="#eats"/> <owl:allValuesFrom rdf:resource="#leaf"/></owl:Restriction>

</rdfs:subClassOf></owl:Class>

Page 46: OWL: Web Ontology Language

46

An African Wildlife Ontology –Lions<owl:Class rdf:ID="lion">

<rdfs:comment>Lions are animals (carnivores) that eat only herbivores. </rdfs:comment>

<rdfs:subClassOf rdf:type="#carnivore"/><rdfs:subClassOf>

<owl:Restriction><owl:onProperty rdf:resource="#eats"/><owl:allValuesFrom rdf:resource="#herbivore"/>

</owl:Restriction></rdfs:subClassOf>

</owl:Class>

Page 47: OWL: Web Ontology Language

47

An African Wildlife Ontology –Tasty Plants<owl:Class rdf:ID="tasty-plant">

<rdfs:comment>Plants eaten both by herbivores and carnivores </rdfs:comment><rdfs:subClassOf rdf:resource=“#plant”/><rdfs:subClassOf> <owl:Restriction>

<owl:onProperty rdf:resource=“#eaten_by”/> <owl:someValuesFrom> <owl:Class rdf:about=“#herbivore”/>

</owl:someValuefrom> </owl:Restriction>

</rdfs:subClassOf>

<rdfs:subClassOf> <owl:Restriction>

<owl:onProperty rdf:resource=“#eaten_by”/> <owl:someValuesFrom> <owl:Class rdf:about=“#carnivore”/>

</owl:someValuefrom> </owl:Restriction> </rdfsSublassOf></owl:Class>

Page 48: OWL: Web Ontology Language

48

Closed world assumption• In a closed world (like DBs), the information we have is

everything– On the Semantic Web, we want people to be able to extend our

models. In this open world, we assume there can always more information added later

• Closed world assumption: what is currently not known to be true is false

• If a statement can not be proved to be true, it is false.

• Example– Statement: "Mary" "is a citizen of" "France" – Question: Is Mary a citizen of Canada? – "Closed world" (for example database or Prolog) answer: No.

Page 49: OWL: Web Ontology Language

49

Open world assumption:• OWL adopts the open-world assumption:

– system's knowledge is incomplete• On the huge and only partially knowable WWW, this is a correct assumption

– if a statement cannot be inferred from what is expressed in the system, then it still cannot be inferred to be false.

– The absence of a particular statement within the web means, in principle, that the statement has not been made explicitly yet.

• Example – Statement: "Mary" "is a citizen of" "France" – Question: Is Mary a citizen of Canada? – "Open world" answer: unknown (Mary could have dual citizenship).

• The open world assumption is related to the monotonic nature of first-order logic: adding new information never falsifies a previous conclusion. Namely, if we subsequently learn that Mary is also a citizen of Canada, this does not change any earlier positive or negative conclusions.

Page 50: OWL: Web Ontology Language

50

Summary• OWL is the proposed standard for Web ontologies • OWL builds upon RDF and RDF Schema:

– (XML-based) RDF syntax is used– Instances are defined using RDF descriptions– Most RDFS modeling primitives are used

• Formal semantics and reasoning support is provided through the mapping of OWL to logics– Predicate logic and especially description logics have been used for

this purpose• While OWL is sufficiently rich to be used in practice,

extensions are in the making– They will provide further logical features, including rules

Page 51: OWL: Web Ontology Language

51

Look back at the definition for ontology• An ontology is a formal, explicit specification of a shared

conceptualization - Gruber– Conceptualization refers to an abstract model of phenomena.– Explicit means that the type of concepts used, and the constraints on

their use are explicitly defined. – Formal refers to the fact that the ontology should be machine

readable. – Shared reflects that ontology should capture consensual knowledge

accepted by the communities.

Page 52: OWL: Web Ontology Language

52

Search for ontologies

Page 53: OWL: Web Ontology Language

53

OWL editors• Editing by hand is not a option

SWOOP

Page 54: OWL: Web Ontology Language

54

Apache Jena™ • a Java framework for building Semantic Web applications.• Jena provides a collection of tools and Java libraries

– develop semantic web and linked-data apps, tools and servers.

• The Jena Framework includes:– an API for reading, processing and writing RDF data in XML, N-triples

and Turtle formats;– an ontology API for handling OWL and RDFS ontologies;– a rule-based inference engine for reasoning with RDF and OWL data

sources;– stores to allow large numbers of RDF triples to be efficiently stored on

disk;– a query engine compliant with the latest SPARQL specification– servers to allow RDF data to be published to other applications using a

variety of protocols, including SPARQL

Page 55: OWL: Web Ontology Language

55

Jena example

Model model = ModelFactory.createDefaultModel();model.read(new FileReader("c:\\COSMO.owl"), "");

StmtIterator iter = model.listStatements();while (stmts.hasNext()) {

statements++;Statement s = stmts.nextStatement();String predicate = s.getPredicate().getLocalName();String subject = s.getSubject().getLocalName();RDFNode objectNode = s.getObject();if ( predicate.equalsIgnoreCase("subclassof”)

……||(predicate.equalsIgnoreCase("domain") || predicate.equalsIgnoreCase("range"))

Page 56: OWL: Web Ontology Language

56

Protege

Page 57: OWL: Web Ontology Language

57

Spectrum of ontologies

• Amount of meaning and formality increases left to right

terms

Datadictionaris

thesauri

XMLDTD

DB schema

XMLSchema

FormalTaxonomy

Frame

DescriptionLogic

GeneralLogic

From Pushpak Bhattacharyya