On Thu, Mar 15, 2018 at 2:49 PM, Nil Geisweiller <[email protected]> wrote:
> On 03/15/2018 08:19 AM, Linas Vepstas wrote: > >> >> >> On Thu, Mar 15, 2018 at 1:12 AM, Nil Geisweiller <[email protected] >> <mailto:[email protected]>> wrote: >> >> Regarding speeding up pattern matcher queries for numerical and such >> domains other than space-time, maybe we could use cover trees. >> >> Well, the space-time serrver is supposed to do stuff like this. >> > > Cool. But as far as I understood it uses a predetermined distance > measure. While a cover tree can work with any distance (thus with any > number of dimensions). > The space server is an octree -- a binary tree, in three dimensions. I think that means that its a power-of-two (times three) cover tree ? wikipedia: https://en.wikipedia.org/wiki/K-d_tree K=3 for us, (I don't know why we did not pick k=4) https://en.wikipedia.org/wiki/Octree I don't know why wikipedia has two articles on the same topic that don't mention one-another. https://en.wikipedia.org/wiki/Cover_tree I don't think I care much about what algo gets used here. I'm more interested in figuring out how the atomspace interfaces to it. > > > My suspicion is that cognitive control, a la OpenPsi, almost always > need to account for resources (time in particular). So for instance if > a cognitive process needs to fetch some knowledge it will only allow > itself to do some for a certain amount of time. > We need to stop calling it OpenPsi, and get a new name. Here's why: Eddie Monroe was insistent that it was a model of human psychology, and we had some ugly arguments about this. What Amen actually implemented was more of a rule-selection mechanism, so as to limit the number of rules being fed to .. (URE...!?) ... to control combinatorial explosion. Amen's code uses words like "drives", "desires", "goals", which can be interpreted either as human psychological states, or as abstract rule-selection algorithms. I am very interested in the later, mostly because the later is actually useful, whereas, as a model of human psychological state, its a real shitty model. So I really want to ditch "psi/psy" cause its kind-of got almost nothing to do with that. I don't know of a good alternative name for it, though. > > Depends on what you defined by cognitive processing, the URE could be > seen as close to that, in the sense that it can utilize the available > knowledge to drive itself, as well as generate such knowledge. > To me, its just a plain-old rule engine. To me, cognition is recognizing and learning patterns. Whatever. I guess we could/should have a discussion about the opencog meta-architecture someday. I like to avoid human psychological terms, like "cognition" and "psychology" for the components we are building, cause they seem to mislead and confuse people about what they can and cannot do. I'm not sure I know what "cognition" even means. --linas > > Nil > > >> >> Nil >> >> On 03/15/2018 07:56 AM, Linas Vepstas wrote: >> >> >> >> On Thu, Mar 15, 2018 at 12:37 AM, Alexey Potapov >> <[email protected] <mailto:[email protected]> >> <mailto:[email protected] <mailto:[email protected]>>> wrote: >> >> >> So this is an arithmetic query, rather than a spatial >> query -- >> but the two cases >> are similar in that both arithmetic operations and >> spatial >> operations are >> "special domains" with their own algebras, and by using >> those >> algebras one >> can answer queries in those domains more efficiently >> than one >> can do by generic >> means... >> >> >> Are you going to manually implement a special algorithm for >> each domain? >> >> >> How many domains are there? one? two? three? "satisfiability >> modulo theories" >> That's what those words mean. >> >> >> So to efficiently handles queries like those you're >> mentioning, >> I would want to >> use the PLN backward chainer rather than just the PM, >> and have >> the backward >> chainer perhaps connected to some computer-algebra >> engine as one >> option to use >> when encountering a GreaterThanLink ... >> >> >> What rules for BC to do have in mind for this case? Let's >> try them >> and see if the solution will be O(N). >> Again, you just say: don't use PM with GreaterThanLinks. >> Then, for >> what reason their support is presented in PM? >> >> >> I'm totally confused. "Greater than" is just a theory. Its like >> any other theory. >> What exactly, is the problem here? Many theories have O(N) >> algorithms. >> Many other theories do not. You seem to be talking about a >> linear programming >> problem? which is solvable in P? I lost track of the argument. >> >> >> Or one could tweak the PM to use the backward chainer >> only when >> encountering >> a GreaterThanLink, and just do plain vanilla pattern >> matching >> otherwise... >> >> >> PM doesn't need to know algebra to deal with this query >> efficiently. >> It just needs not to evaluate pairwise relations for every >> pair >> object, but only for objects belonging to same groups. >> >> >> So, stick them in the same group. If you design a crappy >> representation for the knowledge you are representing, then the >> query will run slowly. This is a lot like SQL -- many of the >> same concepts, ideas apply -- the pattern matcher solves >> satisfiability problems over a domain that is a bit richer than >> plain-old relational algebra - its a graph isomoprhism problem. >> But its not really all that different than any other >> satisfiability problem or the kinds of queries one writes. >> >> >> Yeah, I know. I just tried to imagine OpenCog in place of >> human mind. >> >> We are very very very very far away from human-mind type >> intelligence. Don't imagine it that way. You'll just get bad >> intuitions. >> > Maybe. So, what rules will work in this case? >> >> I think you need to describe the case again. It seemed to >> require the sorting of time intervals into a linear sequence, >> right? Pretty much all SQL databases support this natively. You >> write a query that says "QUERY foo SORT BY colname". Or "QUERY >> foo SORT BY 42*col_a - 2.35*col_b**3 + col_c>5?22:66" The >> current pattern matcher does not have any sort-by statement, >> although it could. As stated earlier, no one has ever tried to >> push numeric data through the pattern matcher before; except in >> some very super-naive and basic ways. If you really need >> search and sorting by numeric value, that's a solvable problem. >> Its a theory. Again "satisfiability modulo theories". We have >> an API for implementing theories. Its stupid and low-level, but >> it works. >> >> --linas >> >> >> >> -- cassette tapes - analog TV - film cameras - you >> >> >> >> >> -- >> cassette tapes - analog TV - film cameras - you >> > -- 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/CAHrUA342EaKXH6qrue-JWyUdeYtGwOG%2BFCLA4p9miXbc52JGmA%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
