shexSpec / shex

ShEx language issues, including new features for e.g. ShEx2.1
24 stars 8 forks source link

URI of a Schema? #112

Open rwst opened 3 years ago

rwst commented 3 years ago

This is a newbie question: what is the URI of a Schema? Is it the URI of the start Shape? But then the metadata would be inaccessible, not? I'm asking because the parsing of Schema JSON in RDFLIB makes the root triple BNode a shex:Schema. Is this intended? How would I set an "id" on the Schema?

Thanks in advance for your patience.

rwst commented 3 years ago

I was confused because the Schema syntax didn't have an id element but apparently I can just set it nevertheless. Sorry for the noise.

ericprud commented 3 years ago

I think this raises a best-practice question: should ShExJ and ShExR preserve the IRI of the document from which they were retrieved. ShEx{C,J,R} are isomorphic, which means we can't have any properties in ShExJ that don't have a counterpart in ShExC. That said, it could be polite to preserve it in the subject:

{ "type": "Schema", "@id": "", "shapes": [] }
<> a shex:Schema ;
   sh:shapes () .

This would introduce a bit more magic context into the test suite. @gkellogg , thoughts?