Re: [Sem] alternative semantics

My summary:  There are a few glitches in the development but nothing 
significant.  Fully opaque blank nodes in quoted triples make quite a difference.

On 5/15/23 09:10, Antoine Zimmermann wrote:
> I have some comments inline:
> 
[...]
>>
>> Given a (simple) interpretation I define IQ(E) (quoted interpretation) as
>> if E is an IRI then IQ(E) = ISQ(E),
>> if E is a literal then IQ(E) = ILQ(E),
>> if E is a triple s p o . then IQ(E) = IT(IQ(s), IQ(p), IQ(o)).
> 
> At this point, if s (or o) are blank nodes, then IQ(s) (or IQ(o)) is not 
> defined. Do you mean "ground triple" on the last line?

Indeed.  Good catch.

> 
>> Given a (simple) interpretation I define IA(E) (asserted interpretation) as
>> if E is an IRI then IA(E) = IS(E),
>> if E is a literal then IA(E) = IL(E),
>> if E is a triple s p o. then IA(E) = IT(IQ(s), IQ(p), IQ(o)).
> 
> Do you confirm that it is not IA(E) = IT(IA(s), IA(p), IA(o))? In this case, 
> you could write more concisely: IA(E) = IQ(E). This has certain consequences 
> on transparency (see below).

It is the case that IQ is to be used here.

[...]

>> Adding blank nodes:
>> Given an interpretation I let A be a mapping from a set of blank nodes to IR.
>> Define [I*A](E) to be A(E) on blank nodes,
>>         <[I*A](S), [I*A](P), [I*A](O)> on triples of the form S P O. ,
> 
> what does this last line mean? I would imagine that there is a function:
> [IQ*A](E) = A(E) on blank nodes
> [IQ*A](E) = IQ(E) on IRIs and literals
> [IQ*A](E) = IT([IQ*A](s), [IQ*A](p), [IQ*A](o)) on triples E = s p o.
> 
> then:
> [IA*A](E) = A(E) on blank nodes
> [IA*A](E) = IA(E) on IRIs and literals
> [IA*A](E) = [IQ*A](E) otherwise.
> 
>>         and IA(E) otherwise.

The development here is an attempt to be similar to the development in the RDF 
1.1 Semantics.  It is not the case that there are IQ*A mappings and IA*A 
mappings, just an I*A mapping that depends on I and A (and an I+A mapping).  A 
slightly different development might be easier to follow.

[...]

