Closed greenTara closed 9 years ago
The current definition of the @iri attribute is:
iri.attrib.def =
## An attribute for referring to a IRI.
## See http://www.ruleml.org/1.0/glossary/#gloss-@iri
attribute iri { iri.value }
iri.value |= xsd:anyURI
=>
iri.attrib.def =
## An attribute for referring to a IRI.
## See http://www.ruleml.org/1.0/glossary/#gloss-@iri
attribute iri { iri.value }
iri.value |= iri.datatype
iri.datatype |= AbsIRI.datatype
and in a separate module (e.g. datatypes_...)
AbsIRI.datatype = xsd:string{pattern = "[\i-[:]][\c-[:]]+:.+"}
CURIE.datatype = xsd:string{pattern = "(([\i-[:]][\c-[:]]*)?:)?(/[^\s/][^\s]*|[^\s/][^\s]*|[^\s]?)"
minLength = "1"}
PrefixedCURIE.datatype = xsd:string{pattern = "(([\i-[:]][\c-[:]]*)?:)(/[^\s/][^\s]*|[^\s/][^\s]*|[^\s]?)"
minLength = "1"}
and in yet another module (e.g. curie_
iri.datatype |= PrefixedCURIE.datatype
The curie modules should be included first to indicated precedence.
The trick of using node="?x" to query for the node label will not work in the new content model. Instead, a blank node CURIE can be used
node="_:?x"
The UServ entry from the 2014 Rulebase competition has a Rel with an iri attribute with an empty string. This no longer satisfies the content model. I am not quite sure what the replacement should be, but it is probably a typo, as all other Rels have a repetition of the local name in the iri attribute.
Implement http:// wiki.ruleml.org/index.php/CURIES_for_Resource_Identifier_Attribute#Option_4