On Thu, Mar 15, 2018 at 12:37 AM, Alexey Potapov <pota...@aideus.com> 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 -- 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/CAHrUA35yXZUn4YTDB2CvL5MWigknCUjhfBFfTv28kDf3EfWAbg%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.