This function will return all of the "ancestor" entries of the specified entry (or entries), as well as the entry itself.
Ancestors are defined as any entries that can be reached by following "IS A" relationships. For example, if Orca is an Oceanic dolphin, and Oceanic dolphin is a Mammal, then the ancestors of Orca are Oceanic dolphin and Mammal.
The result will include an annotation for "distance", which indicates how many "IS A" relationships there are between the original entry and the ancestor (see examples below). By default, the resulting ancestors will be sorted by distance, with the closest ancestors first.
A specific entry and its ancestors:
A specific entry, and its ancestors, displaying their "distance" from the original entry:
entry("demo-orca").andAncestors().map(apply=(entry -> entry.annotate(detail=entry.distance)))
The current entry and its ancestors:
Ancestors of a multiple entries:
The elk is a type of Deer, and the orca is a type of Oceanic dolphin, and both are mammals, so this gives:
It's common to use
this.andAncestors()when defining Property defaults / automatic properties, but we can't show a clickable demo here because this entry doesn't have ancestors and the
thiskeyword doesn't work on the site's Lookup page.