diff --git a/rdflib_jsonld/context.py b/rdflib_jsonld/context.py index bd4cb6f..1849497 100644 --- a/rdflib_jsonld/context.py +++ b/rdflib_jsonld/context.py @@ -292,6 +292,29 @@ def _get_source_id(self, source, key): term = term.get(ID) return term + def _term_dict(self, term): + tdict = {ID: self.shrink_iri(term.id)} + if term.type != UNDEF: + tdict[TYPE] = self.shrink_iri(term.type) + if term.container != UNDEF: + tdict[CONTAINER] = term.container + if term.language != UNDEF: + tdict[LANG] = term.language + if term.reverse: + tdict[REV] = term.reverse + if len(tdict) == 1: + return tdict[ID] + return tdict + + def to_dict(self): + r = {v: k for (k, v) in self._prefixes.items()} + r.update({t.name: self._term_dict(t) for t in self._lookup.values()}) + if self.base: + r[BASE] = self.base + if self.language: + r[LANG] = self.language + return r + Term = namedtuple('Term', 'id, name, type, container, language, reverse')