-
Notifications
You must be signed in to change notification settings - Fork 8
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
Validation of RDF* #107
Comments
Whenever I think about this, my brain turns inside out. Are we validating the stuff inside or outside the Data: << <alice> a :User >> dc:creator #me .
<< <alice> foaf:givenName "Alice" >> dc:creator #you .
<< <alice> foaf:familyName "Walker" >> dc:creator #you . Would the schema be Schema 1 <#UserShape> {
<< a [foaf:User] >> dc:creator . ;
<< foaf:givenName xsd:string >> dc:creator . ;
<< foaf:familyName xsd:string >> dc:creator . ;
} or Schema 2 <#UserAssertionShape> {
dc:creator >> a [foaf:User] << ;
dc:creator >> foaf:givenName xsd:string << ;
dc:creator >> foaf:familyName xsd:string << ;
} As far as I can tell, we'd want the former because in the latter, we'd have to invent something like variables ot make sure the subjects of the triples were the same. That said, the latter is closer to how ShEx operates today. Thoughts? |
Hi Eric, I would say that we should validate in and out the I would suggest a syntax like (following schema 1):
And we may also validate the s p <<s' p' o'>> productions:
|
@herminiogg and @ericprud you both seem to be assuming that a shape applying to a node should constrain the asserted triples and the embedded triples involving that node. I am not sure I agree with that. Consider the following graph:
I can imagine that a shape Person would require Alice to have a name, or her birth date to be an On the other hand, I see value in constraining the annotated triples about a given node, i.e. triples that are both asserted and embedded as subject. This pattern emulates Property Graphs' edge properties, and Turtle-star provides a shorthand for it (see example 2 in the RDF-star CG report). This could go like this (reusing the "annotation brackets" of Turtle-star):
or even maybe
For triples that are embedded only, we would need a dedicated node kind
|
@pchampin , I took me ages to get around to reading this, but now that I have (sort of), I like it. For posterity's sake, this hackmd has some early thoughts on ShEx* https://hackmd.io/J_XhobnoT6a_tq6Cr0GK6w . Feel free to scribble in there wherever you'd like. |
Hello,
I don't know if you have already discussed this (I hope not to be duplicating). Have you planned to include support for validation of RDF*? I think that with the traction that RDF* is gaining that would be nice to support this. However, I'm not so worried about implementation specifics but about the syntax that would enable that feature in ShEx. As you may know I'm the main developer of ShExML (https://github.com/herminiogg/ShExML) which syntax is very based in ShEx one. For example when dealing with generation of Datasets I followed this proposal (#77). But, for the case of RDF* I didn't find anything. So, do you have any plan on how this would be implemented in ShEx or any idea about how the syntax could be? If not, I will be very keen to discuss with you about the possible syntax details.
The text was updated successfully, but these errors were encountered: