atviriduomenys / spinta

Spinta is a framework to describe, extract and publish data (a DEP Framework).
MIT License
10 stars 4 forks source link

inspect rdf semic dcat-ap does not work #507

Open sirex opened 10 months ago

sirex commented 10 months ago

When I run:

spinta inspect -r rdf https://github.com/SEMICeu/DCAT-AP/raw/master/releases/3.0.0/shacl/dcat-ap-SHACL.ttl

I get following error:

Traceback (most recent call last):
  File "spinta/cli/inspect.py", line 94, in inspect
    _merge(context, manifest, manifest, resource, has_manifest_priority)
  File "spinta/cli/inspect.py", line 120, in _merge
    store = load_manifest(context)
            ^^^^^^^^^^^^^^^^^^^^^^
  File "spinta/cli/helpers/store.py", line 116, in load_manifest
    commands.load(
  File "spinta/manifests/yaml/commands/load.py", line 108, in load
    commands.load(
  File "spinta/manifests/rdf/commands/load.py", line 31, in load
    load_manifest_nodes(context, into, schemas, source=manifest)
  File "spinta/manifests/helpers.py", line 134, in load_manifest_nodes
    for eid, schema in schemas:
  File "spinta/manifests/rdf/helpers.py", line 200, in read_rdf_manifest
    models = _prepare_data(g, g.query(QUERY), dataset, lang)
                              ^^^^^^^^^^^^^^
  File "rdflib/graph.py", line 1567, in query
    return result(processor.query(query_object, initBindings, initNs, **kwargs))  # type: ignore[arg-type]
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "rdflib/plugins/sparql/processor.py", line 137, in query
    query = translateQuery(parsetree, base, initNs)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "rdflib/plugins/sparql/algebra.py", line 934, in translateQuery
    q[1] = traverse(
           ^^^^^^^^^
  File "rdflib/plugins/sparql/algebra.py", line 469, in traverse
    r = _traverse(tree, visitPre, visitPost)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "rdflib/plugins/sparql/sparql.py", line 430, in absolutize
    return self.resolvePName(iri.prefix, iri.localname)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "rdflib/plugins/sparql/sparql.py", line 412, in resolvePName
    raise Exception("Unknown namespace prefix : %s" % prefix)
Exception: Unknown namespace prefix : sh

Graph is initialized with all rdflib namepsaces:

https://github.com/atviriduomenys/spinta/blob/1fac5b6b75ec65188d815078fd135bc05d49b31c/spinta/manifests/rdf/helpers.py#L182

And sh prefix should be defined:

https://github.com/RDFLib/rdflib/blob/0450ea2efa65872f250ead369fe005619adfb0bd/rdflib/namespace/__init__.py#L974

Not sure, why it does not work.

Might be related to:

rdflib version: 6.3.2