- From: Pierre-Antoine Champin <pierre-antoine@w3.org>
- Date: Tue, 19 Dec 2023 09:47:53 +0100
- To: Souripriya Das <souripriya.das@oracle.com>, RDF-star Working Group <public-rdf-star-wg@w3.org>
- Message-ID: <0d7659b9-bd55-4127-84c8-ab62f454024d@w3.org>
Hi Souri,
(NB: I'm adopting Andy's updated syntax introduced there:
https://www.w3.org/mid/94915f6b-b46f-44d4-91cc-db93d71fb3b9@apache.org
to avoid ambiguity.)
On 18/12/2023 22:53, Souripriya Das wrote:
> Hi Pierre-Antoine,
>
> The idea of RDFn profile sounds interesting, but what do you see as
> the elements in "Full" MINUS "RDFn Profile"?
As I wrote below, the "RDFn" profile triple terms can not occur anywhere
else than in the object of rdf:occurrenceOf.
So the following triple:
<<( :s :p :o )>> :accordingTo :alice.
would be in RDF1.2 "Full", but not in RDF1.2 "RDFn".
Note that in RDF1.2 "RDFn", you could still write (in Turtle)
<<| :id | :s :p :o >> :accordingTo :alice.
as it would be syntactic sugar for
:id rdfs:occurrenceOf <<( :s :p :o)>>.
:id :accordingTo :alice.
which meets the restrictions on the "RDFn" profile.
I am aware that RDFn, as you proposed it, is able to "emulate" the first
example by using auto-named triples. I have my concerns with
auto-naming, which I would rather keep out of the abstract syntax. But
nevertheless, it is good to have guidance on how to encode RDF 1.2
"Full" into more constrained profiles, and auto-naming can play this role.
I hope this answers your question.
pa
>
> Thanks,
> Souri.
>
>
> ------------------------------------------------------------------------
> *From:* Pierre-Antoine Champin
> *Sent:* Monday, December 18, 2023 9:24 AM
> *To:* Andy Seaborne; RDF-star Working Group
> *Subject:* [External] : Re: Consolidating triple/edges
>
> Hi all,
>
> Andy's proposal below (which I have to say I like very much) gave me
> an additional idea:
> if we were to follow it, we could consider introducing a third profile
> that would sit between Basic (no triple terms) and "Full" (no
> restrictuon), by allowing triple terms /only/ as the object of
> rdf:occurrenceOf (in an asserted triple).
>
> A working title for this intermediate profile could be "RDFn" profile,
> because my intuition is that this profile covers most of what RDFn
> aims to do, and could be implemented in the same ways as RDFn (i.e. by
> adding a 4th column to triples, the 4th column being the identifier).
>
> I see how more profile could mean more fragmentation of the
> ecosystem... but it could also mean that more people find an option
> they are happy with in RDF 1.2, and it is better if those options are
> clearly laid out in the spec than "improvised" by each unhappy
> implementer.
>
> best
>
> On 12/12/2023 21:59, Andy Seaborne wrote:
>
> Here is an attempt to write out the details of what I think has
> been said recently.
>
> It is addressing "publishing information about multi-edges".
> (Ideas here are from WG members - the mistakes are mime.)
>
>
> Multiple edges with the same label are handled as multiple
> occurrences - the predicate URI of the RDF triple is thought as a
> conceptual relationship - with multiple sets of annotations.
>
> This preserves the uniqueness of triples in a graph, and allows
> independent collections of assertions about a relationship. Such
> collections of assertions do not get entangled on merge.
>
>
> ## Turtle
>
> Add to Turtle a new statement (grammar rule 2):
>
> << occurrenceName | :s :p :o >> .
>
> This names an occurrence of the triple s p o.
>
> The triple is not asserted, keeping "assertion" and "occurrence"
> as orthogonal concepts even if they might commonly be used together.
>
> occurrenceName is a URI or blank node, including [] (the ANON
> terminal rule 47 in Turtle - no triples inside the []).
>
> It is better to have the name first to allow for split lines and
> modified annotation syntax below.
>
>
> ## N-Triples
>
> In N-Triples, reflecting the RDF abstract data model, there is a
> property to relate occurrence to a triple term.
>
> :occurrenceName rdf:occurrenceOf << :s :p :o >> .
>
> There are triples terms in the data model
> (RDF-Concepts - section 3.1 : editors draft [2]).
>
> Renaming "quoted triple" as "triple term" would be better because
> it has less implication of the usage.
>
> The NT syntax would be available in Turtle in the same way that
> rdf:first is available in Turtle - and with the same expectation
> that it would rarely be used.
>
>
> ## RDF Graph Merge
>
> Graph merge happens as before - blank nodes need to be kept apart.
>
>
> ## Annotation
>
> This gives the modified annotation syntax as per Thomas's email [1]:
>
> :liz :spouse :dick { id:1 | :start 1964; :end 1974 |} .
> :liz :spouse :dick { id:2 | :start 1975; :end 1976 |} .
>
>
> Slight syntax tweak: For SPARQL, reusing { has to be careful
> because { is a group start.
>
> :liz :spouse :dick {| id:1 | :start 1964; :end 1974 |} .
> :liz :spouse :dick {| id:2 | :start 1975; :end 1976 |} .
>
> which would map to
> id:1 rdfx:occurrenceOf << :liz :spouse :dick >> ;
> :start 1964; :end 1974 .
>
> id:2 rdfx:occurrenceOf << :liz :spouse :dick >> ;
> :start 1975; :end 1976 .
>
>
> and asserting:
>
> :liz :spouse :dick .
>
>
> ## Named occurrences in term slots
>
> << occurrenceName | :s :p :o >> could also be used in a subject or
> object slot with the occurenceName being the RDF term for subject
> or object (c.f. RDF collections and predicate object lists) for
> use with unasserted triples:
>
> << [] | :s :p :o >>
> :start 1964 ;
> :end 1974 .
>
> Andy
>
> [1]
> https://lists.w3.org/Archives/Public/public-rdf-star-wg/2023Dec/0024.html
> <https://lists.w3.org/Archives/Public/public-rdf-star-wg/2023Dec/0024.html>
>
> [2] https://w3c.github.io/rdf-concepts/spec/#section-triples
> <https://w3c.github.io/rdf-concepts/spec/#section-triples>
> (as of 2023-12-10)
>
Attachments
- application/pgp-keys attachment: OpenPGP public key
Received on Tuesday, 19 December 2023 08:47:58 UTC