The following are fragments of a private memo that I wrote some time back to illustrate how rules-based systems can be used to achieve some degree of primitive machine cognition.
 
 

////////////////////////////////////////////////////////////////////////////////////

Our definition of primitive machine cognition is “The assimilation and association of related information that may/can/will invoke autonomous behavior on the part of the software agent”.

 

Simply put, our definition means that given an environment where we can assert certain facts (in the form of Java objects in a prescribed manner), a system is able to examine these incoming facts in a number of ways, provide an opportunity to make associations between them, and allow spontaneous behavior (where possible and/or desired). All of this is done without a hard-coded identification of each class/object or its behavior as found in conventional programming.

 

 

1   Potential Types of  Primitive Machine Cognition

 

a.       Behavioral Cognition

 

The goal of this type of cognition is to allow the autonomous invocation of class/object methods by supplying the appropriate parameters required by the method. These parameters are facts (also in the form of Java objects), which have been asserted. Obviously, the body of the method invoked will ultimately determine the state of the object(s) acted upon.

 

Where the asserted facts are not previously known to the system, it will enable the Structural Cognition Mode for discovery and the persistence of its acquired knowledge followed by execution if there are matches.

 

b.      Structural Cognition

 

The system can autonomously determine the isA, hasA, and usesA relationships within the asserted objects and store them in a repository for future reference. This examination happens spontaneously when the Java object is asserted and is unknown to the system. All relationships are stored in graph form and may be searched to expedite future discoveries.

 

c.       Conceptual Cognition

 

The discovery of the relationships by the Structural Cognition phase enables a conceptual mapping (which was stored as a graph in a repository by that phase). This mapping differs from an actual instance of an object network (that shows which pieces and parts are connected to what) by showing what connections between which parts are possible. This enables the system to conceptualize “what-ifs” based on what a network has and what it could have. This mapping happens spontaneously when the object is asserted and uses the repository to confirm any conceptual relationships. For example, if the system’s active working memory contains a number of objects representing some form of knowledge and there is an incomplete path from one cluster of objects in this knowledge network to another, the system can determine if it is possible to complete the connection between the clusters with additional facts being asserted. It could then request this additional knowledge from an outside source and attempt to act on it. This is not unlike detective work where someone attempts to connect the dots between known facts and potential clues in an investigation.


 

 

d.      Linguistic Cognition

 

The very existence of certain objects within the active working memory (WM) of the system may imply navigation through a hierarchical network (of objects) or the reduction of a pseudo production rule as in a computer language. For example, some languages use patterns of SUBJECT-VERB-OBJECT while others use VERB-SUBJECT-OBJECT to express a statement. If the ordering for the pattern of language (for the software agent) does not matter, and there is a mechanism to arbitrarily emit objects into the WM from the software processes of the agent, then certain patterns of objects being emitted and matched may represent some form of spontaneous (original) thought.

 

////////////////////////////////////////////////////////////////////////////////////

As I have mentioned before, in posts to the JESS users group, primitive machine cognition is my favorite topic. I also employ other computational intelligence techniques not mentioned above, e.g., fuzzy logic, and hybrid neural networks.
 
 
 

Reply via email to