From c8bb547bea279af2bb48c13260f98aa8add07131 Mon Sep 17 00:00:00 2001 From: olpc user Date: Fri, 10 Jan 2020 14:55:19 -0800 Subject: move intellect-framework-from-internet into folder --- .../starts/meaning-vm/DESIGN.txt | 46 ++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 intellect-framework-from-internet/starts/meaning-vm/DESIGN.txt (limited to 'intellect-framework-from-internet/starts/meaning-vm/DESIGN.txt') diff --git a/intellect-framework-from-internet/starts/meaning-vm/DESIGN.txt b/intellect-framework-from-internet/starts/meaning-vm/DESIGN.txt new file mode 100644 index 0000000..295a7f2 --- /dev/null +++ b/intellect-framework-from-internet/starts/meaning-vm/DESIGN.txt @@ -0,0 +1,46 @@ +The codebase is made in levels. +Ideally each level defines a complete API to the underworkings. +Higher levels include greater degrees of meaning and are +more expressive and powerful. +The purpose of levels is to prevent complexity recursion +until the components are smart enough to adapt, and make +handling bugs much less explosive. + +Levels have a 'ref' class they use to refer to concepts. +Each higher level adds more functionality to this class. +The desired norm of coding a level is to use only the +functionality of the level prior, except to use that +level's ref class, rather than the lower one. Ref classes +are just wrappers for a pointer, so this should cause no +issues. +This norm was established after levels 0 and 1 were coded, +so they do not meet it yet. + +# LEVEL 0 +Level 0 defines an interconnected network of concept references in memory. +Each concept has a unique address, and a list of concept pairs it links to. +The first of the pair represents the type of the link, and the second the target. +Concepts may not be deallocated unless nothing links to them. +A special kind of concept is the value, which holds arbitrary data alongside itself. + +# LEVEL 1 +Level 1 provides for every concept having a name using the "name" link. +There is additionally syntax sugar for instantiating and using named or hyphen-separated +references. Level-1 names are for development ease, and are considered unique. +When multiple references are made with the same name, they always refer to the same concept. +Level-1 introduce the concept of groups, using the "is" link, and uses it to categorize +concepts that have an autogenerated name in the "anonymous" group. + +# LEVEL 2 +Whatever gets implemented next. Maybe expression operators, maybe structure promises, +maybe infrastructure for moving implementation onto ref code objects. + +# FUTURE +## Relevence pattern matching + This is important and core. + This appears similar to graph structure matching, except that code creatively relevent to + the parts of the structure must be continually run so as to generate new information, + new structural parts. + At its simplest, this solves (A is not a dog), (A is a cat), (cats are never dogs), + with logical habits relevent to 'not', 'never', 'is', using one single matching interface, + but with more relevence could do more. -- cgit v1.2.3