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/main.cpp | 57 ++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 intellect-framework-from-internet/starts/meaning-vm/main.cpp (limited to 'intellect-framework-from-internet/starts/meaning-vm/main.cpp') diff --git a/intellect-framework-from-internet/starts/meaning-vm/main.cpp b/intellect-framework-from-internet/starts/meaning-vm/main.cpp new file mode 100644 index 0000000..513efd2 --- /dev/null +++ b/intellect-framework-from-internet/starts/meaning-vm/main.cpp @@ -0,0 +1,57 @@ +#include "concept.hpp" +#include "helpers.hpp" +#include "meaning.hpp" + + +#include + +void dumpconcept(ref r) +{ + decllnks(dumped, name); + + for (auto & l : r->links) { + if (ref(l.first) == name) { + continue; + } + std::cout << r << " " << ref(l.first) << " " << ref(l.second) << std::endl; + } + if (!r->linked(dumped)) { + r[dumped = true]; + } + for (auto & l : r->links) { + if (!l.second->linked(dumped)) { + dumpconcept(l.second); + } + } +} + +int main() +{ + declrefs(make, linked, habit); + declrefs(structure, function, argument, position, provide); + decllnks(needs, assumes, makes); + decllnks(A, B, C); + decllnks(is); + lnks(argument-position); + + // add a new unique link to a concept + // given A, B, C + // and assuming A is not linked by B to C, + // makes A be linked by B to C. + // NEXT? make code for make-linked that takes a ref + // change the needs structure to use a model for the ref, + // with needed values specified as 'provided' + make-linked = a(habit)[ + needs = a(structure)[ + is = function-argument, + argument-position = vref(1), + avariable(A) = provide, + avariable(B) = provide, + avariable(C) = provide + ], + assumes = not(A-B-C-linked = link(A, B, C)), + makes = A-B-C-linked + ]; + + dumpconcept(make-linked); +} -- cgit v1.2.3