Re: working with Skolem IRIs

On 09/06/2021 20:38, David Booth wrote:
> On 6/9/21 8:44 AM, William Van Woensel wrote:
>> Thanks Jos, I updated the N3 editor :-)
>>
>> I do have a question about these solutions:
>>
>> E.g.,
>>
>> tom a :Cat.
>> _:e_x_1 a :Cat.
>> :we :doubt {:tom a :Dog}.
>> :we :doubt 
>> {<http://josd.github.io/.well-known/genid/b2nrBWsoaecgOIC7KXr1yViiq:k#e_x_1 
>> <http://josd.github.io/.well-known/genid/b2nrBWsoaecgOIC7KXr1yViiq:k#e_x_1>> 
>> a :Dog}.
>>
>> When treating the skolem-iri as a regular IRI, does this say that we 
>> doubt that the thing "_:e_x_1", which we know is a Cat, is also a dog 
>> (which is the goal, I think)?
>>
>> The RDF 1.1 mentions the following about skolem IRIs: "Systems may 
>> wish to mint Skolem IRIs in such a way that they can recognize the 
>> IRIs as having been introduced solely to replace blank nodes. This 
>> allows a system to map IRIs back to blank nodes if needed."
>>
>> In the above case, should the system know that the skolem-iri 
>> corresponds to the original blank node (and thus act accordingly)? 
>> I.e., do both terms co-refer to the same resource? ..
>
> I don't think that line in the RDF 1.1 Semantics means that a Skolem 
> IRI would be mappable back to the original blank node label.  I always 
> interpreted it to mean simply that Skokem IRIs could be mapped back to 
> a fresh set of blank nodes.
>
> Even if a particular system did retain the original blank node label 
> in the Skolem IRI (to enable it to be mapped back to the original 
> blank node label), I think the system would be on very shaky ground to 
> assume that the *current* blank node label _:e_x_1 is intended to 
> refer to the *same* blank node from which the Skolem IRI was 
> originally generated.  I think the situation is analogous to loading 
> two independent RDF files: the same blank node label appearing in both 
> files should not be assumed to denote the same blank node, unless you 
> have special information that clearly indicates that that is intended.

+1 to what David wrote.

The last line of the conclusion merely says "there is a thing (with a 
funny name) that we doubt is a Dog.

That particular thing can not be traced back to being a Cat, which is 
probably missing if we intend to explain the reasoning steps:

   There exists a Cat

     hence

   let's pick one and name it <http...#e_x_1> (i.e.skolemization)

     hence

   <http...#e_x_1> is a Cat

     hence

   we doubt that <http...#e_x_1> is a Dog (per the rule)

So I guess I would vote to add

<http://josd.github.io/.well-known/genid/b2nrBWsoaecgOIC7KXr1yViiq:k#e_x_1> 
a :Cat.

    (in addition or in replacement of _:e_x_1 a :Cat )

in EYEs conclusion for this example.

