Giter Site home page Giter Site logo

toaomalkster / conscious-calculator Goto Github PK

View Code? Open in Web Editor NEW
6.0 2.0 0.0 373 KB

A research project into the underlying mechanisms of consciousness, and an emulation of a calculator that is conscious.

License: GNU General Public License v3.0

Java 95.22% HTML 0.23% Python 4.55%
consciousness neural-network theory theory-of-mind consciousness-and-neuroscience neuronal-network brainscience awareness calculator

conscious-calculator's Introduction

License: GPL v3 Build Status

Research into Consciousness

This site is a collection of theoretical works on the mechanisms behind consciousness and conscious experience. Later I plan to build software emulation of some of those mechanisms.

Theory

Discussions on theoretical background are available from here:

Code

What's currently there is all out of date and not worth anything. Don't bother with it.

Contact

my.name at gmail.

conscious-calculator's People

Contributors

dependabot[bot] avatar malcolmlett avatar toaomalkster avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

conscious-calculator's Issues

Revise Memory,Event,Percept Representations and Type Wrapping

As per "Memory, Events and Percepts - A discussion on Representation" page.

TODO - phase 1:

  • LongTermMemory story Events and Percepts as first-class objects.
    • PerceptEvents are only used for historical memories of inputs that have been "perceived".
  • LongTermMemory .search() returns List (where Object is always either Event or Percept)
  • LongTermMemorySearchProcessor no longer needs to un-wrap PerceptEvents into Percepts.
  • In first cut, MemoryEvent kept but changed to be able to store arbitrary objects, and then used to store List.
  • FindMatchingConceptProcessor updated as needed when handling the MemoryEvent.

  • TODO - phase 2:

    • Processors to return Events without timestamp, and with triggering Event(s) in references.
    • Processors emit with their own totally ego-centric strength.
    • AA uses references to decide on relative strength of the event.
    • AA sets timestamp.
    • Get rid of use of 'HANDLED' flag
    • Should be able to create a very simple DSL for emitting Event that automatically tracks whether the event has already been emitted, taking that complexity out of the processors. ie: make processors more stateless and to just work immediately off what's in WM. I wonder how far this could be taken? See wiki page "Processors-like-Cloud-Lambda-Functions".

    TODO - phase 3:

    • Consider whether to remove the existence of MemoryEvent altogether
      • Requires LTM results to be stored as individual items (un-collected) into WM.

Host on Heroku

  • Prerequisites: Depends on #4
  • Host publicly on Heroku, with extremely basic username/password protection.
  • Add reference in README

Silence all those TRACE events if they're just repeats

Nice to have - silence all those TRACE events if they're just repeats:

00:01:14 [main] TRACE EquationEvaluationPr - Unable to evaluate PerceptEvent{8ffb0,7ms,0.068,ref=0efb6,Equation#3b3...
00:01:14 [main] TRACE Emulator             - Events: [[MemorySearchRequestEvent{6cfa6,1ms,0.078,ref=8ffb0,Equation#...
00:01:14 [main] DEBUG WorkingMemory        - WM Add:     MemorySearchRequestEvent{6cfa6,2ms,0.078,ref=8ffb0,Equatio...
00:01:14 [main] TRACE EquationEvaluationPr - Unable to evaluate PerceptEvent{8ffb0,19ms,0.058,ref=0efb6,Equation#3b...
00:01:14 [main] TRACE FindMatchingConceptP - Blocked event emit because already present and unhandled in WM: Memory...
00:01:14 [main] TRACE Emulator             - Events: []
00:01:14 [main] TRACE EquationEvaluationPr - Unable to evaluate PerceptEvent{8ffb0,21ms,0.048,ref=0efb6,Equation#3b...
00:01:14 [main] TRACE FindMatchingConceptP - Blocked event emit because already present and unhandled in WM: Memory...
00:01:14 [main] TRACE Emulator             - Events: []
00:01:14 [main] TRACE EquationEvaluationPr - Unable to evaluate PerceptEvent{8ffb0,22ms,0.038,ref=0efb6,Equation#3b...
00:01:14 [main] TRACE FindMatchingConceptP - Blocked event emit because already present and unhandled in WM: Memory...
00:01:14 [main] TRACE Emulator             - Events: []
00:01:14 [main] TRACE EquationEvaluationPr - Unable to evaluate PerceptEvent{8ffb0,23ms,0.028,ref=0efb6,Equation#3b...
00:01:14 [main] TRACE FindMatchingConceptP - Blocked event emit because already present and unhandled in WM: Memory...

Originally posted by @toaomalkster in #6 (comment)

Not writing the expression parsed PerceptEvent into STM

Bug - it's not writing the PerceptEvent into STM:

STM Add:    MemoryEvent{179fc,1ms,0.500,{eventData:3 + ? = 8,eventType:TextRequestEvent}}
STM Add:    MemoryEvent{b0cdd,0ms,0.600,{eventData:true,eventType:StuckThoughtEvent}}

I think that should include

PerceptEvent{8ffb0,19ms,0.058,ref=0efb6,Equation#3b388[Number#a6fea(3) Operator#48bb5(+) ExpressionToken#6221f(?) EquationOperator#1c814(=) Number#0fb94(8)]}

Part of the problem is that I think I've missed a step:

  1. Try to parse -> PerceptEvent with low priority due to parse errors
  2. Try to evaluate -> Stuck.
  3. Parser should see Stuck flag and upgrade the strength.
  4. Now PerceptEvent becomes top and gets copied to STM.
  5. Still nothing else happening -> Stuck, again.
  6. Now try loading concept from LTM.

Originally posted by @toaomalkster in #6 (comment)

Stuck Thought Event Creation

Processor to receive StuckThoughtEvent from Interceptor and to decide what to do with it before it gets emitted. Should be able to enhance/subdue the event emitted by the interceptor.

Should identify what the end of the chain of thought is, rather than flagging against some arbitrary event.

Could possibly create TriedAttemptsEvent, or even store in StuckThoughtEvent, or could leave that to a subsequent processor.

Add UI

  • CLI
  • Web App
  • Separated Web App front-end from Emulator+REST API for faster build/run cycle times.
  • Javalin or Spark Framework for REST API.
  • Some sort of queuing mechanism between UI and Emulator

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.