Chapter 15
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
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”
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
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
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
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
Instantiating Using RDF Descriptions rdf:Description ( ) creates an individual ▫rdf:ID “names” individual with URIref Not required ▫rdf:type attribute assigns individual to class Syntax ▫
Instantiating Using Class Name Class typedNode syntax ( ) creates an individual ▫Can only specify one class this way ▫Can specify additional classes using rdf:type Syntax ▫ Example ▫ ▫“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)
Associating Property Values at Instantiation Properties can be assigned when instance is created using rdf:ID Syntax ▫ instanceReferences Example ▫ Diner
Describing Existing Individuals Properties can be assigned for an existing individual after creation using rdf:about Syntax ▫ instanceReferences Example ▫ Diner
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
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 ▫ Example ▫
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 ▫ Example ▫
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 ▫ members Example ▫
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
Chapter 16
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
16.1 OWL Lite Constructs GroupConstruct Class/Property Equivalency owl:equivalentClass owl:equivalentProperty Individual Equivalency owl:sameAs owl:differentFrom owl:AllDifferent/ owl:distinctMembers Property Characteristics owl:inverseOf owl:TransitiveProperty owl:SymmetricProperty owl:FunctionalProperty owl:inverseFunctionalProperty GroupConstruct Property Type Restrictions owl:allValuesFrom owl:someValuesFrom owl:intersectionOf Cardinality Restrictions owl:minCardinality (0 or 1) owl:maxCardinality (0 or 1) owl:cardinality (0 or 1) Derived Classes rdfs:subClassOf owl:equivalentClass Header Ontology Information owl:imports owl:priorVersion owl:backwardCompatibleWith owl:incompatibleWith
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, constructs only 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)
16.2 OWL Lite Restrictions cont’d CategoryOWL Full ConstructRestriction Local Property Restrictions owl:allValuesFrom Objects must be named classes or named datatypes owl:someValuesFrom Objects must be named classes or named datatypes Global Property Restrictions rdfs:domain Objects must be named classes rdfs:range Objects must be named classes owl:inverse FunctionalProperty Cannot be defined for datatype properties