JSON-LD parser doesn't restore root directory · Issue #2164 · RDFLib/rdflib (original) (raw)
It appears that the working directory isn't refreshed when reading when reading relative context files.
test.jsonld
contexts/person.jsonld
contexts/place.jsonld
{
"@context": [
"contexts/person.jsonld",
"contexts/place.jsonld"
]
}
Traceback (most recent call last):
File "/Users/solbrig/Development/json_ld_tests/venv/bin/rdfpipe", line 8, in <module>
sys.exit(main())
^^^^^^
File "/Users/solbrig/Development/json_ld_tests/venv/lib/python3.11/site-packages/rdflib/tools/rdfpipe.py", line 198, in main
parse_and_serialize(
File "/Users/solbrig/Development/json_ld_tests/venv/lib/python3.11/site-packages/rdflib/tools/rdfpipe.py", line 52, in parse_and_serialize
graph.parse(fpath, format=use_format, **kws)
File "/Users/solbrig/Development/json_ld_tests/venv/lib/python3.11/site-packages/rdflib/graph.py", line 1977, in parse
context.parse(source, publicID=publicID, format=format, **args)
File "/Users/solbrig/Development/json_ld_tests/venv/lib/python3.11/site-packages/rdflib/graph.py", line 1330, in parse
parser.parse(source, self, **args)
File "/Users/solbrig/Development/json_ld_tests/venv/lib/python3.11/site-packages/rdflib/plugins/parsers/jsonld.py", line 115, in parse
to_rdf(data, conj_sink, base, context_data, version, generalized_rdf)
File "/Users/solbrig/Development/json_ld_tests/venv/lib/python3.11/site-packages/rdflib/plugins/parsers/jsonld.py", line 134, in to_rdf
return parser.parse(data, context, dataset)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/solbrig/Development/json_ld_tests/venv/lib/python3.11/site-packages/rdflib/plugins/parsers/jsonld.py", line 154, in parse
context.load(local_context, context.base)
File "/Users/solbrig/Development/json_ld_tests/venv/lib/python3.11/site-packages/rdflib/plugins/shared/jsonld/context.py", line 375, in load
self._prep_sources(base, source, sources, referenced_contexts)
File "/Users/solbrig/Development/json_ld_tests/venv/lib/python3.11/site-packages/rdflib/plugins/shared/jsonld/context.py", line 404, in _prep_sources
new_ctx = self._fetch_context(
^^^^^^^^^^^^^^^^^^^^
File "/Users/solbrig/Development/json_ld_tests/venv/lib/python3.11/site-packages/rdflib/plugins/shared/jsonld/context.py", line 440, in _fetch_context
source = source_to_json(source_url)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/solbrig/Development/json_ld_tests/venv/lib/python3.11/site-packages/rdflib/plugins/shared/jsonld/util.py", line 35, in source_to_json
source = create_input_source(source, format="json-ld")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/solbrig/Development/json_ld_tests/venv/lib/python3.11/site-packages/rdflib/parser.py", line 404, in create_input_source
) = _create_input_source_from_location(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/solbrig/Development/json_ld_tests/venv/lib/python3.11/site-packages/rdflib/parser.py", line 456, in _create_input_source_from_location
file = open(filename, "rb")
^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: '/Users/solbrig/Development/json_ld_tests/contexts/contexts/place.jsonld'