A basic concept of probabilistic term logic, InheritanceLinks specify is-a relationships. In the OpenCog system, basic InheritanceLinks are used to specify both intensional (is-a) relationships, and also extensional (is-an-instance-of) relationships.

Example usage:

InheritanceLink   monkey animal


specifies that a monkey is an animal.

Because InheritanceLinks mix both extensional and intensional relations, they are useful only for heuristic reasoning. InheritenceLinks will typically appear during natural language processing, as normal human discourse tends to mix up intensional and extensional characteristics, making proper interpretation somewhat ambiguous.

## Extensional vs Intensional

Philosophers of logic have extensively debated the relationship between extensional inheritance (inheritance between sets based on their members) and intensional inheritance (inheritance between entity-types based on their properties). We will often use the short notion ExtInhLink and IntInhLink, for example:

ExtInhLink <0.0>
ConceptNode "whale"
ConceptNode "fish"

IntInhLink <0.6>
ConceptNode "whale"
ConceptNode "fish"


indicating that the fish and whale sets have common properties but no common members.

The InheritanceLink can be understood to be equivalent to an EvaluationLink for the predicate "be" (or is-a"). So, for example:

 EvaluationLink
PredicateNode "be"
ConceptNode "Socrates"
ConceptNode "man"


is equivalent to:

 InheritanceLink
ConceptNode "Socrates"
ConceptNode "man"


They are no PLN rules that perform this equivalence transformation (maybe it should be taken care of at the language processing level?).

## As syntactic sugar

InheritanceLinks can also be used to express the un-sugared equivalent of a convenience node definition. Thus, for example, in linguistics, words, sentences and parses are the natural types used in discussing natural language. Thus, it is convenient to define new atoms types for this purpose: the WordNode, SentenceNode and ParseNode. These convenience types help keep natural-language hypergraphs smaller and simpler. The have an equivalent form in terms of an InheritanceLink.

So, for example

WordNode "disestablishmentarianism"


should be taken as being equivalent to

InheritanceLink
ConceptNode "disestablishmentarianism"
ConceptNode "DefinedLinguisticConcept-Word"


This can be, in turn, understood as

EvaluationLink
ConceptNode "disestablishmentarianism"
ConceptNode "DefinedLinguisticConcept-Word"


which just says that "disestablishmentarianism" is a "DefinedLinguisticConcept-Word"; that is, its just a word.

Similarly, custom-defined link types have non-sugared equivalents in terms of EvaluationLinks and PredicateNodes.

There are, at this time, no PLN rules that convert these various forms into one-another.

## PLN Semantics

PLN will interpret

  InheritanceLink
X
Y


as

  OrLink
X
Y
X
Y


Note that extensional inheritance is the same thing as subset, viz, extensional inheritance is equivalent to

  SubsetLink
X
Y


Meanwhile, intensional inheritance

  IntensionalInheritanceLink <TV>
X
Y


is equivalent to:

  SubsetLink <TV>
patterns-of(X)
patterns-of(Y)


where patterns-of(X) would be defined as

    SatisfyingSetLink
$Z EvaluationLink GroundedPredicateNode "pattern-of" ListLink$Z
X


where the pattern-of predicate is defined as

${\displaystyle \operatorname {pattern-of} (Z,X)=s(Z)\times (P(Z|X)-P(Z|\neg X))^{+}}$

where s(Z) is the prior of Z, reflecting it's simplicity, that is the simpler Z and the stronger it's discriminating power over X, the more it is a pattern of X. For the discriminating power of Z over X we also say that X is attracted to Z, that we can represent with the following link

 AttractionLink
X
Z


where the strength of the TV of such attraction link is ${\displaystyle (P(Z|X)-P(Z|\neg X))^{+}}$ and ${\displaystyle x^{+}}$ is the positive part of ${\displaystyle x}$.

Note, as discussed in the following thread Swapping arguments in Intensional Inheritance? it would make sense to have

  IntensionalInheritanceLink <TV>
X
Y


as actually

  SubsetLink <TV>
patterns-of(Y)
patterns-of(X)


that is X and Y have been swapped, because the more specific a concept is, the more patterns it has.

See PredicateFormulaLink for an example of specifying formulas in Atomese.

SubsetLink and PartOfLink, used for holonym (part-of, e.g. brim' is a holonym of hat') and meronym (is-composed-of, e.g. 'hat' is a meronym of 'brim') relations.