- From: Pierre-Antoine Champin <pierre-antoine.champin@ercim.eu>
- Date: Wed, 1 Dec 2021 12:59:55 +0100
- To: Doerthe Arndt <doerthe.arndt@tu-dresden.de>
- Cc: Jos De Roo <josderoo@gmail.com>, "public-n3-dev@w3.org" <public-n3-dev@w3.org>
- Message-ID: <c45eea51-4c04-e6f2-e4f5-00c90dc1f3f1@ercim.eu>
On 29/11/2021 18:58, Doerthe Arndt wrote:
> Dear Pierre-Antoine, > > Thank you for your proposal, I am still thinking about it and have
a > few first questions/remarks: > > > 1. Can you explain, why |_:x
:says { _:x a :Unicorn }| is equivalent > to |_:x :says { _:y a :Unicorn
}?|
call the two graphs G1 and G2 respectively.
G1 |= G2 because for any model I of G1, we have I |= G2
by choosing R(_:y)=_:x (R(_:x) has to be ≠ _:x, but its value does not
matter))
and by choosing A(R(_:x)) appropriately such that the (top-level) triple
is satisfied by EXT_I.
G2 |= G1 because for any model I of G2, we have I |= G1
by choosing R(_:x)=_:y,
and by choosing A(_:y) such that the (top-level) triple is satisfied by
EXT_I.
More generally, a model of a graph G does not need to contain exactly
the quoted graphs from G in its mapping Q_I... It only to contain them
modulo some renaming.
> According to your interpretation, { _:x a :Unicorn } and { _:y a > :Unicorn } have different interpretations.
You seem to assume that models of G1 and/or G2 would contain both graphs
in img(Q_I), but that does not have to be the case.
Here is a minimal model for G1 and G2:
Delta = { Alice, Says, G, ImaginaryUnicorn }
Q_I = { G → `_:z a :Unicorn' }
D_I = { :says → Says, _:z → ImaginaryUnicorn }
EXT_I = { (Alice, Says, G) }
Both are entailed by this interpretation, renaming _:x or _:y to _:z,
respectively, and assigning R(_:x) to Alice.
> (...) I would like if |{ _:x a :Unicorn } and { > _:y a :Unicorn } had the same meaning or at least could have the
same > meaning. Why don’t we need that?
I hope I made it clearer why (I think) we don't need that *in the G1 vs.
G2 example*.
However, considering G3:
:alice :says { _:x a :Unicorn }.
:bob :says { _:y a :Unicorn }.
Here, any model would contain two isomorphic graphs, with different
meaning. That might be a problem... :-/
> > > 2. Your entailment |:alice :smurfs { :bob :likes _:x }.| To > >
|_:x :smurfs { :bob :likes _:x }.| > > Has as a consequences that > >
:alice :smurfs { :bob :likes _:x }. {?x :smurfs {:bob :likes ?x}}={?x >
a :auto-smurf}. > > Leads to > > _:x a :auto-smurf. > > I think that
could be a problem.
I am not sure that this entailment holds, but there is a problem
nonetheless.
Binding rule-variables to other variables is actually tricky, and does
not work as expected.
Consider G3:
_:x a :Cat.
_:y a :Unicorn.
{ _:z a :Unicorn } => { _:z :can :Fly }.
this does *not* entail G4:
_:y a :Unicorn ; :can :fly.
Consider the following interpretation
Delta = { X, A, Cat, Y, Unicorn, Z, Gb, Implies, Gh, Can, Fly, Superman }
Q and D as one would expect
EXT = { (X A C), (Y A Unicorn), (Gb Implies Gh), (Superman Can Fly) }
This interpretation clearly does not satisfies G4, and still, it
satisfies G3 in a nasty way:
choosing β(_:z) = _:w, we have I |= β(Gb) (e.g. with R=Id and A(_:w) = Y),
so we MUST have I |= β(Gh)... which is true by chosing R=Id and A(_:w) =
Superman!
Jos was right: defining the semantics of log:implies in terms of a
/renaming/ was a very bad idea!
In the next iteration, I plan to consider β as a mapping from Variables
to Delta, directly.
best
> > > I am still preparing more questions (but I have to think about >
log:notIncludes first :) ). > > Kind regards, Dörthe | | > > >> Am
29.11.2021 um 15:33 schrieb Doerthe Arndt >> <doerthe_arndt@yahoo.de
<mailto:doerthe_arndt@yahoo.de>>: >> >> >> >> ----- Weitergeleitete
Nachricht ----- *Von:* Jos De Roo >> <josderoo@gmail.com
<mailto:josderoo@gmail.com>> *An:* >> Pierre-Antoine Champin
<pierre-antoine.champin@ercim.eu >>
<mailto:pierre-antoine.champin@ercim.eu>> *CC:* >> public-n3-dev@w3.org
<mailto:public-n3-dev@w3.org> >> <public-n3-dev@w3.org
<mailto:public-n3-dev@w3.org>> *Gesendet:* >> Donnerstag, 25. November
2021, 23:19:47 MEZ *Betreff:* Re: N3 >> semantics new-new proposal >> >>
Hi Pierre-Antoine, >> >> This is just a quick feedback about the very
last paragraph ;-) >> >> Looking at log:notIncludes I found a
floundering issue in our >> implementation. It is fixed in the latest
EYE which now expects the >> object of log:notIncludes to be ground at
reasoning time. >> >> So only >> >> :gang :contains :bob, :charlie.
:alice :says { :bob :name "bob" }. >> { :alice :says _:g. _:g
log:notIncludes { _:s :name "bob" }. :gang >> :contains _:s. } => {
:alice :ignores _:s. }. >> >> entails >> >> :alice :ignores :charlie. >>
>> -- https://josd.github.io <https://josd.github.io/> >> >> >> On Thu,
Nov 25, 2021 at 12:39 PM Pierre-Antoine Champin >>
<pierre-antoine.champin@ercim.eu >>
<mailto:pierre-antoine.champin@ercim.eu>> wrote: >> >> Hi all, >> >> I
have a new proposal (now in a more readable format). >> >>
https://pad.lamyne.org/xZF7gcnxTLSNKdueLBYv2A >>
<https://pad.lamyne.org/xZF7gcnxTLSNKdueLBYv2A> >> >> Note that I
haven't checked it in depth yet. And that I haven't >> found a
satisfying way to model the semantics of log:notIncludes >> yet :-/ >>
>> best >> >
Attachments
- application/pgp-keys attachment: OpenPGP public key
Received on Wednesday, 1 December 2021 12:00:03 UTC