360 likes | 560 Views
OWL Web Ontology Language. The Knowledge Presentation Language. Web Ontology Language (OWL ).
E N D
OWLWeb Ontology Language The Knowledge Presentation Language
Web Ontology Language (OWL) • Web Ontology Language (OWL) extends RDF and RDFS languages by adding several other constructs such as owl:class (in addition to the rdfs:class), relationships between class and individuals, and property characteristics • These new constructs facilitate interoperability among distributed resources • OWL is encoded in RDF/XML • OWL is said to be ‘monotonic’, meaning that addition of new information to a knowledge base does not falsify previous conclusions
Owl dialects • OWL has three species (dialects): OWL-Lite, OWL DL, and OWL Full • The differences are on the limitations on restrictions on classes • OWL Lite: supports class and property hierarchies and simple restrictions, allowing us to develop thesauri and simple ontologies • OWL DLis the decidable version of OWL Full, with some limitation; it is a restricted version of RDF • OWL Fullhas no limitation, but may not be decidable
Features of OWL • Is compatible with (serializable in) XML • Uses XSD datatypes • Follows description logic in having class, property, and individuals • Has constructs that are identified by the URIref • Allow us to define complex classes with Boolean combinations (intersection, union, complement) • Makes it possible to define properties and subproperties and assigning logical metadata (e.g., transitivity) • Has features to set two classes, properties, and individuals as equivalent
… • Allows setting the cardinality constraints • Setting classes as instances • Resources defined by it can have labels such that they can be displayed in different natural languages • Allows developing Web-distributed ontologies • Lets us import and reuse other owl code (ontologies) by extension • Allows saving the same ontologies with different versions • Allows defining metadata for ontologies (e.g., author, version)
OWL ontology header info • Includes namespace declaration • Information about the ontology is put within the owl:OntologyQname, e.g., version, comments, and import • The version includes: owl:versionInfo, owl:priorVersion, owl:backwardCompatibleWith, owl:incompatibleWith, owl.deprecatedClass, and owl:deprecatedProperty • We can also use the rdfs:comment, rdfs:label, rdfs:seeAlso, and rdfs:isDefinedBy
<rdf:Description rdf:about="http://www.Tectonics.org"> <rdf:type><rdf:Description rdf:about="http://www.w3.org/2002/07/owl#Ontology"/> </rdf:type> </rdf:Description> <rdf:Description rdf:about="http://www.StructuralGeology.org"> <rdf:type> <rdf:Description rdf:about="http://www.w3.org/2002/07/owl#Ontology"/> </rdf:type> <rdfs:comment>Part of Structural Geology</rdfs:comment> <rdfs:label>Structural Geology</rdfs:label> <owl:imports> <rdf:Description rdf:about="http://www.Tectonics.org"/> </owl:imports> <owl:priorVersion> <rdf:Description rdf:about="http://www.StructuralGeology.org/v0"/> </owl:priorVersion> </rdf:Description>
Two Types of Property in OWL • Datatype Property has a typed literal (e.g., XSD or RDF literal ) as its range • As a binary relation, the datatype property relates a set of instances of a [domain] class to a set of instances of a datatype (range; object) • A datatype property is declared using the owl:DatatypeProperty: <length rdf:typeowl:DatatypeProperty> • Or: <owl:datatypePropertyrdf:about=“length”/>
Object Property • Object property has a URIref as its range • As a binary property, it relates a set of individuals of one class to the set of individuals of another class • That is, the subject and objects of a triple using an object property are both individuals • Object properties are declared in two different ways: <analyze rdf:typeowl:ObjectProperty> or: <owl:objectPropertyrdf:about=“analyze”/>
Example in N3 struc:foldDescriptionrdf:typeowl:DatatypeProperty. struc : foldDescriptionrdfs : domain struc : Fold. struc : foldDescriptionrdfs : range xsd : string. struc : foldAxisrdf : type owl : ObjectProperty. struc : foldAxisrdfs : domain struc : Fold. struc : foldAxisrdfs : range struc : Line.
Domain and range of properties • Can be assigned in a short form: <owl:objectPropertyrdf:about=“infiltrate”/> <owl:domainrdf:resource=“SurfaceWater”/> <owl:rangerdf:resource=“Aquifer”/> </owl:objectProperty> Or the long way, as is shown in the following slide! <rdf:Descriptionrdf:about=":infiltrate“> <rdf:type> <rdf:Descriptionrdf:about="http://www.w3.org/2002/07/owl#ObjectProperty"/> </rdf:type> <rdfs:domain><rdf:Descriptionrdf:about=":SurfaceWater"/></rdfs:domain> <rdfs:range><rdf:Descriptionrdf:about=":Aquifer"/></rdfs:range> </rdf:Description>
<?xml version="1.0" encoding="UTF-8"?> <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#"> <rdf:Description rdf:about=":length"> <rdf:type><rdf:Description rdf:about="http://www.w3.org/2002/07/owl#DatatypeProperty"/></rdf:type> <rdfs:domain><rdf:Description rdf:about=":Fault"/></rdfs:domain> <rdfs:range><rdf:Description rdf:about="http://www.w3.org/2001/XMLSchema#string"/></rdfs:range> </rdf:Description> <rdf:Description rdf:about=":infiltrate"> <rdf:type><rdf:Description rdf:about="http://www.w3.org/2002/07/owl#ObjectProperty"/></rdf:type> <rdfs:domain><rdf:Description rdf:about=":SurfaceWater"/></rdfs:domain> <rdfs:range><rdf:Description rdf:about=":Aquifer"/></rdfs:range> </rdf:Description> <rdf:Description rdf:about=":Fault"> <rdf:type><rdf:Description rdf:about="http://www.w3.org/2002/07/owl#Class"/></rdf:type> </rdf:Description> <rdf:Description rdf:about=":SurfaceWater"> <rdf:type><rdf:Description rdf:about="http://www.w3.org/2002/07/owl#Class"/></rdf:type> </rdf:Description> <rdf:Description rdf:about=":Aquifer"> <rdf:type><rdf:Description rdf:about="http://www.w3.org/2002/07/owl#Class"/></rdf:type> </rdf:Description> </rdf:RDF>
owl:inveseOf • Properties themselves have properties • owl:inverseOf property relates two properties to each other • Many properties in one direction have an inverse property in the opposite direction • For example, the first property in each of the following pairs reverses the direction of the second property • ‘analyzes’ and ‘analyzedBy’ • ‘investigates’ and ‘investigatedBy’ • ‘hasSample’ and ‘sampleOf • ‘wrote’ and ‘writtenBy’ • ‘locatedIn’ and ‘locationOf’ • These follow the definition of the mathematical inverse function that state: if f(x) = y, then f-1(y) = x.
Inference of the owl:inverseOf hasPart P owl:inverseOf Q. If x P y. Then y Q x. • Example: The partOfproperty is an inverse property struc : Fold hasPartstruc : limb. partOf owl : inveseOfstruc : hasPart. • This means that if fold has limb as part, then limb is part of fold Fold Limb x partOf y
<?xml version="1.0" encoding="UTF-8"?> <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#"> <rdf:Description rdf:about=":Fold"><rdf:type> <rdf:Description rdf:about="http://www.w3.org/2002/07/owl#Class"/></rdf:type> </rdf:Description> <rdf:Description rdf:about=":Limb"><rdf:type> <rdf:Description rdf:about="http://www.w3.org/2002/07/owl#Class"/></rdf:type> </rdf:Description> <rdf:Description rdf:about=":partOf"><rdf:type> <rdf:Description rdf:about="http://www.w3.org/2002/07/owl#ObjectProperty"/></rdf:type> <rdfs:domain><rdf:Description rdf:about=":Limb"/></rdfs:domain> <rdfs:range><rdf:Description rdf:about=":Fold"/></rdfs:range> <owl:inverseOf><rdf:Description rdf:about=":hasPart"/></owl:inverseOf> </rdf:Description> <rdf:Description rdf:about=":hasPart"> <rdf:type> <rdf:Description rdf:about="http://www.w3.org/2002/07/owl#ObjectProperty"/> </rdf:type> </rdf:Description> </rdf:RDF>
owl:symmetricProperty • If the property that relates two classes is the same (has the same name) in both directions, we declare the property as symmetric • For example: ‘equals’ or ‘siblingOf’ is a symmetric property • if x is siblingOf y, then y is siblingOf x • Symmetric properties must be declared as such P rdf : type owl:SymmetricProperty. • The inference for a symmetric property is as follows: P owl:inverseOf P. • That is, the symmetric property is an inverse property.
owl:transitiveProperty • In mathematics, a relation is said to be transitive if P(a,b) and P(b,c) implies P(a,c). This is represented by the owl:transitiveProperty, which applies to a property. P rdf : type owl : TransitiveProperty. • The inference for this property is as follows: IF x P y. y P z. THEN x P z. C part of B B part of A C part of A. A B C P P FaultBend FaultSegment Fault x y z
partOf partOf FaultBend FaultSegment Fault partOf x y z • The partOf property (containment) may be transitive (not always). Finger is part of hand, and hand is part of body • However, someone’s hand is not part of the group to which the person is part of • Geologically, being fractal, faults have segments that have smaller fault segments, which have even smaller segments which are themselves fault struc:FaultSegmentstruc:partOfstruc: FaultSegment. struc:partOfrdf :type owl:TransitiveProperty. struc:FaultSegmentrdfs:subClassOfstruc:Fault.
<?xml version="1.0" encoding="UTF-8"?> <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#"> <rdf:Description rdf:about=":Fault"> <rdf:type><rdf:Description rdf:about="http://www.w3.org/2002/07/owl#Class"/></rdf:type> </rdf:Description> <rdf:Description rdf:about=":FaultSegment“> <rdf:type><rdf:Description rdf:about="http://www.w3.org/2002/07/owl#Class"/></rdf:type> </rdf:Description> <rdf:Description rdf:about=":partOf"><rdf:type> <rdf:Description rdf:about="http://www.w3.org/2002/07/owl#ObjectProperty"/></rdf:type> <rdf:type><rdf:Description rdf:about="http://www.w3.org/2002/07/owl#TransitiveProperty"/></rdf:type> <rdfs:domain><rdf:Description rdf:about=":FaultSegment"/></rdfs:domain> <rdfs:domain><rdf:Description rdf:about=":FaultBend"/></rdfs:domain> <rdfs:range><rdf:Description rdf:about=":Fault"/></rdfs:range> </rdf:Description> <rdf:Description rdf:about=":FaultBend"><rdf:type> <rdf:Description rdf:about="http://www.w3.org/2002/07/owl#Class"/></rdf:type> </rdf:Description> <rdf:Description rdf:about=":hasPart"> <rdf:type><rdf:Description rdf:about="http://www.w3.org/2002/07/owl#ObjectProperty"/></rdf:type> <rdfs:domain><rdf:Description rdf:about=":Fault"/></rdfs:domain> <rdfs:range><rdf:Description rdf:about=":FaultSegment"/></rdfs:range> <owl:inverseOf><rdf:Description rdf:about=":partOf"/></owl:inverseOf> </rdf:Description> </rdf:RDF>
A B C locatedIn is transitive C locatedIn B BlocatedIn A C locatedIn A geo:locatedInrdf:typeowl:TransitiveProperty. If tect:SanAndreasFaultgeo:locatedIngeo:California. geo:Californiageo:locatedIngeo:United States. Then geo:SanAndreasFaultgeo:locatedIngeo:United States.
y1 x Functional Property … p p • A functional property is a property that can haveonly one unique value y(object) for each instance x (subject) • This means that there cannot be two distinct values y1 and y2 if (x, y1) and (x, y2) are instances of the functional property If x p y1 and x p y2, then y1=y2 • Given x (subject individual) we can find y (object individual)! • Both object and datatype properties can be declared functional! • There could be many x’s, but all relate to one y • Example: husband property can be functional in some cultures: Woman husband Man (not in polygamy or same sex marriages) If x husband y1 and x husband y2, then y1=y2 If Jane husband Jack and Jane husband Jeff, then Jack=Jeff x x y x x x y2
A x Inference • The owl:FunctionalProperty can only take one value for any [object] individual, allowing sameness to be inferred • The inference rule for this construct is as follows • Note: x is a subject individual and A and B are object individuals If P rdf:typeowl:FunctionalProperty. X P A X P B Then A owl:sameAs B. p p B x
A property p is functional if x p y1 and x p y2imply thaty1 = y2 • We infer that the two object individuals are the same(y1owl:sameAs y2) • Note that the subjects are not asserted to be the same; only the objects are the same DaughterProductdaughterProductOfParentIsotope Sample sampleLocation Location daughterProductOf and sampleLocation are functional properties, because there is one unique value yfor x in the following triples: x sampleLocation yor x daughterProductOf y There is a unique location for each sample There is a unique ParentIsotope for each daughterProduct
<?xml version="1.0" encoding="UTF-8"?> <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#"> <rdf:Description rdf:about=":Sample"> <rdf:type><rdf:Description rdf:about="http://www.w3.org/2002/07/owl#Class"/></rdf:type> </rdf:Description> <rdf:Description rdf:about=":Location"> <rdf:type><rdf:Description rdf:about="http://www.w3.org/2002/07/owl#Class"/></rdf:type> </rdf:Description> <rdf:Description rdf:about=":sampleLocation"> <rdf:type><rdf:Description rdf:about="http://www.w3.org/2002/07/owl#ObjectProperty"/></rdf:type> <rdf:type><rdf:Description rdf:about="http://www.w3.org/2002/07/owl#FunctionalProperty"/></rdf:type> <rdfs:domain><rdf:Description rdf:about=":Sample"/></rdfs:domain> <rdfs:range><rdf:Description rdf:about=":Location"/></rdfs:range> </rdf:Description> </rdf:RDF> sampleLocation Location Sample
x1 y Inverse Functional Property • The objecty of an inverse functional property p uniquely determines the subject x (some individual) • y can only be the value for p for a single instance x • There cannot be two distinct x1 and x2 such that (x1, y) and (x2, y) are instances of p. • If there are, then x1 = x2 • Example: Woman biologicalMother Human • Each object of the biologicalMother property (i.e., each human) uniquely identifies a subject (some woman) Note: People’s name is not inverse functional (different people can have the same name) x2 p p
A x Inverse Functional Property • This property is the inverse of the owl:FunctionalProperty • It is very useful for merging data from different sources • The owl:FunctionalProperty and owl:InverseFunctionalPropertyallow merging data for a same individual from different sources • The owl:InverseFunctionalPropertyis equivalent to the key in relational databases, such as SSN and driving license number • These are unique • The inference rule of this construct is as follows: P rdf:typeowl:InverseFunctionalProperty. A P X. B P X. Then A owl:sameAs B. p B p
owl:InverseFunctionalProperty • If x p y, and p is inverse functional, then there can be only a single value of x for a given y, that is: • The object individual y of an owl:InverseFunctionalProperty p uniquely determines a single subject individual x • Given the object individual (y), we can find a unique subject individual (x) (i.e., x y-1) • In this case, ifx1 p y and x2 p y, then x1 and x2are the same! • If x1 ssn 123445555 and x2 ssn123445555, then x1=x2 • e.g., hasSingleAuthorArticle: a person (subject) may have many published papers (objects), but all are authored by one author (subject). Person hasSingleAuthorArticleSingleAuthorArticle • Given a singleAuthorArticle object individual (y) we can find a unique subject individual (x) y x y y
hasSingleAuthorPaper Author Article … • A single value of the property (object y, e.g., doi of an Article) cannot be shared by two x subject entities (e.g., Authors). • Example: Assume that an isotope is produced by the decay of some unique isotope! Isotope parentOfDaughterIsotope • An objectindividual y(some daughterIsotope) uniquely determines a single subject individual x (parent isotope) x y
locatedAt Example Station Location • Assume location of any measurement is uniquely identified by the longitude and latitude (defined by the Location class), i.e., assume no two samples of a rock can be taken at the same exact spot :Station134 : locatedAt : LocationA. :Station346 : locatedAt : LocationA. • We infer that :Station134 owl : sameAs :Station346
x y One-to-one Property • For a one-to-one relationship, we use a combination of the owl:FunctionalProperty and owl:inverseFunctionalProperty. • Note: Sample sampleIdXSD:Integer is not a good example, because it is a datatype property, and not every number gives you the sample :hasimagerdfs:domain :ThinSection. :hasImagerdfs:range Image. :hasImagerdf:typeowl:FunctionalProperty. :hasImagerdf:typeowl:InverseFunctionalProperty. • So, any two thin sections with the same image must be the same thin section! sampleId X Sample XSD:Integer hasImage ThinSection Image
<rdf:Description rdf:about=":hasImage"> <rdf:type> <rdf:Description rdf:about="http://www.w3.org/2002/07/owl#ObjectProperty"/> </rdf:type> <rdf:type> <rdf:Description rdf:about="http://www.w3.org/2002/07/owl#FunctionalProperty"/> </rdf:type> <rdf:type> <rdf:Description rdf:about="http://www.w3.org/2002/07/owl#InverseFunctionalProperty"/> </rdf:type> <rdfs:domain><rdf:Description rdf:about=":ThinSection"/></rdfs:domain> <rdfs:range><rdf:Description rdf:about=":Image"/></rdfs:range> </rdf:Description> <rdf:Description rdf:about=":ThinSection"> <rdf:type><rdf:Description rdf:about="http://www.w3.org/2002/07/owl#Class"/></rdf:type> </rdf:Description> <rdf:Description rdf:about=":Image"> <rdf:type>rdf:Description rdf:about="http://www.w3.org/2002/07/owl#Class"/></rdf:type> </rdf:Description> </rdf:RDF> hasImage ThinSection Image
x1 x2 hasComposition Mineral Composition • Note that not every functional property can also be an inverse functional property • For example, mineral composition can be functional only, because every mineral has a unique composition, but many individual minerals can share that same composition (if they belong to the same class) (compare with hasFather) • Some properties can only be inverse functional, but not functional • For example, a single-author publication of an author (or description of an outcrop or a thin section by one person) may be inverse functional, because it only belongs to one person • The person can have several such publications or descriptions