- From: Amirouche Boubekki <amirouche.boubekki@gmail.com>
- Date: Sun, 7 Jul 2019 21:47:57 +0200
- To: Enrique Pérez Arnaud <enrique@cazalla.net>
- Cc: Enrique Pérez Arnaud <eperez@emergya.com>, semantic-web <semantic-web@w3.org>
- Message-ID: <CAL7_Mo8MOyy4B0wK9T4x-sCN7o45KDd00z2PK7re_83uydX6Vg@mail.gmail.com>
Like I said, I am very newbie to this kind of algorithms I will need to read some stuff about it. Seems like Artificial Intelligence: A Modern Approach has a chapter about the subject Le dim. 7 juil. 2019 à 21:07, Enrique Pérez Arnaud <enrique@cazalla.net> a écrit : > Hi Amirouche, > > On Sun, Jul 07, 2019 at 01:02:47PM +0200, Amirouche Boubekki wrote: > > > > Hello Enrique, > > > > Thanks for sharing! > > Thanks for taking interest :) > > > > > Le sam. 6 juil. 2019 à 20:53, Enrique Pérez Arnaud <enrique@cazalla.net> > a > > écrit : > > > > Hi all, > > > > Perhaps some of you might be interested in this library I've > released, that > > might be used to build production rule systems, with the peculiarity > that > > the cost of matching a fact to the knowledge base would be > logarithmic in > > the size of said knowledge base, measured as the number of rules > plus the > > number of facts in working memory. As far as I know, the current > state of > > the art is polynomial. > > > > https://gitlab.com/enriquepablo/syntreenet > > > > > > > > I am interested in this work. Mind the fact that I am a newbie and I > might ask > > trivial questions. > > > > First, I can not tell the importance of this work compared to existing > > solutions > > even if what is described in the README seems promising. > > > > Questions: > > > > A) What about the name syntreenet? > > "Network of syntagm trees". Just wanted a name that is unique in google. > > > > > B) What are Syntagm? > > See below > > > > > C) I read the following: > > > > > > "syntreenet knows nothing about syntax. Facts are a black box with > whatever > > internal structure that is appropriate for their universe of > discourse. > > syntreenet never composes a fact." > > > > > > What does syntax means in this context? > > Facts are truths; facts are what we are interested in. And facts might > have any internal structure imaginable. They might be triples, for > example, as in RDF, or they might be sets of key value pairs, or nested > lists, or whatever. I call syntax to that internal structure; syntax is > grammar from a different perspective. > > The point is that there is a universal transformation from facts built > with any imaginable grammar (so universal wrt the grammar), to > simple trees, and therefore to sets of tuples (the set of paths from > each leaf to the root). And those paths carry enough information about > the syntactic elements and their position within the facts so as to be used > to test whether some other fact matches them. > > So, what are syntagms? Facts can have any internal structure, but there is > a level of detail which must leak to syntreenet, which is the level at > which the objects can be logical variables or not. Syntreenet must be > able to know whether a given syntactic element in a fact (in one of the > paths corresponding to it) is a variable or not. > > In essence, the question is that in a deduction system we need to manage > 2 things, facts as carriers of truth and variables as carriers of > generalization; and that the way in which the variables are a part of > the facts, which depends on the grammar used to buid the facts, is not > needed in the deduction procedure, even though within that procedure we > need to see the variables within the facts. Using paths is like a > universal (grammar independent) way of peeking within the facts to find > the variables; a way to isolate the algorithm to make deductions from > the internal structure of the deductions. > > > > > It seems to me for the purpose of the demonstration, it would be easier > to > > avoid to be generic and stick to strings for facts and rules and have a > > convention for variables. What do you think? > > > > Based on this log: > > > > > > adding rule "X1 isa X2; X2 is X3 -> X1 isa X3" > > adding rule "X1 is X2; X2 is X3 -> X1 is X3" > > adding fact "animal is thing" > > adding rule "X1 isa animal -> X1 isa thing" > > adding rule "thing is X3 -> animal is X3" > > adding rule "X1 is animal -> X1 is thing" > > > > > > It seems like the algorithm rely on pre-computing rules based on > existing rules > > and facts, isn't it? > > If you have: > > X1 isa X2; X2 is X3 -> X1 isa X3 > > And you have: > > animal is thing > > then you necessarily have: > > X1 isa animal -> X1 isa thing > > So I would not call this pre-computing, perhaps we might call it > book-keeping - thinking in the RETE algorithm, which in this situation > would not produce a new rule, but keep the match in a beta node. I would > just call it logic. > > > It seems to me the inference process starts before the kb is actually > asked > > something. > > This is what production systems are about, in contrast to backward > chaining systems. > > Best! > > -- > Enrique Pérez Arnaud > -- Amirouche ~ amz3 ~ https://hyper.dev
Received on Sunday, 7 July 2019 19:48:33 UTC