The notions of identifierSpace and schemaSpace date from the Freebase era, as noted in the spec itself (the note is removed in this PR). Their relevance and usefulness in the current situation is at best unclear. Getting rid of cruft simplifies the spec and implementation of API services.
Requiring the use of a single identifierSpace makes it impossible to provide entities from a mixture of URI namespaces. Dropping identifierSpace solves the problem. In a mixed namespace setting, a view template of {+id} can be used along with using full URIs as entity identifiers.
View templates already provide a mechanism for turning entity identifiers into full URIs; this is more flexible than using identifierSpace. This PR makes the view templates mandatory, ensuring that entity identifiers can always be turned into URIs.
The definition of schemaSpace has shifted; it was last changed for spec version 0.2 in PR #76, but it seems that current endpoints and manifest examples use schemaSpace in different ways (some use a type such as skos:Concept, while others link to ontologies or data model documentation).
This PR drops the concepts of identifierSpace and schemaSpace from the spec and instead makes view templates mandatory; this was suggested by @wetneb in https://github.com/reconciliation-api/specs/issues/139#issuecomment-1745125850.
Arguments for the change:
{+id}
can be used along with using full URIs as entity identifiers.skos:Concept
, while others link to ontologies or data model documentation).Details of changes:
Closes #139