Re: [opencog-dev] Re: Running the pattern miner

2016-06-29 Thread 'Nil Geisweiller' via opencog

Apparently this branch was started a year ago.

Shujing, what prevents you from merging it into the master?

Nil

On 06/29/2016 10:45 AM, Ben Goertzel wrote:

True... though I wonder what incompatibilities that branch has, as
compared to master...

On Wed, Jun 29, 2016 at 3:39 PM, AmeBel  wrote:

Hi,

FYI, the in-development patterminer can be found on the
PatternMinerEmbodiment branch @ opencog/opencog/ repo.

On Wednesday, June 29, 2016 at 3:16:13 PM UTC+8, Nil wrote:


Well, I haven't moved past this issue, I think this other error is just
a different manifestation of the same problem...

Nil

On 06/29/2016 10:00 AM, Nil Geisweiller wrote:

Actually, I've moved past that issue (I didn't use the right conf), but
I've got another, perhaps more worrisome

[2016-06-29 06:58:08:109] [INFO] Loading module

"/home/nilg/OpenCog/opencog/build/opencog/learning/PatternMiner/libTestPatternMinerAgent.so"

[2016-06-29 06:58:08:109] [ERROR] Caught signal 11 (Segmentation fault)
on thread 140204635740224
  Stack Trace:

I guess I'll have to fire up gdb. Meanwhile, any feedback is
appreciated.

Nil

On 06/29/2016 09:55 AM, Nil Geisweiller wrote:

Hi,

I'm trying to use the pattern miner. I'm posting here first before
creating a github issue in case it is a silly problem.

I'm loading the test in the cogserver

opencog> loadmodule

/home/nilg/OpenCog/opencog/build/opencog/learning/PatternMiner/libTestPatternMinerAgent.so



and getting

[2016-06-29 05:43:14:123] [WARN] Unable to load module

"/home/nilg/OpenCog/opencog/build/opencog/learning/PatternMiner/libTestPatternMinerAgent.so":


/home/nilg/OpenCog/opencog/build/opencog/learning/PatternMiner/libPatternMiner.so:

undefined symbol: _ZN7opencog11OBJECT_NODEE

Any idea?

Nil


--
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/387b5bac-3b76-49c0-b650-40d6f8396ea2%40googlegroups.com.

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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/57737E38.4010904%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


[opencog-dev] Re: Running the pattern miner

2016-06-29 Thread 'Nil Geisweiller' via opencog
Well, I haven't moved past this issue, I think this other error is just 
a different manifestation of the same problem...


Nil

On 06/29/2016 10:00 AM, Nil Geisweiller wrote:

Actually, I've moved past that issue (I didn't use the right conf), but
I've got another, perhaps more worrisome

[2016-06-29 06:58:08:109] [INFO] Loading module
"/home/nilg/OpenCog/opencog/build/opencog/learning/PatternMiner/libTestPatternMinerAgent.so"

[2016-06-29 06:58:08:109] [ERROR] Caught signal 11 (Segmentation fault)
on thread 140204635740224
 Stack Trace:

I guess I'll have to fire up gdb. Meanwhile, any feedback is appreciated.

Nil

On 06/29/2016 09:55 AM, Nil Geisweiller wrote:

Hi,

I'm trying to use the pattern miner. I'm posting here first before
creating a github issue in case it is a silly problem.

I'm loading the test in the cogserver

opencog> loadmodule
/home/nilg/OpenCog/opencog/build/opencog/learning/PatternMiner/libTestPatternMinerAgent.so



and getting

[2016-06-29 05:43:14:123] [WARN] Unable to load module
"/home/nilg/OpenCog/opencog/build/opencog/learning/PatternMiner/libTestPatternMinerAgent.so":

/home/nilg/OpenCog/opencog/build/opencog/learning/PatternMiner/libPatternMiner.so:

undefined symbol: _ZN7opencog11OBJECT_NODEE

Any idea?

Nil


--
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/577375BB.7090903%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: Running the pattern miner

2016-06-29 Thread 'Nil Geisweiller' via opencog
 and actions, where the game character is running around in
the old Unity3D game world, controlled by the old Embodiment

There is no conceptual reason not to just port all this to Minecraft,
but Shujing hasn't had time to do that, as she's been doing this work
in a hurry as it's part of what she needs to do to finish her PhD
thesis...

At least the above is my understanding; Shujing can correct me if
I'm wrong!




On Wed, Jun 29, 2016 at 3:52 PM, 'Nil Geisweiller' via opencog
<opencog@googlegroups.com <mailto:opencog@googlegroups.com>> wrote:
 > Apparently this branch was started a year ago.
 >
 > Shujing, what prevents you from merging it into the master?
 >
 > Nil
 >
 >
 > On 06/29/2016 10:45 AM, Ben Goertzel wrote:
 >>
 >> True... though I wonder what incompatibilities that branch has, as
 >> compared to master...
 >>
 >> On Wed, Jun 29, 2016 at 3:39 PM, AmeBel <a...@hansonrobotics.com
<mailto:a...@hansonrobotics.com>> wrote:
 >>>
 >>> Hi,
 >>>
 >>> FYI, the in-development patterminer can be found on the
 >>> PatternMinerEmbodiment branch @ opencog/opencog/ repo.
 >>>
 >>> On Wednesday, June 29, 2016 at 3:16:13 PM UTC+8, Nil wrote:
 >>>>
 >>>>
 >>>> Well, I haven't moved past this issue, I think this other
error is just
 >>>> a different manifestation of the same problem...
 >>>>
 >>>> Nil
 >>>>
 >>>> On 06/29/2016 10:00 AM, Nil Geisweiller wrote:
 >>>>>
 >>>>> Actually, I've moved past that issue (I didn't use the right
conf), but
 >>>>> I've got another, perhaps more worrisome
 >>>>>
 >>>>> [2016-06-29 06:58:08:109] [INFO] Loading module
 >>>>>
 >>>>>
 >>>>>

"/home/nilg/OpenCog/opencog/build/opencog/learning/PatternMiner/libTestPatternMinerAgent.so"
 >>>>>
 >>>>> [2016-06-29 06:58:08:109] [ERROR] Caught signal 11
(Segmentation fault)
 >>>>> on thread 140204635740224
 >>>>>   Stack Trace:
 >>>>>
 >>>>> I guess I'll have to fire up gdb. Meanwhile, any feedback is
 >>>>> appreciated.
 >>>>>
 >>>>> Nil
 >>>>>
 >>>>> On 06/29/2016 09:55 AM, Nil Geisweiller wrote:
 >>>>>>
 >>>>>> Hi,
 >>>>>>
 >>>>>> I'm trying to use the pattern miner. I'm posting here first
before
 >>>>>> creating a github issue in case it is a silly problem.
 >>>>>>
 >>>>>> I'm loading the test in the cogserver
 >>>>>>
 >>>>>> opencog> loadmodule
 >>>>>>
 >>>>>>
 >>>>>>

/home/nilg/OpenCog/opencog/build/opencog/learning/PatternMiner/libTestPatternMinerAgent.so
 >>>>>>
 >>>>>>
 >>>>>>
 >>>>>> and getting
 >>>>>>
 >>>>>> [2016-06-29 05:43:14:123] [WARN] Unable to load module
 >>>>>>
 >>>>>>
 >>>>>>

"/home/nilg/OpenCog/opencog/build/opencog/learning/PatternMiner/libTestPatternMinerAgent.so":
 >>>>>>
 >>>>>>
 >>>>>>
 >>>>>>

/home/nilg/OpenCog/opencog/build/opencog/learning/PatternMiner/libPatternMiner.so:
 >>>>>>
 >>>>>> undefined symbol: _ZN7opencog11OBJECT_NODEE
 >>>>>>
 >>>>>> Any idea?
 >>>>>>
 >>>>>> Nil
 >>>
 >>>
 >>> --
 >>> 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 opencog+unsubscr...@googlegroups.com
<mailto:opencog%2bunsubscr...@googlegroups.com>.
 >>> To post to this group, send email to opencog@googlegroups.com
<mailto:opencog@googlegroups.com>.
 >>> Visit this group at https://groups.google.com/group/opencog.
 >>> To view this discussion on the web visit
   

Re: [opencog-dev] Re: Running the pattern miner

2016-06-29 Thread 'Nil Geisweiller' via opencog
nk she could likely merge her improved PM
into master...

What she is doing (among other things) is using the PM to recognize
patterns in the Atomspace resulting from a game character's
perceptions and actions, where the game character is running
around in
the old Unity3D game world, controlled by the old Embodiment

There is no conceptual reason not to just port all this to
Minecraft,
but Shujing hasn't had time to do that, as she's been doing this
work
in a hurry as it's part of what she needs to do to finish her PhD
thesis...

At least the above is my understanding; Shujing can correct me if
I'm wrong!




On Wed, Jun 29, 2016 at 3:52 PM, 'Nil Geisweiller' via opencog
<opencog@googlegroups.com <mailto:opencog@googlegroups.com>> wrote:
 > Apparently this branch was started a year ago.
 >
 > Shujing, what prevents you from merging it into the master?
 >
 > Nil
 >
 >
 > On 06/29/2016 10:45 AM, Ben Goertzel wrote:
 >>
 >> True... though I wonder what incompatibilities that branch
has, as
 >> compared to master...
 >>
 >> On Wed, Jun 29, 2016 at 3:39 PM, AmeBel <a...@hansonrobotics.com
<mailto:a...@hansonrobotics.com>> wrote:
 >>>
 >>> Hi,
 >>>
 >>> FYI, the in-development patterminer can be found on the
 >>> PatternMinerEmbodiment branch @ opencog/opencog/ repo.
 >>>
 >>> On Wednesday, June 29, 2016 at 3:16:13 PM UTC+8, Nil wrote:
 >>>>
 >>>>
 >>>> Well, I haven't moved past this issue, I think this other
error is just
 >>>> a different manifestation of the same problem...
 >>>>
 >>>> Nil
 >>>>
 >>>> On 06/29/2016 10:00 AM, Nil Geisweiller wrote:
 >>>>>
 >>>>> Actually, I've moved past that issue (I didn't use the right
conf), but
 >>>>> I've got another, perhaps more worrisome
 >>>>>
 >>>>> [2016-06-29 06:58:08:109] [INFO] Loading module
 >>>>>
 >>>>>
 >>>>>

"/home/nilg/OpenCog/opencog/build/opencog/learning/PatternMiner/libTestPatternMinerAgent.so"


 >>>>>
 >>>>> [2016-06-29 06:58:08:109] [ERROR] Caught signal 11
(Segmentation fault)
 >>>>> on thread 140204635740224
 >>>>>   Stack Trace:
 >>>>>
 >>>>> I guess I'll have to fire up gdb. Meanwhile, any feedback is
 >>>>> appreciated.
 >>>>>
 >>>>> Nil
 >>>>>
 >>>>> On 06/29/2016 09:55 AM, Nil Geisweiller wrote:
 >>>>>>
 >>>>>> Hi,
 >>>>>>
 >>>>>> I'm trying to use the pattern miner. I'm posting here first
before
 >>>>>> creating a github issue in case it is a silly problem.
 >>>>>>
 >>>>>> I'm loading the test in the cogserver
 >>>>>>
 >>>>>> opencog> loadmodule
 >>>>>>
 >>>>>>
 >>>>>>

/home/nilg/OpenCog/opencog/build/opencog/learning/PatternMiner/libTestPatternMinerAgent.so


 >>>>>>
 >>>>>>
 >>>>>>
 >>>>>> and getting
 >>>>>>
 >>>>>> [2016-06-29 05:43:14:123] [WARN] Unable to load module
 >>>>>>
 >>>>>>
 >>>>>>

"/home/nilg/OpenCog/opencog/build/opencog/learning/PatternMiner/libTestPatternMinerAgent.so":


 >>>>>>
 >>>>>>
 >>>>>>
 >>>>>>

/home/nilg/OpenCog/opencog/build/opencog/learning/PatternMiner/libPatternMiner.so:


 >>>>>>
 >>>>>> undefined symbol: _ZN7opencog11OBJECT_NODEE
 >>>>>>
 >>>>>> Any idea?
 >>>>>>
 >>>>>> Nil
 >>>
 >>>
 >>> --
 >>> 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 opencog+unsubscr...@googlegroups.com
<mailto:opencog%2bunsubscr...@googlegroups.com>.
 >>> To post to this group, send email to

Re: [opencog-dev] Re: Running the pattern miner

2016-06-29 Thread 'Nil Geisweiller' via opencog

On 06/29/2016 04:45 PM, Shujing Ke wrote:

I would suggest not to merge the PatternMinerEmbodiment  into the
master. The mining algorithm is not better. It's just integrated with
planner and the old PAI.


OK, thanks for the info.



Is it urgent that you need to run the pure Pattern Miner (in the
master)? I am already finishing the PatternMinerEmbodiment
implementation and just need a few more days to make a pretty demo. I
can switch back to the master to test the Pattern Miner on master
probably next week if you can wait.


It wouldn't be necessary I can run the demo as expected. Now I just want 
to do a bit of cleaning, then implement scheme bindings for it.


Nil



On Wed, Jun 29, 2016 at 3:32 PM, 'Nil Geisweiller' via opencog
<opencog@googlegroups.com <mailto:opencog@googlegroups.com>> wrote:

Shujing,

I might start hacking the pattern miner on the master soon. Once I
do that there's is no coming back, I mean that merging the pattern
miner from the PatternMinerEmbodiment branch will be a huge pain, so
if that's the plan please let me know. I won't start touching it
till I get your feedback.

Thanks,
Nil

On 06/29/2016 01:20 PM, Shujing Ke wrote:

Hi,

The pure pattern miner test is a pure OpenCog thing, doesn't
require the
Unity3d game project. It has two modes, a single machine mode, and a
distributed mode, see
http://wiki.opencog.org/wikihome/index.php/Pattern_Miner   They both
have been merged into the main Opencog branch before the end of last
year. If you follow this wiki page, please use the one in the main
branch. But because I haven't checked it again since this year,
so maybe
some parts in OpenCog it depends on have changed and the Pattern
Miner
is still last year's version. I will try to test it again later
when I
have time.

Yes, the current developing branch is integrating with the
Embodiment
client to recognize patterns by unsupervised learning from other
scripted NPCs' behaviour in the Unity3d game world for a demo in
my PhD
thesis. Because I got the impression that the new Embodiment
system is
in Ros now, and it is for connecting to the robots instead of
Unity3d
game world.  There are 3 reasons I chose to use the old embodiment +
unity3d game world:

1. The demo I am making is to do unsupervised learning from a
noisy and
multi-contextual environment, needs to be easy to script the NPC
agents
to do a lot of random different high level actions, like walk to
something, pick up something, eat something, drop something,
even using
magic to heal someone, open chests with a keyIt will be hard to
script a lot of NPC robots to do all of these.

2. If we want to connect the Pattern Miner to current robotic
project,
it will also require a computer vision processor to recognize
low-level
robotic actions first before all the perceived knowledge can all be
turned into Atoms in the AtomSpace, which I assume won't become
matured
and work perfectly with the whole OpenCog in near future.

3. For a more visible complete demo, after the Pattern Miner found a
pattern it need a planner to work together to use the new found
pattern
in planning, and then a new plan can be sent to the client for
execution. Since I am not there anymore, and to debugging the
planner
and the whole action execution pipeline from OpenCog embodiment to a
robot and feedback to OpenCog is very difficult for me. And is
probably
also require a lot of complex robotic mechanism implementation
which I
am not good at.

But once the perceiving modules and action execution modules are all
implemented and integrated well with the robots and OpenCog, it
should
not be hard to integrate my current developing stuff with the new
Embodiment system.

BTW, for anyone who is interested about what exactly my current
demo can do:

*The motivation:*
Any other kinds of learning in AI all require manually pick the
learning
materials, examples for a certain task for the agent to learn
from. But
real human level intelligence is able to just observe the whole
world,
without pre-assigned any tasks, just learning every useful
things from
the world. And once a new task is given, a human can search
their memory
and find out a solution to solve it. It's also different from
sequence
recognize, a sequence for a task is not always continuous, it can be
disturbed. So the Pattern Miner is aiming a

Re: [opencog-dev] Re: Running the pattern miner

2016-06-29 Thread 'Nil Geisweiller' via opencog
using the PM to recognize
patterns in the Atomspace resulting from a game character's
perceptions and actions, where the game character is running
around in
the old Unity3D game world, controlled by the old Embodiment

There is no conceptual reason not to just port all this to Minecraft,
but Shujing hasn't had time to do that, as she's been doing this work
in a hurry as it's part of what she needs to do to finish her PhD
thesis...

At least the above is my understanding; Shujing can correct me if
I'm wrong!




On Wed, Jun 29, 2016 at 3:52 PM, 'Nil Geisweiller' via opencog
<opencog@googlegroups.com <mailto:opencog@googlegroups.com>> wrote:
 > Apparently this branch was started a year ago.
 >
 > Shujing, what prevents you from merging it into the master?
 >
 > Nil
 >
 >
 > On 06/29/2016 10:45 AM, Ben Goertzel wrote:
 >>
 >> True... though I wonder what incompatibilities that branch
has, as
 >> compared to master...
 >>
 >> On Wed, Jun 29, 2016 at 3:39 PM, AmeBel <a...@hansonrobotics.com
<mailto:a...@hansonrobotics.com>> wrote:
 >>>
 >>> Hi,
 >>>
 >>> FYI, the in-development patterminer can be found on the
 >>> PatternMinerEmbodiment branch @ opencog/opencog/ repo.
 >>>
 >>> On Wednesday, June 29, 2016 at 3:16:13 PM UTC+8, Nil wrote:
 >>>>
 >>>>
 >>>> Well, I haven't moved past this issue, I think this other
error is just
 >>>> a different manifestation of the same problem...
 >>>>
 >>>> Nil
 >>>>
 >>>> On 06/29/2016 10:00 AM, Nil Geisweiller wrote:
 >>>>>
 >>>>> Actually, I've moved past that issue (I didn't use the right
conf), but
 >>>>> I've got another, perhaps more worrisome
 >>>>>
 >>>>> [2016-06-29 06:58:08:109] [INFO] Loading module
 >>>>>
 >>>>>
 >>>>>

"/home/nilg/OpenCog/opencog/build/opencog/learning/PatternMiner/libTestPatternMinerAgent.so"

 >>>>>
 >>>>> [2016-06-29 06:58:08:109] [ERROR] Caught signal 11
(Segmentation fault)
 >>>>> on thread 140204635740224
 >>>>>   Stack Trace:
 >>>>>
 >>>>> I guess I'll have to fire up gdb. Meanwhile, any feedback is
 >>>>> appreciated.
 >>>>>
 >>>>> Nil
 >>>>>
 >>>>> On 06/29/2016 09:55 AM, Nil Geisweiller wrote:
 >>>>>>
 >>>>>> Hi,
 >>>>>>
 >>>>>> I'm trying to use the pattern miner. I'm posting here first
before
 >>>>>> creating a github issue in case it is a silly problem.
 >>>>>>
 >>>>>> I'm loading the test in the cogserver
 >>>>>>
 >>>>>> opencog> loadmodule
 >>>>>>
 >>>>>>
 >>>>>>

/home/nilg/OpenCog/opencog/build/opencog/learning/PatternMiner/libTestPatternMinerAgent.so

 >>>>>>
 >>>>>>
 >>>>>>
 >>>>>> and getting
 >>>>>>
 >>>>>> [2016-06-29 05:43:14:123] [WARN] Unable to load module
 >>>>>>
 >>>>>>
 >>>>>>

"/home/nilg/OpenCog/opencog/build/opencog/learning/PatternMiner/libTestPatternMinerAgent.so":

 >>>>>>
 >>>>>>
 >>>>>>
 >>>>>>

/home/nilg/OpenCog/opencog/build/opencog/learning/PatternMiner/libPatternMiner.so:

 >>>>>>
 >>>>>> undefined symbol: _ZN7opencog11OBJECT_NODEE
 >>>>>>
 >>>>>> Any idea?
 >>>>>>
 >>>>>> Nil
 >>>
 >>>
 >>> --
 >>> 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 opencog+unsubscr...@googlegroups.com
<mailto:opencog%2bunsubscr...@googlegroups.com>.
 >>> To post to this group, send email to opencog@googlegroups.com
<mailto:opencog@googlegroups.com>.
 >>> Visit this group at http

Re: [opencog-dev] how to best think of the 'confidence' in simple truth value

2017-01-23 Thread 'Nil Geisweiller' via opencog

Incomplete wikified version of PLN

http://wiki.opencog.org/w/PLNBook

the whole book is available online as well somewhere (can't find it ATM).

Nil

On 01/23/2017 03:59 PM, Nil Geisweiller wrote:

The wiki is not very talkative about this...

Ideally you'd need to read the PLN book.

Said briefly the confidence captures the spread of the second order
distribution over the true unknown probability. If the confidence is 1
the spread is null. If the confidence is 0 the spread is uniform, that
is we know nothing about the true probability.

The spread of the second order distribution shrinks as more evidence
accumulates, so it depends on the number of observations. There is a
function to translate the count N (number of observations) into confidence

c = N / (N + K)

so as you may see as the count increases, so does the confidence. This
function is rather arbitrary, it could be something else, like say 1 -
std-dev, or anything that is monotonous and has co-domain [0, 1], but it
has the advantage of being simple.

Hope it's clearer.

Nil

On 01/23/2017 03:14 PM, Apil Tamang wrote:

Hi All,
What would be the most intuitive (and generally applicable) way of
thinking about 'confidence'  in the simple-truth-value system? I know
stv consists of a 'strength' and a 'confidence' part. The strength, if I
remember correctly is representative of the probability of that
statement being true. I'm just not sure how to think about the
confidence as a guiding metric ...

Thanks...



--
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 opencog+unsubscr...@googlegroups.com
.
To post to this group, send email to opencog@googlegroups.com
.
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/a60d3ef2-6fad-4576-bc84-b019f87aab4a%40googlegroups.com

.

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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/58860CB0.2090703%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] cog-fc returns empty Setlink

2017-02-24 Thread 'Nil Geisweiller' via opencog

Hi,

in this example, deduction rules alone cannot inference anything because 
you don't have in your knowledge base things of the sort


Inheritance
  A
  B

Inheritance
  B
  C

Some rules are explained in the wiki, like

http://wiki.opencog.org/w/DeductionRule (though I think this section 
http://wiki.opencog.org/w/DeductionRule#The_general_case is a bit 
misleading).


For those that aren't, there is a comment at the top of the rule file, 
such as 
https://github.com/opencog/opencog/blob/master/opencog/pln/rules/implication-direct-evaluation-rule.scm


I suppose you took this example from 
https://github.com/opencog/opencog/tree/master/examples/pln/chicken-feet-or-pizza 
but so you know, it's incomplete and was designed to test reasoning on 
the parsed sentences. Perhaps you want to start with something simpler like


https://github.com/opencog/atomspace/blob/master/tests/rule-engine/bc-friends.scm

with the config file

https://github.com/opencog/atomspace/blob/master/tests/rule-engine/conditional-instantiation-config.scm

should be runnable by the forward or backward chainer.

Nil

On 02/24/2017 06:10 PM, Vishnu Priya wrote:

Hi,

This is the data, that i gave,

(EvaluationLink
   (PredicateNode "eats")
   (ListLink
  (ConceptNode "tom")
  (ConceptNode "chicken-feet")

   )
)

(InheritanceLink (stv 0.9 0.9)
(ConceptNode "tom")
(ConceptNode "chinese")
)


(EvaluationLink
   (PredicateNode "eats")
   (ListLink
   (ConceptNode "tim")
  (ConceptNode "chicken-feet")

   )
)

(InheritanceLink (stv 0.9 0.9)
(ConceptNode "tim")
(ConceptNode "chinese")
)

(EvaluationLink
   (PredicateNode "eats")
   (ListLink
   (ConceptNode "chinese")
  (ConceptNode "chicken-feet")

   )
)

(InheritanceLink (stv 0.9 0.9)
(ConceptNode "Jim")
(ConceptNode "chinese")
)

*Defining Source *:
(define source
(InheritanceLink
(ConceptNode "Jim")
(ConceptNode "chinese")
)
)

