560 likes | 590 Views
RDFS. Chapter 9. 9 RDFS (RDF Schema). RDFS Part of the Ontological Primitive layer Adds features to RDF Provides standard vocabulary for describing concepts (meta-vocabulary) Chapter Overview of RDFS features Introduces classes, individuals, and properties. 9.1 RDFS Overview.
E N D
RDFS Chapter 9
9 RDFS (RDF Schema) • RDFS • Part of the Ontological Primitive layer • Adds features to RDF • Provides standard vocabulary for describing concepts (meta-vocabulary) • Chapter • Overview of RDFS features • Introduces classes, individuals, and properties
9.1 RDFS Overview • RDFS (RDF Schema) • Domain-neutral lightweight schema language • Provides basic structures: classes & properties • Builds on RDF • Specification • http://www.w3.org/TR/rdf-schema/ • Namespace • Prefix: rdfs • Name: http://www.w3.org/2000/01/rdf-schema#
9.2 RDFS Features • RDFS (RDF Schema) • Defines additional modeling primitives • Extends RDF using a formal class concept • Permits restricting properties and classes • Uses RDF/XML syntax • RDFS vocabulary • Collection of class & property descriptions • Can be combined • Describes domain using RDF resources that define characteristics of other resources • Managed by decentralized communities of interest
9.3 RDFS Classes • RDFS • Extends the RDF type concept • Provides formal mechanisms for classes which represent concepts • Predefines several core classes
9.3.1 RDFS Class Concept • RDFS classes • Sets used to describe concepts as categories of resources, typically for a particular domain • Templates used to instantiate objects • Have associated resources (instances of the class) • Resources can be multi-classed • Set of all instances called “class extension” • Similar to OOP classes (but no behavior) • Properties are not tied to specific classes • More like entities in data models or RDBMS tables
9.3.2 Predefined RDFS Classes • RDFS supports formal vocabularies by formalizing the concepts of • Resource • Class • Property • Datatype • Literal • XML literal using predefined resources
9.3.2.1 Defining RDFS Classes • rdfs:Class type • Is defined as an rdf:type • Establishes class membership • Superseded by OWL classes • Usually uses the typed node syntax • Classes are RDF resources whose rdf:type is “rdfs:Class” • RDFS uses RDF to define itself
9.3.2.2 RDFS Resources • rdfs:Resource class • Built-in class • Root class of all RDF resources and classes • Similar to Java Object class • All RDFS classes and RDF resources are subclasses of rdfs:Resource
9.3.2.3 RDF Properties • rdf:Property class • Built-in class • Root class of all RDF & RDFS properties • Similar to Java Property class • RDFS uses the RDF definition of properties • Use rdf prefix, not rdfs • All RDFS properties are instances of the rdf:Property class
9.3.2.4 RDFS Classes • rdfs:Class class • All resources that have an rdf:type of rdfs:class are RDFS classes • Defined recursively • rdfs:Class resource is an rdfs:Class • Instances are classes • Root class of all RDFS classes • Similar to Java Class class
9.3.2.5 RDFS Literals • rdfs:Literal class • Set of atomic plain and typed literal values • Can be used to specify restriction that property’s values (range) must be string literals • Instances are literal values such as strings and integers • Used by OWL directly as a datatype • Implicitly part of all ontologies • All RDFS literals are instances of rdfs:Literal
9.3.2.6 XML Literals • rdf:XMLLiteral class • Subclass of rdfs:Literal • Represents XML strings within RDF statements • Only datatype predefined in RDF • Use rdf prefix, not rdfs • Can also include language identifiers • Subset of XMLS datatypes
9.3.2.7 RDFS Datatype Class • Datatypes define subsets of literal values that have associated semantics • rdfs:Datatype class • Parent class for all RDFS datatypes • Instances of the class are also implicitly subclasses of rdfs:Literal • Provide mechanism for referring to XMLS datatypes • Example • &xsd;nonNegativeInteger is instance of rdfs:Datatype and subclass of rdfs:Literal • Although legal, defining new instances discouraged
9.4 Individuals • Individuals • Instances of user-defined classes • Associated to classes using rdf:type property • Can be assigned to one or more classes • Covered in more detail in Chapter 15
9.5 Properties • RDFS enhances RDF Properties, allowing the specification of restrictions or constraints • Limit the values a property can have • Limit which properties a resource can have • RDFS provides vocabulary for • Core properties • Clarification properties • Container descriptions • Documentation properties
9.5.1 Core Properties • Core properties provided by RDFS • rdf:type • Relate individuals to classes • rdfs:subClassOf • Relate classes to classes • rdfs:subPropertyOf • Relate properties to properties • rdfs:range & rdfs:domain • Relate properties to classes • All properties are instances of rdf:Property
9.5.1.1 RDF Type Property • rdf:Type property • Asserts that an individual is a member of a particular class • Domain: any Resource • Range: Instance of rdfs:Class
9.5.1.2 Specializing Classes • Classes are organized into generalization/ specialization hierarchy (hyponymy) • rdfs:subClassOf property • Defines a specialization relationship • Specified in the subclass • Value is the superclass • Domain: Instance of rdfs:Class • Range: Instance of rdfs:Class • Similar to subset relation between classes • A class can be a subclass of multiple superclasses
9.5.1.2 Specializing Classes cont’d • Syntax • <rdfs:Class rdfID="subclassURIref"> <rdfs:subClassOf rdf:resource="superclassURIref"/></rdfs:Class> • Example • <rdfs:Class rdfID="spaghettiDish"> <rdfs:subClassOf rdf:resource="#pastaDish"/></rdfs:Class> • All classes automatically subclass of rdfs:Resource • Subclasses “inherit” superclass’ property restrictions • Transitive property • C is a subclass of B ∧ B is a subclass of A → C is a subclass of A • Instance of subclass has properties of both subclass and superclass
9.5.1.3 Specializing Properties • Properties can also be organized into hierarchies • rdfs:subPropertyOf property • Defines specialization relationship b/w properties • Specified in the subproperty • Value is the superproperty • Domain: Instance of rdf:Property • Range: Instance of rdf:Property • Subproperties can have multiple superproperties • Transitive, like rdf:subClassOf • Example • <rdf:Propertyrdf:ID="faxNumber"> <rdfs:subPropertyOfrdf:resource="#phoneNumber"/></rdf:Property>
9.5.1.4 Restricting Property Values • rdfs:Range property • Restricts values of properties to classes or datatypes/data ranges • Applies to all uses of the property • Domain: Instance of rdf:Property • Range: Instance of rdfs:Class • Example: • <rdf:Propertyrdf:ID="ownedBy"> <rdfs:rangerdf:resource="#Person"/></rdf:Property> // Only a Person can own something • <Restaurant rdf:ID="JoesPizzaria"> <restaurantName>Joe’s Pizzaria</restaurantName> <ownedByrdf:resource="#Person123"/></Restaurant> // Valid only if Person123 is an instance of Person
9.5.1.4 Restricting Values cont’d • Use global property restrictions with care • Might want something to be owned by a company! • Recommended: make property name specific • “restaurantOwnerIndividual”, not “ownedBy” • Range restrictions should not be separate URIs • Causes scalability & usability difficulties • Multiple range restrictions can be specified • If 2 or more rdfs:range properties specified, resources used as property values must be instances of all (intersection of) classes specified in rdfs:range properties • Can infer that individual is member of a class if it is the value of a property that has a range restriction
9.5.1.5 Restricting Property Subjects • rdfs:domain property • Restricts the subject of a property to instances of a class, or to a specified intersection of classes • Applies to all uses of the property • Domain: Instance of rdf:Property • Range: Instance of rdfs:Class • Example • <rdf:Propertyrdf:ID="ownedBy"> <rdfs:domainrdf:resource="#Restaurant"/></rdf:Property> // Only a Restaurant can be ownedBy something • <Restaurant rdf:ID="JoesPizzaria"> <restaurantName>Joe’s Pizzaria</restaurantName> <ownedByrdf:resource="#Person123"/></Restaurant> // Valid since JoesPizzaria instance of Restaurant
9.5.1.5 Restricting Subjects cont’d • Can infer that individual belongs to class if it’s subject of a property that has a range restriction • Multiple range restrictions can be specified • If 2 or more rdfs:domain properties specified, resources used as property’s subject must be instances of all (intersection of) classes specified in rdfs:domain properties
9.5.2 RDFS Clarification Properties • Clarification properties • Reference related resources (rdf:seeAlso) • Identify a resource’s source (rdf:isDefinedBy) • Non-core properties
9.5.2.1 Referencing Related Resources • rdf:seeAlso property • Identifies a resource that provides additional information about subject • Domain & Range: Instance of rdfs:Resource • Syntax • <rdf:seeAlsordf:resource="referencedURIref"/> • Example • <menu:Pierdf:ID="chocolatePie"> <rdf:seeAlsordf:resource="#frenchSilkPie"/></menu:Pie> • Weak semantics, but occasionally useful
9.5.2.2 Identifying A Resource’s Source • rdfs:isDefinedBy property • Subproperty of rdfs:seeAlso • Relates resource to other resource that defines it • Domain & Range: Instance of rdfs:Resource • Syntax • <rdfs:isDefinedBy rdf:resource="definingURIref"/> • Can be used to explicitly identify the defining RDF vocabulary for a resource • Useful if the URI portion of a resource does not indicate the schema of the resource
9.5.3(.1) RDFS Container Classes • rdfs:Container class • Superclass of the 3 RDFcontainers (Bag, Seq, Alt) • Encapsulates things into groups referenced as a whole • Helps manage description of container types
9.5.3.2&3 Membership Properties • rdfs:ContainerMembershipProperty class • Used to instantiate individual subproperties for accessing members of containers • Subproperties are named rdf:_1, rdf:_2, … rdf:_n • Specific types of rdfs:member property • rdfs:member property • Superproperty of all container membership properties (rdf:_n)
9.5.4 RDFS Documentation Properties • Used to associate human-readable names, labels, and descriptions of resources • rdfs:label & rdfs:comment properties • Can be used by user interface software to provide documentation to developers • Can supply multiple values using xml:lang attributes to support internationalization • Best practice: always label and comment classes and properties
9.5.4.1 Labeling Resources • rdfs:Label property • Provides human-readable version of resource name • Short textual string useful in user interface • Domain: Instance of rdfs:Resource • Range: Instance of rdfs:Literal • Syntax • <rdfs:label>labelString</rdfs:label> • Example • <menu:Dessertrdf:ID="KLP"> <rdfs:label>Key Lime Pie</rdfs:label></menu:Dessert> • Best practice: label everything! Use xml:lang attributes to support labels in other languages
9.5.4.2 Commenting Resources • rdfs:comment property • Used to describe a resource with free-form text • Longer textual string describing the resource • Domain: Instance of rdfs:Resource • Range: Instance of rdfs:Literal • Syntax • <rdfs:comment>commentString</rdfs:comment> • Example • <menu:Dessertrdf:ID="KLP"> <rdfs:comment>Key Lime Pie is a dessert made from milk, juice, and crackers </rdfs:comment></menu:Dessert> • Best practice: use instead of <!-- XML comment -->Comment everything, use xml:lang attribute
9.6 RDFS Summary • RDFS • Provides many of the features required in a Semantic Web language by extending RDF with additional semantic features • Supports specification of limited ontologies through standardization of • Classes • Properties • Individuals • Generalizations • Property restrictions
9.6 RDFS Summary cont’d • Complete example showing most RDFS features <rdfs:Classrdf:ID="KeyLimePie"> <rdfs:label>Key Lime Pie</rdfs:label> <rdfs:comment>This class represents Key lime pies</rdfs:comment> <rdfs:subClassOfrdf:resource="#Dessert"/> <rdfs:subClassOfrdf:resource="#FoodItem"/> </rdfs:Class> <rdf:Propertyrdf:ID="primaryIngredient"> <rdfs:subPropertyOfrdf:resource="#ingredient"/> <rdfs:rangerdf:resource="&rdfs;Literal"/> </rdf:Property> <Pie rdf:ID="KLP"> <primaryIngredient>condensed milk</primaryIngredient> </Pie> <rdfs:Datatyperdf:about="http://www.restaurant.org/calories"> <rdfs:subClassOfrdf:resource="&xsd;positiveInteger"> </rdfs:Datatype>
9.6 Why RDFS is not Enough • RDFS • Adds critical ontological primitives • Provides several features for specifying ontologies • Does not support sufficient property restrictions • No restrictions on cardinality • Provides few descriptors to support inferencing • Can’t conclude that an object belongs to a class based on its property values • Can’t do class unions, complements • OWL provides the missing pieces
Chapter 10 OWL
10(.1) OWL (Web Ontology Language) • OWL • Logical layer • Builds on & extends RDF & RDFS • Adds language features for describing ontologies • Developed to satisfy requirements of Semantic Web • Chapter • Overview of OWL features • Introduces the 3 species • OWL Lite • OWL Full • OWL DL
10.1.1 OWL Definition • OWL • W3C’s recommended ontology language • Used to define an ontology for a particular domain • OWL ontology • Set of axioms describing classes, properties, and relationships between them • RDF/XML used to define conforming instance data
10.1.2 OWL History • OWL evolved from • DARPA Agent Markup Language (DAML) • Ontology Inference Layer (OIL) • Both combined into DAML+OIL • DARPA Agent Markup Language (DAML) • Developed by DARPA & MIT • Defense Advanced Research Projects Agency • Research branch of US Dept of Defense • Initiated Aug 2000 • Led by Dr. James Hendler
10.1.2 OWL History cont’d • Ontology Inference Layer (OIL) • European Union developed in parallel with DAML • DAML+OIL • Merged in March 2001 • Designed to enable agent communication • “Thin layer” on top of RDFS • Starting point for Web Ontology Working Group
10.1.2 OWL History cont’d • W3C WebOnt Working Group • Led by Hendler and Guus Schreiber • Mission • Define a formal semantics to precisely define the meaning of expressions in a language and valid inferences that can be made from those expressions • Use XML syntax and datatypes • Retain compatibility with XML & RDF if possible • OWL adopted by W3C as official recommendation February 10, 2004
10.1.3 OWL Specification • OWL Overview (introduction) • http://www.w3.org/TR/owl-features/ • OWL Guide (good examples) • http://www.w3.org/TR/owl-guide/ • OWL Reference (reference guide) • http://www.w3c.org/TR/owl-ref/ • OWL Semantics and Abstract Syntax (abstruse!) • http://www.w3.org/owl-semantics/
10.1.3 OWL Specification cont’d • OWL Test Cases (used to certify applications) • http://www.w3.org/owl-test/ • OWL Use Cases & Requirements (scenarios) • http://www.w3.org/webont-req • Namespace • Prefix: owl • Name: http://www.w3.org/2002/07/owl# • Mime type: application/rdf+xml
10.1.4 OWL Features • OWL • Provides features that extend RDFS • Supports better inferencing • Enables the creation of domain-agile tools and reasoners to provide new functionality • Transitions effort from coding complex software to representing information
10.2 OWL Species • Three dialects (or species) of OWL • OWL Full • OWL DL • OWL Lite • Each supports a different group of users that need a different level of expressional capability
10.2.1 OWL Full • Complete set of all language constructs • Superset of RDF • All RDF documents are OWL Full documents • No restrictions • RDF statements can be mixed in as desired • No guarantee of decidability! • NP-complete problem