There's a W3C spec on CURIEs https://www.w3.org/TR/curie/ that refers to the IRI spec, and is intended for shortening IRIs. It doesn't quite match the prefixed names used in Turtle to SPARQL https://www.w3.org/TR/turtle/#prefixed-name. Both are distinct from XML QNames for elements and attributes.
Because our goal is specifically to shorten IRIs, I think we want to follow the CURIE spec. It's easier to underand. The disadvantage is that the IRI spec is big and sloppy, and you can get yourself into trouble.
When emitting, we should check our values against the relevant spec for the output, and fall back to full IRIs.
There's a W3C spec on CURIEs https://www.w3.org/TR/curie/ that refers to the IRI spec, and is intended for shortening IRIs. It doesn't quite match the prefixed names used in Turtle to SPARQL https://www.w3.org/TR/turtle/#prefixed-name. Both are distinct from XML QNames for elements and attributes.
Because our goal is specifically to shorten IRIs, I think we want to follow the CURIE spec. It's easier to underand. The disadvantage is that the IRI spec is big and sloppy, and you can get yourself into trouble.
When emitting, we should check our values against the relevant spec for the output, and fall back to full IRIs.