summaryrefslogtreecommitdiff
path: root/intellect-framework-from-internet/starts/meaning-vm/level-2/habits.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'intellect-framework-from-internet/starts/meaning-vm/level-2/habits.hpp')
-rw-r--r--intellect-framework-from-internet/starts/meaning-vm/level-2/habits.hpp173
1 files changed, 0 insertions, 173 deletions
diff --git a/intellect-framework-from-internet/starts/meaning-vm/level-2/habits.hpp b/intellect-framework-from-internet/starts/meaning-vm/level-2/habits.hpp
deleted file mode 100644
index d5fb0fd..0000000
--- a/intellect-framework-from-internet/starts/meaning-vm/level-2/habits.hpp
+++ /dev/null
@@ -1,173 +0,0 @@
-#pragma once
-
-#include "common.hpp"
-#include "ref.hpp"
-#include "concepts.hpp"
-
-namespace intellect {
-namespace level2 {
-
-void createhabits();
-
-ref makeconcept();
-void conceptunmake(ref c);
-
-namespace concepts {
-
- // make a link
- // link(source, type, target)
- static ref link("link");
-
- // get if a link is permanent
- // result = (link-crucial)(source, type, target)
- static ref crucial("crucial");
-
- // set a link to be permanent
- // (link-set-crucial)(source, type, target)
- static ref set("set");
-
- // get if a link exists
- // result = linked(source, type, target? = anything)
- static ref linked("linked");
-
- // remove a link
- // unlink(source, type, target)
- static ref unlink("unlink");
-
- // get a link target by type
- // result = get(source, type)
- static ref get("get");
-
- // set a link target, replacing an existing type if needed
- // set(source, type, target)
-
- // produce a totally new, empty concept, with no links to or from
- // result = (make-concept)()
- static ref make("make"), concept("concept");
-
- // produce a new concept by copying links and data from an old concept.
- // nothing will link to new concept.
- // result = (make-copy)(concept)
- static ref copy("copy");
-
- // destroy a concept forever, for handling temporary data.
- // this will fail if the concept is set to be crucial, or is in use.
- // (concept-unmake)(concept)
- static ref unmake("unmake");
-
- // get if a concept is set to be crucial
- // result = (concept-crucial)(concept)
-
- // set a concept to be crucial
- // r(concept-set-crucial)(concept)
-
- // place a concept in a new group.
- // forms a new link of type 'is', fails if one aleady exists
- // concept = (know-is)(concept, group)
- static ref know("know"), is("is") ;
-
- // fill any concept with information about the first link entry in a concept
- // if there is a link in the entry, then [type] and [target] will be present
- // link-entry = (know-is-first-link-entry)(link-entry, concept)
- static ref first("first"), entry("entry");
-
- // fill any concept with information about the last link entry in a concept
- // link-entry = (know-is-last-link-entry)(link-entry, concept)
- static ref last("last");
-
- // change a link entry concept to be about the next link in the concept
- // link-entry = (next-link-entry)(link-entry)
-
- // change a link entry concept to be about the previous link in the concept
- // link-entry = (previous-link-entry)(link-entry)
- static ref previous("previous");
-
- // get if two link entry concepts refer to the same link entry
- // result = (same-link-entry)(link-entry-A, link-entry-B)
- static ref same("same");
-
- // remove a link entry from a concept
- // the entry will be about the next one, after the action
- // link-entry = (link-entry-unlink)(link-entry)
-
- // get if a link entry is set to be crucial
- // result = (link-entry-crucial)(link-entry)
-
- // set a link entry to be crucial & permanent
- // (link-entry-set-crucial)(link-entry)
-
- // add links to a concept facilitating use as a list
- // list = (know-is-list)(list)
- static ref list("list");
-
- // get the first list-entry of a list
- // result = (list-first-entry)(list)
-
- // get the last list-entry of a list
- // result = (list-last-entry)(list)
-
- // get a subsequent list-entry
- // result = (list-entry-next)(list-entry)
-
- // get a preceding list-entry
- // result = (list-entry-previous)(list-entry)
-
- // get the item associated with a list-entry
- // result = (list-entry-item)(list-entry)
- static ref item("item");
-
- // make a new entry in a list, holding an item concept
- // list = (make-next-list-entry)(list, item)
-
- // destroy forever an entry in a list. for lists of temporaries.
- // the result is the next entry.
- // result = (list-entry-unmake)(list-entry, le)
-
- // action(list-entry, context) for every entry in a list until result made
- // result = (list-each-entry)(list, context, action)
- static ref each("each");
-
- // get if a list has an item in it
- // result = (list-has-item)(list, item)
- static ref has("has");
-
- // destroy forever an entry in its list, by the item it contains
- // for lists of temporaries
- // true = (list-item-entry-unmake)(list, item)
-
- // the .act level-2 member function can ease list creation.
- // it passes itself as the first argument to a habit
- // (make-concept)().act(know-is-list)
- // .act(make-next-list-entry, i1)
- // .act(make-next-list-entry, i2)
- // ...;
-
- // make a concept holding an item in a translation map
- // result = (make-map-item)(source, target)
- static ref map("map");
-
- // make a contextual subcontext for an action
- // the maps are lists of translation map items
- // known-information is a map where the source items are taken literally instead of mapped
- // result = (make-context-action)(known-information, needed-information-map, made-information-map, action)
- static ref action("action");
-
- // condition do one of multiple possible actions
- // looks up actions[condition] and does that.
- // does actions[anything] if nothing matches.
- // result = (condition-action)(condition, actions)
- static ref condition("condition");
-
- // action handlers
- // calls anything with a 'habit' handler: act(action, context)
- // for action is habit: provides context as full context
- // for action has habit: calls habit with unordered (context, action)
- // recursively handles if habit itself has habit to handle it.
- // the habit of habits, calls a habit: habit(context, action)
- // the habit of context-actions, calls a subcontextual action: (context-action)(context, action)
- // the habit of action lists, calls a list of actions: (action-list)(context, action)
- // the habit of 'nothing', does nothing: (nothing)()
-}
-
-}
-}