w3c / rdf-concepts

https://w3c.github.io/rdf-concepts/
Other
16 stars 2 forks source link

Add an informative definition for "reifying triple". #98

Closed gkellogg closed 3 months ago

gkellogg commented 3 months ago

The term is referenced from Turtle, and likely will be from other specifications with a concrete syntax.


Preview | Diff

TallTed commented 3 months ago

Given that we're using English words to construct our predicates, we should use the English meanings of those words.

On that basis, a reified triple is a triple which has been reified; a reified triple is NOT a triple which reifies another triple. The latter is a reifying triple, i.e., a triple which reifies, using the rdf:reifies predicate.

Not quite, as a triple term is written with <<( )>>

Much text has fallen out of sync. I quoted a triple term which had been written as << >>, not <<( )>>, as well as the detailed description of constructing that triple term which ended with the full example, << :subject :predicate :object ~ :IRIREF >>. Yes, the detailed description (which I did not author though I'm sure I commented on it) needs the parentheses characters ( ) to be added within the double-angle-brackets << >>, whether or not the other changes I've suggested are applied.

The really belongs in the Turtle repo, not Concepts, but I don't see why we would explicitly name tilde as a reifier delimiter any more than we would name < and > as IRI delimiters.

When talking about reifiers in text, we must distinguish between the "optional iri production or BlankNode production" and the tilde that precedes them, because when we later want to talk about the reifier, we will mean the iri production or the BlankNode production; we will not mean the ~ plus the iri production or BlankNode production.

...And we should distinguish between the angle brackets < > or parentheses ( ) or even just spaces ` in which we wrap an IRI, and the IRI itself; i.e.,http://example.com/is not an IRI — it's an< >-wrapped (or< >-delimited) IRI — the IRI is justhttp://example.com/, around which we often put some (optional!) wrapper (or delimiter) to make it more human-friendly, as it is thus more visibly distinct from the text in which it appears. This is entirely distinct from and unlike the *required*~in triple reification, which is as much (if not more) for the machine as it is for the human, as we have made it a *mandatory* separator between theobjectand thereifier`.

gkellogg commented 3 months ago

I've updated the terminology to use "reffing triple", which will require a corresponding change in https://github.com/w3c/rdf-turtle/pull/62.

When talking about reifiers in text, we must distinguish between the "optional iri production or BlankNode production" and the tilde that precedes them, because when we later want to talk about the reifier, we will mean the iri production or the BlankNode production; we will not mean the ~ plus the iri production or BlankNode production.

...And we should distinguish between the angle brackets < > or parentheses ( ) or even just spaces ` in which we wrap an IRI, and the IRI itself; i.e.,http://example.com/is not an IRI — it's an< >-wrapped (or< >-delimited) IRI — the IRI is justhttp://example.com/, around which we often put some (optional!) wrapper (or delimiter) to make it more human-friendly, as it is thus more visibly distinct from the text in which it appears. This is entirely distinct from and unlike the _required_~in triple reification, which is as much (if not more) for the machine as it is for the human, as we have made it a _mandatory_ separator between theobjectand thereifier`.

Please consider creating an issue on Turtle for these points. I don't think I agree with your reasoning, as other productions such as IRIREF and LANG_DIR (and many others) include delimiters which are not part of the semantic entity.

TallTed commented 3 months ago

The informative definition is of "reifying triple", not "reified triple" (which string does not exist in the PR). I would re-change the title accordingly, if I had that power.