880 likes | 1.11k Views
OWL. Dr. Alexandra I. Cristea http://www.dcs.warwick.ac.uk/~acristea/. What is OWL?. OWL became a W3C (World Wide Web Consortium) Recommendation in February 2004. OWL stands for W eb O ntology L anguage OWL is built on top of RDF OWL is for processing information on the web
E N D
OWL Dr. Alexandra I. Cristea http://www.dcs.warwick.ac.uk/~acristea/
What is OWL? • OWL became a W3C (World Wide Web Consortium) Recommendation in February 2004. • OWL stands for Web Ontology Language • OWL is built on top of RDF • 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 written in XML • OWL is a web standard • OWL has three sublanguages
What is an Ontology? • Ontology is about the exact description of things and their relationships and an inference mechanism for it. • For the web, ontology is about the exact description of web information and relationships between web information and reasoning with it. • dictionary taxonomy ontology
Ontology: Origins and History Ontology in Philosophy a philosophical discipline—a branch of philosophy that deals with the nature and the organisation of reality • Science of Being (Aristotle, Metaphysics, IV, 1) • Tries to answer the questions: What characterizes being? Eventually, what is being?
Concept Relates to activates Form Referent Stands for ? [Ogden, Richards, 1923] Ontology in Linguistics “Tank“
Ontology in Computer Science • An ontology is an engineering artifact: • It is constituted by a specific vocabulary used to describe a certain reality, plus • a set of explicit assumptions regarding the intended meaning of the vocabulary. • Thus, an ontology describes a formal specification of a certain domain: • Shared understanding of a domain of interest • Formal and machine manipulable model of a domain of interest
Why OWL? • OWL is a part of the "Semantic Web Vision" - a future where: • Web information has exact meaning • Web information can be processed by computers • Computers can integrate information from the web
OWL was designed for Processing Information • OWL was designed to provide a common way to process the content of web information (instead of displaying it). • OWL was designed to be read by computer applications (instead of humans).
OWL is Different from RDF • OWL , RDF similar • but OWL • stronger language • greater machine interpretability • larger vocabulary • stronger syntax.
OWL Sublanguages • OWL has three sublanguages: • OWL Lite • hierarchy + simple constraints + cardinality {0,1} • OWL DL (includes OWL Lite) • complete, decidable (part of FOL) • Type separations (class <> property <> individual) • OWL Full (includes OWL DL) • aug. meaning RDF..
OWL is Written in XML • By using XML, OWL information can easily be exchanged between different types of computers using different types of operating system and application languages. • Oh yes, there is a namespace: xmlns:owl ="http://www.w3.org/2002/07/owl#"
(more on) OWL • Based on predecessors (DAML+OIL) • A Web Language: Based on RDF(S) • An Ontology Language: Based on logic
OWL Ontologies • What’s inside an OWL ontology • Classes + class-hierarchy • Properties (Slots) / values • Relations between classes(inheritance, disjoints, equivalents) • Restrictions on properties (type, cardinality) • Characteristics of properties (transitive, …) • Annotations • Individuals • Reasoning tasks: classification, consistency checking
OWL Use Cases • At least two different user groups • OWL used as data exchange language(define interfaces of services and agents) • OWL used for terminologies or knowledge models • OWL DL is the subset of OWL (Full) that is optimized for reasoning and knowledge modeling
OWL Example (Airport) • Example: http://www.cs.man.ac.uk/~rector/Modules/CS646-2004/Labs/Thursday/Simple_University-01.owl • Find the error in the OWL Resource:http://www.daml.org/2001/10/html/airport-ont • Validators are: • For RDF: http://www.w3.org/RDF/Validator • For OWL: http://phoebus.cs.man.ac.uk:9999/OWL/Validator • For a tutorial on XML, RDF, SPARQL, OWL see: http://jmvidal.cse.sc.edu/talks/xmlrdfdaml/index.xml?style=White • Semantic web search engine: http://swoogle.umbc.edu/
Scenario • Semantic Web for Tourism/Traveling • Goal: Find matching holiday destinations for a customer I am looking for a comfortable destination with beach access Tourism Web
Scenario Architecture • A search problem: Match customer’s expectations with potential destinations • Required: Web Service that exploits formal information about the available destinations • Accommodation (Hotels, B&B, Camping, ...) • Activities (Sightseeing, Sports, ...)
Tourism Semantic Web • Open World: • New hotels are being added • New activities are offered • Providers publish their services dynamically • Standard format / grounding is needed→ Tourism Ontology
Tourism Semantic Web OWL Metadata (Individuals) OWL Metadata (Individuals) Tourism Ontology Destination Activity Accomodation OWL Metadata (Individuals) OWL Metadata (Individuals) Web Services
OWL • Individuals (e.g., “FourSeasons”) • Properties • ObjectProperties (references) • DatatypeProperties (simple values) • Classes (e.g., “Hotel”)
Sydney SydneysOlympicBeach BondiBeach Individuals (Instances) • Represent objects in the domain • Specific things • Two names could represent the same “real-world” individual
Example of Individuals <Region rdf:ID="CentralCoastRegion" /> equivalent to: <owl:Thing rdf:ID="CentralCoastRegion" /> <owl:Thing rdf:about="#CentralCoastRegion"> <rdf:type rdf:resource="#Region"/> </owl:Thing>
hasPart hasAccomodation Sydney BondiBeach FourSeasons ObjectProperties • Link two individuals together • Relationships (0..n, n..m)
Example Property <owl:ObjectProperty rdf:ID="course"> <rdfs:domain rdf:resource="#Meal" /> <rdfs:range rdf:resource="#MealCourse" /> </owl:ObjectProperty>
hasProperty DomainClass RangeClass hasProperty hasProperty Property Domain & Range • If a relation is:subject_individual hasProperty object_individual • The domain is the class of the subject individual • The range is the class of the object individual (or a datatype if hasPropertyis a Datatype Property)
hasAccomodation hasAccomodation Destination Accomodation Sydney BestWestern FourSeasons Properties, Range and Domain • Property characteristics • Domain: “left side of relation” (Destination) • Range: “right side” (Accomodation)
Example Propery, Domain & Range <owl:ObjectProperty rdf:ID="madeFromGrape"> <rdfs:domain rdf:resource="#Wine"/> <rdfs:range rdf:resource="#WineGrape"/> </owl:ObjectProperty> <owl:ObjectProperty rdf:ID="course"> <rdfs:domain rdf:resource="#Meal" /> <rdfs:range rdf:resource="#MealCourse" /> </owl:ObjectProperty>
Domains • Individuals can only take values of properties that have matching domain • “Only Destinations can have Accommodations” • Domain can contain multiple classes • Domain can be undefined:Property can be used everywhere
Property Restriction: Example Cardinality <owl:Class rdf:ID="Wine"> <rdfs:subClassOf rdf:resource="&food;PotableLiquid"/> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#madeFromGrape"/> <owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> ... </owl:Class> <owl:Restriction> <owl:onProperty rdf:resource="#madeFromGrape"/> <owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:minCardinality> </owl:Restriction>
OWL Extends Other Ontologies • extend existing ontology by saying things about terms in it: <owl:Class rdf:about="#Animal"> <rdfs:comment> Animals have exactly two parents, ie: If x is an animal, it has exactly 2 parents (but NOT anything that has 2 parents is an animal). </rdfs:comment> <rdfs:subClassOf> <owl:Restriction owl:cardinality="2"> <owl:onProperty rdf:resource="#hasParent"/> </owl:Restriction> </rdfs:subClassOf> </owl:Class> • If ontology is already published, you use the full URL. <owl:Class rdf:about="http://www.sample.com/ontologies/zoo#Animal">
hasPart isPartOf Sydney BondiBeach Inverse Properties • Represent bidirectional relationships • Adding a value to one property also adds a value to the inverse property (!)
Inverse Property Example <owl:ObjectProperty rdf:ID="hasMaker"> <rdf:type rdf:resource="&owl;FunctionalProperty" /> </owl:ObjectProperty> <owl:ObjectProperty rdf:ID="producesWine"> <owl:inverseOf rdf:resource="#hasMaker" /> </owl:ObjectProperty>
hasPart (derived) hasPart hasPart Sydney NewSouthWales BondiBeach Transitive Properties • If A is related to B and B is related to C then A is also related to C • Often used for part-of relationships
Transitive Property Example <owl:ObjectProperty rdf:ID="locatedIn"> <rdf:type rdf:resource="&owl;TransitiveProperty" /> <rdfs:domain rdf:resource="&owl;Thing" /> <rdfs:range rdf:resource="#Region" /> </owl:ObjectProperty> <Region rdf:ID="SantaCruzMountainsRegion"> <locatedIn rdf:resource="#CaliforniaRegion" /> </Region> <Region rdf:ID="CaliforniaRegion"> <locatedIn rdf:resource="#USRegion" /> </Region>
Sub-properties Example <owl:ObjectProperty rdf:ID="hasWineDescriptor"> <rdfs:domain rdf:resource="#Wine" /> <rdfs:range rdf:resource="#WineDescriptor" /> </owl:ObjectProperty> <owl:ObjectProperty rdf:ID="hasColor"> <rdfs:subPropertyOf rdf:resource="#hasWineDescriptor" /> <rdfs:range rdf:resource="#WineColor" /> ... </owl:ObjectProperty>
Sydney DatatypeProperties • Link individuals to primitive values(integers, floats, strings, booleans etc) • Often: AnnotationProperties without formal “meaning” hasSize = 4,500,000 isCapital = true rdfs:comment = “Don’t miss the opera house”
City Beach Cairns Sydney BondiBeach CurrawongBeach Classes • Sets of individuals with common characteristics • Individuals are instances of at least one class
Examples of Classes in OWL <owl:Class rdf:ID="Winery"/> <owl:Class rdf:ID="Region"/> <owl:Class rdf:ID="ConsumableThing"/>
Cairns Canberra Coonabarabran Sydney Superclass Relationships • Classes can be organized in a hierarchy • Direct instances of subclass are also (indirect) instances of superclasses
Example Subclasses <owl:Class rdf:ID="PotableLiquid"> <rdfs:subClassOf rdf:resource="#ConsumableThing" /> … </owl:Class> <owl:Class rdf:ID="Wine"> <rdfs:subClassOf rdf:resource="&food;PotableLiquid"/> <rdfs:label xml:lang="en">wine</rdfs:label> <rdfs:label xml:lang="fr">vin</rdfs:label> ... </owl:Class>
RetireeDestination City Cairns BondiBeach Sydney Class Relationships • Classes can overlap arbitrarily
UrbanArea RuralArea City Destination Woomera CapeYork Sydney Sydney Class Disjointness • All classes could potentially overlap • In many cases we want to make sure they don’t share instances disjointWith
Example disjoint <owl:Class rdf:about="#Man"> <owl:disjointWith rdf:resource="#Woman"/> </owl:Class>
Class versus Individual (Instance) • Levels of representation: • In certain contexts a class can be considered an instance of something else. • Grape, set of all grape varietals. CabernetSauvingonGrape is an instance of this class, but could be considered a class, the set of all actual Cabernet Sauvignon grapes. • Subclass vs. instance: easy to confuse instance-of relationship with subclass relationship! • CabernetSauvignonGrape as individual & instance of Grape, or subclass of Grape. • But: Grape class is the set of all grape varietals, any subclass should be a subset. • CabernetSauvignonGrape is an instance of Grape, It does not describe a subset of Grape varietals, it is a grape varietal.
Things with three star accommodation Things with sightseeing opportunities RetireeDestination Sydney SanJose BlueMountains Class Descriptions • Classes can be described by their logical characteristics • Descriptions are “anonymous classes”
Class Descriptions • Define the “meaning” of classes • Anonymous class expressions are used • “All national parks have campgrounds.” • “A backpackers destination is a destination that has budget accommodation and offers sports or adventure activities.” • Expressions mostly restrict property values (OWL Restrictions)
Class Descriptions: Why? • Based on OWL’s Description Logic support • Formalize intentions and modeling decisions (comparable to test cases) • Make sure that individuals fulfill conditions • Tool-supported reasoning
Reasoning with Classes • Tool support for 3 types of reasoning exists: • Consistency checking:Can a class have any instances? • Classification:Is A a subclass of B? • Instance classification:Which classes does an individual belong to?
Restrictions (Overview) • Define a condition for property values • allValuesFrom • someValuesFrom • hasValue • minCardinality • maxCardinality • cardinality • An anonymous class consisting of all individuals that fulfill the condition
Cardinality Restrictions • Meaning: The property must have at least/at most/exactly x values • is the shortcut for and • Example: A FamilyDestination is a Destination that has at least one Accomodation and at least 2 Activities