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);
*
holonym–
meronym (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