-
Notifications
You must be signed in to change notification settings - Fork 8
Open
Milestone
Description
Related: #71
Apart from values set values with language tags, ShExC, ShExJ and ShExR can be exactly round tripped, c.f. schema tests. Because language-tagged literals are expressed as JSON-LD object literals and RDF parsers are not responsible for preserving upper/lower case in literal language tags, a ShExC schema:
<vs1> ["flat"@en-GB]
would be be translated to ShExR:
[] a sx:Schema ; sx:shapes <http://a.example/vs1> .
<http://a.example/vs1> a sx:NodeConstraint ;
sx:values ( "flat"@en-GB ) .
An RDF parser is allowed to parse that as en-gb so it would round-trip to ShExC:
<vs1> ["flat"@en-gb]
This doesn't affect semantics of validation but it can be a pain for folks who like to follow ISO language code rules where regions should be upper case, i.e. en-GB. (This has little impact as no one uses ShExR anyways.) Round-tripping between ShExC and ShExJ (as JSON) is unaffected by this.
PROPOSE:
- add a note in the spec documenting this as a round-tripping deficiency and stating that if this is a problem for users, future versions of ShExJ will not use JSON-LD object literals for value set values.
- adopt ~ address schema LangTag in [shexSpec/shex#71] shexTest#25 which has additional schemas which differ only in language tag case.
ericprud
Metadata
Metadata
Assignees
Labels
No labels