Description:
-
- {termInfo.description || termInfo.comment}
-
+
)}
diff --git a/frontend/src/lib/ontology/ontology-loader.ts b/frontend/src/lib/ontology/ontology-loader.ts
index b09b236076..1eb81bae96 100644
--- a/frontend/src/lib/ontology/ontology-loader.ts
+++ b/frontend/src/lib/ontology/ontology-loader.ts
@@ -300,6 +300,14 @@ export const ONTOLOGY_FILES: OntologyFile[] = [
description: 'Library of Congress bibliographic description',
namespaces: ['http://id.loc.gov/ontologies/bibframe/']
},
+ {
+ name: 'EDM',
+ path: 'edm.owl',
+ format: 'owl',
+ category: 'domain',
+ description: 'Europeana Data Model - cultural heritage aggregation',
+ namespaces: ['http://www.europeana.eu/schemas/edm/']
+ },
{
name: 'PREMIS 3',
path: 'premis3.owl',
@@ -1105,6 +1113,7 @@ function processSubject(
/**
* Resolve a relative URI against a base URI
* Handles relative URIs like "#Concept" with xml:base="http://example.org/ontology"
+ * Also handles bare local names like "E27_Site" used by CIDOC-CRM
*/
function resolveUri(uri: string, base: string | null): string {
if (!uri) return uri;
@@ -1114,11 +1123,21 @@ function resolveUri(uri: string, base: string | null): string {
return uri;
}
- // Relative URI starting with # - resolve against base
+ // Relative URI starting with # - resolve against base (e.g., "#Concept" -> "http://base/#Concept")
if (uri.startsWith('#') && base) {
return base + uri;
}
+ // Bare local name without # (e.g., "E27_Site" with base "http://www.cidoc-crm.org/cidoc-crm/")
+ // This pattern is used by CIDOC-CRM and EDM ontologies
+ if (base && !uri.includes(':') && !uri.includes('/')) {
+ // Ensure base ends with / or # for proper concatenation
+ if (base.endsWith('/') || base.endsWith('#')) {
+ return base + uri;
+ }
+ return base + '/' + uri;
+ }
+
return uri;
}