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 tosearch for (Set X A B C) where X==(VariableNode "X") for 4-elelemntsets, and then (Set X Y A B C) for 5-element sets, and so on. To searchall N-element sets, I can use the GlobeNode G and search for (Set G A BC) ... and I believe this works correctly today. However...## Advertising

However, there's a problem. Sets are UnorderedLinks, and so performingthe search for all six-element sets (Set X Y Z A B C) requires searching6!=120 permutations. Well, since A B C are fixed, only 6!/3!= 20permutations 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 resultswill 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 20elements -- this requires 20! permutations and 20!=2.4e18 which would bemonths or years of CPU time. Which is absurd.. well, we could stopafter finding exactly one permutation, because that is all we reallywant... (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 ofX for which (Member A X) AND (Member B X) AND (Member C X) which can bedone 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) <vardecl> P Q is merely sugar syntax for Equivalence (stv 1 1) Lambda <vardecl> P Lambda <vardecl> Q This sugar syntax is mostly useful for humans, because <vardecl> 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 bealpha-rewritten as (Scope X P(X)) == (Scope Y Q(Y)) which is somethingcompletely 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) <empty vardecl> 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 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 <linasveps...@gmail.com <mailto:linasveps...@gmail.com> <mailto:linasveps...@gmail.com <mailto:linasveps...@gmail.com>> <mailto:linasveps...@gmail.com <mailto:linasveps...@gmail.com> <mailto:linasveps...@gmail.com <mailto:linasveps...@gmail.com>>>> wrote: > Hi Ben, Mike, > > On Fri, Jul 21, 2017 at 9:41 PM, Ben Goertzel <b...@goertzel.org <mailto:b...@goertzel.org> <mailto:b...@goertzel.org <mailto:b...@goertzel.org>> <mailto:b...@goertzel.org <mailto:b...@goertzel.org> <mailto:b...@goertzel.org <mailto:b...@goertzel.org>>>> 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 <https://www.academia.edu/1016959/Fuzzy_mereology> <https://www.academia.edu/1016959/Fuzzy_mereology <https://www.academia.edu/1016959/Fuzzy_mereology>> <https://www.academia.edu/1016959/Fuzzy_mereology <https://www.academia.edu/1016959/Fuzzy_mereology> <https://www.academia.edu/1016959/Fuzzy_mereology <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 also have > > > As mentioned earlier, there are several problems with this format. One is > the "oops I forgot to mention xyz in the list" or "gosh I should have left > out pqr" and this becomes a big problem: you have to delete the > PartitionLink, delete the ListLink, create a new list and partition. In the > meanwhile, some other subsystem might be holding a handle to the old, > now-wrong PartitionLink, and there is no effective way of announcing "hey > stop using that old thing, get my new thing now". > > A second problem is that the above doesn't have anywhere to hang addtional > data: e.g. "legs are a big part of the human body, having a mas of nearly > half of the body." You can't just slap that on as a (truth)value, cause > there's no where to put that value. > > Third problem is that large list-links are hard to handle in the pattern > matcher. Its much much harder to write a query of the form "find me all > values of $X where > > PartitionLink > ConceptNode “human-body” > ListLink > ConceptNode “legs” > VariableNode “$X” > ConceptNode “brain” > > because, ... well the ListLink is an ordrerd link, not an unordered link. If > you forget to include the pqr (added above) then the search will fail. You > could try to use unordered links and globnodes, but these lead to other > difficulties, including the n! possible permutations of an unordered link > become large n-factorial large when the unordered link has n items in it. > Recall that old factorial-70 trick used to make calculators overflow. > > In general, any link with more than 3 or 4 or 5 items in it is bad news. > This is a generic statement about knowledge representation in opencog. > > >> OverlappingPartitionLink >> C >> L >> >> if we want to encompass cases where the partition elements in L can >> overlap; or >> >> CoveringLink >> C >> L >> >> if we want to encompass cases where the partition elements in L can >> overlap, AND the elements in L may encompass some stuff that’s not in >> C >> >> For the pathway case, we could then say >> >> PartitionLink >> ConceptNode “Krebs cycle” >> ListLink >> >relationship 1< >> >relationship 2< >> etc. >> >> >> Now this solves the semantics problem but doesn’t solve the problem of >> having a long ListLink…. A biological pathway might have 100s or >> 1000s of relationships in it, and we don't usually want to make lists >> that big in the Atomspace... >> >> To solve this we could do something like (for the human body case) >> >> PartitionLink >> ConceptNode “human-body” >> PartitionNode “body-partition-1” >> >> PartitionElementLink >> PartitionNode “body-partition-1" >> ConceptNode “legs” >> >> PartitionElementLink >> PartitionNode “body-partition-1" >> ConceptNode “arms” >> >> etc. >> >> and similarly (for the biological pathway case) >> >> PartitionLink >> ConceptNode “Krebs cycle” >> PartitionNode “krebs-partition-1” >> >> PartitionElementLink >> PartitionNode “krebs-partition-1" >> >relationship 1< >> >> PartitionElementLink >> PartitionNode “krebs-partition-1” >> >relationship 2< > > > > Yeah, sure. Not sure why the existing MemberLink is not sufficient for your > purposes. The MemberLink has reasonably-well-defined semantics, there are > already rules for handling it in PLN (or there will be rules -- I think its > something Nil has thought about) I'm not clear on why you'd want to invent > something that is just like MemberLink but is different. > >> >> >> ... >> >> There could be some nice truth value math regarding these, e.g. we >> could introduce Ellerman's "logical entropy" which is really a >> partition entropy. There are also connections with some recent >> theoretical work I've been doing on "graphtropy" (using "distinction >> graphs" that generalize partitions), which I'll post a paper on >> sometime in the next week or two.... But that will be another email >> for another day... > > > Yeah graphical-entropy is something that I keep trying to work on, except > that every new urgent disaster of the day distracts me from it. > > --linas >> >> >> -- 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 <mailto:opencog%2bunsubscr...@googlegroups.com> <mailto:opencog%2bunsubscr...@googlegroups.com <mailto:opencog%252bunsubscr...@googlegroups.com>> <mailto:opencog%2bunsubscr...@googlegroups.com <mailto:opencog%252bunsubscr...@googlegroups.com> <mailto:opencog%252bunsubscr...@googlegroups.com <mailto:opencog%25252bunsubscr...@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>> <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/CAHrUA35kQx%3DyDcLTynrThvi%3DrAVa15D-1PSwZpK_37Q%3DjZhcfw%40mail.gmail.com <https://groups.google.com/d/msgid/opencog/CAHrUA35kQx%3DyDcLTynrThvi%3DrAVa15D-1PSwZpK_37Q%3DjZhcfw%40mail.gmail.com><https://groups.google.com/d/msgid/opencog/CAHrUA35kQx%3DyDcLTynrThvi%3DrAVa15D-1PSwZpK_37Q%3DjZhcfw%40mail.gmail.com<https://groups.google.com/d/msgid/opencog/CAHrUA35kQx%3DyDcLTynrThvi%3DrAVa15D-1PSwZpK_37Q%3DjZhcfw%40mail.gmail.com>><https://groups.google.com/d/msgid/opencog/CAHrUA35kQx%3DyDcLTynrThvi%3DrAVa15D-1PSwZpK_37Q%3DjZhcfw%40mail.gmail.com<https://groups.google.com/d/msgid/opencog/CAHrUA35kQx%3DyDcLTynrThvi%3DrAVa15D-1PSwZpK_37Q%3DjZhcfw%40mail.gmail.com><https://groups.google.com/d/msgid/opencog/CAHrUA35kQx%3DyDcLTynrThvi%3DrAVa15D-1PSwZpK_37Q%3DjZhcfw%40mail.gmail.com<https://groups.google.com/d/msgid/opencog/CAHrUA35kQx%3DyDcLTynrThvi%3DrAVa15D-1PSwZpK_37Q%3DjZhcfw%40mail.gmail.com>>>. > For more options, visit https://groups.google.com/d/optout <https://groups.google.com/d/optout> <https://groups.google.com/d/optout <https://groups.google.com/d/optout>> <https://groups.google.com/d/optout <https://groups.google.com/d/optout> <https://groups.google.com/d/optout <https://groups.google.com/d/optout>>>. -- 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 <mailto:opencog%2bunsubscr...@googlegroups.com> <mailto:opencog%2bunsubscr...@googlegroups.com <mailto:opencog%252bunsubscr...@googlegroups.com>> <mailto:opencog%2bunsubscr...@googlegroups.com <mailto:opencog%252bunsubscr...@googlegroups.com> <mailto:opencog%252bunsubscr...@googlegroups.com <mailto:opencog%25252bunsubscr...@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>> <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/CACYTDBdm6M1y18G%3DQi%3D_rjJcdrEb5eAmx8ntxffKoRw_dG1OYw%40mail.gmail.com <https://groups.google.com/d/msgid/opencog/CACYTDBdm6M1y18G%3DQi%3D_rjJcdrEb5eAmx8ntxffKoRw_dG1OYw%40mail.gmail.com><https://groups.google.com/d/msgid/opencog/CACYTDBdm6M1y18G%3DQi%3D_rjJcdrEb5eAmx8ntxffKoRw_dG1OYw%40mail.gmail.com<https://groups.google.com/d/msgid/opencog/CACYTDBdm6M1y18G%3DQi%3D_rjJcdrEb5eAmx8ntxffKoRw_dG1OYw%40mail.gmail.com>><https://groups.google.com/d/msgid/opencog/CACYTDBdm6M1y18G%3DQi%3D_rjJcdrEb5eAmx8ntxffKoRw_dG1OYw%40mail.gmail.com<https://groups.google.com/d/msgid/opencog/CACYTDBdm6M1y18G%3DQi%3D_rjJcdrEb5eAmx8ntxffKoRw_dG1OYw%40mail.gmail.com><https://groups.google.com/d/msgid/opencog/CACYTDBdm6M1y18G%3DQi%3D_rjJcdrEb5eAmx8ntxffKoRw_dG1OYw%40mail.gmail.com<https://groups.google.com/d/msgid/opencog/CACYTDBdm6M1y18G%3DQi%3D_rjJcdrEb5eAmx8ntxffKoRw_dG1OYw%40mail.gmail.com>>>. For more options, visit https://groups.google.com/d/optout <https://groups.google.com/d/optout> <https://groups.google.com/d/optout <https://groups.google.com/d/optout>> <https://groups.google.com/d/optout <https://groups.google.com/d/optout> <https://groups.google.com/d/optout <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 <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/CAHrUA34XVDQHNeYjb4r9eFjmrZxN%3DfNmE6wDQTV%2B__cJpEF3qw%40mail.gmail.com <https://groups.google.com/d/msgid/opencog/CAHrUA34XVDQHNeYjb4r9eFjmrZxN%3DfNmE6wDQTV%2B__cJpEF3qw%40mail.gmail.com><https://groups.google.com/d/msgid/opencog/CAHrUA34XVDQHNeYjb4r9eFjmrZxN%3DfNmE6wDQTV%2B__cJpEF3qw%40mail.gmail.com<https://groups.google.com/d/msgid/opencog/CAHrUA34XVDQHNeYjb4r9eFjmrZxN%3DfNmE6wDQTV%2B__cJpEF3qw%40mail.gmail.com>><https://groups.google.com/d/msgid/opencog/CAHrUA34XVDQHNeYjb4r9eFjmrZxN%3DfNmE6wDQTV%2B__cJpEF3qw%40mail.gmail.com?utm_medium=email&utm_source=footer<https://groups.google.com/d/msgid/opencog/CAHrUA34XVDQHNeYjb4r9eFjmrZxN%3DfNmE6wDQTV%2B__cJpEF3qw%40mail.gmail.com?utm_medium=email&utm_source=footer><https://groups.google.com/d/msgid/opencog/CAHrUA34XVDQHNeYjb4r9eFjmrZxN%3DfNmE6wDQTV%2B__cJpEF3qw%40mail.gmail.com?utm_medium=email&utm_source=footer<https://groups.google.com/d/msgid/opencog/CAHrUA34XVDQHNeYjb4r9eFjmrZxN%3DfNmE6wDQTV%2B__cJpEF3qw%40mail.gmail.com?utm_medium=email&utm_source=footer>>>. For more options, visit https://groups.google.com/d/optout <https://groups.google.com/d/optout> <https://groups.google.com/d/optout <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/c7c8c997-7449-ffba-2e90-5ae2044d3c6d%40gmail.com. For more options, visit https://groups.google.com/d/optout.