Is-a - Enciclopedia

En la representación del conocimiento, los componentes de la ontología y la ingeniería de la ontología, incluyendo para la programación y el diseño orientado a objetos, la relación "es-un" (también escrita como is_a o is a) es una relación subsumptiva entre abstracciones (por ejemplo, tipos, clases), donde una clase A es una subclase de otra clase B (y por lo tanto B es una superclase de A).

En otras palabras, el tipo A es un subtipo del tipo B cuando la especificación de A implica la especificación de B. Es decir, cualquier objeto (o clase) que satisface la especificación de A también satisface la especificación de B, porque la especificación de B es más débil.

Por ejemplo, un gato 'es-un' animal, pero no a la inversa. Todos los gatos son animales, pero no todos los animales son gatos.

El comportamiento que es relevante para todos los animales se define en una clase de animal, mientras que el comportamiento que solo es relevante para los gatos se define en una clase de gato. Al definir la clase de gato como 'extender' la clase de animal, todos los gatos 'heredan' el comportamiento definido para los animales, sin necesidad de codificar explícitamente ese comportamiento para los gatos.

Conceptos relacionados
La relación "es-un" debe contrastarse con la relación "tiene-un" (has_a o has a) entre tipos (clases); confundir las relaciones "tiene-un" y "es-un" es un error común al diseñar un modelo (por ejemplo, un programa informático) de la relación real entre un objeto y su subordinado. La relación "es-un" también puede contrastarse con la relación "instancia-de" entre objetos (instancias) y tipos (clases): ver la distinción entre tipo-tokens.

Para resumir las relaciones, hay:

- Relaciones hiperónimo-hipónimo (supertipo/superclase-subtipo/subclase) entre tipos (clases) que definen una jerarquía taxonómica, donde
para una relación de subsumción: un hipónimo (subtipo, subclase) tiene una relación "es-un" con su hiperónimo (supertipo, superclase);
- Relaciones holónimo-merónimo (ente/contenedor-partes/constituyentes/miembros) entre tipos (clases) que definen una jerarquía posesiva, donde
para una relación de agregación (es decir, sin propiedad):
un holónimo (ente) tiene una relación "tiene-un" con su merónimo (parte),
para una relación de composición (es decir, con propiedad):
un merónimo (constituyente) tiene una relación "es-parte-de" con su holónimo (ente),
para una relación de contención:
un merónimo (miembro) tiene una relación "es-miembro-de" con su holónimo (contenedor);
- Relaciones concepto-objeto (tipo-token) entre tipos (clases) y objetos (instancias), donde
un token (objeto) tiene una relación "instancia-de" con su tipo (clase).

Ver también
- Herencia (programación orientada a objetos)
- Principio de sustitución de Liskov (en programación orientada a objetos)
- Subsumción
- Es-un
- Hiperónimo (y supertipo)
- Hipónimo (y subtipo)
- Tiene-un
- Holónimo
- Merónimo

Notas
Citaciones
Referencias
Ronald J. Brachman; "What IS-A is and isn't. An Analysis of Taxonomic Links in Semantic Networks". IEEE Computer, 16 (10); October 1983
Jean-Luc Hainaut, Jean-Marc Hick, Vincent Englebert, Jean Henrard, Didier Roland: Understanding Implementations of IS-A Relations. ER 1996: 42-57