En la representación del conocimiento , particularmente en la Web Semántica , una metaclase es una clase cuyas instancias pueden ser, en sí mismas, clases. De manera similar a su función en los lenguajes de programación , las metaclases en los lenguajes de ontología pueden tener propiedades que, de otro modo, solo serían aplicables a individuos, al tiempo que conservan la capacidad de la misma clase de clasificarse en una jerarquía de conceptos. Esto permite que los razonadores semánticos infieran el conocimiento sobre las instancias de esas metaclases utilizando declaraciones realizadas en la metaclase. De este modo, las metaclases mejoran la expresividad de las representaciones del conocimiento de una manera que puede resultar intuitiva para los usuarios.
Si bien las clases son adecuadas para representar una población de individuos, las metaclases pueden, como una de sus características, usarse para representar la dimensión conceptual de una ontología . [1] Las metaclases son compatibles con el lenguaje de ontología web (OWL) y el vocabulario de modelado de datos RDFS . Las metaclases a menudo se modelan al establecerlas como el objeto de las reclamaciones que involucran rdf:type y rdfs:subClassOf, propiedades integradas comúnmente denominadas instancia de y subclase de . Instancia de implica que el sujeto de la reclamación es una instancia, es decir, un individuo que es miembro de una clase. Subclase de implica que el sujeto es una clase. En el contexto de instancia de y subclase de , la diferencia clave entre metaclases y clases ordinarias es que las metaclases son el objeto de las reclamaciones de instancia de utilizadas en una clase, mientras que las clases ordinarias no son objetos de tales reclamaciones. (por ejemplo, en una reclamación , Bob es el sujeto y una instancia, mientras que el objeto, Humano, es una clase ordinaria; pero una reclamación adicional hace que "Especie animal" sea una metaclase porque tiene un miembro, "Humano", que también es una clase).Bob instance of Human
Human instance of Animal species
OWL 2 DL admite metaclases mediante una característica llamada juego de palabras, [2] en la que una entidad se interpreta como dos tipos diferentes de cosas (una clase y un individuo) según su contexto sintáctico. Por ejemplo, mediante el juego de palabras, una ontología podría tener una jerarquía de conceptos como , y . En este caso, la entidad con el juego de palabras sería águila real, porque se representa como una clase (segunda reivindicación) y una instancia (tercera reivindicación); mientras que la metaclase sería especie, ya que tiene una instancia que es una clase. El juego de palabras también permite que otras propiedades que de otro modo serían aplicables solo a instancias ordinarias se utilicen directamente en las clases, por ejemplo "águila real estado de conservación preocupación menor ". [3]Harry the eagle instance of golden eagle
golden eagle subclass of bird
golden eagle instance of species
Habiendo surgido de los campos de la representación del conocimiento , la lógica descriptiva y la ontología formal , los lenguajes de la Web Semántica tienen una relación más cercana con la ontología filosófica que los lenguajes de programación convencionales como Java o Python . En consecuencia, la naturaleza de las metaclases está informada por nociones filosóficas como objetos abstractos , lo abstracto y lo concreto , y la distinción tipo-muestra . Las metaclases permiten que los conceptos se interpreten como muestras de otros conceptos mientras conservan su estado ontológico como tipos. Esto permite que los tipos se enumeren, al tiempo que se preserva la capacidad de heredar de los tipos. Por ejemplo, las metaclases podrían permitir que un razonador de máquina infiera a partir de una ontología amigable para humanos cuántos elementos hay en la tabla periódica o, dado que el número de protones es una propiedad de los elementos químicos y los isótopos son una subclase de elementos, cuántos protones existen en el isótopo hidrógeno-2 .
Las metaclases a veces se organizan por niveles, de manera similar a la simple teoría de tipos [4] donde las clases que no son metaclases se asignan al primer nivel, las clases de clases en el primer nivel están en el segundo nivel, las clases de clases en el segundo nivel en el siguiente y así sucesivamente. [5]
Siguiendo la distinción entre tipo y token , los objetos del mundo real, como Abraham Lincoln o el planeta Marte , se reagrupan en clases de objetos similares. Se dice que Abraham Lincoln es una instancia de humano y Marte es una instancia de planeta. Se trata de una especie de relación es- un. Las metaclases son clases de clases, como por ejemplo el concepto de nucleido . En química, los átomos se clasifican a menudo como elementos y, más específicamente, isótopos . El vaso de agua que bebimos por última vez tiene muchos átomos de hidrógeno, cada uno de los cuales es una instancia de hidrógeno . El hidrógeno en sí mismo, una clase de átomos, es una instancia de nucleido . Nuclide es una clase de clases, por lo tanto, una metaclase.
En RDF , la propiedad rdf:type se utiliza para indicar que un recurso es una instancia de una clase. [6] Esto permite crear metaclases fácilmente utilizando rdf:type de manera similar a una cadena. [ cita requerida ] [ dudoso – discutir ] Por ejemplo, en las dos tripletas
Harry el águila rdf:tipo águila realÁguila real rdf:especie tipo
La especie de recurso es una metaclase, [ dudoso – discutir ] porque se usa águila real como clase en la primera declaración y se dice que la clase águila real es una instancia de la clase especie en la segunda declaración.
RDF también proporciona rdf:Property como una forma de crear propiedades más allá de las definidas en el vocabulario integrado. Las propiedades se pueden utilizar directamente en metaclases, por ejemplo, " cantidad de especies 8,7 millones ", donde cantidad es una propiedad definida mediante rdf:Property y especie es una metaclase según el ejemplo anterior.
RDFS , una extensión de RDF, introdujo rdfs:Class y rdfs:subClassOf y enriqueció la forma en que los vocabularios pueden clasificar conceptos. [7] [8] Mientras que rdf:type permite que los vocabularios representen instanciación , la propiedad rdfs:subClassOf permite que los vocabularios representen subsunción . De este modo, RDFS hace posible que los vocabularios representen taxonomías , también conocidas como jerarquías de subsunción o jerarquías de conceptos, lo que es una adición importante a la distinción entre tipo y token que RDF hizo posible.
Cabe destacar que el recurso rdfs:Class es una instancia de sí mismo, [7] lo que demuestra tanto el uso de metaclases en la implementación interna del lenguaje como un uso reflexivo de rdf:type . RDFS es su propio metamodelo [9]
En algunas versiones de OWL como OWL1 -DL, las entidades pueden ser clases o instancias, pero no pueden ser ambas. Esta limitación prohíbe las metaclases y el metamodelado . [10] Este no es el caso en la versión completa de OWL1, pero esto permite que el modelo sea computacionalmente indecidible. [11] En OWL2 , las metaclases se pueden implementar con punning , que es una forma de tratar las clases como si fueran individuos. [2] También se han propuesto y utilizado otros enfoques para verificar las propiedades de las ontologías a un nivel meta. [12]
OWL 2 admite metaclases a través de una característica llamada juego de palabras . En las metaclases implementadas por juego de palabras, el mismo sujeto se interpreta como dos tipos de cosas fundamentalmente diferentes (una clase y un individuo) según su contexto sintáctico. Esto es similar a un juego de palabras en lenguaje natural, donde se enfatizan diferentes sentidos de la misma palabra para ilustrar un punto. A diferencia del lenguaje natural, donde los juegos de palabras se usan típicamente para efectos cómicos o retóricos, el objetivo principal del juego de palabras en las tecnologías de la Web Semántica es hacer que los conceptos sean más fáciles de representar, más cercanos a cómo se discuten en el habla cotidiana o la literatura académica.
En el editor de ontologías Protégé , las metaclases son plantillas para otras clases que son sus instancias. [13]
Algunas ontologías como la del proyecto Cyc AI clasifican clases y metaclases. [5] Las clases se dividen en clases de orden fijo y clases de orden variable . En el caso de las clases de orden fijo, se atribuye un orden para las metaclases midiendo la distancia a los individuos con respecto al número de triples de "instancia de" que son necesarios para encontrar un individuo. Las clases que no son metaclases son clases de individuos, por lo que su orden es "1" ( clases de primer orden ). El orden de las metaclases que son clases de clases de primer orden es "2" ( clases de segundo orden ), y así sucesivamente. Las metaclases de orden variable, por otro lado, pueden tener instancias; un ejemplo de metaclase de orden variable es la clase de todas las clases de orden fijo.