I'm sort of afraid that what I write below may torpedo a good effort, but ... I think its important and might lead to a better design.
Yesterday, I was reminded of grakn.ai -- it is a "graph knowledge base" and its very clean and well-designed. It is a very nice model of what (parts of) our own Atomese (should) look like. I am guessing that if Johannes tries to re-write, re-design his system in grakn.ai, it will make it a lot more clear as to what he is trying to do. It will also make it quite clear how opencog has many more tools and systems than grakn.ai does. Doing this exercise, even with pencil and paper, will make for a better system, and will make clear what the correct design should be. So -- here: look at this: There are five short examples here: https://grakn.ai/grakn-core They are: Panel 1 is labeled ER "Entity-Relationship" and these are just like our EvaluationLink/PredicateNode idea. Panel 2 is "Types", which is like our type system (the "deep types" part) Panel 3 is called "Rules" and its almost identical to our BindLink Panel 4 is called "Inference" and it is almost identical to running our GetLink Panel 5 is called "Analytics" and we don't do that. If you can recast your project in terms of grakn, it will make clear exactly how to do it with atomese. If you cannot, it will also make clear why opencog can do things that grakn cannot (and/or make clear other things ...) -- Linas On Thu, Jan 10, 2019 at 7:31 AM 'Nil Geisweiller' via opencog <[email protected]> wrote: > > Hi Johannes, > > On 1/9/19 6:18 PM, Johannes Castner wrote: > > with general statements that have one simple truth value (for now I'm > > setting the secondary parameter always to 1 but that can be easily > > PLN rules as currently implemented do not support well confidence > anyway. It is a work in progress. Basically dealing with second order > probabilities, as opposed to relying on crude heuristics, is costly to > compute and nontrivial to implement. But we're getting there, for > instance the URE control policy explicitly deals with second order > distributions, not PLN yet. > > > There's five people: > > john =Concept john > > mike =Concept mike > > judy=Concept judy > > anne=Concept Anne > > george= Concept george > > > > One of them will win some contest: Concept contest > > > > Winner is: > > george will-win (stv 0.1 1) > > mike will win (stv 0.2 1) > > john will win (stv 0.2 1) > > judy will win (stv 0.1 1) > > anne will win (stv 0.3 1) > > george will win (stv 1-p(all-the-other-ones) 1) > > you've repeated george, I suppose you meant > > anne will win (stv 1-others 1) > > > > > How do I insure that there's a statement, like will win and 5 outcomes, > > the probabilities of which always add to 1, such that if one probability > > changes all others will automatically adjust? > > PLN doesn't offer that out-of-the-box. Roman Treutlein is working on a > generalization of Truth Value that will make it possible to manipulate > second order distribution over any domain, not just [0,1]. Till it's > ready you need to represent that as atoms in the atomspace. > > So for instance you could represent each probability of winning of > each candidate (except anne) > > Inheritance <0.1 1> > Concept "win" > Concept "george" > ... > Inheritance <0.1 1> > Concept "win" > Concept "judy" > > Then that candidates are disjoint. > > And <0 1> > Concept "george" > Concept "mike" > ... > And <0 1> > Concept "judy" > Concept "anne" > > Then that all candidates are subsets of win. > > Inheritance <1 1> > Or > Concept "george" > ... > Concept "anne" > Concept "win" > > then I suppose, though I haven't tried, PLN could infer that > > Inheritance <0.4 1> > Concept "win" > Concept "anne" > > If you want to be general, you could axiomatize the notion of > partition and then, to be efficient, write a rule especially for it. > > > Also, do you think that there's a simpler way than the way that I have > > started to code for users to be able to make general statements with > > probabilities determined in a type of market? > > It's hard to tell, there are many ways to represent things. To really > help I would need to carefully read your example. > > Quick remark, > > two-are-fast > > seems ill-formed, LambdaLink only takes 1 or 2 outgoings, the first > one for the variable declaration, the second for the pattern (if used > in the context of the pattern matcher) or function (if directly > evaluated), however in your example it takes 3. I suppose you mean > BindLink, not LambdaLink. > > > I know that these are a lot of questions and I apologize ahead of time! > > Happy to help. If you can break down your example, or shrink to a > minimal size, yet still capturing the essence of what you want to > express, it would help. > > Nil > > > > > Thank you! > > > > Johannes > > > > > > > > On Tuesday, December 11, 2018 at 7:28:45 AM UTC, Nil wrote: > > > > Hi Johannes, > > > > On 12/10/18 6:48 PM, Johannes Castner wrote: > > > ; all users have an account > > > (EvaluationLink > > > account > > > (ListLink > > > User > > > ) > > > ) > > > > note that you don't need to wrap the argument with a ListLink if > > there's only one, you might write > > > > (EvaluationLink > > account > > User) > > > > > How do I say that an account has points in it, that can be > > updated and > > > > Depends on what you mean "has points in it". `account` is a predicate > > so it indeed can have stuff in it by using `EvaluationLink` as you did > > with `User`, which says `User` is in `account`. If `account` where a > > concept, then you could equivalently (or isomorphically equivalently) > > write > > > > (MemberLink > > User > > account) > > > > > that a user has that account etc? I'm sorry, I'm still rather > > new to > > > Atomese and I've been trying to figure this out but I'm seriously > > stuck. > > > Please help! > > > > It's not clear to me what you want to express. If you write it in FOL > > we'll definitely be able to translate it to Atomese. > > > > 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 [email protected] > > <mailto:[email protected]>. > > To post to this group, send email to [email protected] > > <mailto:[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/5459cd60-4a1f-4c4e-9079-d6608b5b032f%40googlegroups.com > > <https://groups.google.com/d/msgid/opencog/5459cd60-4a1f-4c4e-9079-d6608b5b032f%40googlegroups.com?utm_medium=email&utm_source=footer>. > > For more options, visit https://groups.google.com/d/optout. > > -- > You received this message because you are subscribed to the Google Groups > "opencog" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at https://groups.google.com/group/opencog. > To view this discussion on the web visit > https://groups.google.com/d/msgid/opencog/747038b4-66eb-b7d8-df78-177b7a7fd4eb%40gmail.com. > For more options, visit https://groups.google.com/d/optout. -- cassette tapes - analog TV - film cameras - 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 [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/CAHrUA37uG86n-Y41h5CBNk3Xp9TpXFZqhEg7cEge0J9M56sN-w%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