>
> Thanks,
> David Booth
>
>>
>>
>> William
>>
>>
>> On 2021-06-08 1:54 p.m., Jos De Roo wrote:
>>> Ooops..
>>> The 3rd case should have been
>>>
>>> $ cat test3.n3
>>> @prefix : <https://example.org/ns/example# 
>>> <https://example.org/ns/example#>> .
>>>
>>> :we :doubt { _:x a :Unicorn }.
>>> :we :doubt { :rex a :Unicorn }.
>>>
>>> @forAll :x.
>>> { :we :doubt { :x a :Unicorn } } => { :we :wish { :x a :Unicorn } }.
>>>
>>> $ eye --quiet --nope test3.n3 --pass 2> /dev/null
>>> PREFIX : <https://example.org/ns/example# 
>>> <https://example.org/ns/example#>>
>>>
>>> :we :doubt 
>>> {<http://josd.github.io/.well-known/genid/oiYDWzZAZyTTWrZsgJjysvBz7cY#e_x_1 
>>> <http://josd.github.io/.well-known/genid/oiYDWzZAZyTTWrZsgJjysvBz7cY#e_x_1>> 
>>> a :Unicorn}.
>>> :we :doubt {:rex a :Unicorn}.
>>> :we :wish 
>>> {<http://josd.github.io/.well-known/genid/oiYDWzZAZyTTWrZsgJjysvBz7cY#e_x_1 
>>> <http://josd.github.io/.well-known/genid/oiYDWzZAZyTTWrZsgJjysvBz7cY#e_x_1>> 
>>> a :Unicorn}.
>>> :we :wish {:rex a :Unicorn}.
>>>
>>>
>>> There are also some more eye corrections (esp. for rule generating 
>>> rules)
>>> and the latest release is now 
>>> https://github.com/josd/eye/releases/tag/v21.0608.1647 
>>> <https://github.com/josd/eye/releases/tag/v21.0608.1647>
>>>
>>> Jos
>>>
>>> -- https://josd.github.io/ <http://josd.github.io/>
>>>
>>>
>>> On Tue, Jun 8, 2021 at 3:06 PM Jos De Roo <josderoo@gmail.com 
>>> <mailto:josderoo@gmail.com>> wrote:
>>>
>>>     Thanks for the constructive meeting yesterday
>>> https://docs.google.com/document/d/1A3HAUhjaVnnJ6yVbFAvIBRJQjUY9aFlQ2_bGxkD0mnE/edit
>>> <https://docs.google.com/document/d/1A3HAUhjaVnnJ6yVbFAvIBRJQjUY9aFlQ2_bGxkD0mnE/edit>
>>>     and ss discussed, I investigated the 3 test case
>>>     http://ppr.cs.dal.ca:3002/n3/editor/s/BCjsuKDM
>>>     <http://ppr.cs.dal.ca:3002/n3/editor/s/BCjsuKDM>
>>>
>>>     http://ppr.cs.dal.ca:3002/n3/editor/s/c3BNl6HQ
>>>     <http://ppr.cs.dal.ca:3002/n3/editor/s/c3BNl6HQ>
>>>
>>>     http://ppr.cs.dal.ca:3002/n3/editor/s/36y4Kyvc
>>>     <http://ppr.cs.dal.ca:3002/n3/editor/s/36y4Kyvc>
>>>
>>>     and made corrections in the latest eye release
>>>     https://github.com/josd/eye/releases/tag/v21.0608.1236
>>> <https://github.com/josd/eye/releases/tag/v21.0608.1236>
>>>
>>>     In detail, the answers are now as follows:
>>>
>>>     $ cat test1.n3
>>>     Prefix : <https://example.org/ns/example#
>>>     <https://example.org/ns/example#>>
>>>
>>>     :tom a :Cat.
>>>     _:x a :Cat.
>>>
>>>     {?x a :Cat}=>{:we :doubt {?x a :Dog}}.
>>>
>>>     $ eye --quiet --nope test1.n3 --pass 2> /dev/null
>>>     PREFIX : <https://example.org/ns/example#
>>>     <https://example.org/ns/example#>>
>>>
>>>     :tom a :Cat.
>>>     _:e_x_1 a :Cat.
>>>     :we :doubt {:tom a :Dog}.
>>>     :we :doubt
>>> {<http://josd.github.io/.well-known/genid/b2nrBWsoaecgOIC7KXr1yViiq:k#e_x_1
>>> <http://josd.github.io/.well-known/genid/b2nrBWsoaecgOIC7KXr1yViiq:k#e_x_1>>
>>>     a :Dog}.
>>>
>>>     $ cat test2.n3
>>>     @prefix : <https://example.org/ns/example#
>>>     <https://example.org/ns/example#>> .
>>>
>>>     :we :doubt { _:x a :Unicorn }.
>>>     :we :doubt { :rex a :Unicorn }.
>>>
>>>     @forAll :x.
>>>     { :we :doubt { :x a :Unicorn } } => { :we :like :x }.
>>>
>>>     $ eye --quiet --nope test2.n3 --pass 2> /dev/null
>>>     PREFIX : <https://example.org/ns/example#
>>>     <https://example.org/ns/example#>>
>>>
>>>     :we :doubt
>>> {<http://josd.github.io/.well-known/genid/Cq1oCASTEiQwLTKPixnecepqJCg#e_x_1
>>> <http://josd.github.io/.well-known/genid/Cq1oCASTEiQwLTKPixnecepqJCg#e_x_1>>
>>>     a :Unicorn}.
>>>     :we :doubt {:rex a :Unicorn}.
>>>     :we :like _:e_x_1.
>>>     :we :like :rex.
>>>
>>>     $ cat test3.n3
>>>     @prefix : <https://example.org/ns/example#
>>>     <https://example.org/ns/example#>> .
>>>
>>>     :we :doubt { _:x a :Unicorn }.
>>>     :we :doubt { :rex a :Unicorn }.
>>>
>>>     @forAll :x.
>>>     { :we :doubt { :x a :Unicorn } } => { :we :like :x }.
>>>
>>>     $ eye --quiet --nope test3.n3 --pass 2> /dev/null
>>>     PREFIX : <https://example.org/ns/example#
>>>     <https://example.org/ns/example#>>
>>>
>>>     :we :doubt
>>> {<http://josd.github.io/.well-known/genid/3qFbvxHHHzcCfeYYMoDVFV79S5g#e_x_1
>>> <http://josd.github.io/.well-known/genid/3qFbvxHHHzcCfeYYMoDVFV79S5g#e_x_1>>
>>>     a :Unicorn}.
>>>     :we :doubt {:rex a :Unicorn}.
>>>     :we :like _:e_x_1.
>>>     :we :like :rex.
>>>
>>>
>>>     PS William, if fine, could you install the latest eye
>>>     https://github.com/josd/eye/releases/tag/v21.0608.1236
>>> <https://github.com/josd/eye/releases/tag/v21.0608.1236>
>>>     at http://ppr.cs.dal.ca:3002/n3/editor/
>>>     <http://ppr.cs.dal.ca:3002/n3/editor/>
>>>     and BTw thanks for such a nice tool, it's really nice and useful!
>>>
>>>     -- https://josd.github.io/ <http://josd.github.io/>
>>>
>

Received on Wednesday, 9 June 2021 20:42:02 UTC