# OpenCogPrime:Map

## Maps

OCP knowledge representation exists on two levels: the concretely-implemented and the emergent. The primary concept underlying emergent KR in OCP is the map, which is discussed on this page among other places.

OCP explicitly uses a weighted labeled hypergraph as a low-level knowledge representation; these are the Nodes and Links discussed extensively on other pages. But it also has emergent dynamics that may be modeled using a weighted labeled hypergraph, according to the *derived hypergraph* concept presented in the Introduction.

Essentially and intuitively, what we mean by a OCP *map* is a set of OCP Atoms whose STI levels display a high degree of cooperativeness. In practice, this cooperativeness may manifest itself in many ways. Each OCP map may be considered as a Vertex in a derived hypergraph associated with a OCP system. Edges in the derived hypergraph then denote relationships between maps. This network of Edges and Vertices is just as important an aspect of OCP intelligence as the explicit, concretely-implemented network of Nodes and Links.

One very common kind of map is the map defined by simultaneous STI. This kind of map is simply a set of Atoms that tend to become active at the same time. For instance, suppose one associates each Atom with a time series defined by that Atom's STI values over time. Then a simultaneous STI map is simply a cluster in the space of STI-time-series. One can also look at clusters in the space of importance-time-series. These two sets of clusters (those defined by STI, and those defined by importance) should be fairly similar, though not identical. These maps appear as ConceptVertices in the derived hypergraph.

Another very common kind of map is the one defined by a series of Atoms that tend to become active in a certain sequence. This is the case, for instance, with schema maps, which are *distributed programs* consisting of sets of SchemaNodes that tend to execute in a certain order, carrying out a coherent overall function. This sort of map is definable as a pattern in the STI time series associated with Atoms, but not as a cluster in STI time series space. Rather, it is a set of probabilistic rules. An example of this sort of rule would be:

Atoms A1 and A9 active at time T AND Atoms A2 and A5 active at time T+1 AND Atoms A1 and A8 active at time T+2

This is a simple map involving 5 Atoms and 3 points in time. Real examples may be much more complex, of course. This sort of map appears as a SchemaVertex in the derived hypergraph.

Generally speaking, we may say that a map is a set of Atoms whose STI and importance time series, taken as a whole, embody prominent probabilistic rules. A cluster is an example of such a probabilistic rule, as is the kind of temporally-synchronized STI pattern exemplified above.

More rigorously, we believe the most relevant probabilistic rules involved here are what we call *generalized predictive patterns*. Essentially, a generalized predictive pattern in a set of time series is a schema that can approximately predict the value of one of the time series in the set at time T, based on

- the values of all the time series in the set at the times (T-K,…,T-1)
- the values of all the time series but itself at time T.

A pure predictive time series is one that predicts the values of one of the time series in the set at time T, based only on the first one of the two factors listed.

Clustering allows one to predict the value of one Atom's STI or importance time series at time T, based on the values at time T of the STI and importance time series associated with other elements of the same cluster. Temporally-synchronized maps, on the other hand, are *pure predictive patterns* which predict the STI levels of certain Atoms based on the past STIs of other related Atoms.

Generally speaking, then, we may define a set of maps associated with a given OCP instance as

Map-Space = Union_k (Atom^k *Union* GeneralizedPredictivePattern )

A map is a set of k Atoms (for some k), combined with a generally predictive pattern involving the Atoms in the set (the predictive pattern tells what is the notable regularity by which the set of Atoms changes over time). The individual map space associated with a particular OCP instance, must be considered as a fuzzy set, where the degree of membership is defined by the (strength * weight-of-evidence) of the generalized predictive pattern involved.

The *derived hypergraph* idea is a mapping from Map-Spaces into weighted labeled hypergraphs, achieved via, as suggested above, treating appropriate tuples of Atoms as ConceptVertices and appropriate GeneralizedPredictivePatterns as SchemaVertices. Edges may then be drawn between these Vertices based on various sorts of observed relationships. For instance (to introduce some PLN), if ConceptVertex A is observed 80% of the time that ConceptVertex B is observed, then we might say

ExtensionalInheritanceEdge A B <.8>

Maps may drive OCP dynamics implicitly, without OCP or any human observer identifying exactly what the maps are. On the other hand, map encapsulation also plays a serious role; recognizing maps in itself and embodying them explicitly as nodes is one of OCP's important cognitive functions. The recognition of maps is done, in practice, by a combination of AI tools, including greedy datamining, and evolution/inference applied to time series pattern recognition within OCP.

Our treatment of maps here has been somewhat simplistic, but should be adequate to motivate the more pragmatic discussions of the topic in later chapters. Another, deeper way to formally describe maps is to observe that they are patterns in OCP, according to the formal theory of pattern described in The Hidden Pattern. This is needed in order to formalize the notion of predictive pattern mentioned above. Maps are not the only kind of pattern in OCP, but they are a particularly interesting kind, because of their relative simplicity and because of the relative ease with which the system can recognize and encapsulate them.

It must be emphasized that the major cognitive, dynamical patterns in a OCP system are not contained in the set of maps in the system. Rather, the dynamics *of* the set of maps in the system are the essence of the system's high-level cognitive dynamics. Maps are highly coherent, often narrowly focused repeated patterns; whereas most of thought is about transient patterns, or repeated patterns that are too fuzzy and abstract to be very *intense* if considered as maps (and not recognizable as maps by the system itself).