Re: Triple-terms only as object of rdf:nameOf triples?

On 19/01/2024 12:42, Souripriya Das wrote:
> Following up on the discussions in yesterday's meeting, I was thinking 
> that we could actually keep RDF1.2 as a "set of triples", instead of 
> going for "set of triples and set of edges", while keeping things 
> simple by imposing some restrictions on triple-terms and their use (in 
> N-Triple) as explained below.
>
> Equivalence:
> ===========
> As I noted in yesterday's meeting, the following two are just 
> different ways of expressing the same thing:
>        :e | :s :p :o .                                      # A) uses 
> a special 4th component --> "name"
>        :e rdf:nameOf << :s :p :o >> .   # B) has three components at 
> top-level, but uses a complex term, called "triple-term", as the object
Yes.

>
> Restrictions for Simplicity:
> =====================
> We could go with option B (in N-Triple), but keep things simple by 
> imposing the following restrictions on triple-terms and their use:
>
>  *
>     No Nesting: None of the components of a triple-term can be a
>     triple-term.
>  *
>     Only as Object: A triple-term can only appear in the object position.
>  *
>     Only in rdf:nameOf Triples: A triple-term can be used in only
>     those triples that have the special property rdf:nameOf as predicate.
>
Mandating such restrictions (RFC 2119 "MUST NOT") is more complicated in 
the spec, not less. And for users, if material has to explain 
enforceable restrictions.

We can recommend good usage (even RFC 2119 "SHOULD NOT") , and we have 
talked about material in the primer.

> Note that these restrictions do not constrain expressive power in any 
> way because we can always get a name (e.g., :e) for a triple-term from 
> an rdf:nameOf  triple and we can use that name as as an ordinary term 
> (restricted to use as subject or object).
>
> Thanks,
> Souri.
>

Received on Saturday, 20 January 2024 20:52:33 UTC