Page Numbers: Yes First Page: 1
Heading:
June 6, 1979 5:36 PM[ivy]<krl>document>str-lev
Levels of Representation
??.1 An Introduction to KRS
KRL is simultaneously a representation system, a theory of description, and a programming language. In formulating a semantic theory of KRL, it has turned out to be useful to separate out these various functions and to isolate four distinct levels or viewpoints from which to understand any piece of KRL structure. Each level has its own distinct uses, and various parts of the system work from one viewpoint or another. Although they are in some sense simultaneous viewpoints which one can have on a piece of KRL, we call them levels since there are precise relationships only between adjacent levels: for example one can understand the relationship between the Intermediate level and Belief level only in terms of the intervening Memory level. We are calling theory of these four levels and of the relationships between them is called KRS, for Knowledge Representation Semantics..
The discussion of KRS in this section is cast informally in English. However, since KRS is itself a formal system, a careful exposition of it requires talking about it in a formal language -- and the obvious language to use is of course KRL-1. At various places, where the formality provides clarity, we have included descriptions of KRS written in KRL. Section ?? is a more complete self-description of all the KRL structures. We can envision a complete set of units which are written in KRL-1 which completely describe both the KRL-1 language and the KRL-1 Interpreter in terms of KRS. These units could be used by the interpreter itself to guide the interpretation process.
In our brief characterization of the levels here, we will work from the "bottom up", describing the underlying belief level, then its representation in memory, then the intermediate LISP forms which are used in creating memory structures, and finally the communication form---the syntax for reading and printing structures. In the rest of the subsections of section ??str-lev??, we will give a detailed specification of each level in turn.
Because there are many distinctions which can be made in parallel at the different levels, the terminology can become confusing and we have taken some care to sort out our use of terms. Table?? is a summary of the terms we use to describe KRL structures. Some of them (e.g. "slot") are used in discussing all levels. Others (e.g. "key word" and "anchor") are useful in talking about one particular level. In those cases where the same term can be used across levels, we use subscripts when there is any danger of confusion (e.g. a "unit\c" is a string of characters delimited by occurrences of the character "#", which is converted by the parser into a "unit\i" which is a LISP record with fields for "slots", "name", etc., which in turn is converted to a "unit\m" which is a chunk of memory). When the context makes it clear, or when the distinction is not necessary, we will omit the subscripts.
Table ??.?? Terminology
Generic (used in talking about more than one level): Description, Descriptor, Unit, Slot, Meta-description, Prototype, Instance, Mapping
Communication: Keyword, bracket, white space, atom
Intermediate:
Description\i = Descriptor\i or implicitAnd
Descriptor\i == coreference\i (unitPointer, slotPointer, localReference), pointer (krlPointer\i (quotedStructure, structureRef, localNamedRef), lispPointer\i), sequenceEnumeration, setEnumeration, mapDescriptor\i (perspective, specification, functional), case, selectRef, lispInvocation
Unit\i
Slot\i
Footnote
NoteReference
Meta-shift
Functional declaration
Name
Surrogate
Memory:
Description\m = anchor
unit\m
slot\m
Labelled Anchor
prototype\m
instance\m
Descriptor\m == Coreference\m, mapDescriptor\m, interpretedMapD, KrlPointer\m, LispPointer\m, Reflexive, Sequence, Set
Meta-description\m
Belief:
Entity
Individual = instance\b
Prototype entity = prototype\b
Collection == sequence\b, set\b
Belief == coreference\b, mapping\b
??.2 -- Belief level
This is the level which most closely captures what one might think of as the "meaning" of a description system. One can think of it as the level formalizing the denotational semantics of descriptions and units etc. There are three fundamental kinds of objects at this level: entities, collections, and beliefs.
???? implications
The term entity or conceptual entity we have used for some time, and is an abtract object which can represent anything at all. There is a special subset of all the possible entities called worlds, which are distinguished in the sense that they participate in a special way in the different types of belief.
Each entity at level 1 is said to represent a thing at level 0. The intuition is that for every thing of interest to the system builder, (s)he will create some entity, and then establish beliefs (see below) which relate that entity to other entities in a way which is felt to capture the structure of those things in the world being represented. Worlds therefore also represent things, but the intuition here is that they will represent the situation in which the thing participates or exists. However the actual interpretation (at level 0) of what it means to establish formally (at level 1) that an entity exists in a world is left open as a deep design choice for the person building a given system. No claim is being made that the structure of level 1 corresponds to the structure of the real world.
Beliefs are the relationships which connect entities. There are two kinds of belief, known as co-reference and mapping. Every description (see level 2 below) has a precise level 1 meaning which can be stated as some combination of co-references and mappings. These beliefs have the following structure:
A co-reference is a binary, symmetric relationship between two entities which is meant intuitively to mean that those two entities represent the same level 0 thing (the word co-representation would actually be more appropiate and we may shift to it).
A mapping on the other hand is a relationship consisting of a set of an arbitrary number of asymmetric pairs. Each pair consists of two entities, one called the instance entity and the other called the template entity. The concept of mapping is intuitively meant to capture our notion of abstraction; the fact that the relationship is a set of pairs rather than a single one is due to our perception of abstraction as being a structured rather than simple relationship, meaning that it is a relationship between concepts which connects the conceptual structure of those concepts, not simply the concepts viewed as un-structured wholes (see my thesis for more details).
Implications are the third level 1 object, and capture the fact that we see a conceptual description system as being an inherently active processor rather than being a statically declarative data base. There are implications which are "meant" by various structures in the whole system -- certain ones are implied by some of the beliefs, certain ones are inherent in the KRL-1 Interpreter, etc. Implications talk in terms of established beliefs and the appropriateness of establishing new entities and new beliefs (all the beliefs which exist in level 1, such as those which were talked about above, are said to be established).
The detailed semantics of implications is the area of KRS which still needs the most work (such as the precise meaning of appropriate) and therefore I won’t go into more depth regarding their structure. However there are two implications which are fundamental (see below for a technical defintion of this word) to KRS (actually maybe 3 -- I am not yet sure about whether mapping inheritance is fundamental):
Co-Reference Transitivity:
If there are entities E1, E2, and E3, and there are co-reference beliefs connecting E1 and E2 and also connecting E2 and E3, then it would be appropriate to establish a co-reference belief connecting E1 and E3.
Co-Reference Substitution:
If there are entities E1 and E2, and there is a co-reference belief connecting E1 and E2, and furthermore there is a mapping M1 with E1 as an element of one of its pairs (either as an instance entity or as a template entity), then it would be appropriate to establish a mapping M2 which is derived from M1 by substituting E2 for E1 in all of its pairs.
-----from str-brian------
Entities, Anchors, Association, Descriptions, and Reference:
We stated above that with every unit is associated an entity. In this example, there are entities associated with the units Person, PortableObject, Woman, ToyTrain, and Giving which represent prototypes (more on prototypes later), and entities associated with Sally and SallysNewTrain which represent individuals. Whether an entity is treated as a prototype or an individual is not inherent in the associated unit, however, but is instead determined by what kinds of descriptions are used involving the unit. Section ??? discusses this in more detail -- however in our examples the distinction is kept simple.
The entity associated with a unit is the referent of the description in its self slot. In addition, there is an entity associated with each other slot. Therefore, the Bite unit has a (prototypical) entity for the biter and another for the bitten.
Units and slots are both instances of a general notion of an anchor, which can be thought of as a place in the data structures to collect together descriptions which refer to the same thing. There is an entity associated with every anchor, and every description is attached to an anchor. In every single case the referent of a description is the entity associated with the anchor to which the description is attached. (Note that many descriptions have other descriptions embedded within them; in these cases they define internal unlabelled anchors, which have the same semantics as labelled anchors (units and slots) except that other descriptions cannot refer to them by name.)
The anchors (units and slots and other embedded ones) and the descriptions are the primary objects at what we have called level 2. Entities and beliefs (mappings and co-references) are the primary objects at level 1. There is a one-to-one relationship between anchors and entities (called association) and also a (potentially) many-to-one relationship between descriptions and entities (called reference). We turn now to the relationship between descriptions and beliefs.
-----from str------
Descriptions, entities, and representation
Each description in a KRL knowledge base has a meaning which can be expressed in terms of a few basic objects and relationships. The semantics are based on conceptual entities which are in the mental (assuming KRL is mind-like) model, and the things they represent in the world the system is modelling. These entities are related through mapping and coreference. We can roughly think of the meaning of a description as a set of beliefs, each of which is a mapping or coreference. This "meaning" does not capture all of the information expressed by the description -- it leaves out those aspects which deal with memory structure and focus. In section ?? we will return to the way these play a part in processing.
Every unit is associated with an entity (but not vice-versa, as we will see later). In this example, there are entities associated with the units Dog, Person, Woman, Bite, and Animal which represent prototypes in the real world (more on prototypes later), and entities associated with Sally and Farley which represent individuals in the real world. The entity associated with a unit is the referent of the description in its self slot. In addition, there is an entity associated with each other slot. Therefore, the Bite unit has a (prototypical) entity for the biter and another for the bitten.
A KRL description form (such as a perspective) is interpreted in a specific syntactic context as having a meaning in terms of entities, mappings, and coreference. In this example, the description A Person appearing in the self slot of Sally means: There is a mapping with template = the prototype entity associated with Person, and with instance = the entity associated with Sally.
Consider the following possible alternative changes to the knowledge base given above:
Change 1: all units the same except
# Sally
self: A Person
The bitten from a Bite with biter = Farley
Change 2: all units the same except
# Farley
self: A Dog
The biter from a Bite with bitten = Sally
The two alternative additions both carry the same meaning:
1) There is an entity (call it E1 for the discussion here)
2) There is a mapping with the following pairs:
prototype entity associated with Bite : E1
prototype entity associated with the biter in a Bite : entity associated with Farley
prototype entity associated with the bitten in a Bite : entity associated with Sally
The two alternative changes differ in their choice of focus and place in the knowledge structures to store this description, but can be interpreted as conveying the same abstract semantic meaning. Note that in describing the mapping, I have used a colon (:) instead of an equal (=) since I am describing a semantic relationship, not a piece of KRL syntax which is a perspective. This example points out several things:
1) The meaning of a syntactic form depends on the context in which it appears. The form The biter from a Bite with bitten = Sally can only be interpreted as having the meaning described above by taking into account the fact that it appears in the self slot of Farley. Later we will see how this also applies to the notion of multiple worlds being described in a single knowledge base.
2) Not every entity is associated with a unit or slot. The entity (E1) for the instance of Bite is implied by the use of a slot perspective, even though it is not the referent of any slot.
3) Two different entities can represent the same thing. Assume that instead of change 1 or change 2, the following were done:
Change 3: all units the same except
# Sally
self: A Person
The bitten from a Bite with biter = A Dog
# Farley
self: A Dog
The biter from a Bite with bitten = A Person
Then the meaning includes the existence of entities E1, E2, E3, and E4, and:
1) A mapping with the pairs:
prototype entity associated with Bite : E1
prototype entity associated with the biter in a Bite : entity associated with Farley
prototype entity associated with the bitten in a Bite : E2
2) A mapping with the pairs:
prototype entity associated with Person : E2
3) A mapping with the pairs:
prototype entity associated with Bite : E3
prototype entity associated with the biter in a Bite : E4
prototype entity associated with the bitten in a Bite : entity associated with Sally
4) A mapping with the pairs:
prototype entity associated with Dog : E4
In fact, this might represent a state of affairs in which there was a single biting event, represented by both of the entities E1 and E3. In this case, the entity associated with Farley represents the same thing as the entity E4, and the entity associated with Sally represents the same thing as E2.
At first, this proliferation of entities might seem confusing, since multiple entities do not always correspond to multiple things in the world being modelled. The important thing to keep in mind is that KRL is based on the notion of a cognitive processor which manipulates descriptions, rather than being based on a notion of truth in a world. Each entity is essentially a separate "hook" for thinking about a thing, and there are as many entities as there are places in the description structure. In fact, the semantic description given for change 1 above is slightly inaccurate. The meaning of the knowledge structures after change 1:
Change 1: the original set of units except
# Sally
self: A Person
The bitten from a Bite with biter = Farley
is really:
1) There are entities E1 and E2
2) There is a mapping with the following pairs:
prototype entity associated with Bite : E1
prototype entity associated with the biter in a Bite : E2
prototype entity associated with the bitten in a Bite : entity associated with Sally
3) There is a coreference between the entities:
E2 ; the entity associated with Farley
Note that since the description was actually attached as part of the self description of Sally, it refers directly to the entity associated with the unit. The appearance of the unit name Farley as a filler in a slot-perspective is really an abbreviated form of a coreference descriptor. In most of the reasoning processes, entities are dealt with in equivalence classes (all coreferent entities are in the same equivalence class), but for many purposes it is useful to keep this extra layer of indirection. An obvious example is in working with the set of descriptions represented by change 3. The information given there is not sufficient to decide whether E1 and E3 are coreferent. If they were, it would in turn imply that E2 and the entity associated with Sally were coreferent, and similarly E4 and the entity associated with Farley. Thus at one stage of the reasoning it may be necessary to keep all of the entities distinct, while later (for example if we could establish that there had only been one Bite event) they could be treated as equivalent. This might in turn allow us to establish new beliefs. Thus, for example if we had:
Change 4: just like change 3, except that the unit for Farley is:
# Farley
self: A Dog
The biter from a Bite with bitten = A Woman
Then we could use the fact that E1 and E3 were coreferent to establish that E2 and the entity for Sally were coreferent, in turn allowing us to infer a mapping from the prototype entity for Woman to the entity for Sally. This type of inference is at the heart of the basic processes for finding and comparing descriptions.
Concept systems and inference
The main reason for wanting to talk about a semantic interpretation of descriptions is that it allows us to specify much more directly and cleanly how different descriptions are related. In KRL-0, there were a complex set of procedures, embedded in the code for the matcher, which allowed one form of description to be matched successfully against a different form or combination of forms. As mentioned above, this was extremely incomplete and ad hoc. In KRL-1 all of the processes can be described in terms of the activation of description structures (see below) and inferences on the meanings of those structures.
The central notion is that of a concept system, made up of a set of entities and a set of beliefs (mappings and coreferences) relating those entities. In general, any set of descriptions can be thought of as determining an associated concept system which is the union (logical "and") of the meanings of the descriptions. One example of a concept system is the interpretation of the entire set of description structures in a KRL-1 knowledge base. This is not a particularly useful one, since all of the actual reasoning procedures are carried out on subsets of this data which have in some way become active.
Inference steps are based on inference rules and implications which describe a relationship between a set of beliefs in an existing concept system, and a set of new beliefs which can be inferred. Inference rules are universally applicable throughout the KRL-1 interpreter, while specific domain-dependent implications form part of the sytem’s beliefs about the world it is modelling. Some examples of inference rules are:
1) CoReference Transitivity
If there are entities E1, E2, and E3, and there are coreference beliefs connecting E1 and E2, and connecting E2 and E3, then E1 and E3 are coreferent. Note: coreference is initially defined using sets, so it is implicitly symmetric and reflexive.
2) CoReference Substitution
If there are entities E1, and E2, a coreference belief connecting E1 and E2, and a mapping with E1 as one of its elements, then there is a mapping which can be derived by substituting E2 for all occurences of E1 in the mapping.
3) Mapping Inheritance
If there are entities E1, E2, and E3, where E1 and E2 are prototype entities, and there exists a mapping containing a pair having E1 as template and E2 as instance, and another mapping containing a pair having E2 as template and E3 as instance, then there exists a corresponding mapping with E1 as template and E3 as instance. Note: This is the standard case which allows us to infer from the above data base that there exists a mapping from Animal onto Farley. The details of how the other pairs of the new mapping are derived is precise, but too complicated to describe here.
4) Category Incompatibility
If there are entities E1, E2, E3, and E4, such that there is a mapping from E1 onto E2, and another mapping from E3 onto E4, and in addition, there exists a mapping from the unit Category onto E1 and another mapping from Category onto E3, and if E1 and E3 are not coreferential, then E2 and E4 are not coreferential. Note: this is a simplified version which includes only a single-layered list of categories. In fact, the one actually in the system is more complex, allowing an arbitrary number of separate category hierarchies. Note that beliefs include negatives such as "not-coreferential", which is not the same as not knowing whether two entities are coreferential. Also note that this, like some other inference rules, makes use of units (in this case Category) which form part of the basic definition of the system.
Part of the specification of KRL-1 will be a complete listing of the inference rules which it uses in its reasoning. We have not attempted to be reductionistic in defining these rules. The goal is to have a set which provide useful components for a reasoning process, rather than trying to minimize the number needed. We expect to have more than 3 or 4, but less than 30 or 40, and for each of them to represent an intuitively graspable element of normal reasoning. The number is somewhat larger than you might initially expect, since many of the rules deal with the reasoning needed for dealing with sets, sequences, and multiple worlds.
One rule will be a general "Apply" which operates on implications which form part of the beliefs about a domain. Implications are represented in the syntax in the form of Using descriptors, and a variety of footnotes associated with units (to be described later). Some examples of implications are:
1) Every Biting involves a biter
If there is an entity E1 and a mapping from Bite onto that entity, then there exist entities E2 and E3, and a single mapping which maps the prototypical Bite onto E1, the biter of a prototypical Bite onto E2, and the bitten of a prototypical Bite onto E3. Note: This is not true of all units. It is quite reasonable to have slots (such as middleName for a Person) which may not be filled in all instances. The default is to assume that slots are filled, with footnotes used to mark cases like middleName.
2) Knowing that someone is a female Person is sufficient to establish that she is a Woman
If there is an entity E1 and a mapping from Person onto that entity, with gender in that same mapping being mapped onto an entity which is coreferential with Female, then there exists a mapping from Woman onto E1. Note: This is what we have called "criterial". This implication is part of the meaning of the set of description forms:
# Person
gender: A Gender
# Woman
self: A↑1 Person with gender = Female1: WhichIs Criterial
# Female
self: A Gender
3) If a Person has gender Female, she is a Woman, otherwise a Man
If there is an entity E1 and a mapping from Person onto that entity, with gender in that same mapping being mapped onto an entity which is coreferential with Female, then there exists a mapping from Woman onto E1. If it is mapped onto an entity not coreferential with female, then there exists a mpping from Man onto E1. Note: The contrast between this and example 2 is another case where similar semantic meanings appear at very different places in the syntactic structures. The implication is part of the meaning of the set of description forms:
# Person
self: Using My gender
Female -> A Woman
otherwise -> A Man
gender: A Gender
# Woman
# Man
# Female
self: A Gender
Reasoning as a process of inference and activation
A possible first reaction to this formal definition of inference in KRL-1 is that we have gone an awfully long distance to get almost back around the barn. In fact, the semantic notions described in the previous two sections aren’t terribly different from any other formalization of reasoning, including predicate calculus and theorem proving! What do we gain by going to all the trouble to have units, mappings, entity-centered descriptions, lots of different forms, etc. if in the end we’re going to be doing plain old deductive inference?
There are several different answers to this impertinent question (see, for example, the discussion on procedural attachment below), but the primary answer was foreshadowed by a sentence in the introduction to inference above: In KRL-1 all of the processes can be described in terms of the activation of description structures (see below) and inferences on the meanings of those structures. In formal logic, it is only the inferences which count. In KRL, they are only half the story. The rest lies in the fact that we have differential access to stored data, and that we operate in a resource limited system.
A reasoning process can be thought of as a heuristic search through a "problem space" (a la Newell and Simon) of concept sets, where the operators for moving from one concept set to a new one fall into two calsses -- the inferences described above, and activations in which the meaning of a piece of descriptive structure from somewhere in the knowledge base is added to the set of beliefs available for making inferences. At a first level, we can think of each activation as bringing the contents of a new unit into the active context. This unit is one which is mentioned in a coreference description already in the active context, or retrieved through the indexing mechanisms (see Section ??) Assume, for example, we are given the basic data base above as our permanent knowledge base, along with the change to the Farley unit which states that he bit Sally. We might then ask the question "Did Farley bite a person?" The language analyzer might well use the proper name as reason to bring the unit for Farley into the active context. At this point, there is no way to answer the question without going out and activating another unit. Note that in this example, there are two separate paths which lead to the answer:
Path 1. Activate the Bite unit. Use Mapping Inheritance to infer that since there is a mapping from Bite onto the entity for the biting Farley did, which includes the prototypical bitten mapping onto an entity for the thing Farley bit, and since there is a mapping from Person onto the prototypical bitten, then there must be a mapping from Person onto the entity representing what Farley bit.
Path2. Activate the Sally unit. Use Coreference Substitution to infer that since the entity for the thing Farley bit is coreferential with the entity for Sally, and there is a mapping from Person to Sally, there is a mapping from Person to the entity representing what Farley bit.
In specifying a reasoning process, we need to specify in detail how the search through the problem space will be conducted, providing heuristics for when to try new activations, and when to try inferences. What KRL adds to the basic notion of logical inference is the detailed step by step control over the subset of knowledge which will be used in inferencing. Of course, much of this control is based on the static decisions of how to store knowledge in the units. If the fact about biting is stored in the Sally unit, and we ask a question about Farley, it may take a long and arduous path of activations before we can actually make inferences about what Farley did. section ?? below discusses the different heuristics for activating descriptions, and the tools which are provided for the user to supply domain-dependent heuristics as well.
In fact, the notion of activating a whole unit at once is a bit too coarse-grained, and we can also discuss separate activation of the different slots within a unit, or the separate descriptions within a slot.
APPENDIX B -- SUMMARY OF KRL-1 SEMANTICS
NOTE -- THIS IS OUT OF DATE, and needs reviewing. For example, implications are beliefs, which this denies. Descriptions mention other anchors, not connect to them. Etc. Etc.
1.An Introduction to KRS
2.The Levels of KRS
2.1Level 0 and Representation
2.2 Level 1 and Meaning
2.3 Level 2 and Description
2.4 Level 3 and Language
3.The MetaDescription Layers
4.KRS, KRL, and the KRL-1 Interpreter
2.1 -- Level 0 and Representation
The thing that distinguishes representation systems from other formal systems is that the formal structures which one builds in a representation system are meant to represent something. To the extent that a representation scheme is successful, it captures in its formal structure what the user thinks is the actual structure of the world being represented. Although one cannot in a formal system ever actually have the objects in the world being represented, it is useful in a model of the system (which is really what KRS is) to be able to talk about the relationships between the formal system and the "unknowable beyond" which is being represented. Therefore we have:
Level 0: The level of things.
There is inherently nothing we can know about the structure of this level. It is interesting only in the fact that level 1 relates to it. All objects at level 0 are called things.
2.3 -- Level 2 and Description
In a sense, level 2 is the level which is what KRL-1 is all about: this is the level where one talks about descriptions and units and slots -- here we find the abstract objects which are pushed around by the interpreter -- and it is objects at this level that the level 1 objects are the meaning of. Level 2 is the level of the abstract objects which are primitive to KRL-1, as opposed either to their meaning (level 1) or their syntactic form (level 3). When you look at the sequence of characters "a Person with age = 10" and you say "that is a perspective", you are talking at level 2.
Because level 2 is the level at which the substance of the KRL-1 langauge has been designed, we use many words at this level, such as perspective, unit, specification, slot, etc., which are level 2 KRL-1 terms, rather than KRS terms. Section 4 (below) describes in more detail the relationship between KRS and KRL, but here I will simply present the fundamentals of level 2 as defined in KRS, and then show how the primitive level 2 KRL concepts are defined in terms of them.
Level 2 is defined in terms of three types of objects:
Level 2: The level of anchors, descriptions, and description spaces.
An anchor is a structural position at level 2 with which is associated a level 1 entity. With every anchor is associated a unique entity, and with every entity is associated a unique anchor. An active description system will likely create new anchors during its reasoning processes -- which means that from a level 1 point of view a new entity has been created. An anchor does not itself say anything at all about the entity with which it is associated; that is, it does not itself convey any information at all -- it merely provides a structural "hook" so that you can say things about the entity using descriptions (below).
A description is a structural relationship at level 2 which connects anchors. Any given description system (like KRL-1) may specify any number of possible types of description, but each is constrained to have a unique and well-defined level 1 meaning (which is to say, it must specify exactly the co-references and mappings implied between the entities which are associated with the anchors to which it connects). Each description must also be attached to exactly one of the anchors to which it connects. The description is then said to have a referent which is the entity associated with the anchor to which the description is attached.
A description space is a collection of anchors and descriptions. The word structure is used to mean either an anchor or a description.
Anchors, descriptions, and description spaces constitute all of level 2 from the KRS point of view. KRL-1, on the other hand, defines a further set of terms for a particular set of descriptions and a particular set of anchors. For example:
A perspective (or a specification) is a description which connects to an even number of anchors (numbering at least 2). Its level 1 meaning is a mapping, with the entities associated with each of the anchors to which it connects being the elements of the mapping pairs. The anchors to which it connects are restricted in various ways (don’t worry if this doesn’t make much sense):
1. The entity associated with the anchor to which the description is attached is an instance entity in the mapping.
2. The anchors associated with all the template entities must be labelled (see below).
3. Exactly one of those labelled template anchors must be a unit anchor (see below).
4. None of the anchors associated with the instance entities may be labelled, other than the one associated with the anchor to which the description is attached.
This characterization, even though virtually incomprehensible, is not even quite precise! The exact meaning of all the KRL-1 description and anchor types will be set forth, written in KRL-1, in the units for the semantics.
As well as restricting the types of possible description (except see section 3 below), KRL-1 also restricts the possible use of anchors. Specifically, it defines the notion of a labelled anchor, and also the concept of unit to be a collection of labelled anchors including one distinguished one called a unit anchor. It is also useful to define an anchor being embedded in a description when that description is connected to it but not attached to it. There are various further restrictions on anchors in KRL-1 such as:
1. No anchor may be part of more than one unit.
2. No anchor may be embedded in more than one description, although it may have an arbitrary number attached to it. (Note that a system not allowing multiple description would restrict anchors to one embedded and one non-embedded.)
3. All the descriptions connected to any given anchor must have level 1 meanings which relate the associated entity to the same world.
Note that level 2 is the default level at which we talk about descriptions and units: if I want to view a piece of KRL from level 3 I refer explicitly to the structure’s form; the level 1 viewpoint is usually referred to as the description’s meaning. If I want to discuss the level 0 object that corresponds to the piece of structure, I talk about the thing that the structure represents.
2.4 -- Level 3 and Language
Level 3 is the syntactic level of language. It is here that names are meaningful, and that the legal syntactic forms of KRL-1 are defined. There are only two relevant concepts in KRS at this level:
Level 3: The level of names and forms.
I have not yet worked out the details of the structure of names and forms in the abstract, but the intuition is that a form is any describable lexical structure, and a name is the obvious lexical token. KRL-1 of course defines the forms of all its legal description and anchor types, as specified in the syntax document. The footnote is a KRL-1 level 3 mechanism which allows one to attach metaDescriptions to anchors and descriptions (the word "metaDescription" is itself a term from level 2 -- see section 3 below).
Note that it is only at level 3 that KRL-1 (or in fact any representation scheme) is accessible. A consequence of this is that it is really the structure of the KRL-1 syntactic forms which enables KRL-1 to implement restrictions on the possible use of anchors as described in the last section. Specifically, the syntax for units and slots uniquely determines which labels are anchors and which ones participate in units. Since there is no general facility provided for attaching metaDescriptions to unlabelled anchors, there is no way for a user to over-ride those restrictions.
Note also that functionals are purely a level 3 abbreviation mechanism. A consequence of this fact is that, since the level 2 objects are the ones in which the interpreter is in general interested, it can make no difference whatsoever in the behaviour of functions which deal with level 2 understandings of descriptions whether the description syntactically came from a functional or a full-blown specification or perspective. Functionals are a way of abbreviating descriptions: the further specification mechanism we are working on will likely be a level 3 abbreviation mechanism for anchors, and will correspondingly have a well-defined level 2 meaning which is equivalent to some longer syntactic form.
3. -- The MetaDescription Layers
All of the discussion above has ignored perhaps one of the most interesting things about KRS/KRL-1 -- the concept of metaDescriptions. The description of level 2 of KRS above was incomplete in an important detail: with every description, anchor, or description space (i.e. with each level 2 object), one may uniquely associate another anchor called a metaAnchor. This metaAnchor is then said to be hooked to that level 2 object, and is just like any other anchor (for example it could have its own metaAnchor) except for the following restriction on the entity associated with it:
Law of metaAnchors: The entity associated with a metaAnchor is assumed to represent the level 2 object to which the metaAnchor is hooked.
Thus the metaAnchor provides us with a fundamental way to shift the entire domain of description to the "model" or "KRS" level. By attaching descriptions to this metaAnchor we can then describe how the various levels relate, how we have described or represented various things, etc. There is of course a limit to this self-consciousness; there is no way a metaAnchor can describe the fact that it is hooked to an anchor or description without spawning another metaAnchor, leading to the obvious infinite regress.
Note that this meta-level shift is in an orthogonal direction to the sense of KRS levels. Since the metaHook is at level 2, it inherently gains primary access to the level 2 understanding of the description system it is modelling. However all of the objects which were previously part of each of the 4 KRS levels have suddenly become level 0 things at the metaLevel. (I need the obvious good picture here.) In the KRL-1 Interpreter there are standard ways to describe the various KRS levels and the ways in which they relate.
4. -- KRS, KRL-1, and the KRL-1 Interpreter
Most of this memo has dealt with the four ordered semantic levels of KRS. In section 3 I described a different orthogonal set of (possibly infinite) levels called metaDescription layers. There is one more hierarchy, complete with its set of technical terms, which needs to be explained.
In describing level 2 of KRS I distinguished terms which were defined as an inherent part of KRS from those which were part of KRL-1. This distinction can be made more precise by observing that the knowledge representation system we are building can be viewed in the following three layers:
1) KRS -- the underlying semantics, which we have just described. The adjective "fundamental" is used to describe terms, design choices, and mechanisms which are part of KRS.
2) KRL-1 -- the language. Many decisions as to which of the possible relationships etc. that could be constructed in KRS we want to make easy or possible are reflected in the design of the KRL-1 language. Included also is the syntax, including the ability to use footnotes to hook metaDescriptions. The adjective "primitive" is used to refer to concepts, design choices, and mechanisms which are inherent to the language but which are not fundamental to KRS.
3) The KRL-1 Interpreter. The particular interpreter which we are building brings along with it numerous design choices which are in no way inherent to the KRL-1 language, but which are deeply embedded within it, and which any program which uses the interpreter will make heavy use of. These include: protocols for procedural attachment; the taxonomy of system events; quantification mechanisms; the functions Seek, Match, and Describe; the notion of a primary anchor (a uniquely metaDescribed anchor for an equivalence class of co-referent entities); etc., etc. The adjective "standard" is used to refer to these mechanisms, which are not primitive to the language but upon which the interpreter is grounded.
-------------------scraps--------------------
Introduction
KRL is a language for manipulating descriptions. Its procedures are built around the fundamental operations that can be done with(to) descriptions -- writing, reading, and comparing them. This section presents both the underlying philosophy of the KRL-1 basic processes, and a detailed description of their implementation and use. It has many connections with other sections, especially the theoretical discussion (Brian’s thesis) and the details of compiling (previous paper, to be extended as we work out the details). The discussion is organized into:
--------------------------------------------
KRL-1 is based on knowledge structures which have representation at four different levels: message, intermediate, memory, and belief. The transformation between message level and intermediate level is done by a parser. The transformation between intermediate and memory levels is done once when called for by a converter. An effective description for a specific entity which is derived in the process of matching correspond in some ways to the notion of beliefs as we have talked about them earlier. The effective description arises in matching a pattern against an anchor representing that entity in memory. The effective description is a list of descriptors extracted from a number of different places in memory in addition to the datum anchor. For more details of how effective descriptions are used, see sections 6 and 7.
The parser reads information from a file and produces intermediate structure which is stored in Lisp list structures. The parser records the file position of the entire unit but not of any smaller structure. Thus between message and intermediate level, position information is lost. In addition, no record is made of file only comments (indicated by -- in the file). The syntax is described in section 2 on the KRL-1 syntax.
All the KRL structures are left in intermediate form until a specific call to the conversion process, or when an attempt to is made to use certain structures. Care has been taken in the conversion process to try to ensure order independence of when which structures are converted. Exceptions to this are described in the appropriate sections below.
All of the intermediate structures are converted into memory level structures, except certain pseudofunctionals which specify functional definition, category membership, further specification, and procedural attachment.. The correspondence between intermediate structures and memory structures are listed in the section on data structure conversions. The psuedofunctionals used in meta descriptions are not converted into memory structures; the information they convey is stored in separate data structures by a process we call cataloging. To indicate that the meta description is not complete with respect to the original message level form, the PartialMeta flag is set in the handle to the metaAnchor for the structure which should have contained the information.
--------------------------------------------