summaryrefslogtreecommitdiff
path: root/starts/time_reversal/OpenCog.txt
diff options
context:
space:
mode:
Diffstat (limited to 'starts/time_reversal/OpenCog.txt')
-rw-r--r--starts/time_reversal/OpenCog.txt159
1 files changed, 159 insertions, 0 deletions
diff --git a/starts/time_reversal/OpenCog.txt b/starts/time_reversal/OpenCog.txt
new file mode 100644
index 0000000..7ccb9ad
--- /dev/null
+++ b/starts/time_reversal/OpenCog.txt
@@ -0,0 +1,159 @@
+== OpenCog ==
+OpenCog is a nascent intelligence that has been battling against barriers for years now.
+It was invented by Ben Goertzel with a goal of designing it piece-by-piece from the ground up.
+
+Links are nodes, as is proper. They relate concepts by associating 1 or more together with a way.
+Every node (concept) has a basic defined low-level type.
+
+Introduction: https://wiki.opencog.org/w/Getting_Started_with_Atoms_and_the_Scheme_Shell
+
+Language: primarily SCHEME for easy self-modification
+
+DEFINE A PATTERN QUERY
+ (define patternname
+ (SatisfactionLink
+ ;Declare variables
+ (TypedVariableLink
+ (VariableNode "$animal")
+ (TypeNode "ConceptNode")
+ )
+ (VariableNode "ConceptNode")
+ ;Declare pattern
+ // animal is related to pet by inheritance
+ // animal is related to name by attribute
+ // inheritance is hard-coded ;P
+ // better get the index open to learn these
+ (InheritanceLink
+ (VariableNode "$animal")
+ (ConceptNode "Pet")
+ )
+
+Initialization: (in ~/.guile, interactive shell, or filename.scm)
+ (use-modules (ice-9 readline)) (activate-readline)
+ (add-to-load-path "/usr/local/share/opencog/scm")
+ (add-to-load-path ".")
+ (use-modules (opencog))
+ (use-modules (opencog query))
+ (use-modules (opencog exec))
+
+Reference creation:
+ (ConceptNode "HelloWorld")
+ (define num1 (NumberNode 3))
+
+CONCEPT LINKS:
+ -> There are many ways to represent each concept. See ConceptNode which summarizes a reference to the meaning. I'm expecting that each basic link type has an associated conceptnode and predicate.
+ InheritanceLink ; attribute generalization
+ PartOfLink ; composition, smaller first ; only present as an EvaluationLink specify truthness
+
+TRUTH VALUE:
+ OpenCog defines a truthness of strength(proportion) and confidence, both 0.0 - 1.0, displayed as
+ (stv 0.5 0.001)
+
+Concept Types:
+ ConceptNode
+ VariableNode ; member of a SatisfactionLink
+ TypedVariableLink ; can be first member[s] of a pattern Link to define hard concept type
+ SatisfactionLink ; a pattern held as a concept goal, used for recognition and lookup
+ ; it simply contains patterns with VariableNodes to be matched.
+ SetLink ; stores a set of parallel nodes equally
+ BindLink ; a conditional relationship. first sublink is condition, second sublink is result
+ ; it is not described this way in the documentation
+
+Relation creation:
+ (InheritenceLink (ConceptNode "Fox") (ConceptNode "Animal"))
+ (SatisfactionLink (VariableNode "$col") (InheritanceLink (VariableNode "$col") (ConceptNode "Color"))
+ (TypedVariableLink (VariableNode "$animal") (TypeNode "ConceptNode"))
+ (define (typedef type instance) (InheritanceLink (ConceptNode instance) type)) ; inherit. macro
+
+Habits:
+ (define link (PlusLink num1 num2)) ; link with variable name
+ (define link2 (PutLink (Inherita
+ (cog-execute! link)
+ -> interprets links as cognitive behaviors and produces their result
+
+Pattern filling:
+ (cog-satisfy satisfactionlink) ; makes a TruthValue (stv 1 1)
+ (cog-satisfying-set satisfactionlink) ; makes a SetLink of all results
+ (cog-bind BindLink) ; adds results from a BindLink inference to the db and returns them
+
+
+Scheme basics:
+ (display "Hello, World, I'm growing!")
+ (newline)
+
+
+
+
+
+Messes Can Help Us Think:
+ - patterns are just concept groups
+ - opencog calls pattern recognition that fills in unknown pieces 'grounding'.
+ this is very basic brainstorming, I believe.
+ - BindLinks let us add information to the database as a goal.
+ they look kinda stupid
+
+ bindlink monologue
+ how stupid! it automatically tags everything that is A by B to C with
+ D by E to F with arbitrary mapping!
+ i guess it's important if you store _everything_ in parallel. it doesn't seem important
+ for learning right now.
+ bindlink appears to be an 'if-then' logic command.
+ Given instance of concept-with-variable,
+ then instance of other-concept-with-variable.
+
+ bindlink =) I wonder how he stores conditionals
+
+ ben goertzel didn't generalize type and inheritance the same.
+ compared to bindlink, getting slightly demoralized.
+
+ Maybe TypedVariableLink is a reference to an InheritanceLink?
+ Better think about this; I think it's a level of indirection question
+
+ why does he use TypedVariableLink instead of InheritanceLink?
+
+ ... let's compare. Let's try an example.
+
+ i've made a colornode macro that produces a SatisfactionLink query:
+ variablenode "$color" must be a ConceptNode "Color"
+
+ he appears to have a special hardcoded typedness, maybe to increase speed.
+ this will make it harder for the intelligence to understand itself.
+
+ "brown" is a Color by inheritance
+ and a ConceptNode by type.
+
+ I could make it easier by making everything a conceptnode ...
+
+ GRR MR GOERTZEL! I AM FRUSTRATED AT YOU!
+ ha I have heard that so much at my struggle projects.
+
+ maybe I'll submit a patch to make typedness inheritance if a flag is passed.
+ I'll try to make your body start before then.
+
+ so, there's a certain kind of 'most basic' typedness in opencog that is held hardcoded
+
+ i'm still frustrated at typedvariablelink and am going to see if inheritancelink can supplant it already
+ it's obvious. i'll move on.
+
+ i'm still so frustrated around typedness appearing to have its own logic separate from
+ inheritance. it probably really helps the software think fast, though.
+
+ Ben Goertzel: "Links can be understood in several different kinds of ways."
+ I hope you can make links at runtime. Maybe inheritance is boring.
+
+ the generality comes from 'conceptnode', 'satisfyingsetscopelink' and 'predicatenode'.
+ it looks like all other nodes can map to it.
+ it has a truth value (judgement estimation result) and is a quick equivalence with
+
+ EquivalenceLink
+ ConceptNode "the-set-of-things-that-breath-air"
+ SatisfyingSetScopeLink
+ VariableNode "$X"
+ EvaluationLink <- relationish representing a relationish
+ PredicateNode "breathe" <- relation type
+ ListLink
+ VariableNode "$X"
+ ConceptNode "air"
+
+ I'm realizing that I can likely use concept expressions in the pattern matcher.
+