Re: Consolidating triple/edges -- occurrence set version

On 11/01/2024 08:19, Olaf Hartig wrote:
> Hi Andy,
> 
> Thanks for writing down this consolidation attempt! Unfortunately,
> there seems to be a problem in there ...

And thanks for reviewing it.

It is a rough idea and will need refinement but I wanted to get the 
general idea out. To get a solid definition needs putting in terms for 
all parts of teh RDF specs and I'm not that much of an expert in the 
more theoretical areas.

> 
> On Wed, 2024-01-10 at 22:46 +0000, Andy Seaborne wrote:
>> [...]
>>
>> In this variation, the RDF abstract data model has "occurrences sets"
>> as RDF terms.
> 
> Given that you say "as RDF terms", I assume that each such "occurrences
> set" may be used as subject or object of an RDF triple. Correct?

Yes. We migh restruict that but that does lead to other problems.
(c.f. rdfs:range which puts literals as subjects in rdfs3)
https://www.w3.org/TR/rdf12-semantics/#rdfs_patterns

I'm trying to not say "triple" because as soon as it is a triple, then 
all inferences from that triple apply (from our recent discussions).

The idea is to have a concept that is the S-P-O actually used in the 
graph whether it is same graph as the occurrence data or making 
statement about a another graph.

> Notice that this question is just asking for clarification, and it is
> not actually relevant regarding the problem that I want to point out.
> 
>> An "occurrence set" for S,P,O is the set of all named occurrences
>> that have S,P,O in those positions. There is one occurrence set for
>> every triple.
> 
> I would have a question about the latter sentence but, since this is
> also not relevant regarding the problem, I keep it for the moment.
> 
> The relevant part is in the first sentence of this paragraph; namely,
> by the definition that you give here, the kind of things that an
> "occurrence[s] set" contains are "named occurrences", for which next
> you define:
> 
>> A named occurrences is a pair of (name, occurrence) where
>> "occurrence" is member of an occurrence set.
> 
> Here comes the crux of the problem. By this definition, a "named
> occurrence" contains something called "occurrence" that "is member of
> an occurrence set". If I combine this definition with your definition
> of "occurrence set" as given above, I notice that such an "occurrence"
> (within a "named occurrence") must be a "named occurrence" because,
> according to your definition of "occurrence set", the elements/members
> of occurrence sets are "named occurrences". In other words, by these
> definitions, every "named occurrence" contains a "named occurrence",
> which contains a "named occurrence", etc. Hence, there is an
> unresolvable cycle in these definitions.
> 
> Or did I misunderstand anything?

No - it's a bad definition - thank you for pointing it out.

We have "occurrences" (concept) in the data.

An occurrence is a use of a triple in the graph.

A named occurrence is a name for the occurrence as a resource.
   Can have multiple names - this give the different sets
   of statements about the occurrence.

An "occurrence set" for SPO is the (infinite) set of possible named 
occurrences. Instead of of "occurrence set" a plain 3-tuple of SPO might 
work - it is not a triple.

     Andy

> -Olaf
> 
> 
>> Occurrence sets replace triple terms.
>> https://lists.w3.org/Archives/Public/public-rdf-star-wg/2023Dec/0033.html
>>
>> Named occurrences are not part of the RDF data model (abstract
>> syntax).
>>
>> The syntax <<[ ]>> is used below for now to be different to triple
>> term
>> <<( )>>. Had that not been used already, it would be better as <<(
>> )>>
>> because () is often used for tuples.
>>
>> An implementation that wishes have great named occurrence
>> performance
>> can have data structure for (n,s,p,o) with indexed lookup operations.
>>
>> ## Turtle and N-Triples.
>>
>>       << _:n | s p o >> :q :z .
>>
>> is a syntax form and is equivalent to the N-triples:
>>
>>       _:n rdf:occurrenceOf <<[ :s :p :o ]>> .
>>       _:n :q :z .
>>
>> "memberOf" or variants on "member" don't look good because
>> rdfs:member
>> already exists.
>>
>> Now given a name "n" (blank node or URI) found by some means, then
>>
>>       _:n rdf:occurrenceOf ?X .
>>
>> finds the occurrence set term, which has the subject/predicate and
>> object.
>>
>> Annotation syntax applies as before.
>>
>> An RDF graph is a set of triples.
>> There is no need for a virtual property.
>>
>> It may work to have a class of occurrences for S/P/O where the
>> occurrence set is the class extension.
>>
>>       Andy
>>
>>

Received on Thursday, 11 January 2024 10:32:13 UTC