-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Reified triples and compound triple form syntax. #71
Comments
By that logic, it would seem you'd need to restrict
generates
Similar for a reifiedTriple in the subject position. |
Suppose for illustration,
gives:
In the case of nested |
I've been back and forth on this for some time. Sometimes you may want to reify the full "chunk", sometimes not. I think the way it is solved here for blank nodes here is balanced. If you need to reify e.g all of: <bob> :knows [a :Person ; :name "Alice" ] . it is readily possible to "tag" each statement with the reifier through the named annotation syntax: <bob> :knows [a :Person ~ _:r1 ; :name "Alice" ~ _:r1 ] ~ _:r1 . It could be argued that you want that to happen automatically; but the converse argument is that it would be too powerful and implicit, and easy to get wrong (and that in order to reify just the relation, you'd have to name the bnode in those cases). For collections, it is more complicated. The affordance of list syntax is different, and the blank cons tree is a technical detail. Example 3 in w3c/rdf-ucr#26 illustrates this. (I think this line of reasoning goes equally for annotation and occurrence notation. But it should be noted that the ergonomics is quite different for occurrence notation. Whereas annotations work well with—and cater for—the regular grouping by subject common in Turtle data, for unasserted triples, the syntax we have caters for neither grouping on subject nor reifier. It is rooted on each single triple. Declaration style makes it a bit easier to visually group on either, albeit both require repeating the identifier.) |
I think this: This here: If each of the list items were to be annotated, the following should suffice: If the list itself is to be annotated my best bet would be this: (*) In my little syntax draft I made a suggestion for syntactic sugar to express a reifier consisting of multiple triples, i.e. a many-to-many reifier. |
This is forbidden, according to the current Turtle Grammar.
|
Turtle 1.1 has two syntax forms that generate multiple triples on parsing, blankNodePropertyList (e.g.
[ :p 123 ; :q "abc" ]
) and collection (e.g.("A" "B" "X")
).The grammar productions
subject
andobject
allow collections, theobject
production also allowsblankNodePropertyList
(ablankNodePropertyList
in the subject position is handled in productiontriples
.The syntax for reified triples in Turtle 1.2 uses
subject
andobject
(editors working draft of 12 September 2024).allows collections in the subject position, and allows collections and blankNodePropertyList in the object position.
A reified triple declaration such as:
generates
The triples from the blankNodePropertyList structure are in the set of triples of the graph. They are not reified. The blank node for the
[ ...]
is in the reified triple.PR #70 address this by having productions
rtSubject
andrtObject
for subject and object position in reified triples, and defines them to include only "single triple" possibilities (c.f. the existingttSubject and
ttObject`).A similar situation exists for annotation syntax except that blankNodePropertyList triples are meant to be in the set of triples of the graph, so there is no effect.
The only confusing factor is that the reification of the annotation only includes the blank node subject of the blankNodePropertyList or collection, not the compound form triples.This is not fixable in any practical way but does not add make additional assertions into the graph.
The text was updated successfully, but these errors were encountered: