An Introduction to Ontologies in OWL Bibliography The
An Introduction to Ontologies in OWL Bibliography The OWL Guide The OWL Overview Description Logic slides from Enrico Franconi Artificial Intelligence A Modern Approach by Russel and Nordig Internet Technologies
What is an Ontology? • A representation of terms and their interrelationships (OWL Overview) • A formal conceptualization of the world • Smart data Internet Technologies
Ontology Languages • Typically introduce concepts, properties, relationships between concepts and constraints • May be expressed with diagrams • ER Diagrams and UML Class Diagrams are ontology languages • OWL (The Web Ontology Language) is expressed in XML • OWL is a distributed ontology language Internet Technologies
The OWL Language • February 10, 2004 OWL and RDF become W 3 C Recommendations • See Jena from Hewlett-Packard Research for an existing Java API • See Protégé-2000 at Stanford University for an existing OWL editor • Big names in this space include Jim Hendler, and Debra Mc. Guiness • A large example can be found at http: //www. mindswap. org/2003/Cancer. Ontology/ nci. Oncology. owl Internet Technologies
From the W 3 C Internet Technologies
The three sublanguages of OWL • OWL Lite (decidable) • OWL DL (Description Logic) (Decidable) • OWL Full (Allows classes as instances) • As we move from OWL Lite to OWL full we increase expressiveness and logical complexity. Internet Technologies
Decidability • A proof procedure r is incomplete if there are true statements that the procedure cannot infer. • Godel (1930’s) showed that, for first order logic, any statement entailed by a set of statements can be proved from the set. In other words, a proof procedure exists. • In 1965, Robinson found the resolution method. Internet Technologies
Decidability • But, entailment is semi-decidable. If a statement does not follow from the premises it may go on and on. If S follows the proof of S will emerge after some time. Premises Resolution is complete Statment S Internet Technologies If S does not follow the procedure may loop forever.
OWL Lite is a Decidable Language • A Class is a set of individuals • The class Thing is the superclass of all OWL classes • The class Nothing is a subclass of all OWL classes and has no individuals members • Classes may be defined as sub. Classes of other classes Internet Technologies
Three classes that subclass Thing <owl: Class rdf: ID=“Winery”/> <owl: Class rdf: ID=“Region”/> <owl: Class rdf: ID=“Consumable. Thing”/> These terms may be referred to from within this Document by ‘#Winery’, ’ #Region’ and ‘#Consumable. Thing’. Other ontologies may refer to these terms with ‘Some. URI#Winery’, ‘Some. URI#Region’ and so on. Internet Technologies
Class Hierarchies built with sub. Class. Of <owl: Class rdf: ID=“Potable. Liquid”> <rdfs: sub. Class. Of rdf: resource = “#Consumable. Thing” /> … </owl: Class> <owl: Class rdf: ID=“Edible. Thing”> <rdfs: sub. Class. Of rdf: resource = “#Consumable. Thing” /> … </owl: Class> Deduction: If x is a Potable. Liquid then x is a Consumable. Thing Internet Technologies
Wine and Pasta <owl: Class rdf: ID=“Wine”> <rdfs: sub. Class. Of rdf: resource = “#Potable. Liquid” /> … </owl: Class> <owl: Class rdf: ID = “Pasta” <rdfs: sub. Class. Of rdf: resource = “#Edible. Thing” /> … Deduction: </owl: Class> Internet Technologies If x is Pasta then x is a Consumable. Thing
Sweet. Fruit and Non. Sweet. Fruit <owl: Class rdf: ID=“Sweet. Fruit”> <!– food. xml--> <rdfs: sub. Class. Of rdf: resource=“#Edible. Thing”/> </owl: Class> <owl: Class rdf: ID=“Non. Sweet. Fruit”> <!– food. xml--> <rdfs: sub. Class. Of rdf: resource=“#Edible. Thing”/> … </owl: Class> Internet Technologies
Defining Individuals <Region rdf: ID=“Central. Coast. Region”/> Is identical to <owl: Thing rdf: ID=“Central. Coast. Region”/> <owl: Thing rdf: about=“#Central. Coat. Region”> <rdf: type rdf: resource=“#Region”/> </owl: Thing> Internet Technologies
Another individual <owl: Class rdf: ID=“Grape”> <!– food. xml--> <rdfs: sub. Class. Of rdf: resource=“#Sweet. Fruit”/> </owl: Class> <!– wine. xml --> <owl: Class rdf: ID=“Wine. Grape”> <rdfs: sub. Class. Of rdf: resource=“&food; Grape”/> </owl: Class> <Wine. Grape rdf: ID=“Cabernet. Sauvignon. Grape” /> Deduction: Cabernet. Sauvignon is a Sweet. Fruit Internet Technologies
So far we have… Thing Winery Region • Central. Coastal. Region Consumable. Thing Potable. Liquid Wine Sweet. Fruit Edible. Thing Non. Sweet. Fruit Grape Wine. Grape • Cabernet. Sauvignon. Grape Pasta
So far we have … • Classes • Individuals • We now need properties to state facts about classes and facts about individuals Internet Technologies
Properties • Properties are binary relations • A binary relation R from a set X to a set Y is a subset of the Cartesian product X x Y. If (x, y) ε R, we write x. Ry and say x is related to y. Internet Technologies
Binary Relations Suppose the set X has members {a, b} and the set Y has members {c, d, e}. Xx. Y = {(a, c), (a, d), (a, e), (b, c), (b, d), (b, e)} Let R = {(a, c), (b, e)} Since (a, c) ε R and (b, e) ε R we write a. Rc and b. Re. Notice that a binary relation is a set of ordered pairs. Internet Technologies
Domain and Range The set {x ε X | (x, y) ε R for some y ε Y} is called the domain of R. The domain of R = {(a, c), (b, e)} is {a, b}. The set {y ε Y | (x, y) ε R for some x ε X} is called the range of R. The range of R = {(a, c), (b, e)} is {c, e}. Internet Technologies
Properties • R is Transitive if and only if x. Ry and y. Rz imply x. Rz locate. In is transitive in the wine ontology • R is Symmetric if and only if x. Ry iff y. Rx adjacent. To is symmetric in the wine ontology Internet Technologies
Properties • R is Functional if and only if x. Ry and x. Rz implies y = z has. Vintage. Year is functional in the wine ontology • R 1 and R 2 are Inverse Properties if and only if x. R 1 y iff y. R 2 x has. Maker and produces. Wine are inverse relations in the wine ontology Internet Technologies
OWL’s Property Hierarchy • Thing is a superset of Property • Property is a superset of Object. Property • Property is a superset of Data. Property • An Object. Property associates a class instance with another class instance. • A Data. Property associates a class instance with a datatype value Internet Technologies
OWL’s Property Hierarchy Example Thing Mammal Person • Mike • Sue Indentation shows subset relationships. Set elements are marked with dots. Property Object. Property has. Relative has. Sibling • (Mike, Sue) Data. Property has. Age • (Mike, 23) Internet Technologies
OWL Property Syntax <owl: Object. Property rdf: ID=“located. In”> <rdfs: domain rdf: resource=“OWLURI#Thing”/> <rdfs: range rdf: resource=“#Region”/> </owl: Object. Property> “OWLURI” will actually appear as the official OWL URI. Internet Technologies
Adding pairs to located. In <Region rdf: ID=“Santa. Cruz. Mountains. Region”> <located. In rdf: resource=“#California. Region”/> </Region> <Cabernet. Sauvignon rdf: ID= “Santa. Cruz. Mountain. Vinyard. Cabernet. Sauvignon”> <located. In rdf: resource=“#Santa. Cruz. Mountains. Region”/> … Can we make a </Cabernet. Sauvignon> deduction? Internet Technologies
located. In • located. In is defined as a set of ordered pairs. • Each pair must contain an owl: Thing (maybe a Region) followed by value from the set Region. • For example: located. In = {(Santa. Cruz. Mountains. Region, California. Region), (Santa. Cruz. Mountain. Vinyard. Cabernet. Sauvignon, Santa. Cruz. Mountains. Region)…} • A deduction like the following is not yet possible… The Thing Santa. Cruz. Mountain. Vinyard. Cabernet. Sauvignon is located. In California. Region Internet Technologies
located. In is Transitive <owl: Object. Property rdf: ID=“located. In”> <rdf: type rdf: resource=“Transitive. Property” /> <!– include an OWLURI --> <rdfs: domain rdf: resource=“OWLURI#Thing”/> <rdfs: range rdf: resource=“#Region”/> </owl: Object. Property> • A deduction like the following is now possible… The Thing Santa. Cruz. Mountain. Vinyard. Cabernet. Sauvignon is located. In California. Region Internet Technologies
Given the made. From. Grape property <owl: Object. Property rdf: ID=“made. From. Grape”> <rdfs: domain rdf: resource=“#Wine”/> <rdfs: range rdf: resource=“#Wine. Grape”/> </owl: Object. Property> made. From. Grape (#Wine, #Wine. Grape) Internet Technologies
And… <owl: Thing ref: ID=“Lindemans. Bin 65 Chardonnay”> <made. From. Grape rdf: resource=“#Chardonnay. Grape”/> <owl: Thing> We can deduce that Lindemans. Bin 65 Chardonnay is a Wine. Internet Technologies
Given a Property… <owl: Class rdf: ID=“Wine. Descriptor”/> <owl: Class rdf: ID=”Wine. Color”> <rdfs: sub. Class. Of rdf: resource=“Wine. Descriptor”/> … <owl: Class> <owl: Object. Property rdf: ID=“has. Wine. Descriptor”> <rdfs: domain rdf: resource=“#Wine”/> <rdfs: range rdf: resource=“#Wine. Descriptor”/> <owl: Object. Property> Internet Technologies
We can define a subproperty <owl: Object. Property rdf: ID=“has. Color”> <rdfs: sub. Property. Of rdf: resource=“#has. Wine. Descriptor”/> <rdfs: domain rdf: resource=“#Wine”/> <rfds: range rdf: resource = “#Wine. Color” /> … has. Wine. Descriptor </owl: Object. Property> (#Wine, #Wine. Descriptor) (#Wine, #Wine. Color) Internet Technologies
And make it functional. <owl: Object. Property rdf: ID=“has. Color”> <rdf: type rdf: resource=“&owl; Functional. Property”/> <rdfs: sub. Property. Of rdf: resource=“#has. Wine. Descriptor”/> <rdfs: domain rdf: resource=“#Wine”/> <rfds: range rdf: resource = “#Wine. Color” /> has. Wine. Descriptor … </owl: Object. Property> Now, for each Wine, there can be at most one Wine. Color. Internet Technologies (#Wine, #Wine. Descriptor) (#Wine, #Wine. Color)
Anonymous Classes <owl: Class rdf: ID=“Wine”> <rdfs: sub. Class. Of rdf: resource = “&food; #Potable. Liquid” /> <rdfs: sub. Class. Of> <owl: Restriction> <owl: on. Property rdf: resource=“#made. From. Grape”/> <owl: min. Cardinality rdf: datatype= “&xsd; non. Negative. Integer”>1 </owl: min. Cardinalty> So, those Things that are in </owl: restriction> the Potable. Liquid set that are <rdfs: sub. Class. Of> also in the set of things made … from at least one grape are </owl: Class> Wines. If we know that x is Internet Technologies a Wine then we know it has at least one made. From. Grape property defined.
A Wine Individual <Cabernet. Sauvignon rdf: ID= “Santa. Cruz. Mountain. Vinyard. Cabernet. Sauvignon”> <located. In rdf: resource=“#Santa. Cruz. Mountains. Region”/> : </Cabernet. Sauvignon> This says nothing about what grape it’s made from. To find that out we must look to the class Cabernet. Sauvignon. There we learn all wines of this variety are made. From. Grape Cabernet. Sauvignon. So, individuals inherit properties and property values from their class. Internet Technologies
What does this mean? <owl: Class rdf: ID="#Student"> <owl: intersection. Of rdf: parse. Type="Collection"> <owl: Class rdf: about="#Person"/> <owl: Restriction> <owl: on. Property rdf: resource="#enrolled. In"/> <owl: min. Cardinality rdf: datatype= "&xsd; non. Negative. Integer"> 1 </owl: min. Cardinality> </owl: Restriction> </owl: intersection. Of> </owl: Class> Internet Technologies
And this? <Student rdf: ID="John"> <friend. Of> <Student rdf: resource="#Peter" /> </friend. Of> </Student> Internet Technologies
How about this one? <Student rdf: about=" http: //www. student. org#Daniela. Renuncio "> <owl: same. Individual. As rdf: resource= "http: //www. student. org#Daniela_de_Senna_Eyng_Renuncio"/> </Student> Internet Technologies
- Slides: 38