Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Chunks and Chunk Rules #71

Open
draggett opened this issue Aug 24, 2019 · 2 comments
Open

Chunks and Chunk Rules #71

draggett opened this issue Aug 24, 2019 · 2 comments

Comments

@draggett
Copy link
Member

draggett commented Aug 24, 2019

This is a proposal for a simplified approach to graphs and rules that operate on them, using ideas that have been developed over many decades in the field of Cognitive Psychology. The starting point is the idea of a chunk as an entity with a type, an id, and a set of name/value pairs. There is a close relationship to Property Graphs with their nodes and relationships, both of which can have associated sets of properties (name/value pairs). A subclass of Chunk is used to model relationships. Provision is made for integration with RDF through the means to map identifiers to RDF URIs. The semantics are defined operationally in terms of rules that access and manipulate graphs, drawing upon the philosophical doctrine of relativism:

Relativism is the idea that views are relative to differences in perception and consideration. There is no universal, objective truth according to relativism; rather each point of view has its own truth.

Chunks and Chunk Rules seek to facilitate machine learning on the assumption that this will become increasingly important as vocabularies and rulesets scale up and up, so that manual development and maintenance are impractical. A big debt of gratitude is owed to John R. Anderson and his work at CMU on the popular ACT-R cognitive architecture.

See: https://www.w3.org/Data/demos/chunks/chunks.html

@draggett
Copy link
Member Author

I've now documented the simple API exposed by my JavaScript library for Chunks, which includes the rule engine, see:

This library is being used for the development of a series of demos. The first demo is ported from ACT-R and models how people count up aloud. The second is based upon an ID3 demo for decision trees. A third demo is underway on autonomous driving, using data exported from Open Street Maps and transformed to chunks. The aim is to show how cognitive agents can dynamically switch attention between different tasks. Further demos are planned on machine learning, with one on using induction to learn taxonomies from noisy data, and another based on reinforcement learning of rulesets. Anyone interested in helping to create demos for Cognitive AI?

@draggett
Copy link
Member Author

Reasoning from multiple perspectives: there is increasing recognition of the importance of being able to reason from multiple perspectives. In social contexts, there is a need to represent the beliefs of different individuals. Story understanding involves reasoning about what we know holds true in a particular story, in addition to, or overriding, what is generally true about the world. This also applies to lessons, where certain things are declared to be true in the context of a given lesson. Abductive reasoning and causal reasoning also involves reasoning from multiple perspectives, when considering what-if questions about the implications of something being held to be true.

This can be handled in Chunks through a context property which declares the context in which a given chunk is held to be true. The value of this property is a chunk identifier, and as such allows for a chain of contexts. Such chains can be used in causal reasoning, and for representing the beliefs of people within a story. More generally, context chunks can be used as the basis for making statements about heterogeneous collections of chunks.

I am now looking for ideas for a demo to illustrate how this works in a practical setting.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant