InheritanceLink
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.
InheritanceLink is a subtype of OrderedLink.
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.
As an EvaluationLink
The InheritanceLink can be understood to be equivalent to an EvaluationLink for the predicate "be" (or is-a"). So, for example:
EvaluationLink PredicateNode "be" ListLink 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 PredicadeNode "be" ListLink 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 ExtensionalInheritanceLink X Y IntensionalInheritanceLink 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
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 and is the positive part of .
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 FormulaPredicateLink for an example of specifying formulas in Atomese.
See also
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.