- From: Jos De Roo <josderoo@gmail.com>
- Date: Tue, 25 Jan 2022 01:10:50 +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: <CAJbsTZd-6ki9jwA4Jp3nbSYMHbUBCKCZOfMmap1eP7FsYcZXMw@mail.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 00:12:16 UTC