320 likes | 457 Views
e ce 627 intelligent web: ontology and beyond. lecture 8: owl – language I. 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#"
E N D
ece 627intelligent web: ontology and beyond lecture 8: owl – language I
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#"> an OWL ontology may start with a collection of assertions for housekeeping purposes using owl:Ontology element
owl:Ontology <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:Ontology owl:imports means an ontology O1 imports another ontology O2, and then the entire set of declarations in O2 is appended to O1 importing ontology O2 will also import all of the ontologies that O2 imports
classes classes are defined using owl:Class • owl:Class is a subclass of rdfs:Class <owl:Class rdf:about="#associateProfessor”/>
classes (2) disjointness of classes is defined usingowl:disjointWith <owl:Class rdf:about="#associateProfessor"> <owl:disjointWith rdf:resource="#professor"/> <owl:disjointWith rdf:resource="#assistantProfessor"/> </owl:Class>
classes (3) owl:equivalentClass defines equivalence of classes <owl:Class rdf:ID="faculty"> <owl:equivalentClass rdf:resource="#academicStaffMember"/> </owl:Class>
classes (4) owl:Thing is the most general class, which contains everything owl:Nothing is the empty class
properties in OWL there are two kinds of properties • object properties, which relate objects to other objects for example, is-TaughtBy, supervises • data type properties, which relate objects to datatype values for example, phone, title, age
datatype properties OWL makes use of XML Schema data types, using the layered architecture of the Semantic Web <owl:DatatypeProperty rdf:ID="age"> <rdfs:range rdf:resource= "http://www.w3.org/2001/XLMSchema #nonNegativeInteger"/> </owl:DatatypeProperty>
object properties user-defined data types <owl:ObjectProperty rdf:ID="isTaughtBy"> <owl:domain rdf:resource="#course"/> <owl:range rdf:resource="#academicStaffMember"/> <rdfs:subPropertyOf rdf:resource="#involves"/> </owl:ObjectProperty>
property restrictionsintroduction – anonymous superclass in OWL we can declare that the class C satisfies certain conditions • all instances of C satisfy the conditions this is equivalent to saying that C is subclass of a class C', where C' collects all objects that satisfy the conditions • C' can remain anonymous
property restrictionsintroduction – anonymous superclass a (restriction) class is achieved through an owl:Restriction element this element contains an owl:onProperty element and one or more restriction declarations
property restrictionsintroduction – anonymous superclass 1 <owl:Class rdf:about=C> 2 … 3 <rdfs:subClassOf> 4 <owl:Restriction> 5 <owl:onProperty rdf:resource=P/> 6 … declaration of restriction R … 7 </owl:Restriction> 8 </rdfs:subClassOf> 9 … 10 </owl:Class> in Set Theory
property restrictionsintroduction – anonymous superclass lines 4 to 7 define the (unnamed) class fo all things that satisfy R line 3 indicates that C is a sublass of such a (unnamed class) the pattern in lines 3 to 8 may be repeated to define multiple restrictions for the same class
property restrictions (2) three types of restrictions: quantified restrictions value restrictions (filler information) cardinality restrictions
property restrictions (3) quantified restrictions • owl:allValuesFrom specifies universal quantification (C P.D) • owl:someValuesFrom specifies existential quantification (C P.D)
property restrictions (4) value restrictions • owl:hasValue specifies a specific value
property restrictions (5) cardinality restrictions • owl:cardinality specifies the exact number of occurences of P each instance of C must have • owl:maxCardinality(owl:minCardinality)specifies the max (min) number of occurences of P each instance of C must have
owl:someValuesFrom <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>
owl:allValuesFrom <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>
owl:hasValue <owl:Class rdf:about="#mathCourse"> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#isTaughtBy"/> <owl:hasValue rdf:resource="#949352"/> </owl:Restriction> </rdfs:subClassOf> </owl:Class>
cardinality restrictions <owl:Class rdf:about="#course"> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#isTaughtBy"/> <owl:Cardinality rdf:datatype="&xsd;nonNegativeInteger"> 1 </owl:Cardinality> </owl:Restriction> </rdfs:subClassOf> </owl:Class>
properties of object properties owl:TransitiveProperty for example, “has better grade than”, “is ancestor of” R is transitive iff, for any x, y and z, if R(x,y) and R(y,z) then R(x,z)
properties of object properties (2) owl:SymmetricProperty for example, “has same grade as”, “is sibling of” R is symmetric iff, for any x, y, R(x,y) iff R(y,x)
properties of object properties (3) owl:FunctionalProperty defines a property that has at most one value for each object for example, “age”, “height”, “directSupervisor” R is functional iff, for any x, y and z, if R(x,y) and R(x,z) then y=z
properties of object properties (4) owl:InverseFunctionalProperty defines a property for which two different objects cannot have the same value R is inverse functional iff, for any x, y and z, if R(y,x) and R(z,x) then y=z (only for OWL Full)
properties of object properties (5) owl:InverseOf S is the inverse of R iff, for any x, y, R(x,y) iff S(y,x)
properties of object properties – example <owl:ObjectProperty rdf:ID=”isTaughtBy"> <rdf:type rdf:resource="&owl;FunctionalProperty"/> <owl:domain rdf:resource="#course"/> <owl:range rdf:resource="#academicStaffMember"/> </owl:ObjectProperty>
properties of object properties – example <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>
properties of object properties – example <owl:ObjectProperty rdf:ID="teaches"> <rdfs:range rdf:resource="#course"/> <rdfs:domain rdf:resource="#academicStaffMember"/> <owl:inverseOf rdf:resource="#isTaughtBy"/> </owl:ObjectProperty>
properties of object properties – example owl:equivalentProperty <owl:ObjectProperty rdf:ID="lecturesIn"> <owl:equivalentProperty rdf:resource="#teaches"/> </owl:ObjectProperty>