diff --git a/tests/datadoc/test_dataset.py b/tests/datadoc/test_dataset.py index 75de722a..c7936123 100644 --- a/tests/datadoc/test_dataset.py +++ b/tests/datadoc/test_dataset.py @@ -756,6 +756,7 @@ def test_datadoc(): # Test load dict-representation of a dataset from the triplestore SEM = ts.namespaces["sem"] SEMDATA = ts.namespaces["semdata"] + ts.bind("par", "http://sintef.no/dlite/parser#") iri = SEMDATA["SEM_cement_batch2/77600-23-001/77600-23-001_5kV_400x_m001"] d = acquire(ts, iri, use_sparql=False) assert d["@id"] == iri @@ -886,6 +887,11 @@ def test_datadoc(): SEMDATA.SEM_cement_batch2, ] + # Search on criterion when the value is an individual + assert search(ts, criteria={"distribution.parser": "par:Hitachi"}) == [ + SEMDATA["SEM_cement_batch2/77600-23-001/77600-23-001_5kV_400x_m001"], + ] + title = "Nested series of SEM images of cement batch2" dset = [SEMDATA.SEM_cement_batch2] # Search with predefined keyword diff --git a/tripper/datadoc/dataset.py b/tripper/datadoc/dataset.py index cfc64c4c..24b49664 100644 --- a/tripper/datadoc/dataset.py +++ b/tripper/datadoc/dataset.py @@ -1466,7 +1466,7 @@ def make_query( context = get_context(keywords=keywords) context._create_caches() # pylint: disable=protected-access expanded = context._expanded # pylint: disable=protected-access - + # print("expanded", expanded) # Add prefixes to triplestore ts.namespaces.update(keywords.get_prefixes()) @@ -1506,6 +1506,8 @@ def add_crit(k, v, regex=False, s="iri"): """Add criteria to SPARQL query.""" nonlocal n key = f"@{k[1:]}" if k.startswith("_") else k + # print("key", key) + # print("value", v) if isinstance(v, list): for ele in v: add_crit(key, ele, regex=regex, s=s) @@ -1539,7 +1541,7 @@ def add_crit(k, v, regex=False, s="iri"): f"FILTER REGEX(STR(?{var}), {value}{flags_arg}) ." ) else: - filters.append(f"FILTER(STR(?{var}) = {value}) .") + filters.append(f"FILTER(?{var} = {value}) .") for k, v in criteria.items(): add_crit(k, v) @@ -1558,6 +1560,10 @@ def add_crit(k, v, regex=False, s="iri"): {where_statements} }} """ + # print("---") + # print(query) + # print("---") + return query