HOME

TheInfoList



OR:

In
knowledge representation Knowledge representation (KR) aims to model information in a structured manner to formally represent it as knowledge in knowledge-based systems whereas knowledge representation and reasoning (KRR, KR&R, or KR²) also aims to understand, reason, and ...
,
ontology components Contemporary Ontology (information science), ontologies share many structural similarities, regardless of the ontology language in which they are expressed. Most ontologies describe individuals (instances), classes (concepts), attributes, and rel ...
and
ontology engineering In computer science, information science and systems engineering, ontology engineering is a field which studies the methods and methodologies for building Ontology (information science), ontologies, which encompasses a representation, formal nami ...
, including for
object-oriented programming Object-oriented programming (OOP) is a programming paradigm based on the concept of '' objects''. Objects can contain data (called fields, attributes or properties) and have actions they can perform (called procedures or methods and impl ...
and
design A design is the concept or proposal for an object, process, or system. The word ''design'' refers to something that is or has been intentionally created by a thinking agent, and is sometimes used to refer to the inherent nature of something ...
, is-a (also written as is_a or is a) is a subsumptive relationship between abstractions (e.g.,
types Type may refer to: Science and technology Computing * Typing, producing text via a keyboard, typewriter, etc. * Data type, collection of values used for computations. * File type * TYPE (DOS command), a command to display contents of a file. * Ty ...
, classes), wherein one
class Class, Classes, or The Class may refer to: Common uses not otherwise categorized * Class (biology), a taxonomic rank * Class (knowledge representation), a collection of individuals or objects * Class (philosophy), an analytical concept used d ...
''A'' is a subclass of another class ''B'' (and so ''B'' is a superclass of ''A''). In other words, type A is a subtype of type B when A's
specification A specification often refers to a set of documented requirements to be satisfied by a material, design, product, or service. A specification is often a type of technical standard. There are different types of technical or engineering specificati ...
implies B's specification. That is, any object (or class) that satisfies A's specification also satisfies B's specification, because B's specification is weaker. For example, a cat 'is a animal, but not vice versa. All cats are animals, but not all animals are cats. Behaviour that is relevant to all animals is defined on an animal class, whereas behaviour that is relevant only for cats is defined in a cat class. By defining the cat class as 'extending' the animal class, all cats 'inherit' the behaviour defined for animals, without the need to explicitly code that behaviour for cats.


Related concepts

The ''is-a'' relationship is to be contrasted with the ''
has-a In database design, object-oriented programming and Object-oriented design, design, has-a (has_a or has a) is a Object composition, composition relationship where one object (often called the constituted object, or part/constituent/member object) ...
'' (''has_a'' or ''has a'') relationship between types (classes); confusing the relations ''has-a'' and ''is-a'' is a common error when designing a model (e.g., a
computer program A computer program is a sequence or set of instructions in a programming language for a computer to Execution (computing), execute. It is one component of software, which also includes software documentation, documentation and other intangibl ...
) of the real-world relationship between an object and its subordinate. The ''is-a'' relationship may also be contrasted with the '' instance-of'' relationship between objects (instances) and types (classes): see
Type–token distinction The type–token distinction is the difference between a ''type'' of objects (analogous to a ''class'') and the individual ''tokens'' of that type (analogous to ''instances''). Since each type may be instantiated by multiple tokens, there are g ...
. To summarize the relations, there are: *
hyperonym Hypernymy and hyponymy are the wikt:Wiktionary:Semantic relations, semantic relations between a generic term (''hypernym'') and a more specific term (''hyponym''). The hypernym is also called a ''supertype'', ''umbrella term'', or ''blanket term ...
hyponym Hypernymy and hyponymy are the wikt:Wiktionary:Semantic relations, semantic relations between a generic term (''hypernym'') and a more specific term (''hyponym''). The hypernym is also called a ''supertype'', ''umbrella term'', or ''blanket term ...
(supertype/superclass–subtype/subclass) relations between types (classes) defining a taxonomic hierarchy, where ** for a subsumption relation: a hyponym (subtype, subclass) has a ''type-of'' (''is-a'') relationship with its hyperonym (supertype, superclass); * holonymmeronym (whole/entity/container–part/constituent/member) relations between types (classes) defining a possessive hierarchy, where ** for an aggregation (i.e. without ownership) relation: *** a holonym (whole) has a ''has-a'' relationship with its meronym (part), ** for a
composition Composition or Compositions may refer to: Arts and literature *Composition (dance), practice and teaching of choreography * Composition (language), in literature and rhetoric, producing a work in spoken tradition and written discourse, to include ...
(i.e. with ownership) relation: *** a meronym (constituent) has a '' part-of'' relationship with its holonym (entity), ** for a
containment Containment was a Geopolitics, geopolitical strategic foreign policy pursued by the United States during the Cold War to prevent the spread of communism after the end of World War II. The name was loosely related to the term ''Cordon sanitaire ...
See also Containment (computer programming). relation: *** a meronym (member) has a ''member-of'' relationship with its holonym (
container A container is any receptacle or enclosure for holding a product used in storage, packaging, and transportation, including shipping. Things kept inside of a container are protected on several sides by being inside of its structure. The term ...
); * concept–object (type–token) relations between types (classes) and objects (instances), where ** a token (object) has an '' instance-of'' relationship with its type (class).


See also

*
Inheritance (object-oriented programming) In object-oriented programming, inheritance is the mechanism of basing an Object (computer science), object or Class (computer programming), class upon another object (Prototype-based programming, prototype-based inheritance) or class (Class-base ...
* Liskov substitution principle (in
object-oriented programming Object-oriented programming (OOP) is a programming paradigm based on the concept of '' objects''. Objects can contain data (called fields, attributes or properties) and have actions they can perform (called procedures or methods and impl ...
) * Subsumption * Is-a ** Hypernymy (and supertype) **
Hyponymy Hypernymy and hyponymy are the wikt:Wiktionary:Semantic relations, semantic relations between a generic term (''hypernym'') and a more specific term (''hyponym''). The hypernym is also called a ''supertype'', ''umbrella term'', or ''blanket term ...
(and subtype) *
Has-a In database design, object-oriented programming and Object-oriented design, design, has-a (has_a or has a) is a Object composition, composition relationship where one object (often called the constituted object, or part/constituent/member object) ...
**
Holonymy In linguistics, meronymy () is a semantic relation between a meronym denoting a part and a holonym denoting a whole. In simpler terms, a meronym is in a ''part-of'' relationship with its holonym. For example, ''finger'' is a meronym of ''hand, ...
**
Meronymy In linguistics, meronymy () is a semantic relation between a meronym denoting a part and a holonym denoting a whole. In simpler terms, a meronym is in a ''part-of'' relationship with its holonym. For example, ''finger'' is a meronym of ''hand, ...


Notes


Citations

{{reflist, 30em


References

* 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

ER 1996: 42-57 Object-oriented programming Knowledge representation Abstraction Articles with example Java code