On Wed, Nov 23, 2016 at 9:46 PM, Apil Tamang <[email protected]>
wrote:

> Hi All,
>
> Had a look through the 'knowledge.scm' and 'imperative.scm' files.
>

FYI I plan on making major overhauls to these and nearby files over the
next month


> Also, learning scheme syntax on the fly here... Have a couple of some
> fundamental questions which I believe would aide my understanding:
>
> 1. 'Knowledge.scm'
> <https://github.com/opencog/opencog/blob/21ad879d85d31013e59870b895bb0a0aef97242c/opencog/nlp/chatbot-eva/knowledge.scm>
> :
>
> What are the differences between some very look-alike nodes such as:
>   - Reference Vs ReferenceLink,
>   - WordNode Vs Word,
>   - ConceptNode Vs Concept
>   - AnchorNode Vs Anchor ?
>
>
No difference. Just a short-hand.


>
> Also, what do the nodes: "DefinedSchema", "DefinedPredicate" mean?
>
>
They are references to definitions elsewhere.


> Line 204 says:
>
> (Inheritance (Anchor "*-gaze-direction-*") (Concept "model-direction"))
>
> Do the asterisk mean a wild-card matching?
>
>
No -- asterisks are a scheme convention of indicating that something is a
global (a constant, in this case)

>
> 2. 'Imperative.scm
> <https://github.com/opencog/opencog/blob/21ad879d85d31013e59870b895bb0a0aef97242c/opencog/nlp/chatbot-eva/imperative-rules.scm>
> '
>
> The code here is a bit more involved,
>
>
Yeah. I really really needs to be simplfied.  Which is something I want to
work on.


> but I think I managed to understand most of it after reading about scheme
> a little. A few things I'm still in the dark are:
>
> - What do 'DECL' semantically mean in this code? I'm comparing this
> against identifiers such as 'VERB-LIST' or 'LINKS' which are obvious by
> their names.
>
>
decl is a declaration of a variable. The way that BindLinks and GetLinks
(and various other links) work is that one should declare the variables
that appear in them.  DECL is just a small utility function that declares
the variables.  (since declaring them is fairly verbose, otherwise)

>
>
> - I see that rules 'look-rule-1' and 'look-rule-2' have been redefined in
> this code, the second time using a template. I suppose scheme will just
> override the function bindings to these rules, so we won't really have a
> problem running the script.
>
>
Yes.

> Thus, do we really need to maintain the earlier definitions for
> 'look-rule-1' and 'look-rule-2' ?
>
>
No. They are there more as an example.  I was hoping that someone else
would take over this code, so I wrote examples.  But this won't happen --
I'll have to do a lot of cleanup and rework.


>
>
> - Looked at this line over and over again. I still cannot completely parse
> this code against the standard Scheme syntax. How does this line work (or
> what does it do)? I suppose 'stv' stands for 'standard truth value' and
> 'print-msg' and 'display' are some scheme keywords for echoing data. Aside
> from just printing, what bindings happen within this statement?
>
> (define (print-msg node) (display (cog-name node)) (newline) (stv 1 1))
>
>
This defines a subroutine called 'print-msg' which takes one argument.
That argument better be an opencog node, because cog-name  will throw an
error if it is not. The print-msg suroutiine then ends by returning the
result of evaluating the last statement in it -- in this case, the stv 1 1
-- that is, it returns a simple truth value of 'TRUE_TV'    The return
value allows it to be called from a GroundedPredicateNode, thus allowing it
to be embedded into atomsese.

--linas

> --
> You received this message because you are subscribed to the Google Groups
> "opencog" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/opencog.
> To view this discussion on the web visit https://groups.google.com/d/
> msgid/opencog/521f8532-6406-4746-84b1-b1bc0f1b3d2e%40googlegroups.com
> <https://groups.google.com/d/msgid/opencog/521f8532-6406-4746-84b1-b1bc0f1b3d2e%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"opencog" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/opencog.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/opencog/CAHrUA37VBg7xf_2Hbu_XS0ofMD7JadJS5OUOWwLB2tMEicWcEg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to