Datatype filters
A user could declare some filter on a datatype value using stems and exclusions.
For example, one may want to declare that the value is any datatype in the xsd namespace as:
<S> {
:value (xsd:~) ;
}
I propose this feature because I was reviewing which parts of the RDF data model are covered by ShEx and although we cover datatypes, we cover them in a simple way.
Notice the difference between the previous example and:
<S> {
:value [ xsd:~ ]
}
which means that the value must be an IRI starting by xsd.
If the datatype production used ValueSetValue would that do it?
[55] datatype ::= iri
Becomes
[55] datatype ::= iri | '(' valueSetValue* ')'
This moves it to a NodeConstraint, but might do what you want. Of course, either create some context-sensitive productions in the grammar, which I've been trying to get rid of.
[226]First/First Conflict: "(" is the condition for both _shapeAtom_2 and _shapeAtom_1
[226]First/First Conflict: "(" is the condition for both _inlineShapeAtom_3 and _inlineShapeA
But we could probably figure out a way around this.