Skip to content

Add CURIEs section - #590

Open
multimeric wants to merge 9 commits into
ResearchObject:mainfrom
multimeric:CURIEs
Open

multimeric wants to merge 9 commits into
ResearchObject:mainfrom
multimeric:CURIEs

Conversation

@multimeric

@multimeric multimeric commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

Closes #466.

I don't love introducing a new section as the spec is already quite long and complex, but I can't think of anywhere else that suits this better. Open to suggestions though.

@elichad elichad left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

happy with the text, would like a second opinion from @stain @ptsefton (as editors) and/or @simleo (as tool maintainer) on whether you would be fine with this being added to 1.3 - in my view this is a clarification rather than introducing new behaviour.

Comment thread docs/_specification/1.4-DRAFT/appendix/jsonld.md
Comment thread docs/_specification/1.4-DRAFT/appendix/jsonld.md Outdated
Comment thread docs/_specification/1.4-DRAFT/appendix/jsonld.md
Comment thread docs/_specification/1.4-DRAFT/appendix/jsonld.md Outdated
Comment thread docs/_specification/1.4-DRAFT/appendix/jsonld.md
@ptsefton

Copy link
Copy Markdown
Contributor

It is good to cover this issue as it has been left implicit, and we do use CURIEs in the LDaCA context but only for property key and @types. The Javascript RO-Crate library deals with resolving these IDs when it needs to, but does NOT do the same for entity @ids, and I suspect other libraries that don't immediately parse the data as RDF would be in the same boat, typially the approach would be to build an index of raw @ids as found. It would be important to have this implemented place before we start encouraging people to use it.

(This is one of a cluster of issues we need to cover in v2.0 spec as well to give much more explicit advice about how to implement a core set of valid JSON-LD behvaiours without handing it to an RDF-based tool, for example I think a lot of people are relying on order-presevation in arrays ATM which is a wrong assumption about JSON-LD but is very useful)

@multimeric

Copy link
Copy Markdown
Contributor Author

Fortunately I think CURIEs can be treated as regular keys and values by the non-RDF parsers, so I don't think this should break anything.

@multimeric

Copy link
Copy Markdown
Contributor Author

in my view this is a clarification rather than introducing new behaviour.

@elichad does that mean I apply the patch to docs/_specification/1.3/appendix/jsonld.md instead? Are you other reviewers happy with this change?

@ptsefton

Copy link
Copy Markdown
Contributor

There's a potential issue with the same ID appearing with and without a CURIE though

@multimeric

multimeric commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor Author

There's a potential issue with the same ID appearing with and without a CURIE though

The same applies for type and predicate IRIs in theory. Maybe we should just say that each IRI SHOULD only have one representation in the crate, to facilitate RDF-ignorant parsers?

@simleo

simleo commented Oct 14, 2026

Copy link
Copy Markdown
Contributor

Fortunately I think CURIEs can be treated as regular keys and values by the non-RDF parsers, so I don't think this should break anything.

I've checked it does not break ro-crate-py.

There's a potential issue with the same ID appearing with and without a CURIE though

The same applies for type and predicate IRIs in theory. Maybe we should just say that each IRI SHOULD only have one representation in the crate, to facilitate RDF-ignorant parsers?

Sounds good to me.

Updated JSON-LD examples to use a new namespace and improved context structure.
@stain

stain commented Oct 15, 2026

Copy link
Copy Markdown
Contributor

I think this is good for 1.3, it's in an appendix.

However I disagree with allowing CURIEs in @id as it would break clients who are not processing as JSON-LD and would make it hard to follow URLs that are no longer URLs. So I've modified the text for that, as well as to not generally use the schema: prefix.

@multimeric

Copy link
Copy Markdown
Contributor Author

Thanks @stain. I omitted the RO-Crate context just for concision like I did the required entities. It is a challenge making really small examples while meeting all the requirements.

However I disagree with allowing CURIEs in @id as it would break clients who are not processing as JSON-LD and would make it hard to follow URLs that are no longer URL

Is this because they don't "look" like URLs? Or is your concern that it will allow multiple representations of the same IRI? Because as I said above, I'm happy to enforce that each IRI has only one representation (which might be a CURIE)

@simleo simleo left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The current version looks good to me.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Consistent handling of property terms and type terms

5 participants