From 797ded37fa6b90337c4c80a071e8b5c1d449a2e3 Mon Sep 17 00:00:00 2001 From: Michael Meinel Date: Fri, 1 Aug 2025 22:50:45 +0200 Subject: [PATCH] Fix handling of identifier in compaction and expansion. --- src/hermes/model/types/ld_container.py | 4 ++-- src/hermes/model/types/pyld_util.py | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/hermes/model/types/ld_container.py b/src/hermes/model/types/ld_container.py index fd84e033..226ae871 100644 --- a/src/hermes/model/types/ld_container.py +++ b/src/hermes/model/types/ld_container.py @@ -82,7 +82,7 @@ def ld_value(self): def _to_python(self, full_iri, ld_value): if full_iri == "@id": - value = ld_value + value = self.ld_proc.compact_iri(self.active_ctx, ld_value, vocab=False) elif full_iri == "@type": value = [ self.ld_proc.compact_iri(self.active_ctx, ld_type) @@ -100,7 +100,7 @@ def _to_python(self, full_iri, ld_value): def _to_expanded_json(self, key, value): if key == "@id": - ld_value = self.ld_proc.expand_iri(self.active_ctx, value) + ld_value = self.ld_proc.expand_iri(self.active_ctx, value, vocab=False) elif key == "@type": if not isinstance(value, list): value = [value] diff --git a/src/hermes/model/types/pyld_util.py b/src/hermes/model/types/pyld_util.py index f652cce8..2c349c30 100644 --- a/src/hermes/model/types/pyld_util.py +++ b/src/hermes/model/types/pyld_util.py @@ -100,11 +100,11 @@ class JsonLdProcessor(jsonld.JsonLdProcessor): 'mappings': {} }) - def expand_iri(self, active_ctx: t.Any, short_iri: str) -> str: - return self._expand_iri(active_ctx, short_iri, vocab=True) + def expand_iri(self, active_ctx: t.Any, short_iri: str, vocab: bool = True) -> str: + return self._expand_iri(active_ctx, short_iri, vocab=vocab) - def compact_iri(self, active_ctx: t.Any, long_iri: str) -> str: - return self._compact_iri(active_ctx, long_iri, vocab=True) + def compact_iri(self, active_ctx: t.Any, long_iri: str, vocab: bool = True) -> str: + return self._compact_iri(active_ctx, long_iri, vocab=vocab) def inital_ctx(self, local_ctx, options=None): return self.process_context(self._INITIAL_CONTEXT, local_ctx, options or {})