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 <[email protected] <mailto:[email protected]>> wrote:

    On Tue, Jun 20, 2017 at 2:29 AM, Nil Geisweiller
    <[email protected] <mailto:[email protected]>> 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 [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/opencog.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/opencog/aa39cf17-9e1b-994a-74ee-b106ae885d29%40gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to