This representation makes sense to me for biological pathways Although, making PLN deal with these is another problem...
On Mon, Aug 7, 2017 at 12:19 PM, Linas Vepstas <linasveps...@gmail.com> wrote: > Nothing wrong with lots of arrows arranged into loops. If I were doing this, > this is what I would propose: > > The single most important #1 special super-duper innovation I have recently > discovered is to represent biological pathways like so: > > SectionLink > CatalystNode "alpha-ketoglutarate dehydrogenase" > ConnectorSet > Connector > SubstanceNode "NAD^+" > Direction "input" > Connector > Substancenode "COA-SH" > Direction "input" > Connector > Substancenode "alpha-ketoglutarate" > Direction "input" > Connector > Substancenode"NADH" > Direction "output" > Connector > Substancenode"H^+" > Direction "output" > Connector > Substancenode"CO^2" > Direction "output" > Connector > Substancenode"Succynil-COA" > Direction "output" > > The above describes a single step in the Krebs cycle, having the indicated > inputs and outputs -- three inputs, four outputs, the directionality of the > half-arrows (i.e. the "connectors" explicitly indicated with the > DirectionLink). At the center of it all is the CatalystNode > > > See > https://en.wikipedia.org/wiki/Citric_acid_cycle#/media/File:Citric_acid_cycle_with_aconitate_2.svg > lower-right-hand side. > > The correct way to visualize this is like a spider: the spider-body is the > CatalystNode and the spider has seven legs: three input legs, four output > legs. > > Alternately, visualize this as a jigsaw puzzle piece, with seven tabs on it: > four tabs sticking out, and three hole areas cut in. You can assemble the > entire Krebs cycle by fitting together these jigsaw puzzle pieces. > > In link-grammar, these sections are called "disjuncts". In sheaf theory, > these objects are called "sections of a sheaf". In biology, they are called > "catalysts". > > --linas > > p.s. note that I am using a "ConnectorSet" in the above, instead of a > "ConnectorMemberLink" ... perhaps I should use a ConnectorMemberLink... > However I doubt that there are biological catalysts with more than 3-4-5 > inputs and 3-4-5 outputs. So I'm willing to let it slide, for now. The > alternative rep would be this: > > ConnectorMemberLink > CatalystNode "alpha-ketoglutarate dehydrogenase" > Connector > SubstanceNode "NAD^+" > Direction "input" > > plus six more of the above. it is very very suspicious that the above > resembles this: > > EvaluationLink > PredicateNode "alpha-ketoglutarate dehydrogenase" > ListLink > ConceptNode "NAD^+" > ConceptNode "input" > > however, I would strongly urge against this last representation! > > --linas > > > On Mon, Aug 7, 2017 at 1:31 PM, Ben Goertzel <b...@goertzel.org> wrote: >> >> a pathway in biology is actually a network with directed arrows and >> generally lots of loops.... there are even some hyperlinks e.g. for >> catalysis... a pathway is a subhypergraph... >> >> >> >> On Aug 7, 2017 11:25, "Linas Vepstas" <linasveps...@gmail.com> wrote: >>> >>> no clue why its appropriate for biological pathways. Mike is designing >>> that, not me. >>> >>> Anyway, a "pathway" is an ordered sequence where the ordering matters. >>> Neither SetLink, nor AndLink are ordered. So if you actually want to have a >>> path, i.e. a sequence of directed arrows, well .. you need to find a >>> representation of biological pathways as directed arrows. But this is >>> familiar ground, for opencog... >>> >>> --linas >>> >>> On Mon, Aug 7, 2017 at 1:21 PM, Ben Goertzel <b...@goertzel.org> wrote: >>>> >>>> OK I get that... but I don't see why it is appropriate for biological >>>> pathways... >>>> >>>> On Tue, Aug 8, 2017 at 2:19 AM, Linas Vepstas <linasveps...@gmail.com> >>>> wrote: >>>> > First, lets review SetLink: >>>> > >>>> > SetLink >>>> > ConceptNode "x" >>>> > ConceptNode "y" >>>> > ConceptNode "z" >>>> > >>>> > >>>> > EquivalenceLink >>>> > ConceptNode "last three letters of the alphabet" >>>> > SetLink >>>> > ConceptNode "x" >>>> > ConceptNode "y" >>>> > ConceptNode "z" >>>> > >>>> > >>>> > MemberLink >>>> > ConceptNode "x" >>>> > ConceptNode "last three letters of the alphabet" >>>> > MemberLink >>>> > ConceptNode "y" >>>> > ConceptNode "last three letters of the alphabet" >>>> > MemberLink >>>> > ConceptNode "z" >>>> > ConceptNode "last three letters of the alphabet" >>>> > >>>> > Again, with TV's: >>>> > >>>> > MemberLink <1.0> >>>> > ConceptNode "z" >>>> > ConceptNode "last letters of the alphabet" >>>> > MemberLink <0.9> >>>> > ConceptNode "w" >>>> > ConceptNode "last letters of the alphabet" >>>> > MemberLink <0.8> >>>> > ConceptNode "s" >>>> > ConceptNode "last letters of the alphabet" >>>> > MemberLink <0.2> >>>> > ConceptNode "m" >>>> > ConceptNode "last letters of the alphabet" >>>> > >>>> > >>>> > >>>> > Sooo .. AndMemberLink would be just like the above, except that >>>> > whereever >>>> > you see SetLink above, you would have AndLink, and wherever you see >>>> > MmeberLink above, you would have AndMemeberLink. >>>> > >>>> > --linas >>>> > >>>> > >>>> > >>>> > >>>> > On Mon, Aug 7, 2017 at 1:11 PM, Ben Goertzel <b...@goertzel.org> wrote: >>>> >> >>>> >> I don't understand the proposed semantics of AndMemberLink, could you >>>> >> explain? >>>> >> >>>> >> >>>> >> >>>> >> On Sat, Aug 5, 2017 at 1:07 AM, Michael Duncan <mjsdun...@gmail.com> >>>> >> wrote: >>>> >> > i actually think an AndLink-like semantics better fits biochemical >>>> >> > pathways >>>> >> > at a computationally tractable level than partitions in that below >>>> >> > the >>>> >> > level >>>> >> > of a whole organism, where one pathway ends and another begins is >>>> >> > largely >>>> >> > arbitrary. also, if one link is missing then the whole thing >>>> >> > doesn't >>>> >> > work >>>> >> > but the last bit of a dead end might be the start of another path >>>> >> > that >>>> >> > goes >>>> >> > to the same place, more like words and phrases that can be >>>> >> > rearranged >>>> >> > and >>>> >> > swapped in different ways to say the same thing. linus idea of >>>> >> > AndMemberLinks and OrMemeberLinks would get around the size >>>> >> > limitation >>>> >> > and >>>> >> > also seem like they would be useful for reasoning on moses models. >>>> >> > >>>> >> > On Monday, July 31, 2017 at 5:55:16 PM UTC-4, linas wrote: >>>> >> >> >>>> >> >> Hi Ben, Mike, >>>> >> >> >>>> >> >> >>>> >> >> On Fri, Jul 21, 2017 at 9:41 PM, Ben Goertzel <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 >>>> >> >>> >>>> >> >>> 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. >>>> >> > 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/e1df7273-da14-45f5-8d0d-5ebad0d31217%40googlegroups.com. >>>> >> > >>>> >> > For more options, visit 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 >>>> > >>>> > >>>> >>>> >>>> >>>> -- >>>> 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 > "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. > To view this discussion on the web visit > https://groups.google.com/d/msgid/link-grammar/CAHrUA35VJrBXkcyvbVqppXkH6Mq%3DSWHdQPQn6xBdiRL_x2qKAw%40mail.gmail.com. > > For more options, visit 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. 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/CACYTDBdWCnOboc-PO4PACF857JpZN6jKOAojaE-ybRSgPn7JzQ%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.