410 likes | 426 Views
Learn how to describe properties further by identifying metaproperties, using classes, methods, and global restrictions in ontology. Explore functional and inverse functional properties, relating properties, and 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