410 likes | 417 Vues
Chapter 13. 13 Describing Property Characteristics. Need to be able to describe properties further by Identifying properties of properties (metaproperties) Using classes to make general statements about properties Methods Global restrictions Relating properties Inference shortcuts
E N D
13 Describing Property Characteristics • Need to be able to describe properties further by • Identifying properties of properties (metaproperties) • Using classes to make general statements about properties • Methods • Global restrictions • Relating properties • Inference shortcuts • Local restrictions
13.1 Defining Global Property Restrictions • Global property restrictions apply to all uses of a property • As opposed to just when describing individuals • Four restrictions • rdfs:domain (section 9.5.1.5) • rdfs:range (section 9.5.1.4) • owl:FunctionalProperty • owl:InverseFunctionalProperty
13.1.1 Functional Property • owl:FunctionalProperty class • “Flag” that identifies a property which can have at most one (0 or 1) unique value for a particular subject • May have no value • If a literal value exists for a particular subject, no subsequent statement can specify a different literal value for that subject. • If different object values (or object values & 1 literal) exist for a given subject in two or more different statements, Reasoner can infer that all object values represent the same object. • Can be applied to object &/or datatype properties • Syntax (typedNode syntax discouraged) • <owl:ObjectProperty rdf:ID="propertyName"> <rdf:type rdf:resource="&owl;FunctionalProperty"/></owl:ObjectProperty>
13.1.1 Functional Properties cont’d • Example (specification) • <owl:ObjectProperty rdf:ID="hasOwner"> <rdf:type rdf:resource="&owl;FunctionalProperty"/></owl:ObjectProperty> • Example (use) • <rest:Restaurant> <hasOwner rdf:resource="#person123"/> <hasOwner rdf:resource="JasonRelles"/></rest:Restaurant> • OK. Reasoner may infer that instance “#person123” is the same instance as “JasonRelles” • <food:menuItem rdf:ID="Pizza"> <hasPrice>$7.00</hasPrice> <hasPrice>$8.00</hasPrice></food:menuItem> • Error! Cannot have 2 different literal values
13.1.2 Inverse Functional Property • owl:InverseFunctionalProperty class • “Flag” that identifies properties whose values uniquely identify the subject instance of the property (key!) • If different subjects exist for a given value in two or more different statements, Reasoner can infer that all subject values represent the same object. • Inverse of InverseFunctionalProperty is FunctionalProperty • If “hasSerialNumber” is an InverseFunctionalProperty, then its inverse property “isSerialNumberFor” must be a FunctionalProperty (only 0 or 1 unique value) • Inverse functional properties cannot be transitive • Syntax (typedNode syntax discouraged) • <rdf:ObjectProperty rdf:ID="propertyName"> <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/></rdf:ObjectProperty>
13.2 Relating Properties • In addition to rdfs:subPropertyOf (9.5.1.3), OWL properties can be related to each other by • Equivalence • PropertyA is the same as PropertyB • Inverses • PropertyA is the inverse property of PropertyB
13.2.1 Stating Property Equivalence • owl:equivalentProperty property • Identifies properties that have the same extension (set of instances) • Properties are “aliases” & subproperties of each other • May describe different concepts with same values • Subproperty of “owl:SameAs” (15.5.1) property • Supports “semantic joins” of ontologies: Reasoner may infer that all statements about PropertyA in OntologyA also apply to PropertyB in OntologyB and vice-versa • Domain & Range: Instance of rdf:Property • Syntax • <owl:ObjectProperty rdf:ID="property1"> <owl:equivalentProperty rdf:resource="property2"/></owl:ObjectProperty>
13.2.2 Identifying Inverse Properties • owl:inverseOf property • Identifies pairs of properties (A, B) such that • Domain of property A is range of property B • Range of property A is domain of property B • Always symmetric; only need to be expressed one way • If A is the inverse property of B, then B is the inverse of A. • Domain & Range: Instance of owl:ObjectProperty • Syntax • <owl:ObjectProperty rdf:ID="property1"> <owl:inverseOf rdf:resource="property2"/></owl:ObjectProperty>
13.2.2 Inverse Properties cont’d • Example (specification) • <owl:ObjectProperty rdf:ID="usedInDish"> <rdfs:comment>Dish that this ingredient is used in</rdfs:comment></owl:ObjectProperty> • <owl:ObjectProperty rdf:ID="hasIngredient"> <rdfs:comment>Ingredient used in this dish</rdfs:comment> <owl:inverseOf rdf:resource="#usedInDish"></owl:ObjectProperty> • Example (use) • <Ingredient rdf:ID="ingredient345"> <rdfs:label>avocado</rdfs:label></Ingredient> • <MenuItem rdf:ID="item123"> <rdfs:label>guacamole</rdfs:label> <hasIngredient rdf:resource="#ingredient345"></MenuItem> • Then Reasoner can infer, even if not explicitly stated, that<Ingredient rdf:about="#ingredient345”> <usedInDish rdf:resource="#item123"></Ingredient>
13.3 Inference Shortcuts • Additional meta-properties (properties of properties) help Reasoners draw correct inferences • TransitiveProperty • SymmetricProperty • Membership in the class is like a flag to the Reasoner • Same idea as Serializable interface in Java
13.3.1 Transitive Properties • owl:TransitiveProperty class • “Flag” that identifies properties for which transitivity (partial order) holds • If X is related by property P to Y and Y is related by property P to Z, then X is related by property P to Z • Allows Reasoner to infer transitivity down the chain • Syntax • <owl:ObjectProperty rdf:ID="propertyName"> <rdf:type rdf:resource="&owl;TransitiveProperty"/></owl:ObjectProperty> or • <owl:TransitiveProperty rdf:ID="propertyName"/>
13.3.1 Transitive Properties cont’d • Example (specification) • <owl:TransitiveProperty rdf:ID="smallerThan"/> • Example (use) • <rest:Restaurant rdf:ID="restaurant123"> <rest:smallerThan rdf:resource="#restaurant456"/></rest:Restaurant> • <rest:Restaurant rdf:ID="restaurant456"> <rest:smallerThan rdf:resource="#KnightOwlRestaurant"/></rest:Restaurant> • Then Reasoner can infer, even if not explicitly stated, that “#restaurant123” is smaller than “#KnightOwlRestaurant” • Restrictions on TransitiveProperty in OWL Lite • No local or global cardinality constraints (including functional & inverse functional flags) on themselves, inverses, or superproperties • Domain & range must be the same • Must be subclass of owl:ObjectProperty
13.3.2 Symmetric Properties • owl:SymmetricProperty class • “Flag” that identifies properties for which symmetry holds • If X is related by property P to Y, then Y is related by property P to X • Only need to specify in one direction; Reasoner infers the other direction • Syntax • <owl:ObjectProperty rdf:ID="propertyName"/> <rdf:type rdf:resource="&owl;SymmetricProperty"/></owl:ObjectProperty> or • <owl:SymmetricProperty rdf:ID="propertyName"/>
13.3.2 Symmetric Properties cont’d • Example (specification) • <owl:SymmetricProperty rdf:ID="goesWellWith"/> • Example (use) • <rest:MenuItem rdf:ID="cheese"/> • <rest:MenuItem rdf:ID="crackers"> <rest:goesWellWith rdf:resource="#cheese"/></rest:MenuItem> • Then Reasoner can infer, even if not explicitly stated, that “#cheese” goes well with “#crackers” • Restrictions on SymmetricProperty in OWL Lite • Domain & range must be the same, if specified • Must be subclass of owl:ObjectProperty
13.4 Local Property Restrictions • Sometimes we want to associate property restrictions with particular classes rather than globally • Local property restrictions • Defined as unnamed subclasses of owl:Restriction that satisfy a specific constraint • Associated “owl:onProperty” property identifies object or datatype property being restricted • Second property specifies actual restriction/constraint allowed in OWL Lite • Used for validation and inferencing • Can be thought of as • Limiting values of a class’ properties, or • Specifying characteristic property values that define the class
13.4 Local Property Restrictions cont’d • Syntax • <owl:Restriction> <owl:onProperty rdf:resource="propertyName"/>specificRestriction</owl:Restriction> • Two types of specific restrictions • Value restrictions • owl:allValuesFrom, owl:someValuesFrom • Cardinality restrictions • owl:minCardinality, owl:maxCardinality, owl:cardinality
Owl Restriction Classes • owl:Restriction is a special kind of class • Only appropriate as non-URI (i.e. blank node) class, note the nuance of the syntax: <owl:Restriction> <owl:onProperty rdf:resource="propertyName"/>specificRestriction </owl:Restriction> • Since we are trying to create restrictions of a property in conjunction with a class (i.e. local restrictions) we have to reference the restriction appropriately Creates a blank node of type owl:Restriction
Blank Node RestrictionExample rdf:type owl:Restriction someValuesFrom onProperty :playsFor :AllStarTeam rdf:type rdf:type rdf:Property rdfs:Class Implied/Required RDF/XML Form <owl:Restriction> <owl:onProperty rdf:resource=“:playsFor”/> <owl:someValuesFrom rdf:resource=“:AllStarTeam”/> </owl:Restriction> N3 Form [ a owl:Restriction; owl:onProperty :playsFor; owl:someValuesFrom :AllStarTeam] Makes three triples although more can be inferred – as depicted above. Square Brackets ([ ]) define a blank node. Usually a space is left after the opening to help hint that a blank node is created.
Using/Referencing a Restriction • Short answer: Say a class is a subclass of a restriction or is equivalent to it. • AllStarPlayer a owl:Class; • subClassOf • [ a owl:Restriction; • owl:onProperty :playsFor; • owl:someValuesFrom :AllStarTeam]. • AllStarPlayer a owl:equivalentClass • [ a owl:Restriction; • owl:onProperty :playsFor; • owl:someValuesFrom :AllStarTeam].
13.4.1 Value Constraints • Value constraint • Restriction on property’s range when used with specified class • Different than rdfs:range (9.5.1.4), which applies to all classes that use the property • Two types • Universal restriction • owl:allValuesFrom • Existential restriction • owl:someValuesFrom
13.4.1.1 Universal Restrictions For All • owl:allValuesFrom constraint property • Requires that all property values belong to specified class • Related to universal quantifier from logic • Reasoner can’t assume there are any property instances • If no values, constraint is satisfied • Domain: Instance of owl:Restriction; range: Instance of rdfs:Class • Syntax • <owl:Restriction> <owl:onProperty rdf:resource="propertyName"/> <owl:allValuesFrom rdf:resource="targetClass"/></owl:Restriction> • Example • <owl:Restriction> <owl:onProperty rdf:resource="#dishFeeds"/> <owl:allValuesFrom rdf:resource="&xsd;nonNegativeInteger"/></owl:Restriction> • Constrains members of class being described to having only non-negative integer values for dishFeeds property
13.4.1.2 Existential Restrictions There Exists • owl:someValuesFrom constraint property • Requires that at least one value of property belong to specified class • Related to existential quantifier from logic (requires an instance to exist) • Specifies minimum cardinality of 1 • Does not prevent values from other classes • Domain: Instance of owl:Restriction; range: Instance of rdfs:Class • Syntax • <owl:Restriction> <owl:onProperty rdf:resource="propertyName"/> <owl:someValuesFrom rdf:resource="targetClass"/></owl:Restriction> • Example • <owl:Restriction> <owl:onProperty rdf:resource="#topping"/> <owl:someValuesFrom rdf:resource="#Cheese"/></owl:Restriction> • Specifies the set of things that have cheese as a topping (but may have other toppings)
13.4.2 OWL Lite Restricted Cardinality • By default, an OWL class can have an arbitrary number of values associated with its properties • Cardinality constraint restricts # of values property can have for members of particular class • Values of cardinality restrictions are specified using non-negative integers (only 0 or 1 in OWL Lite) • Can be used to • Require a property (min cardinality = 1) • Prohibit a property (max cardinality = 0) • Limit # of occurrences of a property to 0 or 1 • If property max cardinality = 1 and property has 2 or more values, Reasoner infers that all values are equivalent • 3 types • owl:minCardinality, owl:maxCardinality, owl:cardinality
13.4.2.1 Specify Minimum Cardinality • owl:minCardinality restriction property • At least the specified number of distinct values must be associated with members of the class • Domain: Instance of owlRestriction • Range: Instance of xmls:nonNegativeInteger • 0 or 1 for OWL Lite • Syntax • <owl:Restriction> <owl:onProperty rdf:resource="propertyName"/> <owl:minCardinality rdf:datatype="xsd;nonNegativeInteger">cardinalityValue</owl:minCardinality></owl:Restriction> • Example • <owl:Restriction> <owl:onProperty rdf:resource="#hasPrice"/> <owl:minCardinality rdf:datatype="xsd;nonNegativeInteger">1</owl:minCardinality></owl:Restriction> • All items must have a single price
13.4.2.2 Specify Maximum Cardinality • owl:maxCardinality restriction property • At most the specified number of distinct values can be associated with members of the class • Speeds searches: once first value found, done! • Domain: instance of owl:Restriction • Range: instance of xlms:nonNegativeInteger • 0 or 1 for OWL Lite • Syntax • <owl:Restriction> <owl:onProperty rdf:resource="propertyName"/> <owl:maxCardinality rdf:datatype="xsd;nonNegativeInteger">cardinalityValue</owl:minCardinality></owl:Restriction> • Example • <owl:Restriction> <owl:onProperty rdf:resource="#hasPartner"/> <owl:maxCardinality rdf:datatype="xsd;nonNegativeInteger">0</owl:maxCardinality></owl:Restriction> • An item (perhaps a sole proprietorship) has no partners
13.4.2.3 Absolute Cardinality • owl:cardinality restriction property • Exactly the specified number of distinct values must be associated with members of the class • Can identify errors: if cardinality = 0 but value found • Domain: instance of owl:Restriction • Range: instance of xmls:nonNegativeInteger • 0 or 1 for OWL Lite • Syntax • <owl:Restriction> <owl:onProperty rdf:resource="propertyName"/> <owl:cardinality rdf:datatype="xsd;nonNegativeInteger">cardinalityValue</owl:minCardinality></owl:Restriction> • Example • <owl:Restriction> <owl:onProperty rdf:resource="#hasCheeseType"/> <owl:Cardinality rdf:datatype="xsd;nonNegativeInteger">1</owl:Cardinality></owl:Restriction> • An item has exactly one cheese type: no more, no less
13.5 Property Characteristics Summary • OWL Lite supports describing properties by • Defining global restrictions to restrict property • Domain, range, functionality, inverse functionality • Defining global relationships between properties • Subproperties, equivalence, inverse • Defining inference shortcuts • Transitivity, symmetry • Defining local property restrictions • Value constraints • All or some values must belong to a particular class • Cardinality constraints • Minimum, maximum, and absolute cardinality
Feature Syntax Datatype Properties Object Properties Scope Global Restrictions rdfs:Domain √ √ Global rdfs:Range √ √ owl:FunctionalProperty √ √ owl:InverseFunctionalProperty √ Relationships rdfs:subPropertyOf √ √ owl:EquivalentProperty √ √ owl:inverseOf √ Inference Shortcuts owl:TransitiveProperty √ owl:SymmetricProperty √ Property Value Restrictions owl:allValuesFrom √ √ Local owl:someValuesFrom √ √ Cardinality Restrictions owl:maxCardinality √ √ owl:minCardinality √ √ owl:cardinality √ √ 13.5 Property Characteristics cont’d
14 Deriving OWL Lite Classes • Other ways of defining classes besides owl:Class • Properties & restrictions can define class membership & relationships between classes (class expression) • Classes can be defined from other classes • 4 ways to derive classes • Subclass • Equivalent class • Intersection • Class expression
14.1 Simple Named Subclass • rdfs:subClassOf property (note rdfs:, not owl:) • Used for inheritance/specialization hierarchies • All properties of superclass apply to all subclasses • Transitive property • A class is a subclass (subset) of itself • Multiple inheritance permitted • Reasoner can deduce that an individual of a subclass is also an individual of its superclass • Domain & Range: Instance of rdfs:Class
14.1 Simple Named Subclass cont’d • Syntax • <owl:Class rdf:ID="SubClassName"> <rdfs:subClassOf rdf:resource="SuperClassName"/></owl:Class> • Example • <owl:Class rdf:ID="Dessert"/> • <owl:Class rdf:ID="Pie"> <rdfs:subclassOf rdf:resource="#Dessert"/></owl:Class> • <owl:Class rdf:ID="KeyLimePie"> <rdfs:subClassOf rdf:resource="#Pie"/></owl:Class> • Reasoner can infer that KeyLimePie is also a Dessert. Can also infer that an instance of KeyLimePie is also an instance of Pie and Dessert.
14.2 Class Equivalency • owl:equivalentClass property • Identifies classes that have the same extension (set of instances) • Classes are “aliases” & subclasses of each other • May describe different concepts with same values • Subproperty of rdfs:subClassOf • Supports “semantic joins” of ontologies: Reasoner may infer that all statements about ClassA in OntologyA also apply to ClassB in OntologyB and vice-versa • Classes can have multiple equivalent classes • Domain & Range: Instance of owl:Class
14.2 Class Equivalency • owl:equivalentClass property • Identifies classes that have the same extension (set of instances) • Classes are “aliases” & subclasses of each other • Subproperty of rdfs:subClassOf • Supports “semantic joins” of ontologies: Reasoner may infer that all statements about ClassA in OntologyA also apply to ClassB in OntologyB and vice-versa • Classes can have multiple equivalent classes • Domain & Range: Instance of owl:Class
14.2 Class Equivalency • Syntax • <owl:Class rdf:ID="Class1"> <owl:equivalentClass rdf:resource="Class2"/></owl:Class> • Example 1 • <owl:Class rdf:ID="SodaDrink"> <owl:equivalentClass rdf:resource="#PopDrink"/></owl:Class> • Example: Defining a class using property restriction • <owl:Class rdf:ID="LunchDish"> <owl:equivalentClass> <owl:Restriction> <owl:onProperty rdf:resource="onMenu"/> <owl:allValuesFrom rdf:resource="#LunchMenu"/> </owl:Restriction> </owl:equivalentClass></owl:Class>
14.3 OWL Lite Intersection • owl:intersectionOf property • Defines a class that includes all individuals that belong to all specified classes (logical AND) • Domain & Range: Instance of owl:Class • Syntax • <owl:Class rdf:ID="ClassName"> <owl:intersectionOf rdf:parseType="Collection"> <owl:Class rdf:about="AnotherClass1"/> <owl:Class rdf:about="AnotherClass2"/> </owl:intersectionOf></owl:Class> • Example • <owl:Class rdf:ID="FriedFood"> <owl:intersectionOf rdf:parseType="Collection"> <owl:Class rdf:about="#MenuDish"/> <owl:Restriction> <owl:onProperty rdf:resource="#cookingMethod"/> <owl:hasValue rdf:resource="#Fry"> // OWL DL, not valid in OWL Lite! </owl:intersectionOf></owl:Class>
14.4 Derived Classes Summary • OWL classes can be derived by • Defining a subclass • Stating two classes are equivalent • Defining a class as the intersection of two or more other classes