270 likes | 284 Views
Learn about describing individuals in OWL, including the differences between individuals and instances, encoding instance files, instantiating individuals, and describing existing individuals.
E N D
15 Describing Individuals • OWL Individuals • Ontological Primitive Layer • Mostly described with RDF • Instances of user-defined ontological classes • Abox (values), not Tbox (schema)
15.1 Determining an Individual • Sometimes it is difficult to determine if a given resource is an • Individual • Instance, or • Class A file with individuals: “an instance file” = Abox Individuals: an instance of a concept
15.1.1 Individual vs. Instance • Subtle difference - individual and instance • Instance is broader term • Anything can have an instance • All individuals are instances, but not vice-versa • A user defined class is an instance of owl:Class • Individuals are • Concrete instantiations rather than just concepts • Similar to records in an RDBMS • Similar to objects in object-oriented systems • “That pie over there” versus “key lime pie”
15.1.2 Class vs. Individual • Can be tricky to decide if a particular concept is • “subclass of” another concept (class) or • “instance of” another concept (individual) • Answer can vary between different applications • OWL Full can consider an individual to be a class • Sometimes individual is “prototype” for class • Guidelines • Individuals should represent actual or virtual objects in the domain of interest • Groups of objects should be class concept sets • If information is treated as data, define it as an individual • If information is used to understand semantics of other data, define it as a class
15.1.3 Leaves of a Taxonomy • Concepts are organized into taxonomies (trees) • Most specific concepts (leaves) are possible candidates to be individuals • Another test: if values different but properties same • Identify lowest level of granularity • Consider • If A “is a type of” B, then A is a subclass of B • If A “is an instance of” B, then A is an individual of class B
15.2 Encoding an Instance File • When possible, separate individuals (Abox) from ontologies (Tbox) by storing in different files • File with individuals: “instance file”/“artifact file” • Ontology files modified infrequently (schema) • Instance files modified frequently (records) • RDF sufficient for representing most statements about individuals • Minimize use of OWL in instance files • Software treats Abox and Tbox the same • Instance files have same format as ontology files (header, body, footer)
15.3 Instantiating Individuals • Use markup tools when possible! • Easier and • Verifies statement compliance with ontology • Instances • Created using rdf:ID attribute • Associated with a class using • rdf:type attribute and/or • typedNode syntax
15.3.1 Naming Individuals • Individuals referenced using URIrefs • Assigned using rdf:ID attribute • Referenced w/ rdf:about or rdf:resource attributes • Individuals can sometimes be “anonymous” • No explicit rdf:ID specified • No “unique names assumption” • Same object may be referenced by >1 URIref • Best practice • Reuse existing “keys” in rdf:ID • E.g. use employee number as part of rdf:ID identifier to identify a particular employee
15.3.2 Joining a Class • An individual asserts membership in a class with • rdf:type attribute and/or • typedNode syntax • Individuals can be members of multiple classes
15.3.2.1 Instantiating Using RDF Descriptions • rdf:Description (8.3.4.1) creates an individual • rdf:ID “names” individual with URIref • Not required • rdf:type attribute assigns individual to class • Syntax • <rdf:Description rdf:ID="instanceReference"> <rdf:type rdf:resource="Class"/></rdf:Description>
15.3.2.2 Instantiating Using Class Name • Class typedNode syntax (8.3.6.1.5) creates an individual • Can only specify one class this way • Can specify additional classes using rdf:type • Syntax • <Class rdf:ID="instanceReference"></Class> • Example • <Restaurant rdf:ID="KnightOwlRestaurant"> <rdf:type="#SmallBusiness"/></Restaurant> • “The Knight Owl is a restaurant and a small business”
15.4 Describing an Individual • Individuals can be described • Where “created” using rdf:ID • Later using rdf:about • Properties for individuals are defined the same way as making statements about resources (8.3.3)
15.4.1 Associating Property Values at Instantiation • Properties can be assigned when instance is created using rdf:ID • Syntax • <ClassName rdf:ID="identifier">instanceReferences</ClassName> • Example • <Restaurant rdf:ID="KnightOwlRestaurant"> <rest:type>Diner</rest:type> <locator:phone>407-555-1212</locator:phone></Restaurant>
15.4.2 Describing Existing Individuals • Properties can be assigned for an existing individual after creation using rdf:about • Syntax • <ClassName rdf:ID="identifier"> instanceReferences</ClassName> • Example • <Restaurant rdf:about="#KnightOwlRestaurant"> <rest:type>Diner</rest:type> <locator:phone>407-555-1212</locator:phone></Restaurant>
15.4.3 Automating Descriptions of Individuals • Since individuals represent “data”, instance files tend to be much larger than ontology files • RDF/XML text format not going to replace databases anytime soon • Instead, instance files are “views” or “snapshots” • Most applications will automatically generate ontology-compliant instance files • batch mode or “on-the-fly” as needed
15.5 Relating Individuals • OWL provides properties to relate individuals to each other • Equivalent individuals • owl:sameAs • Different individuals • owl:differentFrom • Different groups of individuals • owl:AllDifferent with owl:distinctMembers
15.5.1 Equivalent Individuals • owl:sameAs property • Specifies that two URIrefs refer to same individual • Merges information from different applications • Extremely powerful! • Allows “semantic joins” of data across disparate, often unrelated data sources…no database required! • Domain & Range: Instance of owl:Thing • Syntax • <ClassName rdf:ID="subjIndividualURIref"> <owl:sameAs rdf:resource="equivIndividualURIref"/></ClassName> • Example • <Restaurant rdf:ID="restaurant123"> <owlSameAs rdf:resource="#KnightOwlRestaurant"></Restaurant>
15.5.2 Differentiating Individuals • OWL does not follow unique names assumption • Every object might be the same as every other! • owl:DifferentFrom property • Opposite of owl:sameAs • Defines pairwise disjointness of two individuals • Better way to handle lots of individuals coming up • Domain & Range: Instance of owl:Thing • Syntax • <owl:differentFrom rdf:resource="diffIndividURIref"/> • Example • <rest:Restaurant rdf:ID="KnightOwlRestaurant"> <owl:differentFrom rdf:resource="#Restaurant124"/></rest:Restaurant>
15.5.3 Differentiating Groups of Individuals • owl:AllDifferent class • Asserts that all contained individuals are unique • Uses owl:distinctMembers property to enumerate list of disjoint individuals • Syntax • <owl:AllDifferent> <owl:distinctMembers rdf:parseType="Collection"> members </owl:distinctMembers></owl:AllDifferent> • Example • <owl:AllDifferent> <owl:distinctMembers rdf:parseType="Collection"> <traffic:Light rdf:about="Red"/> <traffic:Light rdf:about="Yellow"/> <traffic:Light rdf:about="Green"/> </owl:distinctMembers></owl:allDifferent>
15.6 Describing Individuals Summary • Individuals • Described using RDF/XML • Should be compliant with an OWL ontology • May have multiple URIrefs • Members of user-defined classes • Described at instantiation or any time later • Can be related by equivalence or disjointness • Groups of individuals can be declared disjoint
16 OWL Lite Summary • OWL ontologies • Specified in datafiles using RDF/XML • Header specifies namespaces, versioning, imports • Describe classes, properties, and relationships • OWL classes • Defined with owl:Class • owl:Thing (root class) & owl:Nothing (empty class) • OWL properties • Relate objects to datatypes, objects, annotations • Relate ontologies to each other
16 OWL Lite Summary cont’d • OWL property attributes • Global restrictions (e.g. Functional) • Global inter-property relationships (e.g. inverseOf) • Inference shortcuts (eg. Transitive) • Local restrictions on classes(values, cardinality) • OWL classes also created via derivation • Subclasses, equivalency, intersections of classes • Individuals • Instances of user-defined classes • Described at instantiation or later • Can be declared equivalent or different
Group Construct Group Construct Class/Property Equivalency owl:equivalentClass Property Type Restrictions owl:allValuesFrom owl:equivalentProperty owl:someValuesFrom Individual Equivalency owl:sameAs owl:intersectionOf owl:differentFrom Cardinality Restrictions owl:minCardinality (0 or 1) owl:AllDifferent/ owl:distinctMembers owl:maxCardinality (0 or 1) owl:cardinality (0 or 1) Property Characteristics owl:inverseOf Derived Classes rdfs:subClassOf owl:TransitiveProperty owl:equivalentClass owl:SymmetricProperty Header Ontology Information owl:imports owl:FunctionalProperty owl:priorVersion owl:inverseFunctionalProperty owl:backwardCompatibleWith owl:incompatibleWith 16.1 OWL Lite Constructs
16.2 OWL Lite Restrictions • OWL Lite • Subset of OWL Full • Goal • Lessen tool requirements • Provide basic functionality • Maintain simplicity • Maintain decidability • Restrictions • Values, resources, constructsonly belong to 1 OWL concept • All classes must be typed as OWL classes • All properties must be typed as OWL properties (object, datatype, annotation, or ontology) • Starred items in diagram cannot be mixed (must be disjoint)
Category OWL Full Construct Restriction Category OWL Full Construct Restriction Class/Type rdf:type Object of statements must be named classes or restrictions Local Property Restrictions owl:allValuesFrom Objects must be named classes or named datatypes Cardinality owl:minCardinality Value limited to 0 or 1 owl:someValuesFrom Objects must be named classes or named datatypes owl:maxCardinality Value limited to 0 or 1 owl:cardinality Value limited to 0 or 1 Global Property Restrictions rdfs:domain Objects must be named classes Set Operators owl:intersectionOf Used only on lists with length >1 containing only named classes and restrictions rdfs:range Objects must be named classes owl:inverse FunctionalProperty Cannot be defined for datatype properties Derived Classes owl:equivalentClass Subjects must be named classes Objects must be named classes rdfs:subclassOf Subjects must be named classes Objects must be named classes 16.2 OWL Lite Restrictions cont’d