*Defining rules and adding rules to the rule-base:*
*
*
(load "/opt/opencog/opencog/pln/rules/deduction-rule.scm

(define base (ConceptNode "my-rule-base"))

(InheritanceLink
(ConceptNode "my-rule-base")
(ConceptNode "URE")
)

(ExecutionLink
   (SchemaNode "URE:maximum-iterations")
   (ConceptNode "my-rule-base")
   (NumberNode "100")
)

(MemberLink (stv 0.9 1)

deduction-inheritance-rule-name
(ConceptNode "my-rule-base")
)

(MemberLink (stv 0.5 1)
deduction-implication-rule-name
(ConceptNode "my-rule-base")
)

(MemberLink (stv 0.5 1)
deduction-subset-rule-name
(ConceptNode "my"my-rule-base"))


When i run, (cog-fc source base (SetLink))
it returned,

(SetLink
)

What do i miss here???


Regards,
Vishnu


--
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 opencog+unsubscr...@googlegroups.com
.
To post to this group, send email to opencog@googlegroups.com
.
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/fb264f62-fed8-478d-bdd1-0174cc636e94%40googlegroups.com
.
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/6443e537-652a-1321-bc99-9cdbd371d905%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


[opencog-dev] Re: Pattern Miner improvements

2017-02-11 Thread 'Nil Geisweiller' via opencog

Hi,

I'm not familiar enough with the pattern matcher yet to suggest a Scheme 
API. I do believe I know however the next steps to clean it up. So I'll 
look into that first, create a github issue, then look into the API design.


In fact for the API, it would be good if we can have a group chat, 
involving people who will use it in the future. Like having some 
concrete usage examples would help me to know how the API should be.


Personally, I do would like to see an API that facilitates interaction 
with the URE. I don't really have concrete examples, just an idea.


Nil

On 02/11/2017 06:50 PM, Shujing Ke wrote:

Hi,

I am still a bit busy with my baby - my parents just left back to China.
If Nil gives some examples on how the Scheme API should be like, I will
have a look at it and evaluate how much work it will be and if I have
time to do it.

Thanks,
Shujing


On Fri, Feb 10, 2017 at 12:34 PM, Ben Goertzel > wrote:

Nil,

We have about 8 billion different uses for the Pattern Miner on the
immediate horizon

I know you reviewed the code last year and had some thoughts about
what needs to be done to improve its ease of usability for various
applications

Hedra has looked at the code too and run it on some example NLP-parse
outputs; she will be available to spend some time on this and is a
good C++ programmer   For instance she could spend time starting
March (and maybe sometime before that) on making Scheme bindings for
the pattern miner...

Shujing might also be available to help on a part-time basis soon,
though I'm not clear on that...

Nil, it would be good if you could take a few days and

1) make a list of what you think should be done to improve pattern
miner usability

2) maybe make a first sketch of what you think a Scheme API for the
pattern miner should look like

This would provide valuable guidance for Hedra and/or Shujing to
work on this...

thanks
Ben

--
Ben Goertzel, PhD
http://goertzel.org

“I tell my students, when you go to these meetings, see what direction
everyone is headed, so you can go in the opposite direction. Don’t
polish the brass on the bandwagon.” – V. S. Ramachandran




--
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/5d80a9dc-c0ef-2563-43e3-965639d50f1a%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Calling forward/backward chainer

2017-02-10 Thread 'Nil Geisweiller' via opencog
Hi, it looks like you didn't import the rule-engine modules, see for 
instance


https://github.com/opencog/atomspace/blob/master/examples/rule-engine/crisp.scm#L16

Nil

On 02/10/2017 12:26 PM, Vishnu Priya wrote:

Hi,

I tried forward chaining as in
https://github.com/opencog/atomspace/tree/master/examples/rule-engine/chaining
for the following problem:

|1. If X croaks and X eats flies - Then X is a frog 2. If X is a frog -
Then X is green|


When i ran forward chainer by (cog-fc source wiki (SetLink)), i got
unbound variable error.

guile> (cog-fc source wiki (SetLink))
Backtrace:
In ice-9/boot-9.scm:
 157: 12 [catch #t # ...]
In unknown file:
   ?: 11 [apply-smob/1 #]
In ice-9/boot-9.scm:
 157: 10 [catch #t # ...]
In unknown file:
   ?: 9 [apply-smob/1 #]
   ?: 8 [call-with-input-string "(cog-fc source wiki (SetLink))\n" ...]
In ice-9/boot-9.scm:
2320: 7 [save-module-excursion #]
In ice-9/eval-string.scm:
  44: 6 [read-and-eval # #:lang ...]
  37: 5 [lp (cog-fc source wiki (SetLink))]
In ice-9/eval.scm:
 386: 4 [eval # ()]
 393: 3 [eval # ()]
In unknown file:
   ?: 2 [memoize-variable-access! # #]
In ice-9/boot-9.scm:
 102: 1 [#
unbound-variable ...]
In unknown file:
   ?: 0 [apply-smob/1 # unbound-variable ...]

ERROR: In procedure apply-smob/1:
ERROR: Unbound variable: cog-fc
ABORT: unbound-variable

I have these lines in .guile:
(add-to-load-path "/usr/local/share/opencog/scm")
(use-modules (opencog))
(use-modules (opencog query))
(use-modules (opencog exec))
 (load-from-path "opencog.scm")


How can i get it working?


Thanks
Vishnu






On Monday, 5 December 2016 17:01:54 UTC+1, Nil wrote:

Hi,

the backward chainer is not mature yet, it may or not work for you, I
think it will be mature enough after 2 week.

The forward chainer should work as expected. See
http://wiki.opencog.org/w/URE_Configuration_Format
 to define a
rule base.

See also
https://github.com/opencog/atomspace/tree/master//examples/rule-engine


as well https://github.com/opencog/opencog/tree/master/examples/pln
 for
examples.

Nil

On 12/05/2016 05:18 PM, Vishnu Priya wrote:
> Hello all,
>
> i would like to try the forward/backward chaining. i found these
pages
>

https://github.com/opencog/atomspace/tree/master//opencog/rule-engine#how-to-call-the-forward-chainer-from-a-scheme-interface



> http://wiki.opencog.org/w/Unified_rule_engine

>
> I somehow understood, how overall process goes on.
>
> (cog-fc *source* *rule-base* *focus-set*)
> But i don't know, how I can carry out this process.  i also don't
know,
> how to specify rule-base, focus-set..
> Can you anyone provide the steps to carry out  chaining process ?
>
> Thanks,
> Vishnu
>
> --
> 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 opencog+u...@googlegroups.com 
> .
> To post to this group, send email to ope...@googlegroups.com

> .
> 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/b0170017-7cd2-415a-9d64-7ed9f154ae35%40googlegroups.com



>

>.

> 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 opencog+unsubscr...@googlegroups.com
.
To post to this group, send email to opencog@googlegroups.com
.
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/68bd5322-8dec-4983-abd7-0f2e1072606b%40googlegroups.com

[opencog-dev] Re: Pattern Miner improvements

2017-02-16 Thread 'Nil Geisweiller' via opencog

Hi,

On 02/11/2017 10:18 PM, Ben Goertzel wrote:

I'm not familiar enough with the pattern matcher yet to suggest a Scheme
API. I do believe I know however the next steps to clean it up. So I'll look
into that first, create a github issue, then look into the API design.


Thanks, that will be helpful!


https://github.com/opencog/opencog/issues/2615

it is far from being complete but it's a start, and probably enough to 
keep someone busy for a while. Happy to provide more details if needed.



Maybe we can try, first of all, a wiki page for summarizing the
near-term examples for which we'd like to see pattern mining work...

E.g. on my radar for this year we have (in no particular order)

-- Mining of inference histories, for inference control

-- Mining of dialogue histories, for learning dialogue patterns (or
more generally, verbal/nonverbal interaction patterns)

-- Mining of sets of genomic datasets or medical patient records, to
find surprisingly common combinations of features

-- Mining of surprising combinations of visual features in the output
of a relatively "disentangled" deep NN (such as the
pyramid-of-InfoGANs that Ralf, Selameab, Tesfa, Yenat and I are
working on)

-- Mining of surprising combinations of semantic relationships, in the
R2L output of a large number of simple sentences read into Atomspace

-- Mining of surprising combinations of syntactic relationships, in an
Atomspace containing a set of syntactic relationships corresponding to
each word in the dictionary of a given language (to be done
iteratively within the language learning algorithm Linas is
implementing)

-- Mining of surprising  (link-parser link combination,
Lojban-Atomese-output combination) pairs, in a corpus of (link parses,
Lojban-Atomese outputs) obtained from a parallel (English, Lojban)
corpus


Thanks. I've added that to pattern miner wiki page 
http://wiki.opencog.org/w/Pattern_miner#Use_cases





Personally, I do would like to see an API that facilitates interaction with
the URE. I don't really have concrete examples, just an idea.


Hmmm...

Well one could say there is a rule

FindSignificantPatterns

whose input is

-- a template T restricting what kinds of patterns to look for

-- a GroundedSchemaNode containing the significance measure one wants to use

and whose output is, say, a SetLink containing the most significant
patterns found

This is a pretty computationally expensive inference rule though ;)


True, but so is any evidence-based/direct-computation rule producing 
ImpliciationLinks and such. The thing is the pattern miners has a set of 
constraints, that could perhaps be seen as preconditions by the BC, to 
avoid generating meaningless candidates, such as those with too little 
support, etc. Just an idea...


Nil



But maybe you're thinking of something else...

-- Ben



--
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/e98b76bc-44f7-a397-bd20-1ffc4595e531%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Handle validity test

2017-01-19 Thread 'Nil Geisweiller' via opencog

Thanks, I have updated the wiki accordingly

http://wiki.opencog.org/w/Development_standards#Handle_validity_test

Nil

On 01/19/2017 11:50 PM, Linas Vepstas wrote:

I believe that they are now strictly equivalent, although that was not
the case half a year ago.  Back when handles held UUID's, then a
handle could be a null pointer, but holding a valid UUID.  and
vice-versa -- a pointer could be non-null, but the UUID invalid.
Resolving the one form into the other was complicated -- this
confusion was one of the strong motivators for removing UUID's from
the handle.

Getting rid of h.is_defined() and Handle::UNDEFINED seems reasonable.

There's some other obsolete code as well: stuff that is marked with
DEPRECATED_ATOMSPACE_CALLS also should be cleaned up. Currently I
think its only the pattern miner that still uses these.  Its been 5+
years now that these have been deprecated...

-- Linas



On Thu, Jan 19, 2017 at 2:20 AM, 'Nil Geisweiller' via opencog
<opencog@googlegroups.com> wrote:

Hi,

we have multiple ways to test whether a Handle is valid. I've encountered
the followings

1. if (h) then ...

2. if (h != nullptr) then ...

3. if (h.is_defined()) then ...

4. if (h != Handle::UNDEFINED) then ...

there might be more but that's the ones I can recall.

First question: Are they all strictly equivalent?

Second question: can we agree on a canonical way to do that and stick with
it?

Since `if (h)` is the shortest I would suggest to go with that, but there
might be reasons to go with something else, like more long term reasons,
etc.

I'll update the wikipage with the conclusion of this thread. Thanks for you
help.

Nil

--
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/a171e4aa-c840-6ac5-94ac-64be9174d087%40gmail.com.
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/633579da-a1e1-f6fe-66d3-857dbddec063%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Trying to understand the inference control problem.

2017-02-27 Thread 'Nil Geisweiller' via opencog



On 02/26/2017 04:03 PM, Amirouche Boubekki wrote:

I see that the wiki page is lacking in content or links regarding that
matter http://wiki.opencog.org/w/Inference_Control
. We need to remedy that.


In that article, “The rules of Logical 
Inference  only tell you how to
take a single step of inference”, what are those single steps?


I recommend looking at some step by step PLN demos like

https://github.com/opencog/opencog/tree/master/examples/pln/amusing-friend

the file amusing-friend-pm.scm contains a scheme/atomese step-by-step 
run and the html file a more visual representation of it.


Nil



TIA!

--
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 opencog+unsubscr...@googlegroups.com
.
To post to this group, send email to opencog@googlegroups.com
.
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/0819d5d0-b3dc-42aa-8f5d-38a19967840d%40googlegroups.com
.
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/1bf82dfc-959d-cdfd-e485-b1ea7ea39fb0%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Trying to understand the inference control problem.

2017-02-27 Thread 'Nil Geisweiller' via opencog

On 02/27/2017 10:21 PM, Ken Kafieh wrote:

So you are saying that you should use learning algorithms to pick out
potentially useful inference chains.  I feel like our brains probably
approach it in a similar way so I guess I can agree that is a good
starting point.  But I am wondering if it may be limiting the set of
problems that can be solved to those that we humans can already solve.
 To solve the hard problems -- cancer, aging, Rubiks cube -- maybe we
need wildly unconventional thinking sequences.   For something as
important as inference maybe it would be warranted to find a few
shortcuts instead of relying totally on learning -- at least in the
beginning if not always.


You're absolutely correct. Learning here is meant very broadly, it's 
more like AGI/reasoning/learning. But the idea is to enable full 
introspection so that the system can devote its attention to reasoning 
itself, as a skill.


Nil



--
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 opencog+unsubscr...@googlegroups.com
.
To post to this group, send email to opencog@googlegroups.com
.
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/6e654517-e88d-49e8-9551-d1bce4ff2384%40googlegroups.com
.
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/9f341064-706b-1ae2-fdc8-407b3f897fa2%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: [Link Grammar] Re: probabilistic type theory with records ... variants of categorial grammar & semantics, etc.

2016-09-05 Thread 'Nil Geisweiller' via opencog

Linas,

On 09/03/2016 04:59 AM, Linas Vepstas wrote:

However, I feel an area where something similar to linear logic,
etc, might be very worthwhile thinking of is in estimating how much
evidences inference traces have in common, as to have the revision
rule work correctly. This is kinda the only way I manage to relate
these barely-understandable-word-soup-sounding-to-me abstract
proposals to PLN.  Would really love to look deep into that once it
becomes more prioritized though.


OK, so in the blog post, at what point did things get too abstract, and
too hard to follow?


The blog is clear and I believe I understood it well, and agree with it. 
The only confusing part was when you mentioned the closed monoidal 
category, etc. I tried to quickly understand it but it seems it would 
suck me into layers of hyperlinks before I can get it. BTW, I would be 
happy to spend a week reading a book on category theory, I'm just not 
sure it's the best use of my time right now. But maybe it is, before 
re-implementing the BC, not sure.


Nil



--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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/57CD208A.9060805%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: [Link Grammar] Re: probabilistic type theory with records ... variants of categorial grammar & semantics, etc.

2016-09-05 Thread 'Nil Geisweiller' via opencog

Linas,

On 09/03/2016 08:54 AM, Linas Vepstas wrote:

I claim that inference is like parsing, and that algorithms suitable for
parsing can be transported and used for inference. I also claim that
these algorithms will all provide superior performance to
backward/forward chaining.

Until we can start to talk about inference as if it was a kind of
parsing, then I think we'll remain stuck, for a while.


It is inconvenient that I do not know LG well (I do know the basics 
about parsing regular or context-free grammars but that's all).


I do have however some experience with automatic theorem proving, my 
take is that no matter what abstraction you may come up with, it will 
always suffer combinatorial explosion (as soon as the logic is 
expressive enough). That is what I mean by linear or intuitionistic 
logic being a hack, there is just no other way I can think of to tackle 
that explosion than by using meta-learning so that it at least works 
here on earth.


You say "of all of the algorithms that are known for performing 
reasoning, forward/backward chaining are the worst and the slowest and 
the lowest-performance of all", but that is not how FC and BC should be 
thought of. First of all BC is just FC with a target driven inference 
control. Second, FC is neither bad nor good, it all depends on the 
control, right?


That is said, I totally like your multi-atomspace abstraction, looking 
at confluence, etc. This is the way to go. I just fail to see how this 
abstraction can help us simplify or optimize inference control. But I'm 
certainly open to the idea.


Nil

--
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/57CD285B.6090608%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] wiki.opencog.org maintenance

2016-09-06 Thread 'Nil Geisweiller' via opencog

Well done Amen! Just out of curiosity, what was wrong?

Nil

On 09/06/2016 05:43 PM, Amen Belayneh wrote:

Hi team,contributors,...

the site is up now. Please explore and report any issues you might encounter.

Thanks :-)



--
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/57CEFF10.1010109%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Question about LambdaLink

2016-09-02 Thread 'Nil Geisweiller' via opencog

Hi Roman,

this is compatible with PLN. I don't think all EquivalentLink PLN rules 
are implemented, the main one, turning EquivalentLink to double 
ImplicationLink is.


Nil

On 07/30/2016 06:18 PM, Roman Treutlein wrote:

Hello,

I just wanted to make sure my use of the LambdaLink inside the
Lojban<->Atomese translator is correct.

One use case is the following:
|
EquivalenceLink
LambdaLink
VariableNode "1"
EvaluationLink
PredicateNode "pred"
ListLink (VariableNode "1")
LambdaLink
VariableNode "2"
ContextLink
VariableNode "2"
ConceptNode "Somthing" (Might be a EvaluationLink))
|

I use this to define the PredicateNode "pred" so as to apply to things
in whiches context  "Something" is true.

Does this do what I want it to? If not is there a different way to do this?

regards
/roman


--
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 opencog+unsubscr...@googlegroups.com
.
To post to this group, send email to opencog@googlegroups.com
.
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/99c37450-697a-4164-a3c5-80780584c05d%40googlegroups.com
.
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/57C9224A.7030304%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: [Link Grammar] Re: probabilistic type theory with records ... variants of categorial grammar & semantics, etc.

2016-09-05 Thread 'Nil Geisweiller' via opencog

Hi Ben,

On 09/03/2016 06:44 AM, Ben Goertzel wrote:

The replacement methodology is to use EmbeddedTruthValueLink and
ContextAnchorNode , as in the example

Evaluation
   PredicateNode "thinks"
   ConceptNode "Bob"
   ContextAnchorNode "123"

EmbeddedTruthValueLink <0>
   ContextAnchorNode "123"
   Inheritance Ben sane

which uses more memory but does not complicate the core code so much...


I'm not sure again (as a few months ago) why we wouldn't want to use a 
ContextLink instead. As the opencog wiki is unaccessible I can't find 
the definition of EmbeddedTruthValueLink, though I believe I understand 
what it is.


Nil

--
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/57CD13A1.9080108%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: [Link Grammar] Re: probabilistic type theory with records ... variants of categorial grammar & semantics, etc.

2016-09-05 Thread 'Nil Geisweiller' via opencog



On 09/03/2016 07:19 AM, Ben Goertzel wrote:

About ContextLink / CompositeTruthValue -- an interesting relevant
question is whether we want/need to use it in the PLN backward chainer
which Nil is now re-implementing  Quite possibly we do...


It's clear both the forward and backward chainer need to be able to 
handle contextual reasoning rather than constantly un/contextualize 
links. That is one should be able to launch reasoning queries in certain 
contexts. Not supported at the moment but I feel we can afford 
incremental progress in that respect.


Nil





On Sat, Sep 3, 2016 at 12:11 PM, Linas Vepstas  wrote:

Yes. I am starting to get very annoyed. Whenever I talk about
CompositeTruthValue, which I did earlier, I get the big brushoff. Now, when
I finally was able to sneak it back into the conversation, I once again get
the big brushoff.

I am starting to get really angry about this. I am spending wayyy too much
time writing these emails, and all I get is blank stares and the occasional
snide remark back.  This is just not that complicated, but as long as you do
not bother to apply your considerable brainpower to all of this, the
conversation is utterly completely stalled.

I'm pretty angry right now.

--linas


On Fri, Sep 2, 2016 at 10:44 PM, Ben Goertzel  wrote:


Linas,

On Sat, Sep 3, 2016 at 10:50 AM, Linas Vepstas 
wrote:

Today, by default, with the way the chainers are designed, the various
different atomspaces are *always* merged back together again (into one
single, global atomspace), and you are inventing things like
"distributional
TV" to control how that merge is done.

I am trying to point out that there is another possibility: one could,
if
desired, maintain many distinct atomspaces, and only sometimes merge
them.
So, for just a moment, just pretend you actually did want to do that.
How
could it actually be done?  Because doing it in the "naive" way is not
practical.  Well, there are several ways of doing this more efficiently.
One way is to create a new TV, which stores the pairs (atomspace-id,
simple-TV)  Then, if you wanted to merge two of these "abstract"
atomspaces
into one, you could just *erase* the atomspace-id.  Just as easy as that
--
erase some info. You could even take two different (atomspace-id,
simple-TV)
pairs and mash them into one distributional TV.


I note that we used to have something essentially equivalent to this,
for basically this same reason.

It was called CompositeTruthValue, and was a truth value object that
contained mutliple truth values, indexed by a certain ID.The ID
was a version-ID not an atomspace-ID, but same difference...

A dude named Linas Vepstas got rid of this mechanism, because he
(probably correctly) felt it was a poor software design ;)

The replacement methodology is to use EmbeddedTruthValueLink and
ContextAnchorNode , as in the example

Evaluation
   PredicateNode "thinks"
   ConceptNode "Bob"
   ContextAnchorNode "123"

EmbeddedTruthValueLink <0>
   ContextAnchorNode "123"
   Inheritance Ben sane

which uses more memory but does not complicate the core code so much...

-- Ben




--
Ben Goertzel, PhD
http://goertzel.org

Super-benevolent super-intelligence is the thought the Global Brain is
currently struggling to form...

--
You received this message because you are subscribed to the Google Groups
"link-grammar" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to link-grammar+unsubscr...@googlegroups.com.
To post to this group, send email to link-gram...@googlegroups.com.
Visit this group at https://groups.google.com/group/link-grammar.
For more options, visit https://groups.google.com/d/optout.



--
You received this message because you are subscribed to the Google Groups
"link-grammar" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to link-grammar+unsubscr...@googlegroups.com.
To post to this group, send email to link-gram...@googlegroups.com.
Visit this group at https://groups.google.com/group/link-grammar.

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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/57CD152C.1070300%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: [Link Grammar] Re: probabilistic type theory with records ... variants of categorial grammar & semantics, etc.

2016-09-05 Thread 'Nil Geisweiller' via opencog



On 09/03/2016 08:24 AM, Linas Vepstas wrote:

The other approach, that Nil was advocating with his distributional-TV
proposals, is to jam these two into one, and say that_advmod(see,
with) is half-true, and _prepadj(man, with) is half-true, -- and
then somehow hope that PLN is able to eventually sort it out.   We
currently don't do this approach, because it would break R2L -- the R2L
rules would probably mis-behave, because they don't know how to
propagate half-truths.


Oh, if you're talking about my Generalized Distributional TV proposal, 
it was not about this, it was just about fitting existing TV types into one.


Although, since GDTVs may actually represent conditional distributions, 
it could serve as composite TV as well.


Nil

--
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/57CD16D8.1010502%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: [Link Grammar] Re: probabilistic type theory with records ... variants of categorial grammar & semantics, etc.

2016-09-05 Thread 'Nil Geisweiller' via opencog

On 09/03/2016 08:24 AM, Linas Vepstas wrote:

The other approach, that Nil was advocating with his distributional-TV
proposals, is to jam these two into one, and say that_advmod(see,
with) is half-true, and _prepadj(man, with) is half-true, -- and
then somehow hope that PLN is able to eventually sort it out.   We
currently don't do this approach, because it would break R2L -- the R2L
rules would probably mis-behave, because they don't know how to
propagate half-truths.


Oh, if you're talking about my Generalized Distributional TV proposal, 
it was not about this, it was just about fitting existing TV types into one.


Although, since GDTVs may actually represent conditional distributions, 
it could serve as composite TV as well.


Nil

--
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/57CD17F7.5020803%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: ImplicationLink?

2016-11-08 Thread 'Nil Geisweiller' via opencog

I've added some notes about that

http://wiki.opencog.org/w/ExtensionalImplicationScopeLink#Remarks

My feeling based is that the ImplicationScopeLink (I mean, either mixed, 
extensional or intensional) is what we want in most cases, which is good 
given that it's syntactically simpler than wrapping an AverageLink or 
ForAllLink around an implication.


Nil

On 11/08/2016 01:37 AM, Ben Goertzel wrote:

I think this may be what the

AverageQuantifierLink

used to do?

Then we could say

AverageQuantifierLink
VariableNode x
ImplicationLink
P(x)
Q(x)

and this would do what PLN needs... and if Bob had a different kind of
logic with its own formulas he could have

BobsQuantifierLink
VariableNode x
ImplicationLink
P(x)
Q(x)

But I'm not sure this would satisfy all Nil's current requirements?

ben

On Mon, Nov 7, 2016 at 11:28 PM, Linas Vepstas  wrote:

OK, that makes sense.  In that case, though, why not invent a new
SpecialAllLink which has the desired properties?  Inventing one new link for
this would be more economical, and less confusing than having six new links:

ImplicationScope
IntentionalImplicationScope
ExtensionalImplicationScope
EquivalenceScope
IntensionalEquivalenceScope
ExtensionalEquivalenceScope

which is what the current code does.

Besides, come the day you want to change the PLN formula, or create yet
another one, you would just need a NewFormulaLink  instead of six new links.

--linas

On Mon, Nov 7, 2016 at 4:23 PM, Ben Goertzel  wrote:


If we have


ImplicationScopeLink
 VariableNode  x
 P(x)
 Q(x)


then e.g. PLN can assign this a truth value equal to

Sum_x ( max( P(x), Q(x)) ) / Sum_x P(x)

or

Sum_x ( P(x) * Q(x) ) / Sum_x P(x)

but may assign a quite different truth value for

ForAllLink
VariableNode x
ImplicationLink
P(x)
Q(x)


PLN does assign these two constructs different uncertain truth values,
so this is not just a theoretical difference...

Other uncertain logic frameworks may also assign the two constructs
different TVs, I would think...

ben
--
Ben Goertzel, PhD
http://goertzel.org

“I tell my students, when you go to these meetings, see what direction
everyone is headed, so you can go in the opposite direction. Don’t
polish the brass on the bandwagon.” – V. S. Ramachandran









--
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/1fdd3063-c68c-c3b6-aeff-df2e7a7963b4%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] question about a concept from the PLN book on Ben's site..

2016-11-07 Thread 'Nil Geisweiller' via opencog

Hi Apil,

On 11/07/2016 03:39 PM, Apil Tamang wrote:

Hi All,
Reading through the book on 'Probabilistic Logic Networks' which is
posted on http://goertzel.org/PLN_BOOK_6_27_08.pdf.
I think I'm making okay progress on the concepts on this book so far so
good. There's just this one little area which has me completely stumped:

Chapter 3, Page 45:
'''

The Stripedog-recognizing predicate, call it FStripedog, has a
SatisfyingSet that we may denote simply as stripedog, defined by


ExtensionalEquivalence

   Member $X stripedog

   AND

 Evaluation FStripedog $X
 Evaluation isIdentifier ($X, FStripedog)

'''


Extensional equivalence means that you only consider the members of the 
concepts in consideration, as opposed to their properties, which would 
be an intensional equivalence.


I'm not sure what is the isIdentifier predicate here, but don't get 
stuck over it, it's not important, if we ignore it, this merely becomes


ExtensionalEquivalence
   Member $X Stripdog
   Evaluation FStripdog $X

which BTW in today's atomese/scheme would be written

(ExtensionalEquivalenceScope
   (Member (Variable "$X") (Concept "Stripdog"))
   (Evaluation (Predicate "FStripdog") (Variable "$X")))

The scope being used to bind the variable $X to the extensional equivalence.

Hope it's clearer.

Nil




What is this block of PLN construct (or expression) trying to say, or
what does it represent? Obviously, this is not a definition of
  FStripedog, nor is it a definition of the satisfying-set for it (which
is defined by /stripedog/). It may simply be that I don't understand
exactly what the High-Order Relationship: 'ExtensionalEquivalence'
means. I went back in the earlier pages and could not really locate how
this HOR formally defined. I feel like this expression somehow is trying
to formalize what constitutes as a satisfying-set for  predicate:
FStripedog, but I couldn't be sure.


Thanks for any help.


P.S: An added bonus would be to let me know how the concepts in the PLN
book relate to open-cog. I think most of this material maybe within the
scope of the MOSES system, but somehow I feel this material is critical
to opencog because (I think I read somewhere that) this is what gives
opencog its innate ability to reason, deduct, and infer. How does the
innate opencog reasoning/inference abilities depart from the more
complex array of PLN logics available in MOSES ? Maybe I'm not even
thinking right.. sorry about the verbosity.




--
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 opencog+unsubscr...@googlegroups.com
.
To post to this group, send email to opencog@googlegroups.com
.
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/0295afd3-af30-41d1-acae-22a85e08df9d%40googlegroups.com
.
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/5820ADD5.2010704%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: opencog utest failing

2016-10-24 Thread 'Nil Geisweiller' via opencog

Hi,

yes I know that, what I suggest is that whenever the builds fails we get 
notified, as opposed to the build channel turns bold no matter what.


One trick would be to add the mention "@channel" inside the message only 
when it fails.


Nil

On 10/24/2016 06:32 AM, AmeBel wrote:

Hi,

there is a builds channel on slack.

On Friday, October 21, 2016 at 1:35:21 PM UTC+8, Nil wrote:

Hi,

multiple tests on the opencog repo fail, some are mine and I was let
unaware of it. I don't dare to do my next changes till these tests get
fixed cause I want to be confident it won't break existing things.

Obviously we need to improve buildbot notification on failure. Is it
possible to set up mail notification? Or have the buildbot mention the
culprit (or @channel) in the slack channel whenever it fails?

Thanks,
Nil

--
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 opencog+unsubscr...@googlegroups.com
.
To post to this group, send email to opencog@googlegroups.com
.
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/00fc6deb-71d3-4bd6-a257-2592b5ec7076%40googlegroups.com
.
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/580DB3E9.7070803%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: ImplicationLink?

2016-10-17 Thread 'Nil Geisweiller' via opencog



On 10/17/2016 10:17 AM, Ben Goertzel wrote:

As for the name


ImplicationScopeLink


at first I thought I would prefer

ScopingImplicationLink

but now I'm not sure ;p

Anyway, ugly as it is, I think it may be better to use two different
link types for the different variants, under the general principle we've been
leaning towards lately, that more explicit articulation of logical structures
in Atomspace reduces confusion, and is thus worthwhile even when it
makes things a bit less elegant...


OK. It also tends to simplify the code.

I'll wait for Linas' input (and name suggestion if he has one) and 
operate the splitting.


Nil







--
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/58048051.9050606%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: opencog utest failing

2016-10-24 Thread 'Nil Geisweiller' via opencog

On 10/24/2016 01:01 PM, AmeBel wrote:

Changes have been made such that build channel turns bold only when
there are failures.


It's cool, thanks. But I think a notification would even be better. If 
`@channel` appears in the message then we'll be notified by email as well.


Having the unit tests failing has become inconvenient. People tend to 
loose track of what passes and what doesn't and can no longer use it has 
a bug detector for their changes. We don't want to go back to branch 
protection which is pain, but we need a notification system which is as 
loud as possible.


Nil





--
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 opencog+unsubscr...@googlegroups.com
.
To post to this group, send email to opencog@googlegroups.com
.
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/11e8b796-2063-450f-bbe9-56bde34947b8%40googlegroups.com
.
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/580E73EE.8040500%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


[opencog-dev] opencog utest failing

2016-10-20 Thread 'Nil Geisweiller' via opencog

Hi,

multiple tests on the opencog repo fail, some are mine and I was let 
unaware of it. I don't dare to do my next changes till these tests get 
fixed cause I want to be confident it won't break existing things.


Obviously we need to improve buildbot notification on failure. Is it 
possible to set up mail notification? Or have the buildbot mention the 
culprit (or @channel) in the slack channel whenever it fails?


Thanks,
Nil

--
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/5809A91B.3090107%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Is automatic alpha-conversion evil?

2016-11-16 Thread 'Nil Geisweiller' via opencog



On 11/17/2016 09:09 AM, Ben Goertzel wrote:

I think our conclusion in 2015 was that processes like the chainer
should do alpha conversion on the fly... so we should supply a utility
function making it easy for anyone to invoke alpha conversion in a
particular set of atoms..


The URE does alpha-conversion whenever necessary as to avoid name 
capture, there's no problem here. The problem comes from the fact that 
the atomspace may silently perform alpha-conversion when a scope link is 
added, ultimately there are solutions to address any problem resulting 
from such implicit conversions, but I can't help it, there's a part of 
me that feels ambivalent about it...


Anyway, I'll open a github issue whenever I encounter the problem I'm 
trying to describe in real life situation.


Nil




On Nov 17, 2016 3:54 PM, "'Nil Geisweiller' via opencog"
<opencog@googlegroups.com <mailto:opencog@googlegroups.com>> wrote:

The reason I didn't want to open a bug report just yet is because I
wanted to discuss whether we really want to check alpha-equivalence
whenever a new scope link is added to the atomspace (and
subsequently consider both equal and return the previous one to the
user).

Nil

On 11/17/2016 05:13 AM, Linas Vepstas wrote:

Look, if there is a bug, open a bug report. I'm nervous about
these kind
of blanket statements about what's best and what is not best.  The
atomspace is already complicated, adding more complexity to it
is not a
solution.

--linas

On Wed, Nov 16, 2016 at 8:27 PM, Ben Goertzel <b...@goertzel.org
<mailto:b...@goertzel.org>
<mailto:b...@goertzel.org <mailto:b...@goertzel.org>>> wrote:

Nil,

I just reviewed our dialogue on this from a year ago...

It seems what we provisionally concluded there was that the
chainer
should do alpha-conversion on the fly in the course of pattern
matching ... but that the Atomspace shouldn't do
alpha-conversion
"automatically" in any other sense [unless we want to add
some Reduct
type engine on the Atomspace, which could do
alpha-conversion along
with other normalizations, but that becomes a separate issue]

We also discussed a cog-new-var command that could be used
to minimize
the complexities of alpha-conversions... (via reducing the
incidence
of redundant variable names)

In this case, the alpha-conversion done by the chainer in
the course
of doing its business, would need to handle LocalQuoteLink
correctly...

The choice of the chainer to do alpha-conversion but not
(yet) more
general types of reduction, would be made because
alpha-conversion is
cheaper and easier and of such broad utility.   Later
versions of the
chainer might do more general reductions as part of their
ordinary
business, as well...

I may be missing something; a year ago when William and I
were talking
about this, my head was fully immersed in the problem, but
it's less
the case right now...

-- Ben




        On Wed, Nov 16, 2016 at 8:34 PM, 'Nil Geisweiller' via opencog
<opencog@googlegroups.com <mailto:opencog@googlegroups.com>
<mailto:opencog@googlegroups.com
<mailto:opencog@googlegroups.com>>> wrote:
> I'm back to this issue.
>
> The notion of LocalQuote is indeed incompatible with
systematic
> alpha-conversion.
>
> Consider this pattern
>
> (Get
>(VariableList
>   (TypedVariable
>  (Variable "$X")
>  (Type "TypedVariableLink"))
>   (TypedVariable
>  (Variable "$P")
>  (Type "PredicateNode"))
>   (TypedVariable
>  (Variable "$Q")
>  (Type "PredicateNode"))
>(LocalQuote
>   (ImplicationScope
>  (Variable "$X")
>  (Variable "$P")
>  (Variable "$Q"
>
> This fetches ImplicationScope links.
>
> If the following
>
> (ImplicationScope
>(Variable "$X")
>(Variable "$P")
>(Variable "$Q"))

Re: [opencog-dev] Is automatic alpha-conversion evil?

2016-11-16 Thread 'Nil Geisweiller' via opencog
Oh, my query was idiotic, $P and $Q wouldn't be typed PredicateNode, I 
meant something like EvaluationLink as to let a change to have the 
variables appear in them.


Nil

On 11/16/2016 07:56 PM, Linas Vepstas wrote:

Ah, the exception was due to a bug in the original email.  After fixing
that, it the code works just fine, I don't see what the problem is.  Cut
n paste of the works-for-me version below.

--linas

(use-modules (opencog) (opencog query) (opencog exec))

(define g
(Get
   (VariableList
  (TypedVariable
 (Variable "$X")
 (Type "TypedVariableLink"))
  (TypedVariable
 (Variable "$P")
 (Type "PredicateNode"))
  (TypedVariable
 (Variable "$Q")
 (Type "PredicateNode")))
   (LocalQuote
  (ImplicationScope
 (Variable "$X")
 (Variable "$P")
 (Variable "$Q")

;; except to find this
(ImplicationScope
   (TypedVariableLink
   (VariableNode "vvv")
   (TypeNode "ConceptNode")
   )
   (PredicateNode "ppp")
   (PredicateNode "qqq"))


(cog-execute! g)

;; returns the expected result. What is the problem?



On Wed, Nov 16, 2016 at 11:49 AM, Linas Vepstas <linasveps...@gmail.com
<mailto:linasveps...@gmail.com>> wrote:



On Wed, Nov 16, 2016 at 5:34 AM, 'Nil Geisweiller' via opencog
<opencog@googlegroups.com <mailto:opencog@googlegroups.com>> wrote:

I'm back to this issue.

The notion of LocalQuote is indeed incompatible with systematic
alpha-conversion.

Consider this pattern

(Get
   (VariableList
  (TypedVariable
 (Variable "$X")
 (Type "TypedVariableLink"))
  (TypedVariable
 (Variable "$P")
 (Type "PredicateNode"))
  (TypedVariable
 (Variable "$Q")
 (Type "PredicateNode"))
   (LocalQuote
  (ImplicationScope
 (Variable "$X")
 (Variable "$P")
 (Variable "$Q"

This fetches ImplicationScope links.


Well, no, it throws an error:

 ERROR: Throw to key `C++-EXCEPTION' with args `("cog-new-link"
"Expected a VariableNode or a TypedVariableLink, got: LocalQuoteLink

(/home/linas/src/novamente/src/atomspace-git/opencog/atoms/core/VariableList.cc:61)")'.

That's with a pull from just now.

anyway, it is designed to fetch  ImplicationScopeLinks that are
ill-formed.  It's declared to find links like this:

(ImplicationScope
   (TypedVariableLink
   (TypeNode "ConceptNode")
   (VariableNode "vvv"))
   (PredicateNode "pa")
   (PredicateNode "qa"))

the variable never appears anywhere. Its -- well, the variable can
be completely discarded, and you'd get an equivalent
ImplicationScope that does not have any variables in it.


If the following

(ImplicationScope
   (Variable "$X")
   (Variable "$P")
   (Variable "$Q"))

happen to be alpha-equivalent to something with different
variable names it will render the Bind link invalid.


? I don't understand what you're saying. Why would it be "invalid"?
Is there a bug?  What do you mean by "happens to be
alpha-equivalent"? It is, by definition, alpha-equivalent to an
infinite number of other links.




Indeed alpha-conversion shouldn't be triggered in that case,


In which case? Alpha conversion of what?


the right idea is that the ImplicationScope, when quoted
corresponds to a DIFFERENT atom than the one not being quoted.


Can you clarify?


Also of course if we decide to not perform systematic
alpha-conversion then this problem doesn't arise.


You want to eliminate ScopeLink and Lambda Link ?  That's a very
serious change.



I'm re-iterating my question. Do we really want automatic
alpha-conversion to begin with?


What do you mean when you say "automatic"?  Either there is alpha
conversion, or there is not.   What else can it be?



If the answer is yes then I suppose we need a way to tell that
the quoted version is different than then unquoted version.


 what is different from what?  A better example is needed.

--linas



Nil


On 10/22/2016 03:34 AM, Ben Goertzel wrote:

Nil,

Just brainstorming here, but perhaps the command for adding
an Atom
should have an option that the user can set, which
determines whether
  

Re: [opencog-dev] Is automatic alpha-conversion evil?

2016-11-16 Thread 'Nil Geisweiller' via opencog
Another option would be to defined quoted atom types corresponding to 
all scope links, like


QuotedImplicationScopeLink

Or

ImplicationScopeLocalQuoteLink

which would inherit a LocalQuoteLink.

It has the advantage of being compact, unambiguous and circumvent the 
alpha-conversion issue altogether.


What do you think?

Nil

On 11/16/2016 01:34 PM, Nil Geisweiller wrote:

I'm back to this issue.

The notion of LocalQuote is indeed incompatible with systematic
alpha-conversion.

Consider this pattern

(Get
(VariableList
   (TypedVariable
  (Variable "$X")
  (Type "TypedVariableLink"))
   (TypedVariable
  (Variable "$P")
  (Type "PredicateNode"))
   (TypedVariable
  (Variable "$Q")
  (Type "PredicateNode"))
(LocalQuote
   (ImplicationScope
  (Variable "$X")
  (Variable "$P")
  (Variable "$Q"

This fetches ImplicationScope links.

If the following

(ImplicationScope
(Variable "$X")
(Variable "$P")
(Variable "$Q"))

happen to be alpha-equivalent to something with different variable names
it will render the Bind link invalid.

Indeed alpha-conversion shouldn't be triggered in that case, the right
idea is that the ImplicationScope, when quoted corresponds to a
DIFFERENT atom than the one not being quoted. Also of course if we
decide to not perform systematic alpha-conversion then this problem
doesn't arise.

I'm re-iterating my question. Do we really want automatic
alpha-conversion to begin with?

If the answer is yes then I suppose we need a way to tell that the
quoted version is different than then unquoted version.

Nil

On 10/22/2016 03:34 AM, Ben Goertzel wrote:

Nil,

Just brainstorming here, but perhaps the command for adding an Atom
should have an option that the user can set, which determines whether
the results would be alpha-converted or not

The default would be to do the alpha-conversion (which would be
appropriate if the variable names are say randomly generated, and thus
of no particular importance to the user -- the alpha conversion is
then just preventing odd collisions between randomly generated
variable names created by two different processes)

However, if the user wants they can override this default and specify
"no alpha conversion", and then it is their responsibility to check
and be sure their chosen VariableNode names are not going to be used
in a way that creates some conflict ...

This option would need to be added to Scheme, python, Haskell
bindings, but also to the core API for adding scoped links, I guess...

I am only about 83.456% sure I understand the problem here...

-- Ben



On Fri, Oct 21, 2016 at 11:55 PM, 'Nil Geisweiller' via opencog
<opencog@googlegroups.com> wrote:

Hi,

I start to think that automatic alpha-conversion is evil.

First let me recall what it does. Say you've added

(Scope (VariableList (Variable "$X") (Variable "$Y"))
(And (Variable "$X") (Variable "$Y")))

and you subsequently add

(Scope (And (Variable "$gold") (Variable "$silver")))

then recalling the handle of that last addition, you'd get the first
alpha-equivalent scope, which is

(Scope (VariableList (Variable "$X") (Variable "$Y"))
(And (Variable "$X") (Variable "$Y")))

This is rather confusing to the user, but even worse the pattern matcher
behaves differently with the former or the latter. If you use the
former to
match grounds containing variables "$X" and "$Y" it may not work due
to the
pattern matcher discarding self-matches. The latter would match
UNLESS the
former has been previously added, because the variables "$gold" and
"$silver" would be silently replaced by "$X" and "$Y". This is horribly
confusing to the user!

Second, it seems rather arbitrary to try to detect this kind of
equivalence
while there's an infinity of others. For instance

(And (Variable "$X") (And (Variable "$Y"))

is equivalent to

(And (Variable "$X") (Variable "$Y"))

For these reasons I think semantic equivalence detection shouldn't be
incorporated into the AtomSpace. The AtomSpace should take care of the
syntax only (OK, with the exception of unordered links), as it's always
been, and this task should differed to another process working above the
AtomSpace.

It was suggested a while ago to have a normal form reduction engine
for the
AtomSpace, similar to MOSES', and such an engine could be used to reduce
while adding atoms, if the user chooses so. This is a much cleaner
way to
handle that. Also since semantic equivalence is undecidable, there will
always be a battle between completeness and performance. Another
reason to
have this ever growing monster

Re: [opencog-dev] Is automatic alpha-conversion evil?

2016-11-16 Thread 'Nil Geisweiller' via opencog

I'm back to this issue.

The notion of LocalQuote is indeed incompatible with systematic 
alpha-conversion.


Consider this pattern

(Get
   (VariableList
  (TypedVariable
 (Variable "$X")
 (Type "TypedVariableLink"))
  (TypedVariable
 (Variable "$P")
 (Type "PredicateNode"))
  (TypedVariable
 (Variable "$Q")
 (Type "PredicateNode"))
   (LocalQuote
  (ImplicationScope
 (Variable "$X")
 (Variable "$P")
 (Variable "$Q"

This fetches ImplicationScope links.

If the following

(ImplicationScope
   (Variable "$X")
   (Variable "$P")
   (Variable "$Q"))

happen to be alpha-equivalent to something with different variable names 
it will render the Bind link invalid.


Indeed alpha-conversion shouldn't be triggered in that case, the right 
idea is that the ImplicationScope, when quoted corresponds to a 
DIFFERENT atom than the one not being quoted. Also of course if we 
decide to not perform systematic alpha-conversion then this problem 
doesn't arise.


I'm re-iterating my question. Do we really want automatic 
alpha-conversion to begin with?


If the answer is yes then I suppose we need a way to tell that the 
quoted version is different than then unquoted version.


Nil

On 10/22/2016 03:34 AM, Ben Goertzel wrote:

Nil,

Just brainstorming here, but perhaps the command for adding an Atom
should have an option that the user can set, which determines whether
the results would be alpha-converted or not

The default would be to do the alpha-conversion (which would be
appropriate if the variable names are say randomly generated, and thus
of no particular importance to the user -- the alpha conversion is
then just preventing odd collisions between randomly generated
variable names created by two different processes)

However, if the user wants they can override this default and specify
"no alpha conversion", and then it is their responsibility to check
and be sure their chosen VariableNode names are not going to be used
in a way that creates some conflict ...

This option would need to be added to Scheme, python, Haskell
bindings, but also to the core API for adding scoped links, I guess...

I am only about 83.456% sure I understand the problem here...

-- Ben



On Fri, Oct 21, 2016 at 11:55 PM, 'Nil Geisweiller' via opencog
<opencog@googlegroups.com> wrote:

Hi,

I start to think that automatic alpha-conversion is evil.

First let me recall what it does. Say you've added

(Scope (VariableList (Variable "$X") (Variable "$Y"))
(And (Variable "$X") (Variable "$Y")))

and you subsequently add

(Scope (And (Variable "$gold") (Variable "$silver")))

then recalling the handle of that last addition, you'd get the first
alpha-equivalent scope, which is

(Scope (VariableList (Variable "$X") (Variable "$Y"))
(And (Variable "$X") (Variable "$Y")))

This is rather confusing to the user, but even worse the pattern matcher
behaves differently with the former or the latter. If you use the former to
match grounds containing variables "$X" and "$Y" it may not work due to the
pattern matcher discarding self-matches. The latter would match UNLESS the
former has been previously added, because the variables "$gold" and
"$silver" would be silently replaced by "$X" and "$Y". This is horribly
confusing to the user!

Second, it seems rather arbitrary to try to detect this kind of equivalence
while there's an infinity of others. For instance

(And (Variable "$X") (And (Variable "$Y"))

is equivalent to

(And (Variable "$X") (Variable "$Y"))

For these reasons I think semantic equivalence detection shouldn't be
incorporated into the AtomSpace. The AtomSpace should take care of the
syntax only (OK, with the exception of unordered links), as it's always
been, and this task should differed to another process working above the
AtomSpace.

It was suggested a while ago to have a normal form reduction engine for the
AtomSpace, similar to MOSES', and such an engine could be used to reduce
while adding atoms, if the user chooses so. This is a much cleaner way to
handle that. Also since semantic equivalence is undecidable, there will
always be a battle between completeness and performance. Another reason to
have this ever growing monster above the AtomSpace rather than in it.

OK, I don't know if I've convinced you, or even if I've convinced myself,
but it's really a discussion we need to have.

Opinions welcome.

Nil

--
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 opencog+un

[opencog-dev] Re: ImplicationLink?

2016-10-11 Thread 'Nil Geisweiller' via opencog

Linas,

I don't have time to get into that right now. If you can point to where 
exactly it breaks (like a unit test on your branch) it would help. In 
any case I look carefully into that and reply tomorrow.


Nil

On 10/11/2016 06:55 PM, Linas Vepstas wrote:

You made it inherit from ScopeLink, thus making the variables in it
implicitly scoped.  Then you added the file ImplicationLink.cc, and have
notes in there, complaining about how variables are implcitly scoped.
The wiki page for it, http://wiki.opencog.org/w/ImplicationLink still
says things that are wrong (re alpha conversion -- each lambda gets
alpha converted, so the "sugar syntax" section cannot possibly be right).

I'm asking, because I'm trying to fix #910 by doing the alpha conversion
correctly, and the result of the fix is that unit tests with implication
links in them now fail.  The whole thing smells bad.

Either ImplicationLinks do inherit from ScopeLink, in which case, there
should be no complaints about how the ScopeLink works: it does the right
thing.  If you don't like what the scopeLink does, then ImplicationLinks
should NOT inherit from it ...

In either case, the wiki page needs fixing, because the alpha conversion
conversation we had recently renders that page incoherent.

I don't really care, one way or the other, but I do need to understand
the intended design well enough to be able to fix bugs, and right now, I
don't understand what ImplicationLink is, or how its supposed to work.

--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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/57FD1D8E.2060307%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


[opencog-dev] Re: ImplicationLink?

2016-10-11 Thread 'Nil Geisweiller' via opencog

Are these unit tests still failing?

Nil

On 10/11/2016 08:36 PM, Linas Vepstas wrote:

47 unit tests fail ... I'm not sure if they all fail for the same
reason, though.

For example PutLink

(PutLink
   (LambdaLink
 (VariableList
   (TypedVariableLink
 (VariableNode "$X")
 (TypeNode "PredicateNode")
   )
   (TypedVariableLink
 (VariableNode "$Y")
 (TypeNode "PredicateNode")
   )
 )
 (AndLink
   (EvaluationLink
 (PredicateNode "acquainted")
 (ListLink
   (VariableNode "$X")
   (VariableNode "$Y")
 )
   )
   (ImplicationLink
 (VariableNode "$X")  ; this is alpha-converted to $foo1233
 (PredicateNode "is-human")
   )
   (ImplicationLink
 (VariableNode "$X") ; this is alpha-converted  to $bar456
 (PredicateNode "is-human")
   )
 )
   )
   (ListLink
 (PredicateNode "is-Self")
 (PredicateNode "is-Bob")
   )
)

So, because the implication link is scoped, the result of the variable
substitution is

(AndLink
   (ImplicationLink
 (VariableNode "$foo123")
 (PredicateNode "is-human")
   )
   (ImplicationLink
 (VariableNode "$bar456")
 (PredicateNode "is-human")
   )
   (EvaluationLink
 (PredicateNode "acquainted")
 (ListLink
   (PredicateNode "is-Self")
   (PredicateNode "is-Bob")
 )
   )
)

which is not what the unit test expects. The problem with using either
ScopeLink or LambdaLink is that it becomes impossible to have a stable
variable name -- it can be alpha-converted to anything, so any algo that
depends on having a fixed, well-known variable name will fail.

In this case -- I am not sure -- if you want ImplicationLink to be
scoped, then the unit test is wrong.  But is the unit test is right,
then implication link must not be scoped.  I cannot tell which one is
wanted.

--linas



On Tue, Oct 11, 2016 at 12:12 PM, Nil Geisweiller
> wrote:

Linas,

I don't have time to get into that right now. If you can point to
where exactly it breaks (like a unit test on your branch) it would
help. In any case I look carefully into that and reply tomorrow.

Nil


On 10/11/2016 06:55 PM, Linas Vepstas wrote:

You made it inherit from ScopeLink, thus making the variables in it
implicitly scoped.  Then you added the file ImplicationLink.cc,
and have
notes in there, complaining about how variables are implcitly
scoped.
The wiki page for it, http://wiki.opencog.org/w/ImplicationLink
 still
says things that are wrong (re alpha conversion -- each lambda gets
alpha converted, so the "sugar syntax" section cannot possibly
be right).

I'm asking, because I'm trying to fix #910 by doing the alpha
conversion
correctly, and the result of the fix is that unit tests with
implication
links in them now fail.  The whole thing smells bad.

Either ImplicationLinks do inherit from ScopeLink, in which
case, there
should be no complaints about how the ScopeLink works: it does
the right
thing.  If you don't like what the scopeLink does, then
ImplicationLinks
should NOT inherit from it ...

In either case, the wiki page needs fixing, because the alpha
conversion
conversation we had recently renders that page incoherent.

I don't really care, one way or the other, but I do need to
understand
the intended design well enough to be able to fix bugs, and
right now, I
don't understand what ImplicationLink is, or how its supposed to
work.

--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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/57FDC2A5.3050004%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


[opencog-dev] Broken master

2016-10-12 Thread 'Nil Geisweiller' via opencog

Hi,

according to http://61.92.69.39:8080/job/ci-atomspace-master/222/console 
I've broken the master. Unfortunately I haven't been able to reproduce 
it, even with uncommenting `SET(DB_IS_CONFIGURED 1)` in 
`tests/persist/sql/odbc/CMakeLists.txt` to make sure I compile it.


Any idea?

Nil

--
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/57FE1AFE.2050901%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: ImplicationLink?

2016-10-17 Thread 'Nil Geisweiller' via opencog



On 10/16/2016 07:32 AM, Linas Vepstas wrote:

Shortly after sending this message, I decided that it was a bad idea to
let a sleeping bug lie. I am totally and completly confused by
ImplicationLink.   I flat out do not understand it, at all, not one whit.

Consider this:

(ImplicationLink  (VariableNode "$X")   (PredicateNode "is-human"))

In C++ I can cast this to a ScopeLink, and then as the ScopeLink "what
are your variables?"  and I get back the answer "None".


The answer is correct, $X is not scoped under the ImplicationLink. The 
ONLY way to have variables scoped under an ImplicationLink is to use the 
form


Implication
  
  
  

Here specifically $X has got to be something akin to a PredicateNode, a 
Lambda or anything that acts is like a predicate, i.e. a function with 
co-domain TV.




That's it, game over. My brain no longer functions.   What does it mean,
to have a link that has variables, to not have variables in it???


The variable may still be scoped but not in the ImplicationLink.



My knee-jerk reaction is that the code is buggy, that it is a mistake to
have ImplicationLink inherit from ScopeLink, that some chain of


The code is/should-be not buggy.


accidents lead to this point.   The wikipage is utterly
incomprehensible: I don't understand it either.  What is Implication?
Can we fix this so it makes sense in some way?


Oh, perhaps the confusion comes from this: unlike most scope links, when 
an ImplicationLink has no variable declaration it is not assumed that 
all free variables are under its scope.


I've added a note about it in the wiki.

Maybe we should split this in two link types.

ImplicationLink

ImplicationScopeLink

The ImplicationLink would be used only with the form

ImplicationLink
  
  

and ImplicationScopeLink only with these forms

ImplicationScopeLink
  
  
  

ImplicationScopeLink
  
  

Only ImplicationScopeLink would inherit ScopeLink and would implicitly 
scopes the free variables when the variable declaration is missing, like 
the other scope links.


What do you think?

Nil



--linas








On Sat, Oct 15, 2016 at 10:11 PM, Linas Vepstas <linasveps...@gmail.com
<mailto:linasveps...@gmail.com>> wrote:

OK, I'll defer the conversation. Sooner or later, Amen will open
another bug report once again titled "question: feature or bug?" and
I guess we can deal with it then.

--linas

On Thu, Oct 13, 2016 at 12:56 AM, 'Nil Geisweiller' via opencog
<opencog@googlegroups.com <mailto:opencog@googlegroups.com>> wrote:

On 10/13/2016 02:38 AM, Ben Goertzel wrote:

Wait ... we can have nested ScopeLinks, so that a variable
embedded in
two ScopeLInks can be bound by the outer one or the inner
one... no?


Yes, no problem, if a variable is scoped by both then the inner
one will cover the outer one.

Anyway, I don't see a problem with having a C++ ImplicationLink
class inherit the ScopeLink class. The only think to take care
of is to have no variable extracted when there are 2 arguments,
that is when using the non sugar for of the ImplicationLink

ImplicationLink
   P
   Q

I think that is what the code does, but if it doesn't or its
buggy it should be fixed, I'm happy to fix it as soon as unit
test fails because of it.

Nil



On Wed, Oct 12, 2016 at 4:08 PM, Linas Vepstas
<linasveps...@gmail.com <mailto:linasveps...@gmail.com>> wrote:



On Wed, Oct 12, 2016 at 12:53 PM, Nil Geisweiller
<ngeis...@googlemail.com <mailto:ngeis...@googlemail.com>>
wrote:




On 10/12/2016 06:55 PM, Linas Vepstas wrote:


Well, yes, but Nil,, look at the core issue: the
variable X in the
Implication link is bound, but the unit test is
pretending that its
free.  My question is: are you *sure* you really
want the
implicationLink to inherit from Scope Link (and
thus, always bind it's
variables)?



X is supposed to be free in the ImplicationLink,



Really?  The C++ code has ImplicationLink inheriting
from ScopeLink, thus
making it bound.  Perhaps ImplicationLink should not
inherit from ScopeLink?

?


bound to the PutLink. Yes I am sure I want it free
in the ImplicationLink.
Having ImplicationLink inherit Scope should not
prevent that. The syntax
itself is ambiguity free, if there are ambiguities
   

Re: [opencog-dev] Re: ImplicationLink?

2016-10-12 Thread 'Nil Geisweiller' via opencog

On 10/13/2016 02:38 AM, Ben Goertzel wrote:

Wait ... we can have nested ScopeLinks, so that a variable embedded in
two ScopeLInks can be bound by the outer one or the inner one... no?


Yes, no problem, if a variable is scoped by both then the inner one will 
cover the outer one.


Anyway, I don't see a problem with having a C++ ImplicationLink class 
inherit the ScopeLink class. The only think to take care of is to have 
no variable extracted when there are 2 arguments, that is when using the 
non sugar for of the ImplicationLink


ImplicationLink
  P
  Q

I think that is what the code does, but if it doesn't or its buggy it 
should be fixed, I'm happy to fix it as soon as unit test fails because 
of it.


Nil



On Wed, Oct 12, 2016 at 4:08 PM, Linas Vepstas  wrote:



On Wed, Oct 12, 2016 at 12:53 PM, Nil Geisweiller 
wrote:




On 10/12/2016 06:55 PM, Linas Vepstas wrote:


Well, yes, but Nil,, look at the core issue: the variable X in the
Implication link is bound, but the unit test is pretending that its
free.  My question is: are you *sure* you really want the
implicationLink to inherit from Scope Link (and thus, always bind it's
variables)?



X is supposed to be free in the ImplicationLink,



Really?  The C++ code has ImplicationLink inheriting from ScopeLink, thus
making it bound.  Perhaps ImplicationLink should not inherit from ScopeLink?

?



bound to the PutLink. Yes I am sure I want it free in the ImplicationLink.
Having ImplicationLink inherit Scope should not prevent that. The syntax
itself is ambiguity free, if there are ambiguities in the code it's a bug
and it should be fixed.

Again, I'm happy to fix anything related to that once the issue reappears.

Nil



--linas


On Wed, Oct 12, 2016 at 10:39 AM, Nil Geisweiller
> wrote:

 OK, when they fail again I guess you might feel free to push to the
 master, as we're apparently using as a dev branch, and then I'll fix
 that.

 Nil

 On 10/12/2016 06:17 PM, Linas Vepstas wrote:

 No, actually, I worked around that.

 The only reason that PutLinkUTest currently passes is because
 PutLink
 fails to treat ScopeLinks correctly.  When that gets fixed, the
unit
 test will fail ... the issue remains the same.

 --linas

 On Tue, Oct 11, 2016 at 11:57 PM, Nil Geisweiller
 
 >> wrote:

  Are these unit tests still failing?

  Nil


  On 10/11/2016 08:36 PM, Linas Vepstas wrote:

  47 unit tests fail ... I'm not sure if they all fail
 for the same
  reason, though.

  For example PutLink

  (PutLink
  (LambdaLink
(VariableList
  (TypedVariableLink
(VariableNode "$X")
(TypeNode "PredicateNode")
  )
  (TypedVariableLink
(VariableNode "$Y")
(TypeNode "PredicateNode")
  )
)
(AndLink
  (EvaluationLink
(PredicateNode "acquainted")
(ListLink
  (VariableNode "$X")
  (VariableNode "$Y")
)
  )
  (ImplicationLink
(VariableNode "$X")  ; this is
 alpha-converted to $foo1233
(PredicateNode "is-human")
  )
  (ImplicationLink
(VariableNode "$X") ; this is
 alpha-converted  to $bar456
(PredicateNode "is-human")
  )
)
  )
  (ListLink
(PredicateNode "is-Self")
(PredicateNode "is-Bob")
  )
  )

  So, because the implication link is scoped, the result
 of the
  variable
  substitution is

  (AndLink
  (ImplicationLink
(VariableNode "$foo123")
(PredicateNode "is-human")
  )
  (ImplicationLink
(VariableNode "$bar456")
(PredicateNode "is-human")
  )
  (EvaluationLink
(PredicateNode "acquainted")
   

Re: [opencog-dev] Adapting Opencog

2016-12-11 Thread 'Nil Geisweiller' via opencog

Hi,

On 12/12/2016 08:35 AM, Ravi Krishna wrote:

Hi,

We are trying to build a cognitve platform. Please help me in
understanding how open and flexible is openCog to use. What are the


OpenCog is as open as it can get. Regarding flexibility, sure it could 
be better, for instance ideally truth and attentional values would be 
proto atoms and people should be able to ignore them or replace them if 
they want to. Of course they can be ignored but the API doesn't look at 
lean as it could as a result, and the kind of mutable data an atom can 
hold is very limited (you can always make it up by unfolding that data 
into hypergraphs, but it introduces overheads).



features we can leverage and can we customize and write our own code on
top of this based on our requirements.


You totally can, as long as your needs meet what OpenCog can offer. Have 
a look at the examples in the atomspace and opencog repositories to get 
some ideas.


You also may want to look at https://github.com/hansonrobotics/HEAD 
which is I believe the biggest project using the opencog framework.


If you tell us a bit more what you want to do with OpenCog we could help 
you to evaluate how adequate it is and how much work is needed to 
leverage it.


Nil



Thanks in advance for your help.

Regards
Ravi Krishna.

--
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 opencog+unsubscr...@googlegroups.com
.
To post to this group, send email to opencog@googlegroups.com
.
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/dd1e5c94-dd0e-4480-80a9-c691262c02e2%40googlegroups.com
.
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/2f86db28-bde3-25a3-0f19-fccf6fdd3b37%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


[opencog-dev] Re: Generalizing the Pattern Miner implementation to make it encompass the MOSES algorithm

2016-12-11 Thread 'Nil Geisweiller' via opencog



On 12/12/2016 06:19 AM, Nil Geisweiller wrote:

It was clear to me whether using the AtomSpace as working DB for the


I forgot to insert the word "never" in here.

Nil


evolving trees would speed up or slow down MOSES. One thing that could
speed it up is enabling memoization at the subtree level, as opposed to
the tree level as in MOSES. Seemingly ProtoAtoms could be used as a
cache memory over subtrees. Who knows what kind of speed up that may yield?

Nil


--
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/4bd78fd5-9107-9a17-5889-f44759511518%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Adapting Opencog

2016-12-14 Thread 'Nil Geisweiller' via opencog

Hi,

On 12/13/2016 02:27 PM, ravi.desar...@ramyamlab.com wrote:

Hi Nil, Thank you for your response.

We want to create software robots which can think of customer/ business
problems and provide solutions or act on those problems. We are trying
to evaluate OpenCog from development perspective to build such platform.
Can we adapt this as our development framework?


You certainly can. Of course OpenCog is still in the making so you'll 
have to keep up with updates or fix whatever you need to, or ask us. The 
opencog-ish way to do what you want is to define goals and behavior for 
your software robots as a set of OpenPsi rules, as well as assemble IO, 
learning and reasoning agents so your system fulfils these goals 
intelligently.




Also, i am trying to install openCog to get the feel of the framework,
but not successful. Could you provide me some help here as well. I am
using a centos server and only dowloaded opencog files till now. How to
proceed next?


See

http://wiki.opencog.org/w/Building_OpenCog

BTW, I'm running OpenCog on Ubuntu 16.10, however I don't use these 
tools for installing it, report any problems you may have.




Is there any reading material available apart from wiki docs?


The documentation is also in the making, we don't have yet a nice and 
uniform documentation like for say the Python language or the Boost 
library, so the Wiki, READMEs in the code are the main sources of 
documentation you'll currently find. We also have documentation 
generated by doxygen here http://wiki.opencog.org/w/Code_documentation 
but it's currently broken.


Nil



Thanks
Ravi Krishna.


On Monday, December 12, 2016 at 12:24:08 PM UTC+5:30, Nil wrote:

Hi,

On 12/12/2016 08:35 AM, Ravi Krishna wrote:
 > Hi,
 >
 > We are trying to build a cognitve platform. Please help me in
 > understanding how open and flexible is openCog to use. What are the

OpenCog is as open as it can get. Regarding flexibility, sure it could
be better, for instance ideally truth and attentional values would be
proto atoms and people should be able to ignore them or replace them if
they want to. Of course they can be ignored but the API doesn't look at
lean as it could as a result, and the kind of mutable data an atom can
hold is very limited (you can always make it up by unfolding that data
into hypergraphs, but it introduces overheads).

 > features we can leverage and can we customize and write our own
code on
 > top of this based on our requirements.

You totally can, as long as your needs meet what OpenCog can offer.
Have
a look at the examples in the atomspace and opencog repositories to get
some ideas.

You also may want to look at https://github.com/hansonrobotics/HEAD

which is I believe the biggest project using the opencog framework.

If you tell us a bit more what you want to do with OpenCog we could
help
you to evaluate how adequate it is and how much work is needed to
leverage it.

Nil

 >
 > Thanks in advance for your help.
 >
 > Regards
 > Ravi Krishna.
 >
 > --
 > 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 opencog+u...@googlegroups.com 
 > .
 > To post to this group, send email to ope...@googlegroups.com

 > .
 > 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/dd1e5c94-dd0e-4480-80a9-c691262c02e2%40googlegroups.com



 >

>.

 > 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 opencog+unsubscr...@googlegroups.com
.
To post to this group, send email to opencog@googlegroups.com
.
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/57011b80-37dc-4d81-81f8-f95de1802a5b%40googlegroups.com

Re: [opencog-dev] reimplementing MOSES atop the pattern miner: wiki page

2017-01-13 Thread 'Nil Geisweiller' via opencog

On 12/18/2016 06:38 AM, Ben Goertzel wrote:

I have posted my design idea  (discussed in a recent email thread) on
the wiki site here

http://wiki.opencog.org/w/Reimplementing_MOSES_in_the_Atomspace_Atop_the_Pattern_Miner


The Backward Chainer can also be framed that way. :-) Even more so 
directly than what you've sketched on the SampleLink page.


The BC as currently implemented evolves atomese programs, where each 
program encodes a specific forward chaining strategies (FCS for short). 
There is a difficulty though, there are no easy way to evaluate the 
fitness of a FCS, either it proves the target or it doesn't. Or let's 
say that the fitness landscape is extremely chaotic, some FCS may prove 
nothing at all, while a tiny variation of it may prove our target 
completely.


BUT this can be overcome by meta-learning, i.e. learning a measure of 
success for FCS that are half-way there. So in this framework 
meta-learning would be used to reshape the fitness function, from a 
crisp chaotic one to a smooth regular one.


Nil



so it doesn't get lost

ben



--
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/5878DC30.5080303%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


[opencog-dev] Re: Soggy predicates

2017-01-13 Thread 'Nil Geisweiller' via opencog

Ben,

I only read it now, see my comments below.

On 12/14/2016 04:40 AM, Ben Goertzel wrote:

A Simple Observation Grounded predicate, or Soggy predicate, is an
uncertain predicate F so that: For each x, the number F(x) lies in
[0,1] can be interpreted as the average degree to which an arbitrary
element of some set O of observations has property x.   (Here we
assume that the degree to which a specific observation has a property
x is itself a number in [0,1])


OK, but I think the definition for F(O) is missing, right?

I guess formally what we want is, given a universe U, define an 
extension of F:U->[0,1] to PowerSet(U) such that


F(O) = weighted average of F(x) over O

or formally

F(O).s = Sum_x F(x).s * (Member x O).s / Sum_x (Member x O).s

right?


EvaluationLink 
PredicateNode F
Atom x

as being equivalent to

MemberLink 
Atom x
SatisfyingSet
   PredicateNode F

Basically, this is just defining the membership function of the fuzzy set

SatisfyingSet
   PredicateNode F

in a particular way.

We can then convert this ("M2I rule") to

ExtensionalInheritanceLink 
Atom x
SatisfyingSet
   PredicateNode F

because of the way F was originally defined.


Yes, this entails from the definition of the extension of F to PowerSet(U).

Apart from that formal omission, it's all clear. I'll add to the wiki 
the definition of F extension, unless you disagree, then let me know why.


Nil

--
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/5878D57A.803%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Calling forward/backward chainer

2016-12-05 Thread 'Nil Geisweiller' via opencog

Hi,

the backward chainer is not mature yet, it may or not work for you, I 
think it will be mature enough after 2 week.


The forward chainer should work as expected. See 
http://wiki.opencog.org/w/URE_Configuration_Format to define a rule base.


See also 
https://github.com/opencog/atomspace/tree/master//examples/rule-engine 
as well https://github.com/opencog/opencog/tree/master/examples/pln for 
examples.


Nil

On 12/05/2016 05:18 PM, Vishnu Priya wrote:

Hello all,

i would like to try the forward/backward chaining. i found these pages
  
https://github.com/opencog/atomspace/tree/master//opencog/rule-engine#how-to-call-the-forward-chainer-from-a-scheme-interface
http://wiki.opencog.org/w/Unified_rule_engine

I somehow understood, how overall process goes on.

(cog-fc *source* *rule-base* *focus-set*)
But i don't know, how I can carry out this process.  i also don't know,
how to specify rule-base, focus-set..
Can you anyone provide the steps to carry out  chaining process ?

Thanks,
Vishnu

--
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 opencog+unsubscr...@googlegroups.com
.
To post to this group, send email to opencog@googlegroups.com
.
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/b0170017-7cd2-415a-9d64-7ed9f154ae35%40googlegroups.com
.
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/58458F6D.8090001%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: some explanations on the unified rule engine

2017-01-08 Thread 'Nil Geisweiller' via opencog
So you know I do intend to clean up and complete the URE documentation, 
I'm just waiting that it matures to the point that I can run our big 
inferences.


Nil

On 01/09/2017 03:40 AM, AmeBel wrote:

https://github.com/opencog/atomspace/tree/master/examples/rule-engine
might help

On Sunday, January 8, 2017 at 7:10:25 AM UTC+8, Apil Tamang wrote:

Hi All,
This is my attempt to understand  the unified-rule-engine (and the
associate backward/forward chaining) in some more detail. I found
this  page deals
exclusively with this topic, but I continue to find it confusing.
Are there any other notes/pages (maybe) describing about these
topics in perhaps a different perspective?

Thanks...

--
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 opencog+unsubscr...@googlegroups.com
.
To post to this group, send email to opencog@googlegroups.com
.
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/9f653de7-d023-48da-9df6-75355e7c3dbb%40googlegroups.com
.
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/58732BEA.7080300%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Opening a pull request for opencog/atomspace and opencog/docker

2016-12-21 Thread 'Nil Geisweiller' via opencog

Hi,

On 12/21/2016 03:29 PM, Apil Tamang wrote:

Hi,

As I go through the examples, I feel there're small things (mostly
comments and instructions) that could be improved upon. I'm a new-comer
to opencog, and I think this might help others going through the same path.


that is very welcome indeed.



Also, noticed that there's a small setting somewhere in the docker files
that could use a change for a more seamless installation.

Trying to open a pull request didn't work for me. I guess the repository
is locked (and for good reasons, I'm sure). Can someone suggest how I
may contribute changes to the core opencog git-hub sources?


Do you have a github account? I think that's the only requirement.

Nil



--
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 opencog+unsubscr...@googlegroups.com
.
To post to this group, send email to opencog@googlegroups.com
.
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/a70bd6c5-3c45-48d6-98a4-2d4284c915d3%40googlegroups.com
.
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/585AEF3D.4090508%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Opening a pull request for opencog/atomspace and opencog/docker

2016-12-21 Thread 'Nil Geisweiller' via opencog
I've sent you an invitation. I surprised though, it shouldn't have been 
necessary.


Nil

On 12/21/2016 11:21 PM, Apil Tamang wrote:

Hi,
My github account is under apil.tam...@gmail.com



On Wednesday, December 21, 2016 at 4:08:17 PM UTC-5, Nil wrote:

Hi,

On 12/21/2016 03:29 PM, Apil Tamang wrote:
 > Hi,
 >
 > As I go through the examples, I feel there're small things (mostly
 > comments and instructions) that could be improved upon. I'm a
new-comer
 > to opencog, and I think this might help others going through the
same path.

that is very welcome indeed.

 >
 > Also, noticed that there's a small setting somewhere in the
docker files
 > that could use a change for a more seamless installation.
 >
 > Trying to open a pull request didn't work for me. I guess the
repository
 > is locked (and for good reasons, I'm sure). Can someone suggest
how I
 > may contribute changes to the core opencog git-hub sources?

Do you have a github account? I think that's the only requirement.

Nil

 >
 > --
 > 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 opencog+u...@googlegroups.com 
 > .
 > To post to this group, send email to ope...@googlegroups.com

 > .
 > 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/a70bd6c5-3c45-48d6-98a4-2d4284c915d3%40googlegroups.com



 >

>.

 > 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 opencog+unsubscr...@googlegroups.com
.
To post to this group, send email to opencog@googlegroups.com
.
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/44848186-8cb7-4329-8463-3d21e128facd%40googlegroups.com
.
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/585AFA56.6010306%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] PLN rules selection

2017-03-23 Thread 'Nil Geisweiller' via opencog

On 03/23/2017 11:54 PM, Vishnu Priya wrote:



Thanks Nil. But i have few questions.

 1. In real time reasoning, each and every time will you look at the
input data and decide the rules manually?


No. Inference control (IC) would decide what rule(s) to apply. ATM IC is 
rather stupid and should to improves over time.



 2. Only when the input is in certain form of the rule (or matches with
the rule) which is being chosen,  we obtain inferences? (this is how
i understood!)


Correct.

BTW, I have improved and actualized the URE documentation

wiki.opencog.org/w/Unified_rule_engine

I strongly recommend you to read it again (and send feedback if you have 
critics so I can improve it).


For instance your question is answered here

http://wiki.opencog.org/w/Unified_rule_engine#Rule_Unification_and_Application 
and here 
http://wiki.opencog.org/w/Unified_rule_engine#Target_and_Rule_Unification



 3. And there exists only such limited number of rules?


The number of rules is indeed limited. It's not clear how big a full PLN 
rule set would be. Add to that rule for temporal reasoning, etc. That 
could grow big.



 4. In the frog.scm,


https://github.com/opencog/atomspace/blob/master/examples/rule-engine/chaining/frog.scm

there are two rules defined. How do these rules are called? I could
not associate these rules  with any of the rules
in 
https://github.com/opencog/opencog/blob/master/examples/pln/moses-pln-synergy/scm/pln-bc-config.scm

 ?!


Oops, this example is really half baked, if not completely boggus. Have 
a look at this instead


https://github.com/opencog/atomspace/blob/master/tests/rule-engine/BackwardChainerUTest.cxxtest#L321

If you wish, as an contributing/learning exercise, you could fix the 
frog example based on it.


Nil



--
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 opencog+unsubscr...@googlegroups.com
.
To post to this group, send email to opencog@googlegroups.com
.
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/b93152e1-e531-41c9-a993-4b3781b94f38%40googlegroups.com
.
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/aa7542e1-aaac-02f2-7484-06abdc405119%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


[opencog-dev] Stop merging to the opencog repo

2017-03-24 Thread 'Nil Geisweiller' via opencog
The github history on the opencog repo is seriously f-up. Please do not 
commit anything before I figure out what went wrong.


Nil

--
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/0be5333c-4d5c-7792-7de4-f5c7f9c55f0b%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


[opencog-dev] Re: Stop merging to the opencog repo

2017-03-24 Thread 'Nil Geisweiller' via opencog

Actually never mind, it comes from

https://github.com/opencog/opencog/commit/3b2637e6c0c774ac06ecc779a265564fa616be0e

which I suppose has been done purposely. It was looking very suspicious 
at first because it contains commits as old as 2y.


Nil

On 03/24/2017 02:29 PM, Nil Geisweiller wrote:

The github history on the opencog repo is seriously f-up. Please do not
commit anything before I figure out what went wrong.

Nil


--
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/f20bb1a4-6ea0-d6bc-56e0-22d07c9f5da2%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] [Problem] Compiling Opencog on Ubuntu 16.04 and Boost 1.58

2017-03-28 Thread 'Nil Geisweiller' via opencog

I'd say you haven't installed boost completely.

Try that perhaps

sudo apt-get install libboost-all-dev

Nil

On 03/28/2017 04:48 PM, Jérémy Morceaux wrote:

Well after multiple try, i can't figure it out.
If someone can help me ^^

Jérémy

--
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 opencog+unsubscr...@googlegroups.com
.
To post to this group, send email to opencog@googlegroups.com
.
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/9aa9798d-0995-41bc-8216-aca821bd82bf%40googlegroups.com
.
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/ded7546f-16a2-bb38-60df-fe222eedb93d%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] [Problem] Compiling Opencog on Ubuntu 16.04 and Boost 1.58

2017-03-28 Thread 'Nil Geisweiller' via opencog

I'm running Ubuntu 14.04 and 16.10, never tried 16.04, anybody else?

Nil

On 03/28/2017 05:53 PM, Jérémy Morceaux wrote:

Already tried it.



--
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/24254a7d-8766-e681-51dc-aebd156ad254%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


[opencog-dev] Re: Pattern mining and NLP parsing and MOSES with the URE?

2017-03-29 Thread 'Nil Geisweiller' via opencog
Yes, I do vaguely see how the forward chainer could be used as you 
describe for pattern mining and program evolution. In fact, if worth 
keeping, I suppose the generative parts (currently written in C++) could 
be exposed to scheme, wrapped in rules, and the URE would merely be used 
as main control loop. Cool hybridizations + inference control could take 
place.


I understand less well your use case of grammar parsing, especially the 
forward chainer part. But my feeling is that you probably wouldn't need 
to modify the BC, just have the appropriate fitness function to guide 
the back inference tree expansion to follow this word by word iterative 
heuristic. Note that the BC already does backtracking. If some back 
inference tree path is fruitless, it will "backtrack" and explore others 
paths. There's a complexity penalty parameter over the inference tree 
size to control how much backtracking (breath first search) may take 
place. Wait, I think I understand the FC part! That's in fact to get an 
evaluation of the fitness function. Hmm, maybe the FC part could be 
wrapped in the fitness function. Anyway, without all the details in 
mind, I may not be thinking correctly about it.


Nil

On 03/28/2017 05:58 PM, Ben Goertzel wrote:

2) Grammar parsing

Here the idea would be similar to the "Viterbi link parser" that Linas
got partway through writing a while back

The parser would iterate through a sentence from beginning to end.
As it proceeds through it would maintain a tree of possible parses,
similar to a "backward inference tree".   At each stage, it expands
the tree of possible parses, via using an "expansion rule."   The
expansion rule takes the next word in the sentence, and finds its
disjuncts, and chooses the highest-weight way to match all its
disjuncts with those of words occurring elsewhere in the sentence.
Its output is either to add the links representing the match to the
parse tree it's expanding to create a new possible parse; or to fail.
If it fails then backtracking happens, and some earlier word in the
sentence is subjected to the expansion rule again (but the expansion
rule is tasked with finding the highest-weight way to match the
disjuncts of the word being expanded, that has not been tried and
found to fail already in the context of the rest of the parse tree
being expanded) ...

This would require a modified chainer, i.e. a "backward-forward
chainer" that does forward chaining in a way that enables explicit
backtracking when a dead-end is hit...

...

There is a similarity between these two cases in that they're both to
do with using rules that expand structures...

obviously 1) is similar to

3) expanding the program tree in a MOSES deme using the URE ...

I.e. 3) is basically the same as 1) except that one has an arbitrary
fitness function in place of surprisingness.  The MOSES program tree
node vocabulary in use in a given evolution round, would be specified
by a "pattern template" similar to what one uses in the pattern miner
now to specify what kinds of patterns to search for...

...

Doing 1-3 would make things rather elegant (and combined with our
in-progress replacement of the NLP comprehension pipeline, would make
the whole of OpenCog finally somewhat pretty...)


-- Ben



--
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/c05e14f0-5199-3bbe-5b8e-9f1cac70f3de%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


[opencog-dev] Merge SUMO_importer

2017-04-05 Thread 'Nil Geisweiller' via opencog

Any reason

https://github.com/tanksha/external-tools/tree/master/SUMO_importer

hasn't been merged to

https://github.com/opencog/external-tools

?

Nil

--
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/f91fae2d-fbfc-f010-569b-190741b722e6%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: [Problem] Compiling Opencog on Ubuntu 16.04 and Boost 1.58

2017-04-03 Thread 'Nil Geisweiller' via opencog

On 04/02/2017 09:54 AM, Jérémy Morceaux wrote:

Thanks Nil and linas, i disabled cpprest download and opencog is now
built. I'm getting 86% on unit test, so i think it's working ^^ Thank
you both


If the 86% is on opencog, then it's probably normal, if it's on the 
atomspace then it's probably not.


Nil



Jérémy

--
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 opencog+unsubscr...@googlegroups.com
.
To post to this group, send email to opencog@googlegroups.com
.
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/73a9dc07-d55a-4b91-82ee-34cb067faab4%40googlegroups.com
.
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/252f7080-61f5-669e-14df-f3f8392460c7%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] PLN rules selection

2017-04-03 Thread 'Nil Geisweiller' via opencog



On 03/28/2017 07:13 PM, Vishnu Priya wrote:

1. If the input which is give, is R2L form of the sentences but does not
contain any variable,
Still can i apply the rules on them to get inferences?
because here the conditional instantiation-meta-rule is in the following
form and involves substitution of variables
with meaningful atoms.
;; ImplicationScopeLink
;; V
;; P
;; Q
;; |-
;; T
;; P
;; |-
;; Q[V->T]

 What if i want to get inferences out of Criminal.scm automatically,
which is in the form of R2L  and without  hard-coding variables? i.e.
 (KB without variables)


Ah, so you want for instance to either tell the system

"What croaks and eats flies is a frog"

or have it learn it from experience and such, instead of hard coding it 
in the KB, right?


You're right, hard-coding everything is not practical. These examples 
are more like toy tests than real world examples. The plan is to have 
most of these learned or extracted from the web, or such. We'll still 
hard code some stuff, things that are fundamental and hard to learn like 
mathematics, amongst other things.


I'm not extremely familiar with the NLP code, but I think it can already 
produce such knowledge (probably as implication links without variables, 
but as explained here 
http://wiki.opencog.org/w/ImplicationScopeLink#PLN_Semantics these are 
equivalent to implication scopes).


Nil

--
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/ee537d65-9b4d-70ef-211f-66b5887f84f7%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Calling forward/backward chainer

2017-04-03 Thread 'Nil Geisweiller' via opencog
Step 2 is used by step 4 (it is a bit obfuscated by the helper 
ure-add-rules, which creates a MemberLink between the rule name and the 
rule base).


In practice, the only reason we need is to store the rule name in the 
AtomSpace (the scheme rule name alone isn't loaded in the atomspace). 
And this is only used to store the inference trace. Actually only the 
forward chainer needs that, the backward chainer uses formula names 
instead. I don't know at this point if we can afford to drop the rule 
name so I prefer to let it there.


Nil

On 04/03/2017 09:30 AM, Linas Vepstas wrote:


On Mon, Apr 3, 2017 at 5:31 AM, Misgana Bayetta
> wrote:

Hi, here are the steps to take in order to define rules and a rule
base for the chainer:

step 1. Define the rules
  eg.   (define Rule_A (BindLink) )

Step 2. Create a DefineLink
 eg. (DefineLink (DefinedSchemaNode "Rule_A")  Rule_A)

Step 3. Define a rulebase
eg. (define RuleBase_X (InheritanceLink (ConceptNode "RuleBase_X")
 (ConceptNode "URE")) )

Step 4. Add rules to rule base
eg. (ure-add-rules Rule_A RuleBase_X)



why is step 2 even needed in the above? The DSN is not used in either
step 3 or step 4.   (I imagine it could be used in step 4 ... just that
it isn't)

--
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 opencog+unsubscr...@googlegroups.com
.
To post to this group, send email to opencog@googlegroups.com
.
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/CAHrUA37Xqg9dMspd0JLamXHVDX9Ur3owrbtychu5a2W4AYBeWQ%40mail.gmail.com
.
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/5b590b2a-203d-d85f-103c-29222012535f%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: Calling forward/backward chainer

2017-04-10 Thread 'Nil Geisweiller' via opencog

I've added a bit more explanation here

http://wiki.opencog.org/w/URE_Configuration_Format#Usage

Nil

On 04/09/2017 10:04 PM, Linas Vepstas wrote:



On Sun, Apr 9, 2017 at 6:39 PM, Misgana Bayetta
> wrote:



On Sun, Apr 9, 2017 at 10:48 PM, Alex > wrote:

OK, I followed with updated tutorial

https://github.com/opencog/atomspace/tree/master/examples/rule-engine/chaining


and I managed to run my first cog-fc with the normal result. I
would like to raise two points:

1) tutorial says that cog-fc has 4 arguments, but my version of
opencog (as or start of 2017) of cog-fc still has 3 arguments:
source/rule base/focus set. There is no variable-declaration
argument. Just wanted to note for those who use this thread for
troubleshooting cog-fc.

2) *I wonder about necessity of/_source_ /as an argument, why we
need this? *Business Rule engines (like JBoss Drools) use entire
Atomspace working memory as domain for reasoning - somehow first
rule is selected and matched with facts and first inference is
made and so this process continues? Focus set can be emtpy Set
and then the entire Atomspace becomes the focus set. Maybe we
can do this with source as well - maybe empty source will
designed entire Atomspace as a source?


Yes, you can pass empty SetLink. see here

https://github.com/opencog/atomspace/blob/master/opencog/rule-engine/forwardchainer/ForwardChainer.cc#L110

.


well, the wiki page, and the example/tutorial should point this out. Its
a good question.  I don't even know if we have a good wiki page
reviewing the forward chainer, how it works, how to use it?

--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 opencog+unsubscr...@googlegroups.com
.
To post to this group, send email to opencog@googlegroups.com
.
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/7c03321c-8e84-408e-bfc6-24b4a72f016b%40googlegroups.com

.

For more options, visit https://groups.google.com/d/optout
.




--
Belachew Misgana Bayetta
'For everyone who asks receives, and the one who seeks finds, and to
the one who knocks it will be opened ' --Jesus
'The future belongs to those who believe in the beauty of their
dreams' --Eleanor Rusvelt

--
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 opencog+unsubscr...@googlegroups.com
.
To post to this group, send email to opencog@googlegroups.com
.
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/CAOgrVvWaBFaV65C77%2BVHZcVgjxRTin5XXp68Nw%3Dt_7UkVsE0ZQ%40mail.gmail.com

.

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 opencog+unsubscr...@googlegroups.com
.
To post to this group, send email to opencog@googlegroups.com
.
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/CAHrUA37Jb1jzzCgs6kcb7W9rp_0-bKuD-LXyma3fjdFgQMZJCw%40mail.gmail.com
.
For more options, visit https://groups.google.com/d/optout.


--
You 

Re: [opencog-dev] Learner

2017-04-24 Thread 'Nil Geisweiller' via opencog

On 04/23/2017 02:31 PM, Nageen Naeem wrote:

Sir, can you guide me how started and at what stage you are?


These days I'm mainly focused on the URE

http://wiki.opencog.org/w/Unified_rule_engine

I recommend starting with the pattern matcher because it is such an 
essential component and much of opencog is built upon it. If you're 
interested in reasoning, I would start with that, reading


http://wiki.opencog.org/w/Pattern_matching

and the README I pointed to you earlier. Then look at the URE.

If you're more interested in program learning, have a look at

http://wiki.opencog.org/w/Meta-Optimizing_Semantic_Evolutionary_Search

If you're more interested in natural language processing

http://wiki.opencog.org/w/Natural_language_processing

Nil



On Sun, Apr 23, 2017 at 3:23 PM, 'Nil Geisweiller' via opencog
<opencog@googlegroups.com <mailto:opencog@googlegroups.com>> wrote:

I have barely looked at the tutorials myself, so if I have to guide
you I would tell you to start with


https://github.com/opencog/atomspace/blob/master/examples/pattern-matcher/README.md

<https://github.com/opencog/atomspace/blob/master/examples/pattern-matcher/README.md>

Nil

On 04/23/2017 11:05 AM, Nageen Naeem wrote:

can you guide me in detail?
Thanks

Regards
Nageen

On Sun, Apr 23, 2017 at 12:34 PM, 'Nil Geisweiller' via opencog
<opencog@googlegroups.com <mailto:opencog@googlegroups.com>
<mailto:opencog@googlegroups.com
<mailto:opencog@googlegroups.com>>> wrote:

Hi,

there are tutorials on the wiki

http://wiki.opencog.org/w/Category:Tutorials
<http://wiki.opencog.org/w/Category:Tutorials>
<http://wiki.opencog.org/w/Category:Tutorials
<http://wiki.opencog.org/w/Category:Tutorials>>

I recommend you take a look at examples in the atomspace repo

/examples

first the pattern matcher, then rule-engine, etc.

then the opencog repo

/examples

Nil

On 04/23/2017 10:05 AM, Nageen Naeem wrote:

Hi,

I am Nageen, a computer science student.I am new to this
field
and new
to OpenCog also, I understand the base concept of
OpenCog first
now I am
trying to use it I install it using instruction give on the
following
page
"http://wiki.opencog.org/w/Installing_OpenCog_for_Noobs
<http://wiki.opencog.org/w/Installing_OpenCog_for_Noobs>
<http://wiki.opencog.org/w/Installing_OpenCog_for_Noobs
<http://wiki.opencog.org/w/Installing_OpenCog_for_Noobs>>"
installation is done.
I would love to know more about the OpenCog can anyone
guide me
how to
go further?
Thanks

Regards
Nageen

--
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 opencog+unsubscr...@googlegroups.com
<mailto:opencog%2bunsubscr...@googlegroups.com>
<mailto:opencog%2bunsubscr...@googlegroups.com
<mailto:opencog%252bunsubscr...@googlegroups.com>>
<mailto:opencog+unsubscr...@googlegroups.com
<mailto:opencog%2bunsubscr...@googlegroups.com>
<mailto:opencog%2bunsubscr...@googlegroups.com
<mailto:opencog%252bunsubscr...@googlegroups.com>>>.
To post to this group, send email to
opencog@googlegroups.com <mailto:opencog@googlegroups.com>
<mailto:opencog@googlegroups.com
<mailto:opencog@googlegroups.com>>
<mailto:opencog@googlegroups.com
<mailto:opencog@googlegroups.com>
<mailto:opencog@googlegroups.com
<mailto:opencog@googlegroups.com>>>.
Visit this group at
https://groups.google.com/group/opencog
<https://groups.google.com/group/opencog>
<https://groups.google.com/group/opencog
<https://groups.google.com/group/opencog>>.
To view this discussion on the web visit


https://groups.google.com/d/msgid/opencog/437cdbc5-74a9-4339-bc79-276e44376ff9%40googlegroups.com

<https://groups.google.com/d/msgid/opencog/437cdbc5-74a9-4339-bc79-276e44376ff9%40googlegroups.com>


<https://groups.google.com/d/msgid/opencog/437cdbc5-74a9-4339-bc79-276e44376ff9%40googleg

Re: [opencog-dev] Learner

2017-04-24 Thread 'Nil Geisweiller' via opencog

And for the action decision module, there is OpenPsi

http://wiki.opencog.org/w/OpenPsi

what OpenCog uses to control agents in real or virtual worlds.

Nil

On 04/24/2017 09:30 AM, Nil Geisweiller wrote:

On 04/23/2017 02:31 PM, Nageen Naeem wrote:

Sir, can you guide me how started and at what stage you are?


These days I'm mainly focused on the URE

http://wiki.opencog.org/w/Unified_rule_engine

I recommend starting with the pattern matcher because it is such an
essential component and much of opencog is built upon it. If you're
interested in reasoning, I would start with that, reading

http://wiki.opencog.org/w/Pattern_matching

and the README I pointed to you earlier. Then look at the URE.

If you're more interested in program learning, have a look at

http://wiki.opencog.org/w/Meta-Optimizing_Semantic_Evolutionary_Search

If you're more interested in natural language processing

http://wiki.opencog.org/w/Natural_language_processing

Nil



On Sun, Apr 23, 2017 at 3:23 PM, 'Nil Geisweiller' via opencog
<opencog@googlegroups.com <mailto:opencog@googlegroups.com>> wrote:

I have barely looked at the tutorials myself, so if I have to guide
you I would tell you to start with


https://github.com/opencog/atomspace/blob/master/examples/pattern-matcher/README.md


<https://github.com/opencog/atomspace/blob/master/examples/pattern-matcher/README.md>


Nil

On 04/23/2017 11:05 AM, Nageen Naeem wrote:

can you guide me in detail?
Thanks

Regards
Nageen

On Sun, Apr 23, 2017 at 12:34 PM, 'Nil Geisweiller' via opencog
<opencog@googlegroups.com <mailto:opencog@googlegroups.com>
<mailto:opencog@googlegroups.com
<mailto:opencog@googlegroups.com>>> wrote:

Hi,

there are tutorials on the wiki

http://wiki.opencog.org/w/Category:Tutorials
<http://wiki.opencog.org/w/Category:Tutorials>
<http://wiki.opencog.org/w/Category:Tutorials
<http://wiki.opencog.org/w/Category:Tutorials>>

I recommend you take a look at examples in the atomspace repo

/examples

first the pattern matcher, then rule-engine, etc.

then the opencog repo

/examples

Nil

On 04/23/2017 10:05 AM, Nageen Naeem wrote:

Hi,

I am Nageen, a computer science student.I am new to this
field
and new
to OpenCog also, I understand the base concept of
OpenCog first
now I am
trying to use it I install it using instruction give
on the
following
page
"http://wiki.opencog.org/w/Installing_OpenCog_for_Noobs
<http://wiki.opencog.org/w/Installing_OpenCog_for_Noobs>
<http://wiki.opencog.org/w/Installing_OpenCog_for_Noobs
<http://wiki.opencog.org/w/Installing_OpenCog_for_Noobs>>"
installation is done.
I would love to know more about the OpenCog can anyone
guide me
how to
go further?
Thanks

Regards
Nageen

--
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 opencog+unsubscr...@googlegroups.com
<mailto:opencog%2bunsubscr...@googlegroups.com>
<mailto:opencog%2bunsubscr...@googlegroups.com
<mailto:opencog%252bunsubscr...@googlegroups.com>>
<mailto:opencog+unsubscr...@googlegroups.com
<mailto:opencog%2bunsubscr...@googlegroups.com>
<mailto:opencog%2bunsubscr...@googlegroups.com
<mailto:opencog%252bunsubscr...@googlegroups.com>>>.
To post to this group, send email to
opencog@googlegroups.com <mailto:opencog@googlegroups.com>
<mailto:opencog@googlegroups.com
<mailto:opencog@googlegroups.com>>
<mailto:opencog@googlegroups.com
<mailto:opencog@googlegroups.com>
<mailto:opencog@googlegroups.com
<mailto:opencog@googlegroups.com>>>.
Visit this group at
https://groups.google.com/group/opencog
<https://groups.google.com/group/opencog>
<https://groups.google.com/group/opencog
<https://groups.google.com/group/opencog>>.
To view this discussion on the web visit


https://groups.google.com/d/msgid/opencog/437cdbc5-74a9-4339-bc79-276e44376ff9%40googlegroups.com


<https://groups.google.com/d/msgid/

Re: [opencog-dev] Re: Calling forward/backward chainer

2017-04-21 Thread 'Nil Geisweiller' via opencog

Hi Vishnu,

that's cause now the rule base comes first, as documented here 
http://wiki.opencog.org/w/URE_Configuration_Format#Usage


you need to enter

(cog-fc base source (List) (SetLink))

I did that change while streamlining the FC and the BC APIs.

So he URE tried to parse your source as if it were a rule-base. It's not 
a bug but ideally the URE should be able to detect that user error and 
return an appropriate message. If you could create an issue for that, 
that would be awesome, otherwise let me know I'll do it.


Nil

On 04/20/2017 10:54 PM, Vishnu Priya wrote:



I  installed the recent version and tried FC. Previously i used to
work with only three arguments. But now as it requires four
parameters, i gave empty ListLink additionally. But it throws Error.


My scm has:

 (load "/opt/opencog/opencog/pln/rules/deduction-rule.scm")

(InheritanceLink (stv 0.9 0.9)
(ConceptNode "tom")
(ConceptNode "human"))


(InheritanceLink (stv 0.9 0.9)
(ConceptNode "human")
(ConceptNode "speak"))


(define source
(InheritanceLink (stv 0.9 0.9)
(ConceptNode "tom")
(ConceptNode "human")))


(define base (ConceptNode "rule-base"))

(InheritanceLink
  (ConceptNode "rule-base")
  (ConceptNode "URE")
)

(ExecutionLink
   (SchemaNode "URE:maximum-iterations")
   (ConceptNode "rule-base")
   (NumberNode 20)
)

(MemberLink (stv 0.9 1)
  deduction-inheritance-rule-name
  (ConceptNode "rule-base")
)

(MemberLink (stv 0.5 1)
  deduction-implication-rule-name
  (ConceptNode "rule-base")
)

(MemberLink (stv 0.5 1)
  deduction-subset-rule-name
  (ConceptNode "rule-base")
)

When i run,
(cog-fc source base (List) (SetLink))

I get the following:

Backtrace:
In ice-9/boot-9.scm:
 157: 10 [catch #t # ...]
In unknown file:
   ?: 9 [apply-smob/1 #]
In ice-9/boot-9.scm:
 157: 8 [catch #t # ...]
In unknown file:
   ?: 7 [apply-smob/1 #]
   ?: 6 [call-with-input-string "(cog-fc source base (List)
(SetLink))\n" ...]
In ice-9/boot-9.scm:
2320: 5 [save-module-excursion #]
In ice-9/eval-string.scm:
  44: 4 [read-and-eval # #:lang ...]
  37: 3 [lp (cog-fc source base (List) (SetLink))]
In unknown file:
   ?: 2 [opencog-extension cog-fc (# # # #)]
In ice-9/boot-9.scm:
 102: 1 [#
C++-EXCEPTION ...]
In unknown file:
   ?: 0 [apply-smob/1 # C++-EXCEPTION ...]

ERROR: In procedure apply-smob/1:
ERROR: In procedure cog-fc: Not a node!
(/home/vishnu/atomspace/opencog/atoms/base/Atom.h:193)
Function args:
((InheritanceLink (stv 0,9 0,9)
   (ConceptNode "tom")
   (ConceptNode "human")
)
 (ConceptNode "rule-base")
 (ListLink
)
 (SetLink
)
)
ABORT: C++-EXCEPTION



--
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 opencog+unsubscr...@googlegroups.com
.
To post to this group, send email to opencog@googlegroups.com
.
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/640355b3-8649-4ee3-a682-85bbeb76811b%40googlegroups.com
.
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/ad227c34-e36b-a68e-dccd-408d64d5c9a2%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: Calling forward/backward chainer

2017-04-21 Thread 'Nil Geisweiller' via opencog
Needless to say if you've got that from a documentation or example file, 
let me know so you or I can update it.


Nil

On 04/20/2017 10:54 PM, Vishnu Priya wrote:



I  installed the recent version and tried FC. Previously i used to
work with only three arguments. But now as it requires four
parameters, i gave empty ListLink additionally. But it throws Error.


My scm has:

 (load "/opt/opencog/opencog/pln/rules/deduction-rule.scm")

(InheritanceLink (stv 0.9 0.9)
(ConceptNode "tom")
(ConceptNode "human"))


(InheritanceLink (stv 0.9 0.9)
(ConceptNode "human")
(ConceptNode "speak"))


(define source
(InheritanceLink (stv 0.9 0.9)
(ConceptNode "tom")
(ConceptNode "human")))


(define base (ConceptNode "rule-base"))

(InheritanceLink
  (ConceptNode "rule-base")
  (ConceptNode "URE")
)

(ExecutionLink
   (SchemaNode "URE:maximum-iterations")
   (ConceptNode "rule-base")
   (NumberNode 20)
)

(MemberLink (stv 0.9 1)
  deduction-inheritance-rule-name
  (ConceptNode "rule-base")
)

(MemberLink (stv 0.5 1)
  deduction-implication-rule-name
  (ConceptNode "rule-base")
)

(MemberLink (stv 0.5 1)
  deduction-subset-rule-name
  (ConceptNode "rule-base")
)

When i run,
(cog-fc source base (List) (SetLink))

I get the following:

Backtrace:
In ice-9/boot-9.scm:
 157: 10 [catch #t # ...]
In unknown file:
   ?: 9 [apply-smob/1 #]
In ice-9/boot-9.scm:
 157: 8 [catch #t # ...]
In unknown file:
   ?: 7 [apply-smob/1 #]
   ?: 6 [call-with-input-string "(cog-fc source base (List)
(SetLink))\n" ...]
In ice-9/boot-9.scm:
2320: 5 [save-module-excursion #]
In ice-9/eval-string.scm:
  44: 4 [read-and-eval # #:lang ...]
  37: 3 [lp (cog-fc source base (List) (SetLink))]
In unknown file:
   ?: 2 [opencog-extension cog-fc (# # # #)]
In ice-9/boot-9.scm:
 102: 1 [#
C++-EXCEPTION ...]
In unknown file:
   ?: 0 [apply-smob/1 # C++-EXCEPTION ...]

ERROR: In procedure apply-smob/1:
ERROR: In procedure cog-fc: Not a node!
(/home/vishnu/atomspace/opencog/atoms/base/Atom.h:193)
Function args:
((InheritanceLink (stv 0,9 0,9)
   (ConceptNode "tom")
   (ConceptNode "human")
)
 (ConceptNode "rule-base")
 (ListLink
)
 (SetLink
)
)
ABORT: C++-EXCEPTION



--
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 opencog+unsubscr...@googlegroups.com
.
To post to this group, send email to opencog@googlegroups.com
.
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/640355b3-8649-4ee3-a682-85bbeb76811b%40googlegroups.com
.
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/5647bdd1-781c-18b9-5519-7a145b8247bf%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: Calling forward/backward chainer

2017-04-23 Thread 'Nil Geisweiller' via opencog

Hi Vishnu,

there are actually examples (besides the unit tests) under

/examples/rule-engine

including the animal (called frog).

There are also examples of PLN under

/examples/pln

not all of these examples are complete though.

Adding more examples is welcome good, feel free to create PRs for that 
if you want to.


Thanks,
Nil

On 04/22/2017 06:53 PM, Vishnu Priya wrote:



Hi Nil,


Currently, as there are no working example files for FC/BC, i thought i
could come up with some examples and contribute.

So far, i have tested simple rule like Deduction and got that working.
But now i wanted to try some other different rule.

So, as per
https://github.com/opencog/atomspace/blob/master/tests/rule-engine/BackwardChainerUTest.cxxtest#L510,
  where on "criminal.scm",  few rules
 (conditional-instantiation-meta-rule.scm,
fuzzy-conjunction-introduction-rule.scm, deduction rule) have been
applied for testing. I have also tried the same rules on same input but
i does not get any inference. I got only empty SetLink.

I have attached the input file for your reference.

i also tested the same rules on animals.scm example but got no output. :-(

I don't know what is missing here. It would be very helpful if i get
some help.

Thanks in advance,
Vishnu

--
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 opencog+unsubscr...@googlegroups.com
.
To post to this group, send email to opencog@googlegroups.com
.
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/2ef709b3-8166-4707-bd9a-486c30c9323d%40googlegroups.com
.
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/6ede55c9-4784-bb5c-8a1b-016f680c2b71%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Learner

2017-04-23 Thread 'Nil Geisweiller' via opencog

Hi,

there are tutorials on the wiki

http://wiki.opencog.org/w/Category:Tutorials

I recommend you take a look at examples in the atomspace repo

/examples

first the pattern matcher, then rule-engine, etc.

then the opencog repo

/examples

Nil

On 04/23/2017 10:05 AM, Nageen Naeem wrote:

Hi,

I am Nageen, a computer science student.I am new to this field and new
to OpenCog also, I understand the base concept of OpenCog first now I am
trying to use it I install it using instruction give on the following
page "http://wiki.opencog.org/w/Installing_OpenCog_for_Noobs;
installation is done.
I would love to know more about the OpenCog can anyone guide me  how to
go further?
Thanks

Regards
Nageen

--
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 opencog+unsubscr...@googlegroups.com
.
To post to this group, send email to opencog@googlegroups.com
.
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/437cdbc5-74a9-4339-bc79-276e44376ff9%40googlegroups.com
.
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/fc2bada4-9daf-cad3-e1cf-1f7296bc5edd%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: Calling forward/backward chainer

2017-04-21 Thread 'Nil Geisweiller' via opencog
Cool. Thanks. It's not high priority, though still important, to have a 
user error check so it might take a while before I add it. Of course if 
you or anyone wants to give it a stab it's always welcome.


Nil

On 04/22/2017 12:09 AM, Vishnu Priya wrote:



Thanks Nil. Yeah. That was the problem. I have mistakenly entered
the parameters. I did not get from any example file. Now it works as
expected.

I have also created a GitHub Issue for not returning appropriate err
message.


Cheers,
Vishnu








--
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 opencog+unsubscr...@googlegroups.com
.
To post to this group, send email to opencog@googlegroups.com
.
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/0bb6bf13-5ea0-46ec-948b-86c5b03ae9e5%40googlegroups.com
.
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/4740908b-7ff3-5fb2-5dd0-104b7ca01c2b%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: How to handle input data that has an ID?

2017-03-03 Thread 'Nil Geisweiller' via opencog



On 03/03/2017 11:28 AM, Vishnu Priya wrote:



  Yeah. True!! Inheritance Link takes only two arguments.
My inputs belongs to certain ID. So somehow i want to associate my input
with ID.  It seems that, i could use AssociativeLink as Roman said. Then
probably i could do PLN reasoning. But Are there PLN rules that work for
such input?


PLN doesn't have any rule to reason about AssociativeLinks. To have some 
we'd need to define its semantics.


Maybe what you want is http://wiki.opencog.org/w/DefineLink

I haven't experimented much with these, but they are apparently well 
supported by the pattern matcher, and since the rule engine is built on 
top of the pattern matcher I assume it should work well with it.


Nil




Thanks
Vishnu


--
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 opencog+unsubscr...@googlegroups.com
.
To post to this group, send email to opencog@googlegroups.com
.
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/dcf69018-27e7-4022-80bf-103fb0866a9f%40googlegroups.com
.
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/e85e7c0d-3f52-5d5d-de4e-fffb672f227c%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: How to handle input data that has an ID?

2017-03-02 Thread 'Nil Geisweiller' via opencog



On 02/28/2017 10:18 PM, Vishnu Priya wrote:

(define source
(InheritanceLink
(ConceptNode "Einstein")
(ConceptNode "man")
(NumberNode "8787")
)
)


This inheritance link is ill-formed, it should only take 2 arguments. We 
plane to automatically type check that sort of thing, for now you can 
refer to http://wiki.opencog.org/w/Category:Atom_Types


Or maybe you meant HebbianLink. There are no PLN rule to reason on 
hebbian links yet. This would help OpenCog to reason about attention 
allocation, possibly reasoning itself, but I suppose that is not what 
you had in mind.


Nil




Where is it wrong in including ID?


Thanks,
Vishnu



n Monday, 27 February 2017 16:29:45 UTC+1, Vishnu Priya wrote:


Thanks for the reply, Roman.

So, should it be like this

(EvaluationLink
HebbianLink
   (PredicateNode "sweet@3fe00455-333f-4cd8-a488-1d23f81c4546")
   (ListLink
  (ConceptNode "oranges@33c76dd3-d3c1-4e38-b2ba-b77abfbebadb")
  (NumberNode  7878
   )

In general, i parse and get r2l output of the sentence. Then i can
apply a custom code to get the HebbianLink and the NumberNode ?



--
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 opencog+unsubscr...@googlegroups.com
.
To post to this group, send email to opencog@googlegroups.com
.
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/4ac85586-afcf-409a-9e35-4769e7313531%40googlegroups.com
.
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/ee675a53-28ee-c14c-63e7-20636c3eac37%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Calling forward/backward chainer

2017-04-02 Thread 'Nil Geisweiller' via opencog

There were some errors in the readme, now corrected.

Nil

On 04/02/2017 11:22 PM, Alex wrote:

I am also trying to run
this 
https://github.com/opencog/atomspace/tree/master/examples/rule-engine/chaining
example and I enter SCM commands one by one and I am also stopped at
lines DefineLink

(define rule1-name (Node "rule1")
*(DefineLink rule1-name rule1)*

DefineLinke requires as the first argument not the BindLink/rule node
and it requires Defined(Schema/Predicate/Type) Node. So - at present I
don't understant how to proceed. As far as I understandt then these two
lines prepare the BindLink for the addition to the rule base, but why
should we use DefineLink? I guess these are some idiomatic lines with no
clear prupose but Rule Engine requires them...

--
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 opencog+unsubscr...@googlegroups.com
.
To post to this group, send email to opencog@googlegroups.com
.
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/604300d3-214b-4948-b2b7-c86b2cdbdc1f%40googlegroups.com
.
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/d9f40526-3a6d-5c65-f3f2-2b705a129df2%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] PartitionLink, biological pathways, human bodies, etc.

2017-08-04 Thread 'Nil Geisweiller' via opencog

On 08/03/2017 10:06 AM, Linas Vepstas wrote:
There's also a problem of editing: what if, half-way through, you want 
to change the partition? Can you? should you? should users instead be 
told that a partition, once-created, is immutable, so you can only 
create and destroy them?


But isn't the same true for almost any link?

(Equivalence (stv 1 1) A (Or B C))
(And (stv 0 1) B C)

is immutable too, and could be equivalent to

(Partition (stv 1 1) A (Set B C))

saying that A is partitioned into block B and C.



Do you truly need a partition link? I mean -  I invent new link types 
all the time, since that's usually pretty cheap. But I also do not 
expect my new link types to work with PLN. In this case, don't you want 
pln interop?


I agree about not creating new links up the wazzoo, it must be carefully 
thought. However, you don't necessarily need to upgrade PLN to reason on 
new links, if you can express the semantics of a new link as a 
combination of old links, all you need is to write a higher order fact 
such as


EquivalenceScope (stv 1 1)
  $A $B $C
  Partition $A (Set $B $C)
  And
Equivalence $A (Or $B $C)
And $B $C

to enable PLN to reason about it.

Nil



An alternate way of thinking about partitions is as "coloring". Pick a 
set, pick N colors, and then insist that every member of the set must be 
colored with one of the N colors.  Then coloring is a lot like 
partitioning. e.g.


ColorLink
   ColorNode "Red"
   SomeAtom

or maybe

EvaluationLink
  ColorNode "red"
  SomeAtom


Color names could, of course, be anything: e.g. the names of the 
partitions.


In one sense, colorings are identical to partitions; on the other hand, 
they can feel "more general" because you can insist or demand that 
certain properties of colorings hold, e.g. ramsey theory and reverse 
mathematics.


You could *force* aka gaurantee uniqueness of color assignment by using 
a StateLink:


StateLink
  Some Atom
  ColorNode "red"

The atomspace automatically gaurantees that one and only one color can 
be assigned. (although it can be changed)  The UniqueLink allows only 
one assignment, and it cannot be changed.  These are nice, because they 
help avoid programmer error. by offering automatic guarantees.


You don't have to use atoms for this, either. You could use values.   
Recall, values are almost just like atoms, except that you can't put 
them into the atomspace, and you cannot pattern-match or patttern-mine 
them.   But you can store color or partition data in values, if you 
wanted to.  Note that values *can* hold atoms!  There is a LinkValue 
that is like a link, but it can hold atoms or values or a mixture of both.


--linas



This
semantics is implicit in PartitionNode, whereas if you just use
MemberLink you'd need to spell out this "partition" semantics using a
bunch of AndLinks each time...

As a world-class advocate of the partition function I think you may
like PartitionNode after you reflect on it infinitesimally more...

-- ben

On Tue, Aug 1, 2017 at 5:54 AM, Linas Vepstas
> wrote:
 > Hi Ben, Mike,
 >
 > On Fri, Jul 21, 2017 at 9:41 PM, Ben Goertzel > wrote:
 >>
 >> Some interesting representational issues have come up in the context
 >> of Atomspace representation of pathways, which appear to have more
 >> general implications…
 >>
 >> It seems the semantics we want for a biological pathway is sort of
 >> like “the pathway P is a set of relationships R1, R2, …, R20” in
kinda
 >> the same sense that “the human body is a set of organs: brain,
heart,
 >> lungs, legs, etc.”
 >>
 >> First of all it seems what we have here is a part of
relationship… maybe
 >> we want
 >>
 >> PartLink
 >> ConceptNode “heart”
 >> ConceptNode “human-body”
 >>
 >> and
 >>
 >> PartLink
 >> >relationship<
 >> >pathway<
 >>
 >> PartLink and PartOfLink have come and gone in
 >> OpenCog/Novamente/Webmind history...
 >>
 >> An argument that PartLink should have fundamental status and a
 >> well-defined fuzzy truth value is given in this paper:
 >>
 >> https://www.academia.edu/1016959/Fuzzy_mereology

 >>
 >> However what we need for biological pathways and human bodies seems
 >> like a bit more.   We want to say that a human body consists of a
 >> certain set of parts... not just that each of them is a part... 
We're

 >> doing a decomposition.
 >>
 >> One way to do this would be
 >>
 >> PartitionLink
 >>ConceptNode “human-body”
 >>ListLink
 >>   ConceptNode “legs”
 >>   ConceptNode “arms”
 >>   ConceptNode “brain”
 >>   etc.
 >>
 >> Relatedly, we could 

Re: [opencog-dev] Re: Problems with opencog build - very low priority beginner question

2017-07-11 Thread 'Nil Geisweiller' via opencog



On 07/11/2017 06:12 PM, Joseph Horner wrote:

Actually I failed to mention I did receive a few errors during the
"Cloning and building Atomspace" and "Cloning and building OpenCog" --
looks like some unit tests
 were failing which also showed as errors when I restarted my machine
this morning.   Not sure how detrimental this is but wanted to share for
completeness.

echo
*
echo **  "Cloning and building Atomspace..."
***
echo
*

The following tests FAILED:
 98 - BackwardChainerUTest (Failed)
Errors while running CTest


Works on my system (antiX/Debian Jessie). What is your system (OS and gcc)?

Nil


CMakeFiles/test.dir/build.make:57: recipe for target 'CMakeFiles/test'
failed
make[3]: *** [CMakeFiles/test] Error 8
CMakeFiles/Makefile2:99: recipe for target 'CMakeFiles/test.dir/all' failed
make[2]: *** [CMakeFiles/test.dir/all] Error 2
CMakeFiles/Makefile2:106: recipe for target 'CMakeFiles/test.dir/rule'
failed
make[1]: *** [CMakeFiles/test.dir/rule] Error 2
Makefile:197: recipe for target 'test' failed
make: *** [test] Error 2


echo
**
echo *  "Cloning and building OpenCog..."
*
echo
**


Total Test time (real) =  26.03 sec

The following tests FAILED:
  2 - AtomSpacePublisherModuleUTest (OTHER_FAULT)
  4 - ShellUTest (Failed)
  6 - AnaphoraTest (Failed)
  7 - SuRealUTest (Failed)
  8 - MicroplanningUTest (Failed)
  9 - ChatlangUTest (Failed)
 10 - MOSESPLNSynergyUTest (Failed)
 11 - PLNRulesUTest (Failed)
 22 - PatternMinerUTest (SEGFAULT)
Errors while running CTest
CMakeFiles/test.dir/build.make:57: recipe for target 'CMakeFiles/test'
failed
make[3]: *** [CMakeFiles/test] Error 8
CMakeFiles/Makefile2:99: recipe for target 'CMakeFiles/test.dir/all' failed
make[2]: *** [CMakeFiles/test.dir/all] Error 2
CMakeFiles/Makefile2:106: recipe for target 'CMakeFiles/test.dir/rule'
failed
make[1]: *** [CMakeFiles/test.dir/rule] Error 2
Makefile:197: recipe for target 'test' failed
make: *** [test] Error 2

On Sunday, July 9, 2017 at 10:10:39 AM UTC-4, Joseph Horner wrote:

This worked great for me.  I got everything built and was able to
start the cogserver .. thank you

--
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 opencog+unsubscr...@googlegroups.com
.
To post to this group, send email to opencog@googlegroups.com
.
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/5c74a74a-8b86-43df-a657-c77f85e29153%40googlegroups.com
.
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/a197c6ad-e8ba-786f-cbf5-3fcdb0ac20cc%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: Pattern mining from PLN inference histories

2017-07-09 Thread 'Nil Geisweiller' via opencog

Hi Shujing,

On 07/09/2017 11:34 PM, Shujing Ke wrote:

Hi, thanks,

I just implemented quoting the output patterns and the return AtomSpace:

 1. There is a "if_quote_output_pattern" in config file, if it is set to
true, the patterns will be quoted.
 2. The quote link type can be define with
"output_pattern_quoted_linktype" in the config file, the default is
MinedPatternLink.
 3. The Frequency, InteractionInformation, Surpringness I and II value
are stored in the keyvalue pair of "PatternValues" of the
MinedPatternLink. Can be query by:
MinedPatternLink->getValue(PatternValuesHandle).
 4. Also after mining is finished, the AtomSpace contains all the
patterns can be get by the interface: getResultAtomSpace(). By
AtomSpace interface: get_handles_by_type (MINED_PATTERN_LINK ).


That looks good, I think we can stick with this API for the time being.



For example:
(MinedPatternLink
 (EvaluationLink
 (PredicateNode "background")
 (ListLink
 (VariableNode "$var_1")
 (ConceptNode "solo_singer")
  )
 )
(EvaluationLink
(PredicateNode "occupation")
(ListLink
(VariableNode "$var_1")
(ConceptNode "Singer-songwriter")
)
 )
)


I had a quick look at the Pattern Miner clean up issue. I will try to
fix some of them by the way when I modify the related content. Of course
you are very welcome to fix things you think should be fixed. Just it
would be nice if you can notify me before you start to fix them. Because
I am still making a lot of changes, which always have a lot of conflicts
with some small changes you and Linas fixed, and because they usually
occurred on a lot of codes I had modified or just deleted, so I always
cannot merge them... Recently I just spent hours to fix all the
conflicts. If they are not very very important / core or emergent, maybe
we can postpone all the cleanups until I finish the current pattern
mining work stage?


Sure no problem, just notify me when you are done with work on the 
pattern miner.




I picked some instances from the corpus you gave me early to experiment
with the new interestingness evaluation for them.


More will come soon (end of this week I think).

Thanks,
Nil



Thanks,
Shujing





On Mon, Jun 26, 2017 at 7:43 AM, Nil Geisweiller
> wrote:

Shujing,

On 06/25/2017 05:06 PM, Shujing Ke wrote:

My son seems better today, starts to be playful again and more
willing
to eat and drink. But still have diarrhea.


Great!


I will implement exporting patterns first. And then the
interestingness
evaluation inside 1-gram pattern when Nil gives the small test
corpus.


BTW, there's gonna be a bit of time before I can hand you the corpus
as I'm attempting to generate it from an actual inference control
learning experiment, I'd say in a week or so.

Meanwhile if you could take a look at

https://github.com/opencog/opencog/issues/2787


specifically the first item which is a question to you. Also, having
the pattern miner unit test pass would be great. As I explain at the
end of the issue, I may prefer to do these changes myself as they
will help me to get familiar with the pattern miner code. Of course
if you'd rather take care of them, for educational purpose or
whatnot, you are free to do so as well.

Nil


Thanks,
Shujing

On Sun, Jun 25, 2017 at 9:33 AM, Ben Goertzel 
>> wrote:

Hi Shujing,

> 4. About the interestingness evalution
>
> I didn't quite get the meaning of the rich(x) and z(y) and
married(x,y)
> example.
> I think it is also related to the pattern gram. For below 2
patterns: x,y,z
> are variables
> pattern A:  rich(x) and z(y) and married(x,y)
> pattern B:  rich(x) and cute(y) and married(x,y)
>
> If they are represented as 3 gram patterns, then it may be
able to
just
> evaluate their interesingness by surpringness
> pattern A:
> InheritanceLink  x  rich
> InheritanceLink  y  z
> EvaluationLink married x y
>
> pattern B:
> InheritanceLink  x  rich
> InheritanceLink  y  cute
> EvaluationLink married x y
>
> If they are represented as 1 gram patterns, then I can
implement an
> interestingness evalution based on the variables inside
one root link.
> pattern A:
> ImplicationLink
> 

Re: [opencog-dev] Opencog noobie questions

2017-07-21 Thread 'Nil Geisweiller' via opencog

On 07/21/2017 04:58 PM, neuropress...@gmail.com wrote:

Ah thanks for letting me know about those rules, one more thing about
this tho. Is there already a rule which let's opencog(chatbot) know that
any statement made by a person or other information source it is talking
to is what they think instead of basically storing it in the atomspace
without the source (You hopefully get what I mean) Sorry if I am bad at
describing what I mean


I don't know the specifics of that but I assume that it stores it as 
someone's belief rather than its own. Then PLN can in principle modifies 
the system's belief, assuming for instance that the person holding the 
believe is known to be trusted. I don't think it's been tried though.


Nil




Yeah, I've seen that diagram :) I posted one about how I am planning to
implement this chatbot however it didn't post correctly, here it is
(Hopefully it works this time)


Thanks




Three short comments:

1) PLN is a set of rules that run on top of the rule engine. Those
rules, when triggered, alter the "truth values" on atoms in certain
ways. You (or someone) should be able to create a different set of
formulas for truth values, that emulate the NARS formulas. You could
then run PLN deductions side by side with NARS deductions, and see
which you like better (or even create yet other kinds of formulas)

2) we have "relex2logic" rules, which convert natural language to
logic expressions. These are ... time-consuming to write, and by
nature are incomplete and buggy -- because natural language is a
fluid, changing thing. Hand-writing rules is a good exercise, but
madness lies in that direction.

3) the current diagram of how things connect is kind-of-ish reviewed
here:

https://github.com/opencog/opencog/blob/master/opencog/eva/architecture/embodiment.pdf



--linas

On Thu, Jul 20, 2017 at 6:14 AM, 
wrote:

Hi, I am new to Opencog and hopefully building a chatbot with it
soon, I was going to use OpenNARS but after some reading I am
convinced that PLN > NARS

So here are my questions:

1 I am thinking of writing rules that convert input text to a
understandable format for Opencog, I am aware that this has
already been done with the NLP pipeline
However from what I've been told rules that for example convert
"that" into what is meant with "that" aren't implemented yet.

Example: Tim: My computer keeps crashing
Tim: I hate that
This rule would turn this into : Tim said that Tim hates that
his computer keeps crashing (In atomese)

This is just one example of such a rule.

2 I should've asked this before but are such rules even helpful?
And is atomese even the language in which such things would be
inputted to the system?
I am extrapolating from OpenNARS in which input like this is
done in Narsese but I am not sure how that works in Opencog yet...

3 What does MOSES do exactly? And is it needed for a chabot? (I
know what MOSES does with the evolution of mini programs, I am
just not quite sure on what those mini programs do..)

That's all of the questions I could think of right now, not sure
if I missed one (hopefully not)

The chatbot I am building will use an up board which will run
Opencog, that should be okay right?
http://up-shop.org/up-boards/62-up-board-4b-32-gb-emmc-memory.html



Thanks!

--
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 opencog+u...@googlegroups.com .
To post to this group, send email to ope...@googlegroups.com
.
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/d4fa76b4-80d2-4ea6-96af-e072237b03fd%40googlegroups.com

.
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 opencog+unsubscr...@googlegroups.com

Re: [opencog-dev] OpenCog and Research Interest ---

2017-07-06 Thread 'Nil Geisweiller' via opencog

Hi Joseph,

I suppose you should build opencog first

http://wiki.opencog.org/w/Building_OpenCog

(Ubuntu 14.04 is mentioned but I'm sure it works with more recent 
versions of Ubuntu, or other distros, I'm running Debian for instance).


then run the examples under the atomspace and opencog repo

https://github.com/opencog/atomspace/tree/master/examples

(start by the pattern matcher, then the rule-engine, then what you want)

https://github.com/opencog/opencog/tree/master/examples

(any one you)

You may also want to go through the tutorial on the wiki

http://wiki.opencog.org/w/Hands_On_With_OpenCog

From there pick up the part you like the most and start studying, look 
if there aren't some issues you'd like fix


https://github.com/opencog/atomspace/issues
https://github.com/opencog/opencog/issues

or ask the persons working on it to guide you for helping.

Note that there are other projects besides atomspace and opencog, like 
moses, a program learner, see


https://github.com/opencog

for a complete list.

Enjoy.

Nil

On 07/06/2017 05:49 PM, Joseph Horner wrote:

I am a professional Software Engineering, but also a part time PhD
Student in Computer Science.  I have been studying Evolutionary
Computation and Genetic Algorithms for years in undergrad  and in my
master Program.  I found the OpenCog users group a while back but have
not really had the time to dive in and contribute.   I'm at a point
where I'd like to contribute and have the time to do so.  After reading
Ben's books on Engineering General Intelligence I feel this is a solid
approach to achieving AGI as well and I'd like to help in any way that
is needed. What are some of the best approaches to understanding the
OpenCog software platform?  Looking forward to learning more about
OpenCog and maybe help mature the technology to achieve true AGI.

--
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 opencog+unsubscr...@googlegroups.com
.
To post to this group, send email to opencog@googlegroups.com
.
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/de582d33-4f81-43c8-b528-337f8ffeb3b7%40googlegroups.com
.
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/52b4a1a1-df20-0bda-933e-1a67e591948e%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Opencog noobie questions

2017-07-30 Thread 'Nil Geisweiller' via opencog

On 07/31/2017 03:51 AM, Ed Pell wrote:

Is there an example of text input and rule output from the relex2logic ?
Thanks.


This half-complete example has some

https://github.com/opencog/opencog/blob/master/examples/pln/chicken-feet-or-pizza/chicken-feet-or-pizza.scm

Nil



On Sunday, July 30, 2017 at 8:37:37 PM UTC-4, Ed Pell wrote:

opencog/src/opencog/nlp/relex2logic

ah I have it

On Sunday, July 30, 2017 at 8:32:56 PM UTC-4, Ed Pell wrote:


Linas, sorry for the stumbling about question, where can I find
the ""relex2logic" rules, which convert natural language to
logic expressions"? Thanks.

--
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 opencog+unsubscr...@googlegroups.com
.
To post to this group, send email to opencog@googlegroups.com
.
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/cc764cc1-c3cf-4c86-a6c3-f0a347ab7911%40googlegroups.com
.
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/dc301c72-683e-6e76-bcf7-356df4a8974d%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] PartitionLink, biological pathways, human bodies, etc.

2017-08-08 Thread 'Nil Geisweiller' via opencog

On 08/06/2017 11:41 PM, Linas Vepstas wrote:
Search becomes a problem. Say I want to find (using the pattern matcher) 
all sets that contain, as members, A B C. With set notation, I have to 
search for (Set X A B C) where X==(VariableNode "X") for 4-elelemnt 
sets, and then (Set X Y A B C) for 5-element sets, and so on.  To search 
all N-element sets, I can use the GlobeNode G and search for (Set G A B 
C) ... and I believe this works correctly today.  However...


However, there's a problem. Sets are UnorderedLinks, and so performing 
the search for all six-element sets (Set X Y Z A B C) requires searching 
6!=120 permutations. Well, since A B C are fixed, only 6!/3!= 20 
permutations have to be searched. Of the 20, many are duplicates, since 
(Set X Y Z A B C) == (Set Y C X B Z  A)  and so on. The returned results 
will include all possible matchups of X Y Z to the other three members 
-- 3! in all -- so of the 20 permutations, only 3!=6 are actually different.


For the GlobNode, it would be similar, Now consider a set with 20 
elements -- this requires 20! permutations and 20!=2.4e18 which would be 
months or years of CPU time.  Which is absurd.. well, we could stop 
after finding exactly one permutation, because that is all we really 
want... (not sure if the current glob code does this -- probably not. 
Man Hin is reworking the glob code now.).


This is in contrast to the much easier problem of finding all values of 
X for which (Member A X) AND (Member B X) AND (Member C X) which can be 
done easily and quickly, without requiring permutation exploration.


I understand. In the first case, you ask to produce all assignments to 
complete the set(s), which grows exponentially. While in the second case 
you only asks sets containing A, B and C.


But these are 2 different queries.

Anyway, I see your point, I suppose we want to have both representations

Set  A B C

and

Member
  A
  ...
Member
  B
  ...
...

and use which ever one fits best. Converting from one to another should 
be easy using PLN.


Regarding other set-like operators, And, Or, etc, I think I agree with 
your proposal to be able to break them up. So for instance we may turn


And A B C

into

AndMember
  A
  And A B C
AndMember
  B
  And A B C
...

However I don't think the more "atomic" representation should replace 
the more "holistic" one, both should be allowed in parallel, right? 
Would that be for backward compatibility at least. Then if it becomes 
obvious that the atomic form is superior we can deprecate the holistic form.



EquivalenceScope (stv 1 1)
   
   P
   Q

is merely sugar syntax for

Equivalence (stv 1 1)
   Lambda  P
   Lambda  Q

This sugar syntax is mostly useful for humans, because  is
not duplicated in the AtomSpace anyway.


Well, but that's not true!  (Scope X   P(X)==Q(X)) is not the same as 
(Scope X  P(X)) == (Scope X  Q(X)) because the latter can be 
alpha-rewritten as (Scope X  P(X)) == (Scope Y  Q(Y)) which is something 
completely different!


Agreed, they're not the same in the logic that you describe, but in PLN 
they are, because the former


(Scope X   P(X)==Q(X))

is just *syntactic sugar* for the latter,

(Scope X  P(X)) == (Scope X  Q(X))

which is what really matters in a probabilistic interpretation.

I recall that the probabilistic interpretation of

Equivalence (stv 1 1) A B

is

P(A inter B|A union B)

It is explained here but unfortunately the wiki can't render it

http://wiki.opencog.org/w/ExtensionalSimilarityLink

Nil


---
But whatever. All I am saying is that we should allow the following form:

EquivalenceScope (stv 1 1)
   
   P
   Q

  That's all, nothing more.

--linas


Nil


--linas


 Nil


 An alternate way of thinking about partitions is as
"coloring".
 Pick a set, pick N colors, and then insist that every
member of
 the set must be colored with one of the N colors.  Then
coloring
 is a lot like partitioning. e.g.

 ColorLink
 ColorNode "Red"
 SomeAtom

 or maybe

 EvaluationLink
ColorNode "red"
SomeAtom


 Color names could, of course, be anything: e.g. the
names of the
 partitions.

 In one sense, colorings are identical to partitions; on the
 other hand, they can feel "more general" because you
can insist
 or demand that certain properties of colorings hold,
e.g. ramsey
 theory and reverse mathematics.

 You could *force* aka gaurantee uniqueness of color
assignment
 by using a StateLink:

 StateLink
Some Atom
ColorNode "red"

 The 

Re: [opencog-dev] Re: Pattern mining from PLN inference histories

2017-06-20 Thread 'Nil Geisweiller' via opencog

Hi,

On 06/21/2017 03:29 AM, Shujing Ke wrote:

Hi, Ben and Nil,

Thanks for all your responses. I may be a bit slow this week - it is too 
warm here and my baby is sick, he barely eat and drink anything since 
yesterday morning.


*1. About the output format and TV of patterns*
The pattern miner will output the raw patterns found from the input data 
(without more process). Because different modules in Opencog and 
applications may require different output formats. It shouldn't be only 
one output format. Currently we can put our discussion based on raw 
pattern format. After we make sure the concents of patterns are right, 
we can discuss about the output formats for differnt modules. If I have 
time then, I can implement it, if I don't then I think each module's 
developer should also be easy to turn the raw patterns into the format 
they want. It is better to be on another layer out of the pattern miner, 
which is more convient for each module to modify the pattern format they 
need in future. Otherewise, any module wants to change some format, they 
have to modify the pattern miner core.


OK. Although I think we still need to come up soon with a way to pass 
the results, including frequencies, interestingness, etc, as atoms in 
the atomspace, as opposed to writing the results in a file.

*5. A suggestion to make up a very simple tiny test data file *
I suggest Nil to make up a simple test data file just to test if the 
output patterns are what you want and if the frequency count is correct. 
For example, I made up a simple data before - the ugly-man-drink-soda 
file, which contains 10 men, 10 women, among then 5 women and 5 men are 
ugly, and also 5 women and 5 men drink soda - it is expected to find the 
pattern that "ugly man drink soda". Because for such a tiny file, we can 
actually check every output pattern and its count to see if there is any 
bug. If it pass, then we can apply it on a big corpus. Otherwise, there 
are too many outputs for a big corpus, it is hard to examine the result.


Agreed. That'll make a good second unit test.

Nil



Thanks,
Shujing

On Tue, Jun 20, 2017 at 4:48 AM, Ben Goertzel > wrote:


On Tue, Jun 20, 2017 at 2:29 AM, Nil Geisweiller
> wrote:
> What do you mean exactly by "useful(A==>D)"?


What I was thinking was:  If the implication [666], e.g.

ImplicationLink [handle=666]
  EvaluationLink
  PredicateNode "eat"
  ListLink
ConceptNode "Ben"
ConceptNode "cockroach"

  InheritanceLink
   ConceptNode "Ben"
   ConceptNode "weird"


was used or created by the BC, and was found to be useful for whatever
inference the BC was doing when it used or created [666], then the
utility of this link should be annotated via

EvaluationLink
  PredicateNode "useful"
  ListLink
  [666]
  [111]


where [111] is the handle of the target of the BC inference the BC was
doing when it created [666].

So maybe my example should look more like

A ==> B, B==>C  |- A==>C
A==>C, C ==> D |- A ==>D
HebbianLink (D,B)
useful(A==>D, T)


where T is a variable that matches the target of prior BC inferences...

ben

--
Ben Goertzel, PhD
http://goertzel.org

"I am God! I am nothing, I'm play, I am freedom, I am life. I am the
boundary, I am the peak." -- Alexander Scriabin




--
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/aa39cf17-9e1b-994a-74ee-b106ae885d29%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: Pattern mining from PLN inference histories

2017-06-25 Thread 'Nil Geisweiller' via opencog



On 06/24/2017 11:23 PM, Shujing Ke wrote:

Yes, to output the pattern. There are two ways:
1. return the atomspace that store the patterns.
2. return a HandleSeq of patterns.


As far as the C++ API is concerned a HandleSeq, or an 
OrderedHandleSet/UnorderedHandleSet depending on whether we want to 
retain the order or not. Likewise for the scheme interface, a ListLink 
or SetLink.




Each raw pattern will be quoted within a PatternLink.


Oh you mean

PatternLink
  QuoteLink


?

Why not. That means that the postprocessing to turn patterns into useful 
atoms would occur outside of the pattern miner. Maybe we should do that 
for now, then once the post-processing is well understood it can be 
moved inside to the pattern miner.


Then we still need to represent the pattern scores, I've never 
experimented with proto-atoms but I think that would be the way to go, 
either that or using Evaluation or Execution, such as


Execution <1 1>
  GroundedSchema "pattern-count"
  List
PatternLink
  ...
Number "42"

telling there are 42 instances of that pattern. I suppose it is called 
frequency in the context of the pattern miner (don't understand why it, 
BTW).




Because the numbers of patterns are huge, I think it make sense to give
an input parameter to specify the top percentage of patterns to be
output. e.g.: only output top 10% frequent patterns; output top 7%
frequent  and 20% interesting patterns. Or directly specify the number
of frequency : like frequency > 15


I suppose for now the frequency (what I remember is called the support, 
right?) would be enough. As it would control computational effort as well.




My baby is still sick, having serious diarrhea, does not want to have
much food, need to go to hospital from time to time. So I probably won't
get much work done this week. Hope he will be better next week.


Sorry to hear to about that, I know this can be very distressful.

Nil



Shujing

On Wed, Jun 21, 2017 at 12:45 PM, Ben Goertzel > wrote:

On Wed, Jun 21, 2017 at 1:50 PM, Nil Geisweiller
> wrote:
> OK. Although I think we still need to come up soon with a way to pass the
> results, including frequencies, interestingness, etc, as atoms in the
> atomspace, as opposed to writing the results in a file.


Agreed...


--
Ben Goertzel, PhD
http://goertzel.org

"I am God! I am nothing, I'm play, I am freedom, I am life. I am the
boundary, I am the peak." -- Alexander Scriabin




--
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/c81475c0-9aa1-b673-6409-9ab3ae306710%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: Pattern mining from PLN inference histories

2017-06-19 Thread 'Nil Geisweiller' via opencog

Ben,

On 06/19/2017 07:49 PM, Ben Goertzel wrote:

In the PLN case, if we take an example possible pattern like "two
deductions in a row, involving associated entities, are often useful"
that would look like

A ==> B, B==>C  |- A==>C
A==>C, C ==> D |- A ==>D
HebbianLink (D,B)
useful(A==>D)

So the first two of these 4 lines are going to be embedded in a single
ExecutionOutputLink, I guess  Then the other two will be their own
separate links in the Atomspace...


Indeed, so it would be a 4-gram pattern (if I understand correctly).



Suppose this pattern occurs 10 times in the Atomspace.   Each of these
times, we will have different Atoms in the slots for A, B, C, D.  Some
of these may be complex, e.g. we might have in one case

A  equals

MemberLink
 VariableNode $X
  SatisfyingSet
EvaluationLink
 PredicateNode "piece of poop"
 ListLink
$X
 ConceptNode "cheese doodle"


or whatever...  In this case the fact that there's a VariableNode $X
in the interior of A doesn't matter.


Indeed. If the implication A==>B is an ImplicationScopeLink, the pattern 
miner should abstract that into


QuoteLink
  ImplicationScopeLink
UnquoteLink
  VariableNode "$variable-declaration"
UnquoteLink
  VariableNode "$A"
UnquoteLink
  VariableNode "$B"

and it doesn't matter what variables appear inside A.



Nil, it will take some work, but  maybe it's worthwhile for you to
create a test Atomspace in which my above example pattern

A ==> B, B==>C  |- A==>C
A==>C, C ==> D |- A ==>D
HebbianLink (D,B)
useful(A==>D)


What do you mean exactly by "useful(A==>D)"?

If you mean that A==>D is a pattern abstracting previously successful 
proved backward chainer targets, then maybe we want the pattern miner to 
output conditional patterns, so that the resulting pattern wouldn't be a 
SatisfyingSetScopeLink but rather say an ImplicationScopeLink


So that we'd ask the following patter miner query

ImplicationScopeLink
  V
  Y
  useful(X)

where V, X and Y are meta-pattern-matcher variables as they represent 
patterns that the pattern miner should come up with (of course all this 
should be properly quoted), which looks very much like a Cognitive 
Schematic. So in fact inference control would turn a bit into a 
specialized OpenPsi process, but perhaps I digress...




is a surprising pattern, and in which some of the examples of A, B, C
or D have some complexity to them (some internal quantified
variables).

Having a more "real" example like this might help avoid any confusion
and aid Shujing in getting the pattern  miner to work on PLN inference
histories in a useful way


Sure, I'll see what I can come up with. I'm also gonna keep studying the 
pattern miner because some stuff are still a bit abstract to me.


Nil



ben






--
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/0689639a-e9a1-1967-a938-1bba6b9ca339%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: Pattern mining from PLN inference histories

2017-06-19 Thread 'Nil Geisweiller' via opencog

On 06/19/2017 09:29 PM, Nil Geisweiller wrote:

ImplicationScopeLink
   V
   Y
   useful(X)

where V, X and Y are meta-pattern-matcher variables as they represent 
patterns that the pattern miner should come up with (of course all this 
should be properly quoted), which looks very much like a Cognitive 
Schematic. So in fact inference control would turn a bit into a 
specialized OpenPsi process, but perhaps I digress...


In case it wasn't clear, I don't mean that the pattern miner would try 
to find such frequent ImplicationScopeLink, there might be none, rather 
it would look for any pattern, but output the important ones within that 
format, if it makes sense, with the right TV assigned to them. Or maybe 
this is beyond the pattern miner job, and it should be delegated to 
another process.


Anyway, maybe after studying the pattern miner in depth all this will 
become obvious.


Nil

--
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/142b555c-589f-852b-f121-2dd04cc5f6aa%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] A few bugs while installing a test version of OpenCog

2017-05-29 Thread 'Nil Geisweiller' via opencog

Linas,

based on

https://github.com/opencog/atomspace/blob/master/opencog/scm/opencog.scm#L113

I assume that cog-undefined-handle is getting obsolete. However it is 
still on the wiki page


http://wiki.opencog.org/w/Scheme#cog-undefined-handle

Could you update that accordingly? (I wanted to do it but I'm not fully 
confident).


Thanks,
Nil

On 05/29/2017 03:01 PM, Nil Geisweiller wrote:
Thanks a lot for your detailed bug report! Ideally you would create 
github issues if each of these, but this is already greatly appreciated.


I'll have a careful look at them, already though regarding the slow down 
due to cog-undefined-handle this is probably because it is getting 
obsolete and I haven't removed it from all PLN rules (doing that now).


Nil

On 05/29/2017 02:50 AM, rocketpwr.com wrote:

Dear OpenCog Development Community,

First, thank you for your hard work on this project.

I found a few bugs that I have been able to work around that you might 
find helpful.  Hopefully the below description of the problems and my 
work-arounds will help you or someone else who comes across the same 
problems.


/*1) Really really long compile times on loading up the 
conceptnet4.scm test dataset in 
test-datasets/conceptnet/conceptnet4.scm*./  I left it to run 
overnight, and it still had not finished. Actually, I believe it was 
going to take 70+ hours to load and compile this 14.5 MB file.  This 
seemed strange to me as smaller files loaded much faster.  What I 
determined by experiment is that, for some unknown reason, the Guile 
Scheme compiler had a compile time that is proportional approximately 
n^2 of the number of rules.  Here are some results on my test rig (a 4 
core 4 GB Ubuntu 16.04 setup):


|
Rulesloadtime rules/sec

259737.00
6343120.45
10007014.29
124911011.35
|


Because the Conceptnet4.scm file is about 60.5K I estimate that the 
compile time would be around 71 hours or 3 days.  I am guessing this 
is a bug/feature in Guile Scheme which was not really meant as a 
database.


My work-around:  a) split the 60K rule file into 61 files of 1K rules 
each, and then compile them.  Each file compiles in around 14 seconds, 
reducing the compile time to around 1.5 hours.  Once compiled, the 
rules do not need to be compiled again.  b) I wrote a small loader 
that loads all 61 files into Guile in a single command.


*/2) Really long execution time for (cog-bind 
deduction-inheritance-rule):/* I am experimenting with PLN, using the 
how-to tutorial: PLN by hand (http://wiki.opencog.org/w/PLN_by_Hand). 
  After loading up conceptnet4, I tried to run the inheritance rule as 
per the tutorial:


|
(cog-bind deduction-inheritance-rule)
|

Again, I left the computer to run overnight, and by morning it wasn't 
complete. I searched the machine and found the errors in the 
opencog.log file which has grown to 1 GB.  It was filled with a repeat 
of this message (with some other hex-addresses changed):


|
In unknown file:
?: 7 [opencog-extension cog-bind-first-n (# -1)]
In ice-9/boot-9.scm:
  157: 6 [catch #t # ...]
In unknown file:
?: 5 [apply-smob/1 #]
In ice-9/boot-9.scm:
  157: 4 [catch #t # ...]
In unknown file:
?: 3 [apply-smob/1 #]
In opencog.scm:
   89: 2 [cog-undefined-handle]
In ice-9/boot-9.scm:
  102: 1 [#args)> wrong-number-of-args ...]

In unknown file:
?: 0 [apply-smob/1 # wrong-number-of-args ...]

ERROR: In procedure apply-smob/1:
ERROR: Wrong number of arguments to #
ABORT: wrong-number-of-args


|

I have been researching this for a few hours and I was about to give 
up.   I then decided to experiment with smaller numbers of atoms 
(rules).  I used the Guile profiler and it showed that the majority of 
the time was being wasted in error "Catch" and formatting functions. 
After setting debug breakpoints, I decided that the problem was 
actually in this cog-undefined-handle function, and not the 
cog-bind-first-n function, or whatever apply-smob/1 is. (I can't find 
any documentation on apply-smob/1.) The cog-undefined-handle function 
was in /usr/local/share/opencog/scm/opencog.scm:


I changed this line:

|
(define-public (cog-undefined-handle X) '())
|

to

|
(define-public(cog-undefined-handle .X)'())
|

Note: I am not expert in Guile, Scheme, or Lisp. A poster on stack 
exchange said that by inserted the dot character in the argument list, 
it allows a Scheme function to take any number of arguments.  This 
seems to work -- now the opencog.log is clean and the (cog-bind 
deduction-inheritance-rule) runs on the entire data set in only a few 
minutes.

*/
/*
*/3) Hard coded gcc/g++ 4.8 compiler version in octool prevents 
installation on Ubuntu 16.04 LTS/*.  I understand that the base Linux 
configuration for Opencog is still 14.04 LTS.  However, that version 
is already 3 years old and I had just installed a 16.04 LTS image, and 
I did not want to reinstall after investing the time to set it up 
properly.  To get octool to finish the compilation and subsequent 
installation, I 

Re: [opencog-dev] A few bugs while installing a test version of OpenCog

2017-05-29 Thread 'Nil Geisweiller' via opencog
Thanks a lot for your detailed bug report! Ideally you would create 
github issues if each of these, but this is already greatly appreciated.


I'll have a careful look at them, already though regarding the slow down 
due to cog-undefined-handle this is probably because it is getting 
obsolete and I haven't removed it from all PLN rules (doing that now).


Nil

On 05/29/2017 02:50 AM, rocketpwr.com wrote:

Dear OpenCog Development Community,

First, thank you for your hard work on this project.

I found a few bugs that I have been able to work around that you might 
find helpful.  Hopefully the below description of the problems and my 
work-arounds will help you or someone else who comes across the same 
problems.


/*1) Really really long compile times on loading up the conceptnet4.scm 
test dataset in test-datasets/conceptnet/conceptnet4.scm*./  I left it 
to run overnight, and it still had not finished. Actually, I believe it 
was going to take 70+ hours to load and compile this 14.5 MB file.  This 
seemed strange to me as smaller files loaded much faster.  What I 
determined by experiment is that, for some unknown reason, the Guile 
Scheme compiler had a compile time that is proportional approximately 
n^2 of the number of rules.  Here are some results on my test rig (a 4 
core 4 GB Ubuntu 16.04 setup):


|
Rulesloadtime rules/sec

259737.00
6343120.45
10007014.29
124911011.35
|


Because the Conceptnet4.scm file is about 60.5K I estimate that the 
compile time would be around 71 hours or 3 days.  I am guessing this is 
a bug/feature in Guile Scheme which was not really meant as a database.


My work-around:  a) split the 60K rule file into 61 files of 1K rules 
each, and then compile them.  Each file compiles in around 14 seconds, 
reducing the compile time to around 1.5 hours.  Once compiled, the rules 
do not need to be compiled again.  b) I wrote a small loader that loads 
all 61 files into Guile in a single command.


*/2) Really long execution time for (cog-bind 
deduction-inheritance-rule):/* I am experimenting with PLN, using the 
how-to tutorial: PLN by hand (http://wiki.opencog.org/w/PLN_by_Hand). 
  After loading up conceptnet4, I tried to run the inheritance rule as 
per the tutorial:


|
(cog-bind deduction-inheritance-rule)
|

Again, I left the computer to run overnight, and by morning it wasn't 
complete. I searched the machine and found the errors in the opencog.log 
file which has grown to 1 GB.  It was filled with a repeat of this 
message (with some other hex-addresses changed):


|
In unknown file:
?: 7 [opencog-extension cog-bind-first-n (# -1)]
In ice-9/boot-9.scm:
  157: 6 [catch #t # ...]
In unknown file:
?: 5 [apply-smob/1 #]
In ice-9/boot-9.scm:
  157: 4 [catch #t # ...]
In unknown file:
?: 3 [apply-smob/1 #]
In opencog.scm:
   89: 2 [cog-undefined-handle]
In ice-9/boot-9.scm:
  102: 1 [#args)> wrong-number-of-args ...]

In unknown file:
?: 0 [apply-smob/1 # wrong-number-of-args ...]

ERROR: In procedure apply-smob/1:
ERROR: Wrong number of arguments to #
ABORT: wrong-number-of-args


|

I have been researching this for a few hours and I was about to give up. 
  I then decided to experiment with smaller numbers of atoms (rules).  I 
used the Guile profiler and it showed that the majority of the time was 
being wasted in error "Catch" and formatting functions. After setting 
debug breakpoints, I decided that the problem was actually in this 
cog-undefined-handle function, and not the cog-bind-first-n function, or 
whatever apply-smob/1 is. (I can't find any documentation on 
apply-smob/1.) The cog-undefined-handle function was in 
/usr/local/share/opencog/scm/opencog.scm:


I changed this line:

|
(define-public (cog-undefined-handle X) '())
|

to

|
(define-public(cog-undefined-handle .X)'())
|

Note: I am not expert in Guile, Scheme, or Lisp. A poster on stack 
exchange said that by inserted the dot character in the argument list, 
it allows a Scheme function to take any number of arguments.  This seems 
to work -- now the opencog.log is clean and the (cog-bind 
deduction-inheritance-rule) runs on the entire data set in only a few 
minutes.

*/
/*
*/3) Hard coded gcc/g++ 4.8 compiler version in octool prevents 
installation on Ubuntu 16.04 LTS/*.  I understand that the base Linux 
configuration for Opencog is still 14.04 LTS.  However, that version is 
already 3 years old and I had just installed a 16.04 LTS image, and I 
did not want to reinstall after investing the time to set it up 
properly.  To get octool to finish the compilation and subsequent 
installation, I did the following change:


|
$ diff octool octool~
843,844c843
<#CXX=g++-4.8 cmake .. -DCMAKE_BUILD_TYPE=Release

[opencog-dev] Re: Pattern mining from PLN inference histories

2017-06-01 Thread 'Nil Geisweiller' via opencog

On 06/01/2017 04:59 PM, Shujing Ke wrote:
Oh, another question: is to mine patterns that contains at least one 
ExecutionOutputLink, or to mine patterns that only contains 
ExecutionOutputLinks and the Links inside ExecutionOutputLinks?


I'd say all of them, at any depth. The corpus I gave you is not gonna 
contain any useful pattern anyway, it's just an exercise at this point.


Nil



On Thu, Jun 1, 2017 at 3:52 PM, Shujing Ke > wrote:


OK, I will try to mine EOLs first. Thanks : )

Shujing

On Thu, Jun 1, 2017 at 7:25 AM, Nil Geisweiller
> wrote:

Hi,

On 06/01/2017 01:32 AM, Shujing Ke wrote:

Hi, Nil and Ben,

I studied the corpus. Is each BindLink one instance of
inference? So


Yes.

that each BindLink should be considered as primitve / atomic
-  one pattern should be one BindLink; any Links inside a
BindLink should not be mined separatly, right? For example,


No they can and should be mined separately as well. Specifically
what we are interested in are the structures of
ExecutionOutputLink (EOL). The third argument of an inference
BindLink is systematically gonna be an EOL wrapping other EOLs,
and we are mostly interested in mining these EOLs. But
ultimately mining the whole BindLink might be useful too. We may
want to do both, but for starter only mine patterns with an EOL
as root link.



(InheritanceLink
  (VariableNode "$X")
  (PatternVariableNode "var1")
)
(InheritanceLink
  (VariableNode "$X")
  (VariableNode "$B-6266d6f2")
)
(InheritanceLink
  (VariableNode "$B-6266d6f2")
  (PatternVariableNode "var1")
)

This is a pattern that may be mined by patten miner from the
PLN corpus under a general purpose. But it is not that kind
of expected patterns as descriped in

http://wiki.opencog.org/w/Pattern_Miner_Prospective_Examples#patterns_in_PLN_inference_histories



Actually, the particular goal here is not to mine any
connected patterns freely, it is to mine a particular type
of patterns - abstraction  of BindLinks of the same
structures. If two BindLinks have different structures, even
they share one or several Nodes, patterns still should not
be extracted from them. For example,

(BindLink
(LinkTypeA
   (NodeType_a "someNode1")
   (NodeType_b "someNode2")
)
(LinkTypeB
   (NodeType_c "someNode3")
   (LinkTypeC
 (NodeType_c "someNode3")
 (NodeType_d "someNode4")
)
)
)


(BindLink
(LinkTypeA
   (NodeType_a "someNode1")
   (NodeType_e "someNode5)
)
(LinkTypeD
   (NodeType_e "someNode5")
   (NodeType_f  "someNode6")
)
)

This two BindLinks share the same Node (NodeType_a
"someNode1"),  a common pattern of   (LinkTypeA) can be
extracted for mining general patterns, but these two
BindLinks have different structures - the first BindLink
contains a LinkTypeA , a LinkTypeB and a LinkTypeC; the
second BindLink contains a LinkTypeA and a LinkTypeD. So
despite the ultimate goal of AGI, to learning this type of
patterns more effectively, it's better to find all the
BindLinks with same structures, and then apply some kind of
induction learning algorithm on them. What do you think?


No we want to extract patterns across BindLinks (or EOLs) that
have different structures, what I believe the pattern miner is
good at, right?

Nil


But I will still give it a try with Pattern Miner.



On Tue, May 23, 2017 at 4:06 PM, Nil Geisweiller

>> wrote:

 Hi,

 I've corrected the inferences (note that ExecutionLink
are actually
 ExecutionOutputLink because the "inference trails" are

[opencog-dev] Re: gcc 4.8 -> 4.9

2017-06-14 Thread 'Nil Geisweiller' via opencog

Actually 14.04 ships with 4.8, only 14.10 ships with 4.9.

I guess that precludes from raising the minimum...

Nil

On 06/15/2017 05:38 AM, Nil Geisweiller wrote:

Hi,

I'd like to raise the minimum required version of gcc from 4.8 to 4.9. 
The latter has a much better support for C++14.


I don't think it bothers anyone since Ubuntu 14.04 ships with gcc 4.9, 
but I thought I'd ask anyway.


Nil


--
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/a280c5bf-4c24-6a22-d78e-bacfb21f29b4%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


[opencog-dev] gcc 4.8 -> 4.9

2017-06-14 Thread 'Nil Geisweiller' via opencog

Hi,

I'd like to raise the minimum required version of gcc from 4.8 to 4.9. 
The latter has a much better support for C++14.


I don't think it bothers anyone since Ubuntu 14.04 ships with gcc 4.9, 
but I thought I'd ask anyway.


Nil

--
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/0c54ff17-96fe-6f04-03b5-19df49e559cd%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] non-root build

2017-06-11 Thread 'Nil Geisweiller' via opencog



On 06/11/2017 09:45 AM, Dmitry Ponyatov wrote:

Have lot of error reports on cmake :

|
failed to create symbolic link
'/home/ponyatov/cog/opencog/build/opencog/scm//opencog/pln/rules/propositional/blablabla.scm':Nosuch
file ordirectory
|


I'm also having that. I don't understand the problem but it doesn't seem 
to hurt.


Nil



and /home/ponyatov/opencog/share/opencog/scm/opencog.scm contains
strange strings looks like hardcoded opencode prefix:

|
;lib64 isused byvarious versions of CentOS
(define path "/usr/local/lib/opencog:/usr/local/lib64/opencog")

|


--
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 opencog+unsubscr...@googlegroups.com
.
To post to this group, send email to opencog@googlegroups.com
.
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/62c107ae-5aac-42ad-8a81-64abab7ae33e%40googlegroups.com
.
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/e9c67625-552e-89af-8838-5ab10b07a2d9%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: Building OpenCog Error

2017-06-14 Thread 'Nil Geisweiller' via opencog
I've never used octool, I rely on cmake to detect what is missing, maybe 
try to install cogutil, atomspace and opencog, and install whichever 
package cmake tells you is missing.


Nil

On 06/14/2017 09:08 PM, karthikbm2...@gmail.com wrote:

Hello Dmitry, If I am right, Building OpenCog is the next step after
Installing the required dependencies.. I am stuck on installing the
dependencies itself ( with command ./octool -rsdpcalv)

On Tuesday, 13 June 2017 23:37:02 UTC-7, Dmitry Ponyatov wrote:

I have this like problem, try do decrease make -j N   -- I have i7
system but too low RAM available (6Gb) for full make -j8, su
-j4 works ok

--
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 opencog+unsubscr...@googlegroups.com
.
To post to this group, send email to opencog@googlegroups.com
.
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/c2862cf7-bd61-4bc0-958e-9435da0eead5%40googlegroups.com
.
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/c83da416-86f8-f4ad-eb58-6444c2f431aa%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: Pattern mining from PLN inference histories

2017-06-19 Thread 'Nil Geisweiller' via opencog

Shujing, in

/opencog/learning/PatternMiner/types/atom_types.script

you've defined

PATTERN_LINK <- UNORDERED_LINK

but such a link type already exist in

/opencog/atoms/base/atom_types.script

Nil

On 06/19/2017 12:01 PM, Nil Geisweiller wrote:
Actually patterns involving scopes require quote links. Let me consider 
the following pattern (the simplest of that sort I could find):


;Pattern: Frequency = 6
(ExecutionOutputLink (stv 1.00 1.00)
   (GroundedSchemaNode "scm: conditional-full-instantiation-formula" 
(stv 1.00 1.00))

   (ListLink (stv 1.00 1.00)
 (EvaluationLink (stv 1.00 1.00)
   (PatternVariableNode "$var_1" (stv 1.00 1.00))
   (ListLink (stv 1.00 1.00)
 (PatternVariableNode "$var_2" (stv 1.00 1.00))
 (PatternVariableNode "$var_3" (stv 1.00 1.00))
   )
 )
 (ImplicationScopeLink (stv 1.00 1.00)
   (VariableList (stv 1.00 1.00)
 (TypedVariableLink (stv 1.00 1.00)
   (VariableNode "$X" (stv 1.00 1.00))
   (TypeNode "ConceptNode" (stv 1.00 1.00))
 )
 (TypedVariableLink (stv 1.00 1.00)
   (PatternVariableNode "$var_4" (stv 1.00 1.00))
   (TypeNode "ConceptNode" (stv 1.00 1.00))
 )
   )
   (EvaluationLink (stv 1.00 1.00)
 (PatternVariableNode "$var_1" (stv 1.00 1.00))
 (ListLink (stv 1.00 1.00)
   (VariableNode "$X" (stv 1.00 1.00))
   (PatternVariableNode "$var_4" (stv 1.00 1.00))
 )
   )
   (EvaluationLink (stv 1.00 1.00)
 (PatternVariableNode "$var_1" (stv 1.00 1.00))
 (ListLink (stv 1.00 1.00)
   (PatternVariableNode "$var_4" (stv 1.00 1.00))
   (VariableNode "$X" (stv 1.00 1.00))
 )
   )
 )
 (EvaluationLink (stv 1.00 1.00)
   (PatternVariableNode "$var_1" (stv 1.00 1.00))
   (ListLink (stv 1.00 1.00)
 (PatternVariableNode "$var_3" (stv 1.00 1.00))
 (PatternVariableNode "$var_2" (stv 1.00 1.00))
   )
 )
   )
)

Let me

1. wrap it in a SatisfyingSetScopeLink
2. attempt to add a meaningful TV
3. remove the non-zero confidences elsewhere
4. add the required quotes

(SatisfyingSetScopeLink 

Re: [opencog-dev] Re: Pattern mining from PLN inference histories

2017-06-19 Thread 'Nil Geisweiller' via opencog
:
*1*. Do not consider any VariableNodes  are connected with each
other
out of a clause, even they have the same name.


    Again, only assume that variables with different scopes are not
connected to each others.

*5*. (optional), if it is necessary, TypedVariableLinks can be
added to
specify the original variablenodes:
(TypedVariableLink
(VariableNode "$var1")
(TypeNode "VariableNode")
)


Yes, only if var1 is a pattern variable, not if it is an original
variable, and this type declaration would be inserted in the
variable declaration of the pattern scope (like
SatisfyingSetScopeLink). If it is an original variable let it as is,
it's unlikely anyway, so even if it turns out to be problematic we
can worry about that later.


Is this process OK?

One more question:
Is GroundedSchemaNode also to become variablenode?


Possibly, as Ben said.

Nil


Thanks,
Shujing

On Thu, Jun 1, 2017 at 11:00 PM, Shujing Ke <shujin...@gmail.com
<mailto:shujin...@gmail.com>
<mailto:shujin...@gmail.com <mailto:shujin...@gmail.com>>> wrote:

 Ok : )

 On Thu, Jun 1, 2017 at 5:17 PM, 'Nil Geisweiller' via opencog
 <opencog@googlegroups.com <mailto:opencog@googlegroups.com>
<mailto:opencog@googlegroups.com
<mailto:opencog@googlegroups.com>>> wrote:

 On 06/01/2017 04:59 PM, Shujing Ke wrote:

 Oh, another question: is to mine patterns that
contains at
 least one ExecutionOutputLink, or to mine patterns
that only
 contains ExecutionOutputLinks and the Links inside
 ExecutionOutputLinks?


 I'd say all of them, at any depth. The corpus I gave
you is not
 gonna contain any useful pattern anyway, it's just an
exercise
 at this point.

 Nil


 On Thu, Jun 1, 2017 at 3:52 PM, Shujing Ke
 <shujin...@gmail.com <mailto:shujin...@gmail.com>
<mailto:shujin...@gmail.com <mailto:shujin...@gmail.com>>
 <mailto:shujin...@gmail.com
<mailto:shujin...@gmail.com> <mailto:shujin...@gmail.com
<mailto:shujin...@gmail.com>>>>
 wrote:

 OK, I will try to mine EOLs first. Thanks : )

 Shujing

 On Thu, Jun 1, 2017 at 7:25 AM, Nil Geisweiller
 <ngeis...@googlemail.com
<mailto:ngeis...@googlemail.com>
 <mailto:ngeis...@googlemail.com
<mailto:ngeis...@googlemail.com>>
 <mailto:ngeis...@googlemail.com
<mailto:ngeis...@googlemail.com>
 <mailto:ngeis...@googlemail.com
<mailto:ngeis...@googlemail.com>>>> wrote:

 Hi,

 On 06/01/2017 01:32 AM, Shujing Ke wrote:

 Hi, Nil and Ben,

 I studied the corpus. Is each BindLink one
 instance of
 inference? So


 Yes.

 that each BindLink should be considered as
 primitve / atomic
 -  one pattern should be one BindLink;
any Links
 inside a
 BindLink should not be mined separatly,
right?
 For example,


 No they can and should be mined separately
as well.
 Specifically
 what we are interested in are the structures of
 ExecutionOutputLink (EOL). The third
argument of an
 inference
 BindLink is systematically gonna be an EOL
wrapping
 other EOLs,
 and we are mostly interested in mining
these EOLs. But
 ultimately mining the whole BindLink might
be useful
 too. We may
 want to do both, but for starter only mine
patterns
 with an EOL
 as root link.



 (InheritanceLink
   (VariableNode "$X")
   (PatternVariableNode "var1")
 )
   

Re: [opencog-dev] Re: Pattern mining from PLN inference histories

2017-06-19 Thread 'Nil Geisweiller' via opencog
Actually patterns involving scopes require quote links. Let me consider 
the following pattern (the simplest of that sort I could find):


;Pattern: Frequency = 6
(ExecutionOutputLink (stv 1.00 1.00)
  (GroundedSchemaNode "scm: conditional-full-instantiation-formula" 
(stv 1.00 1.00))

  (ListLink (stv 1.00 1.00)
(EvaluationLink (stv 1.00 1.00)
  (PatternVariableNode "$var_1" (stv 1.00 1.00))
  (ListLink (stv 1.00 1.00)
(PatternVariableNode "$var_2" (stv 1.00 1.00))
(PatternVariableNode "$var_3" (stv 1.00 1.00))
  )
)
(ImplicationScopeLink (stv 1.00 1.00)
  (VariableList (stv 1.00 1.00)
(TypedVariableLink (stv 1.00 1.00)
  (VariableNode "$X" (stv 1.00 1.00))
  (TypeNode "ConceptNode" (stv 1.00 1.00))
)
(TypedVariableLink (stv 1.00 1.00)
  (PatternVariableNode "$var_4" (stv 1.00 1.00))
  (TypeNode "ConceptNode" (stv 1.00 1.00))
)
  )
  (EvaluationLink (stv 1.00 1.00)
(PatternVariableNode "$var_1" (stv 1.00 1.00))
(ListLink (stv 1.00 1.00)
  (VariableNode "$X" (stv 1.00 1.00))
  (PatternVariableNode "$var_4" (stv 1.00 1.00))
)
  )
  (EvaluationLink (stv 1.00 1.00)
(PatternVariableNode "$var_1" (stv 1.00 1.00))
(ListLink (stv 1.00 1.00)
  (PatternVariableNode "$var_4" (stv 1.00 1.00))
  (VariableNode "$X" (stv 1.00 1.00))
)
  )
)
(EvaluationLink (stv 1.00 1.00)
  (PatternVariableNode "$var_1" (stv 1.00 1.00))
  (ListLink (stv 1.00 1.00)
(PatternVariableNode "$var_3" (stv 1.00 1.00))
(PatternVariableNode "$var_2" (stv 1.00 1.00))
  )
)
  )
)

Let me

1. wrap it in a SatisfyingSetScopeLink
2. attempt to add a meaningful TV
3. remove the non-zero confidences elsewhere
4. add the required quotes

(SatisfyingSetScopeLink 

Re: [opencog-dev] Re: Pattern mining from PLN inference histories

2017-06-19 Thread 'Nil Geisweiller' via opencog


Pattern 3 is more abstract than pattern 2. Would you not want to
return the least possible abstract patterns with the greatest
support (or greatest given fitness)? But it's another issue anyway...


Acutally, I guess the expected pattern here is Pattern 3, but
the exact
expected format of it is Pattern 4:
*Pattern 4:*
(ExecutionOutputLink
 (GroundedSchemaNode "scm: bc-deduction-formula")
 (ListLink
   (InheritanceLink
 (VariableNode "$var1")
 (PatternVariableNode "$pattern_var1")
   )
   (InheritanceLink
 (VariableNode "$var1")
 (VariableNode "$var2")
   )
   (InheritanceLink
 (VariableNode "$var2")
 (PatternVariableNode "$pattern_var1")
   )
 )
  )


Again, just have $pattern_var1 scoped to the SatisfyingSetScopeLink
of the pattern, and let $var1 and $var2 free. Again these patterns,
with original variables, are gonna be unlikely (in my use cases
anyway), but they might be meaningful in some situations.


Which means in the process of pattern miner, I probably should
do this:
*1*. Do not consider any VariableNodes  are connected with each
    other
        out of a clause, even they have the same name.


Again, only assume that variables with different scopes are not
connected to each others.

*5*. (optional), if it is necessary, TypedVariableLinks can be
added to
specify the original variablenodes:
(TypedVariableLink
(VariableNode "$var1")
(TypeNode "VariableNode")
)


Yes, only if var1 is a pattern variable, not if it is an original
variable, and this type declaration would be inserted in the
variable declaration of the pattern scope (like
SatisfyingSetScopeLink). If it is an original variable let it as is,
it's unlikely anyway, so even if it turns out to be problematic we
can worry about that later.


Is this process OK?

One more question:
Is GroundedSchemaNode also to become variablenode?


Possibly, as Ben said.

Nil


Thanks,
Shujing

On Thu, Jun 1, 2017 at 11:00 PM, Shujing Ke <shujin...@gmail.com
<mailto:shujin...@gmail.com>
<mailto:shujin...@gmail.com <mailto:shujin...@gmail.com>>> wrote:

 Ok : )

 On Thu, Jun 1, 2017 at 5:17 PM, 'Nil Geisweiller' via 
opencog

 <opencog@googlegroups.com <mailto:opencog@googlegroups.com>
<mailto:opencog@googlegroups.com
<mailto:opencog@googlegroups.com>>> wrote:

 On 06/01/2017 04:59 PM, Shujing Ke wrote:

 Oh, another question: is to mine patterns that
contains at
 least one ExecutionOutputLink, or to mine patterns
that only
 contains ExecutionOutputLinks and the Links inside
 ExecutionOutputLinks?


 I'd say all of them, at any depth. The corpus I gave
you is not
 gonna contain any useful pattern anyway, it's just an
exercise
 at this point.

 Nil


 On Thu, Jun 1, 2017 at 3:52 PM, Shujing Ke
 <shujin...@gmail.com <mailto:shujin...@gmail.com>
<mailto:shujin...@gmail.com <mailto:shujin...@gmail.com>>
 <mailto:shujin...@gmail.com
<mailto:shujin...@gmail.com> <mailto:shujin...@gmail.com
<mailto:shujin...@gmail.com>>>>
 wrote:

 OK, I will try to mine EOLs first. Thanks : )

 Shujing

 On Thu, Jun 1, 2017 at 7:25 AM, Nil Geisweiller
 <ngeis...@googlemail.com
<mailto:ngeis...@googlemail.com>
 <mailto:ngeis...@googlemail.com
<mailto:ngeis...@googlemail.com>>
 <mailto:ngeis...@googlemail.com
<mailto:ngeis...@googlemail.com>
 <mailto:ngeis...@googlemail.com
<mailto:ngeis...@googlemail.com>>>> wrote:

 Hi,

 On 06/01/2017 01:32 AM, Shujing Ke wrote:

 Hi, Nil and Ben,

 I studied the corpus. Is each 
BindLink one

 instance of
 inference? So


 Yes.

 that each BindLink should be 
considered as


[opencog-dev] Re: define_scheme_primitive comiple error

2017-06-14 Thread 'Nil Geisweiller' via opencog

Hi,

I'm about to merge (well in a few hours) another even simpler version of 
that, which may hopefully solve the problem.


Nil

On 06/14/2017 01:04 PM, Shujing Ke wrote:

Hi Nil,

I pull the lastest atomspace and opencog and got the comiple error below:

opencog/opencog/learning/dimensionalembedding/DimEmbedModule.cc:95: 
error: no matching function for call to 'define_scheme_primitive(const 
char [11], , 
opencog::DimEmbedModule* const)'  this);


I saw you modified opencog/guile/SchemePrimitive.ha day ago.I aslo 
modified it in my branch and then I merged my branch into the main 
branch I don't know who broke it or what broke it.. Any idea?



Thanks,
Shujing



--
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/dfa81aa7-7479-15f7-a94f-02f5253cc40d%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] PLN rules selection

2017-05-02 Thread 'Nil Geisweiller' via opencog

Vishnu,

I don't know if the NLP pipeline is mature enough to process that... 
After you've parsed the sentence you may check whether it has produced 
knowledge that is similar to the criminal example


https://github.com/opencog/atomspace/blob/master/tests/rule-engine/criminal.scm

I don't think it would but I don't follow very closely NLP development.

Nil

On 04/27/2017 01:40 PM, Vishnu Priya wrote:


Hi Linas,

Well, we do have some code in the opencog.nlp/relex2logic directory
(aka R2L) that will convert the English-language sentence "Frogs eat
flies" into a format that PLN can operate on.

But if you just want to do some basic reasoning with simple English
sentences, then R2L+PLN should be a fair way to do it.


So, according to
https://github.com/opencog/opencog/tree/master/opencog/nlp/relex2logic ,
 i started the relex server,  started scheme,  then  did (nlp-parse
"This is a test sentence.") and got a SentenceNode as an output.

   Next step what should i do, so that FC/BC can operate on it?

  My input is :
"The law says that it is a crime for an American to sell weapons to hostile
 nations. The country Nono, an enemy of America, has some missiles, and all
 of its missiles were sold to it by ColonelWest, who is American."

I am trying to convert it to a form such that i can apply BC on it.

Thanks,
 Vishnu

--
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 opencog+unsubscr...@googlegroups.com
.
To post to this group, send email to opencog@googlegroups.com
.
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/0f357d9a-ef1d-4ac7-a7e3-d5dcdefa1f10%40googlegroups.com
.
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/1f62186a-66af-2542-b3b0-3c32c57194ce%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Contributing to OpenCog

2017-05-05 Thread 'Nil Geisweiller' via opencog

Hi,

On 05/05/2017 05:14 PM, Pranav Deshpande wrote:

I would like to contribute to OpenCog. What aspects of AI and ML do I
need to know to contribute; or can I just get started? I wanted some
guidance.


it all depends on what you'd like to do, if you desire to go to the 
bottom of it I think knowing probability and logic (say predicate logic) 
is very good. Having a broad culture about AI helps too, including 
theoretical stuff like Solomonoff induction. Ben and Linas would 
probably tell you that category theory is helpful :-) (I know too little 
about it and I've started reading "Category Theory for the Siences"). 
More directly linked to the OpenCog design you may want to read 
https://www.amazon.com/Engineering-General-Intelligence-Part-Cognitive/dp/9462390266/ 
if you'd rather not spend money on it we can provide you an electronic 
draft that is essentially like the book. The wiki itself is full of 
information, browse it at will.


Regarding programming languages, the core is in C++ and it supports 
Scheme, Python and Haskell as binding languages.


You don't necessarily need to know all that to contribute though, 
reading the wiki and giving your feedback, correcting when you can is 
very helpful.


Nil



Regards,
Pranav

--
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 opencog+unsubscr...@googlegroups.com
.
To post to this group, send email to opencog@googlegroups.com
.
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/8f8a1f5f-1415-4ac1-9bf6-2c45829b8bd2%40googlegroups.com
.
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/179e51ff-a222-702f-f2e1-cfeead33b6b6%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Contributing to OpenCog

2017-05-05 Thread 'Nil Geisweiller' via opencog

Great wikipage containing what you're looking for and more

http://wiki.opencog.org/w/Background_Publications

Nil

On 05/05/2017 08:47 PM, Pranav Deshpande wrote:

Hello and thank you for the reply. I will start reading the book as you
suggest, Could you please send me the electronic draft?
Also, based on my current Github repo, which part do you think is
appropriate for me to contribute to?

Regards,
Pranav

On Friday, May 5, 2017 at 10:07:41 PM UTC+5:30, Nil wrote:

Hi,

On 05/05/2017 05:14 PM, Pranav Deshpande wrote:
> I would like to contribute to OpenCog. What aspects of AI and ML do I
> need to know to contribute; or can I just get started? I wanted some
> guidance.

it all depends on what you'd like to do, if you desire to go to the
bottom of it I think knowing probability and logic (say predicate
logic)
is very good. Having a broad culture about AI helps too, including
theoretical stuff like Solomonoff induction. Ben and Linas would
probably tell you that category theory is helpful :-) (I know too
little
about it and I've started reading "Category Theory for the Siences").
More directly linked to the OpenCog design you may want to read

https://www.amazon.com/Engineering-General-Intelligence-Part-Cognitive/dp/9462390266/



if you'd rather not spend money on it we can provide you an electronic
draft that is essentially like the book. The wiki itself is full of
information, browse it at will.

Regarding programming languages, the core is in C++ and it supports
Scheme, Python and Haskell as binding languages.

You don't necessarily need to know all that to contribute though,
reading the wiki and giving your feedback, correcting when you can is
very helpful.

Nil

>
> Regards,
> Pranav
>
> --
> 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 opencog+u...@googlegroups.com 
> .
> To post to this group, send email to ope...@googlegroups.com

> .
> 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/8f8a1f5f-1415-4ac1-9bf6-2c45829b8bd2%40googlegroups.com



>

>.

> 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 opencog+unsubscr...@googlegroups.com
.
To post to this group, send email to opencog@googlegroups.com
.
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/f8c5d7e8-a68e-4db6-a859-526be6001bff%40googlegroups.com
.
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/281a2d9f-47a0-0e18-8931-5f470b1ec869%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] OpenCog mysteries revealed - 'code-as-data' programs as universal knowledge base?

2017-09-19 Thread 'Nil Geisweiller' via opencog



On 09/19/2017 08:23 PM, Alex wrote:
OpenCog uses Scheme as knowledge representation language (as I 
understand, then this is one from many options for interfacing with 
OpenCog). So - this is natural question - *how close are valid Scheme 
programms to the sentences of OpenCog knowledge? Are OpenCog knowledge 


Scheme itself is not represented in the AtomSpace, expect that you can 
call scheme functions from the AtomSpace but that's all, here's an example


(And (Predicate "P") (Predicate "Q"))

represent the predicate that is the intersection between P and Q.

Here's another one

(Lamdba
  (Variable "$X")
  (Evaluation
(GroundedPredicate "scm: my-fun")
(Variable "$X")))

defines an anonymous predicate using a scheme defined function called 
my-fun.


There's also a Define construct, similar (but not identical) to scheme 
define, etc. So you see it is close to scheme in spirit and syntax but 
it is NOT scheme, it is what is currently called atomese, although we 
use scheme (or Python, or Haskell) to communicate in atomese.



There is homoiconicity in Scheme language - Scheme code is the data and 
Scheme data is the code. So - one can represent the data/declarative or 
procedural knowledge with the Scheme code.


Same thing in OpenCog/atomese.



If OpenCog sentences are more or less valid Scheme programs and if 
Scheme programs are data structures, then the following question arise - 
*how can we represent Scheme programs as data structures - can current 
production ready graph databases (Neo4j) be used for the storing the 
Scheme programs and for the querying Scheme programs and also - for 
executing Scheme programs?* If such represenation is possible then maybe 


Correct, but not scheme program, atomese program.

it is possible to move OpenCog knowledge bases (as Scheme programs) to 
graph databases. I am suspicious about Neo4J, because it is commercial 
database, but Apache ArangoDB can be very good options, because it is 
open source and it known to be very scalable. I am a bit suspicous 
whether OpenCog infrastructure can compete with the commercial ready 
databases. And if Scheme programs can be represent in current database 
then we can keep OpenCog philosophy, knowledge base code, agent code and 
gain the scalability of graph databases...


Don't know the other data bases you cite (Linas and Ben know however).



If OpenCog knowledge base (AtomSpace) is the big Scheme program then we 
can consider also the self-modification of this program. And even more - 
Scheme language as functional programming language is connected to 
lambda calculus and lambda calculi are the prime formalism for the 
reasearch and implementation of the Goedel machine. So - *self modifying 
OpenCog atomspace (as Scheme program) can be the Goedel machine or at 
least the seed of Goedel machine or the seed of AGI?*


YEAH! I've been saying that ever since I've known Ben Goertzel design, 
back in the Novamente days, maybe we should call it the Goertzel machine.




*So - are there thoughts and ideas floating around along the lines that 
I have described?*


You may want to take a look at the URE

http://wiki.opencog.org/w/Unified_rule_engine

See the examples in the atomspace and opencog repo as well

https://github.com/opencog/atomspace/tree/master/examples/rule-engine
https://github.com/opencog/opencog/tree/master/examples/pln

Nil



--
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 opencog+unsubscr...@googlegroups.com 
.
To post to this group, send email to opencog@googlegroups.com 
.

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/1a6823b8-0479-4469-a2ac-47a36b1c2140%40googlegroups.com 
.

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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/3bb367df-cc7a-124d-85a9-f894addc7fd5%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Contributing to Opencog

2017-10-08 Thread 'Nil Geisweiller' via opencog
On 10/07/2017 04:39 PM, Linas Vepstas wrote> So here's a completely 
different but related idea:  First, use a crisp
reasoner to deduce what happens whenever strength>0..  Next, do it 
again, but now for strength>0.8.  (but still using the crisp reasoner: 
just take strength>0.8 to mean "true"). This should have a "broader" set 
of consequences.  Do it again for strength>0.6 - this causes even more 
possibilities to be explored.


It seems like these three cases can be treated as "lower bounds" of what 
we might expect PLN to find.   That these could be used to guide/limit 
what PLN explores.


Alternately, if this was fast enough, you could do this 100 times for 
100 different truth cutoffs, and build up a distributional TV...


That's an interesting idea. You could

1. Sample the probability of each atom in the KB (axioms) according to 
their TV
2. Sample, according to this probabilities, whether the axiom is true or 
false

3. Run crisp-PLN over the dicretized theory, save the output
4. repeat 2. N times to obtain a probability of the output
5. repeat 1. M times to obtain a second order probability to regenerate 
the output TV


I suppose this type of crisp-PLN monte-carlos simulation should converge 
to PLN. The advantage could be real though, assuming PLN complexity 
grows with exp(alpha*L), and the complexity of crisp-PLN grows with 
exp(beta*L), with beta < alpha, L being the length of the proof, we'd 
reach a point where where M*N*exp(beta*L) < exp(alpha*L).


Certainly an idea to keep in mind.

Nil



I find this idea exciting!  It seems plausible, doable ...

--linas



Nil



--
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/cdce29bd-ab2b-01cb-aa24-9fe16d7d2272%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Tracking of an atomese mind through the generations

2017-10-04 Thread 'Nil Geisweiller' via opencog
You can also evolve atomese programs maximizing some fitness, like MOSES 
does, you don't necessarily need experience. MOSES is gonna be ported to 
the AtomSpace, it sounds related to what you want to do.


Nil

On 10/04/2017 07:48 AM, Linas Vepstas wrote:
Learning requires a bunch of experiences from which to generalize, and 
some way of deciding if the thing that was learned is worth remembering. 
Oh, and then using what you've learned.  You might enjoy debating on the 
AGI mailing list, to discuss how this might be achieved.


--linas

On Wed, Oct 4, 2017 at 10:54 AM, Daniel Fagerlie 
> wrote:


I just had a passing thought, and I wanted to see how others have
done something similar; what it is called?

I may not understand the atomspace fully. If so, forgive my blunder.
Also, I'm no expert on these subjects, which is about to be obvious,
but I decided to make this post anyways for the experience.

My thought is to grow a certain number of atoms within an atomspace
using a genetic algorithm approach, but track the change from
chaotic atomspace to the ordered atomspace. The problems that the
simple mind is to solve should be something interesting but small
enough to be properly evolved within a reasonable time frame (I'd
have to give this more thought, but maybe an environment where logic
is needed, not just action/reaction). The idea is to study the
process of how genetic learning happens in the context of opencog,
and how it relates to the current work in creating mind agents for
learning.

Maybe this has already been done, or it's a concept hatched before I
have sufficiently gained understanding. Anyways, there it is.

-- 
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 opencog+unsubscr...@googlegroups.com
.
To post to this group, send email to opencog@googlegroups.com
.
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/9627a84f-758c-41e2-b410-da7ce317213b%40googlegroups.com

.
For more options, visit https://groups.google.com/d/optout
.




--
/"The problem is not that artificial intelligence will get too smart and 
take over the world," computer scientist Pedro Domingos writes, "the 
problem is that it's too stupid and already has." /


--
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 opencog+unsubscr...@googlegroups.com 
.
To post to this group, send email to opencog@googlegroups.com 
.

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/CAHrUA36ue%3DW3vXFjp0e_hka3MhOdqLtvTGHgt5-i6vr_FOvDuw%40mail.gmail.com 
.

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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/8509d80f-c9c7-9f07-4c62-d36e7b1a9c4b%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Contributing to Opencog

2017-10-04 Thread 'Nil Geisweiller' via opencog
On 10/04/2017 11:02 AM, Linas Vepstas wrote> And can implement 
algorithms in the graph database-agnostic way and

use all the industrial power of the best database available.
Scientists do use commercial off-the-shelf computers for HPC, why
not to use industrial software? And similar things we can say about
use of external reasoners (linear logic, Coq, Isabelle, etc.).


If you can attach coq to tinkerpop and make it work ... sure. But you 
would probably have to completely rewrite both coq and gremlin in order 
to do this.  And that is a huge amount of work.


I never tried Coq or Isabelle, but the provers I've tried (E and 
Vampire) were using resolution 
https://en.wikipedia.org/wiki/Resolution_(logic), which doesn't work for 
a para-consistent logic like PLN, at least not out-of-the-box. On top of 
that PLN is probabilistic (or even meta-probabilistic we could say). 
These make it difficult or at best unnatural to use traditional 
automatic theorem provers. Maybe there's an easy way, or a more general 
framework that I missed, but that was my impression when I studied the 
domain.


Nil

--
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/a261e2b5-7d6e-74f9-fe87-cd83304adb2a%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Contributing to Opencog

2017-10-04 Thread 'Nil Geisweiller' via opencog
The AtomSpace project should probably be promoted on its own, have its 
own webpage, purpose, reference manual, tutorial, etc.


Also what is missing to get more main stream is a way to define atom 
types within atomese itself, so it could being used as a more neutral 
graph db. That's really the only missing piece since TV and AV have been 
replaced by generic key x value.


Nil

On 10/04/2017 11:02 AM, Linas Vepstas wrote:

hi Alex ... lots of small inline replies below.

On Wed, Oct 4, 2017 at 2:17 AM, Alex > wrote:


I am here since the fall of last year (around year) and if I am
allowed, I would like to make the following thoughts that may make
OpenCog project more attractable in the eyes of developers and users:

1) The first feature of OpenCog is its internal complexity. One can
read two-volume AGI book and wonder about ideas about organizing
mind agents and processing nodes in multiprocessor, distributed
architectures, about load balancing and execution priorities,
internode communication, etc. All these are pretty low level
technicalities that require the expertise of system programmers, but
this is quite rare expertise.

You can use opencog without knowing anything at all about the above 
topics.  If they are boring to you, just ignore them.  If they are 
interesting to you, then perhaps you could be a low-level infrastructure 
developer for opencog.  We need low-level people, but its not for everyone.




I have this discussion in other thread
https://groups.google.com/forum/#!topic/opencog/X_eKhNErmC8

about possibility to use external software and external services
more extensively in OpenCog project. So far OpenCog project is about
graph database, about graph pattern matching and graph pattern
mining, about rule engine - but all these technical services are
separate project today. I guess that in the time of making first
OpenCog lines, there were no graph databases, the resarch and tools
of graph mathcing and mining was only ascent field. But today the
situation is far more different - today graph databases and
mathcing/mining projects are available. Maybe the development
strategy should be changed - maybe one should more extensively use
these projects and there is mismatch of requirements then contribute
to these speciality projects back and not to try overdo them.


Opencog is far more advanced than any of these other projects.  I wish 
the people who created these other projects had worked on opencog 
instead. Oh well.


E.g. I do not believe that it is economically feasibile to
reimplement graph database. There are graph database projects, there
is ThinkerPop (JDBC) like interface and there is Gremlin (SQL) like
language.


The opencog query language is far more advanced than tinkerpop.  It is 
unfortunate that the tinkerpop folks decided to invent something new, 
instead of using what we already had.  Again -- this is about history, 
politics, and not about technology.


And can implement algorithms in the graph database-agnostic way and
use all the industrial power of the best database available.
Scientists do use commercial off-the-shelf computers for HPC, why
not to use industrial software? And similar things we can say about
use of external reasoners (linear logic, Coq, Isabelle, etc.).


If you can attach coq to tinkerpop and make it work ... sure. But you 
would probably have to completely rewrite both coq and gremlin in order 
to do this.  And that is a huge amount of work.



I guess, that OpenCog graph database, matcher and miner features are
more or less completed, so this work is not required for novice who
would like to contribute to AGI with OpenCog. 



That's exactly backwards. These were created to make it easier for the 
novice to use opencog.


But the question still stands. If one starts to think about load
balancing, about scalability - can we safely assume that from the
technical point of view OpenCog surpasses the industrial graph
databases? 



No, because we have exactly zero people working on load balancing and 
scalability.


And what to do if our Atomspaces are growing and growing and there
is need to improve this in the project? 


Its been like that for over 10 years now, yet here we are...

Should be move to the low level job of systems programmers which
requires so different expertise?


OpenCog has needed systems programmers since the very beginning.  
However, systems programmers are very rare, as you point out, and they 
are fully employed.


I am just afraid whether the project is going in the right
direction. People would like to concentrate on their models and
knowledge bases not on the techniques. 



You can use opencog today, without 

Re: [opencog-dev] Re: Graphs for the two representations of the knowledge and ideas about the third generation Cog system - MOC - MetaOmegaCog?

2017-10-03 Thread 'Nil Geisweiller' via opencog

On 10/03/2017 08:29 PM, Alex wrote:
source projects and tools for matcher in miner and I have found even one 
open source project for rule engine that is implemented on top of graph 


Interesting, which one?

I just wanted to say that maybe relying on (and contributing to) open 
source projects for general features/foundation have some advantages.


Absolutely.

Nil

--
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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/4f6bc45c-a27a-3a5b-c914-93b89075fea4%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] ./octool: line 583: cd: cogutils-master/: No such file or directory

2017-10-05 Thread 'Nil Geisweiller' via opencog

Hi David,

thanks for your report! Your fix is correct. Generally, issues like this 
would be reported on github. Each repository has an issue tab that 
allows you to create one (for ocpkg it would be 
https://github.com/opencog/ocpkg/issues).


But since you already have a fix I would recommend that you directly 
create a pull request (fork the repo, push a commit to your master, and 
it will automatically appear as a selectable PR on upstream).


Thanks!

Nil

On 10/05/2017 09:32 PM, David Beitler wrote:
Hello, everyone. I'm brand new to the group and just getting started 
with OpenCog. Just working on installing and exploring right now.



Ran into this issue on a fresh install of Ubuntu Server 17.04.

Kept getting the following message every time I ran ./octool -rsdpcalv


./octool: line 583: cd: cogutils-master/: No such file or directory



Seems the issue is that the folder that is created by untarring the 
cogutils master.tar.gz is not named correctly in the octool script.



If I edit the octool script on line 583 to say "cogutil-master" (remove 
the 's' from cogutils) it works again.


Hope this will help anybody else who is also getting this same issue.


-David Beitler

--
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 opencog+unsubscr...@googlegroups.com 
.
To post to this group, send email to opencog@googlegroups.com 
.

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/f88c8a4d-40a1-4bb4-9160-d7e43f987680%40googlegroups.com 
.

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 opencog+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@googlegroups.com.
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/38d61dde-b214-116c-48d4-0207b75ecbd0%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


  1   2   3   4   >