- From: Jos De Roo <josderoo@gmail.com>
- Date: Tue, 25 Jan 2022 11:56:41 +0100
- To: Doerthe Arndt <doerthe.arndt@tu-dresden.de>
- Cc: William Van Woensel <william.vanwoensel@gmail.com>, Pierre-Antoine Champin <pierre-antoine@w3.org>, Gregg Kellogg <gregg@greggkellogg.net>, "public-n3-dev@w3.org" <public-n3-dev@w3.org>
- Message-ID: <CAJbsTZe0Lp7uGAdnD_DJY1c9aMROPR5Jcx2Dc=rVupEXKAzQsA@mail.gmail.com>
Dear Doerthe, Agreed and a while ago I did some experiments in which the variables in quoted graphs were replaced by either (e:existential ?X) or (e:universal ?X) and then using rules like you also suggested to transform that into regular data N3 data/rules/queries. It is also quite close to Pierre-Antoine's proposal of one variable type. The scope of those variables is the so-called statement level. It actually worked quite well. Kind regards, Jos -- https://josd.github.io On Tue, Jan 25, 2022 at 10:46 AM Doerthe Arndt <doerthe.arndt@tu-dresden.de> wrote: > Dear Jos, > > I was too fast in the previous mail. There is one example where cwm and > Eye differ: http://ppr.cs.dal.ca:3002/n3/editor/s/okGlsqyV > > But that does not change the message from the previous mail. > > Kind regards, > Dörthe > > > Am 25.01.2022 um 10:38 schrieb Arndt, Dörthe <doerthe.arndt@tu-dresden.de > >: > > Dear Jos, > > Thank you for sharing. To complete your example, I also added universal > quantification: http://ppr.cs.dal.ca:3002/n3/editor/s/IWXT3bhG > The reasoners still both do the same. > > I think that from a logical point of view, some of these derivations are > problematic. But I also better understand, why you would be against fully > introducing explicit quantification. That would require us to make a whole > theory how reasoning works for the cases mentioned and then to also > implement it accordingly which most likely will never be done since there > are not that many use cases which really require that complexity. > > My proposal was thus more to have some kind of notation for example for > proofs with which we can only do further derivation if we express that > structure in the rules. Maybe there is a third option between skolem iris > and explicit quantification with only minimal support which I am not seeing > (yet)? > > Kind regards > Dörthe > > > > Am 25.01.2022 um 01:10 schrieb Jos De Roo <josderoo@gmail.com>: > > Dear Doerthe, > > I was curious how your 5 examples currently fare with cwm and eye > and they both give the same results! Yes, the same results! > > You can try it at http://ppr.cs.dal.ca:3002/n3/editor/s/tR5T9red > > So there is a state of the art with explicit quantification and I was > not expecting that cwm and eye were so close here. > > Jos > > -- https://josd.github.io > > > On Mon, Jan 24, 2022 at 11:21 PM Doerthe Arndt < > doerthe.arndt@tu-dresden.de> wrote: > >> Dear all, >> >> After our meeting today I thought about explicit quantification and can >> say that I actually like the idea to have it in N3 as some kind of >> annotation which has no meaning for the reasoning except that it is a kind >> of pattern. My vision here is that we would have a variable namespace >> which can be combined with quantifiers. Whenever a cited graph contains a >> quantifier, we simply disallow unification with the triples in that graph >> unless we also have the quantifier. So, if we come back to my example: >> >> :bob :smurfs { @forSome :X. :X a :Unicorn. }. >> >> { ?y :smurfs { @forSome :X. :X a :Unicorn } } => { ?y a :NaivePerson }. >> >> Should result in :bob a :NaivePerson. but >> >> :bob :smurfs { @forSome :X. :X a :Unicorn. }. >> >> { ?y :smurfs { _:x a :Unicorn } } => { ?y a :NaivePerson }. >> >> should not. >> >> Of course, things could get more complicated here: >> >> :bob :smurfs { @forSome :X. :X a :Unicorn. }. >> >> { ?y :smurfs ?g. ?g log:includes {?x a :Unicorn} } => { ?y a :NaivePerson >> }. >> >> Should not fire, but what about >> >> :bob :smurfs { @forSome :X. :X a :Unicorn. :Unicorn a :MagicalCreature }. >> >> { ?y :smurfs ?g. ?g log:includes {?x a :MagicalCreature } } => { ?y a >> :NaivePerson }. >> >> So, here we would have to agree and either decide that the moment that >> there is a quantifier involved in the graph, we stay away and do not match >> anything, we could use the name-space to know when not to match or we make >> a more fine-grained theory about scopes (but here we can really get into >> the problems, Jos mentioned). An example: >> >> :bob :smurfs { @forSome :X. :X a :Unicorn. :X :says {:sokrates a :Person} >> }. >> >> { ?y :smurfs ?g. ?g log:includes {?x :says {:sokrates a :Person} } } => { >> ?y a :NaivePerson }. >> >> Here, we see that the namspace alone can’t be a reason to allow or >> disallow a unification. We would need some concept to express, when a >> triple is scoped, and this theory could indeed get complicated. >> >> (So,I see your concerns here, Jos.) >> >> So, why do I even propose that kind of pattern? The answer is that I like >> that we would have some way to express the patterns which go beyond our >> logic which is limited to implicit quantification without loosing the >> possibility to involve them to our theory. We could then explicitly define >> our reasoning calculus which only allows implicit quantification and >> provide rules to support more sophisticated theories. We cannot express >> that by only having constants because then there would be no way of >> blocking unification. >> >> My ideas are not really thought through yet (it cn perfectly be that I >> change my mind next week, also depending on your comments ;) ). But I >> wanted to elaborate why (for now), it seems to be an interesting idea to me. >> >> Kind regards >> Dörthe >> > > >
Received on Tuesday, 25 January 2022 11:02:38 UTC