>> For E an RDF graph define [I+A](E) = false if [I+A](E') = false for some 
>> triple E' in E, otherwise I(E) = true.
> 
> "otherwise I(E) = true." -> "otherwise [I*A](E) = true."

Indeed.  Thanks again.

[...]

>> To make literals transparent (+L) just add the condition
>> ILQ(E) = IL(E)
>> To make IRIs transparent (+I) just add the condition
>> ISQ(E) = IS(E)
> 
> If IA(s,p,o) = IQ(s,p,o) then it is possible to simulate transparent IRIs. 
> Consider the example:
> 
> <<:superman :can :fly>> :saydBy :LoisLane .
> :superman owl:sameAs :ClarkKent .
> 
> This does *not* entail:
> <<:ClarkKent :can :fly>> :says :LoisLane .
> 
> *but* suppose you replace all IRIs aaa that you want to make transparent into 
> <<aaa :W :W>>, then:
> 
> << <<:superman :W :W>> :can :fly >> :says :LoisLane .
> <<:superman :W :W>> owl:sameAs <<:ClarkKent :W :W>> .
> 
> This *does* entail:
> 
> << <<:ClarkKent :W :W>> :can :fly >> :says :LoisLane .

Yes, you can do this replacement but all that it shows is that when you 
replace an IRI by a quoted triple you get different entailments because quoted 
triples are handled differently than IRIs.  By why should you get the same 
entailments?  Replacing an IRI by a blank node gets you different entailments 
as well.

>> The second alternative semantics (pfps2) supports a partition of properties 
>> that determine whether their subject and object are interpreted 
>> syntactically or semantically.
>>
[...]
> 
> It seems to me that there can be RDF 1.1 entailments that are not 
> pfps2-entailments.

Such as?

>>
>> The third alternative semantics (pfps3) is a variation on the first 
>> alternative semantics where 3-tuples are members of the domain.  This makes 
>> the connection between quoted triples and facts more explicit.  To further 
>> this connection, IEXT is modified from a map to a set of 3-tuples.   This 
>> semantics is not the same as the first but the difference should not be 
>> visible in RDF or RDFS.
>>
>> The set of RDF triples is as above.
>>
>> A simple interpretation I = < IR, IP, IEXT, IS, IL, ISQ, ILQ > consists of
>> 1. A non-empty set IR of resources, called the domain or universe of I.
>> 2. A set IP, called the set of properties of I.
>> 3. A set IEXT, a subset of IP x IR x IR,
>>     such that the restriction of the first element to IS(owl:sameAs) is the 
>> identity mapping over IR.
> 
> I don't see how this is different from the IEXT of the previous semantics.

The point of this semantics is to make quoted triple look more like asserted 
triples.  It does two things in support of this:  1/ map quoted triple 
directly into 3-tuples in the domain of discourse, and 2/ change IEXT from a 
mapping from properties to pairs of resources into a set of 3-tuples.   The 
second change is simply a restating.  The first change does modify the 
semantics in a significant manner but, I think, not in a way that can be 
noticed in RDF or RDFS.

[...]

> This implies that:
> 
> <<:s1 :p1 :o1>> owl:sameAs <<:s2 :p2 :o2>> .
> <<:s1 :q :r>> :p :o .
> 
> entails:
> 
> <<:s2 :q :r>> :p :o .

Correct, but this is going outside RDF and RDFS.

[...]

>> In a (simple) interpretation I extend I to a truth mapping for ground 
>> triples and ground graphs.
>> For E a ground triple s p o. define I(E) = true if IS(p) is in IP and the 
>> 3-tuple <IA(s), IA(p), IA(o)> is in IEXT otherwise I(E) = false.
> 
> This should be <IA(p), IA(s), IA(o)>, or the definition of IEXT above should 
> be changed.

Correct, and a similar change of order is needed for IQ.
> 
>> For E an RDF graph define I(E) = false if I(E') = false for some triple E' 
>> in E, otherwise I(E) = true.

[...]


>> :lois :believes << _:x :wears :glasses >> .
>>
>> :lois :believes << :clark :heightinfeet "6"^^xsd:int >> .
>> :believes rdf:type rdf:SemanticProperty .
>> entails in +L semantics or in pfps2 only
>> :lois :believes << :superman :heightinfeet "6"^^xsd:integer >> .
> 
> s/:superman/:clark/

Correct.


>> A fully opaque semantics (pfps4) would add to pfps1
>> 9. A mapping IBQ from blank nodes into IR.
>> if E is a blank node then IQ(E) = IBQ(E)
>> and make the change
>> Define [I+A] to be A on blank nodes in asserted triples, < [I+A]S, [I+A]P, 
>> [I+A]O > on triples, and I otherwise.
>> but I don't think that there is then a semantic extension to transparent 
>> blank nodes.
>>
>> In this semantics
>>
>> :lois :believes << :clark :wears :glasses >> .
>> does not entail
>> :lois :believes << _:x :wears :glasses >> .
>>
>> :lois :believes << _:y :wears :glasses >> .
>> does not entail
>> :lois :believes << _:x :wears :glasses >> .
>>
> 
> This semantics requires a heuristic to decide whether 2 syntactic tokens for 
> blank nodes denote the same blank node or not. Within a single RDF document, 
> this is easy, but what if you have a file with:
> 
> <<[] a <Type>>> <p> <o> .
> 
> Is the bnode the same as the one in another file with:
> 
> <<[] a <Type>>> <p> <o> .
> 
> if not, it leads to the very unintuitive fact that 2 identical RDF documents 
> do not entail each other.

I'm not so sure that this is unintuitive, based on how blank node identifiers 
work in different documents.  The blank node in

<< _:x :y :z >> :a :b .

is in principle different from the blank node in

<< _:x :y :z >> :a :b .

so the two RDF graphs would not entail each other.

To get the entailment to follow if blank nodes are opaque you need to have 
some notion of a context where a blank node identifier always refers to the 
same blank node.

Fully opaque blank nodes appear to be required for the use case of recording 
changes to RDF graphs if quoted triples are used to record the added and 
deleted triples.

peter

Received on Monday, 15 May 2023 14:18:20 UTC