Jump to content

Metaclass (Semantic Web)

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by TomT0m (talk | contribs) at 14:16, 22 April 2015 (OWL2 full don't need punning). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

In the Semantic Web, a metaclass is a class whose instances are classes. Metaclasses are supported in the ontology language OWL and the data-modeling vocabulary RDFS. Similar to their role in programming languages, metaclasses in Semantic Web languages can have properties otherwise applicable only to individuals, while retaining the same class's ability to be classified in a concept hierarchy. This enables knowledge about instances of those metaclasses to be inferred by semantic reasoners using statements made in the metaclass. Metaclasses thus enhance the expressivity of knowledge representations in a way that can be intuitive for users.

Metaclasses are often modeled by setting them as the object of claims involving rdf:type and rdfs:subClassOf—built-in properties commonly referred to as instance of and subclass of. Instance of entails that the subject of the claim is an instance, i.e. an individual that is a member of a class. Subclass of entails that the subject is a class. In the context of instance of and subclass of, the key difference between metaclasses and ordinary classes is that metaclasses are the object of instance of claims used on a class, but ordinary classes are not.

OWL 2 DL supports metaclasses by a feature called punning, in which one entity is interpreted as two different types of thing—a class and an individual—depending on its syntactic context. For example, through punning, an ontology could have a concept hierarchy such as "Harry the eagle instance of golden eagle", "golden eagle subclass of bird", and "golden eagle instance of species". In this case, the punned entity would be golden eagle, because it is represented as a class and an instance; whereas the metaclass would be species, as it has an instance that is a class. Punning also enables other properties that would otherwise be applicable only to ordinary instances to be used directly on classes, for example "golden eagle conservation status least concern."

Having arisen from the fields of knowledge representation, description logic and formal ontology, Semantic Web languages have a closer relationship to philosophical ontology than do conventional programming languages such as Java or Python. Accordingly, the nature of metaclasses is informed by philosophical notions such as abstract objects, the abstract and concrete, and type-token distinction. Metaclasses permit concepts to be construed as tokens of other concepts while retaining their ontological status as types. This enables types to be enumerated over, while preserving the ability to inherit from types. For example, metaclasses could allow a machine reasoner to infer from a human-friendly ontology how many elements are in the periodic table, or, given that number of protons is a property of chemical element and isotopes are a subclass of elements, how many protons exist in the isotope hydrogen-2.

Examples

Following the type-token distinction, real world objects such as Abraham Lincoln or the planet Mars are regrouped into classes of similar objects. Abraham Lincoln is said to be an instance of human, and Mars is an instance of planet. This is a kind of is-a relationship. Metaclasses are class of classes, such as for example the nuclide concept. In chemistry, atoms are often classified as elements and, more specifically, isotopes. The glass of water one last drank has many hydrogen atoms, is of which is an instance of hydrogen. Hydrogen itself, a class of atoms, is an instance of nuclide. Nuclide is a class of classes, hence a metaclass.

Implementations

RDF and RDFS

In RDF, the rdf:type property is used to state that a resource is an instance of a class.[1] This enables metaclasses to be easily created by using rdf:type in a chain-like fashion. For example, in the two triples

Harry the eagle rdf:type golden eagle
golden eagle rdf:type species

the resource species is a metaclass, because golden eagle is used as a class in the first statement and the class golden eagle is said to be an instance of the class species in the second statement.

RDF also provides rdf:Property as a way to create properties beyond those defined in the built-in vocabulary. Properties can be used directly on metaclasses, for example "species quantity 8.7 million", where quantity is a property defined via rdf:Property and species is a metaclass per the preceding example above.

RDFS, an extension of RDF, introduced rdfs:Class and rdfs:subClassOf and enriched how vocabularies can classify concepts.[2][3] Whereas rdf:type enables vocabularies to represent instantiation, the property rdfs:subClassOf enables vocabularies to represent subsumption. RDFS thus makes it possible for vocabularies to represent taxonomies, also known as subsumption hierarchies or concept hierarchies, which is an important addition to the type–token distinction made possible by RDF.

Notably, the resource rdfs:Class is an instance of itself,[2] demonstrating both the use of metaclasses in the language's internal implementation and a reflexive usage of rdf:type. RDFS is its own metamodel[4]

OWL

In some OWL flavors like OWL1-DL, entities can be either classes or instances, but cannot be both. This limitations forbids metaclasses and metamodeling.[5] This is not the case in the OWL1 full flavor, but this allows the model to be computationally undecidable.[6] In OWL2, metaclasses can implemented with punning, that is a way to treat classes as if they were individuals.[7] Other approaches have also been proposed and used to check the properties of ontologies at a meta level.[8]

Punning

OWL 2 supports metaclasses through a feature called punning. In metaclasses implemented by punning, the same subject is interpreted as two fundamentally different types of thing—a class and an individual—depending on its syntactic context. This is similar to a pun in natural language, where different senses of the same word are emphasized to illustrate a point. Unlike in natural language, where puns are typically used for comedic or rhetorical effect, the main goal of punning in Semantic Web technologies is to make concepts easier to represent, closer to how they are discussed in everyday speech or academic literature.

Protégé

In the ontology editor Protégé, metaclasses are templates for other classes who are their instances.[9]

See also

References

  1. ^ "RDF Vocabulary Description Language 1.0: RDF Schema. Section 3.3, rdf:type". World Wide Web Consortium. 2004-02-10. {{cite web}}: Cite uses deprecated parameter |authors= (help)
  2. ^ a b "RDF Vocabulary Description Language 1.0: RDF Schema. Section 2.2, rdfs:Class". World Wide Web Consortium. 2004-02-10. {{cite web}}: Cite uses deprecated parameter |authors= (help)
  3. ^ "RDF Vocabulary Description Language 1.0: RDF Schema. Section 3.4, rdfs:subClassOf". World Wide Web Consortium. 2004-02-10. {{cite web}}: Cite uses deprecated parameter |authors= (help)
  4. ^ Template:Cite article
  5. ^ "OWL Web Ontology Language Reference". w3c. 2004. pp. Appendix E. Rules of Thumb for OWL DL ontologies. Retrieved 7 March 2015.
  6. ^ Boris Motik (2007). "On the properties of metamodeling in OWL" (PDF). Journal of Logic and Computation. doi:10.1093/logcom/exm027.
  7. ^ "OWL 2 Web Ontology Language New Features and Rationale (Second Edition)". w3c. Retrieved 7 March 2015.
  8. ^ Integrated metamodeling and diagnosis in OWL 2 (PDF). international semantic web conference. Retrieved 7 March 2015.
  9. ^ Rose Dieng and Olivier Corby (ed.). "The knowledge model of protégé 2000" (PDF). Methods, Models, and Tools proceedings. Knowledge engineering and knowledge management. Retrieved 7 March 2015. {{cite conference}}: Unknown parameter |booktitle= ignored (|book-title= suggested) (help) §6.1 summary of the RDFS model