diff --git a/case_utils/case_sparql_select/__init__.py b/case_utils/case_sparql_select/__init__.py index b753664..dcc704e 100644 --- a/case_utils/case_sparql_select/__init__.py +++ b/case_utils/case_sparql_select/__init__.py @@ -70,6 +70,11 @@ def main() -> None: action="store_true", help="Raise error if no results are returned for query.", ) + parser.add_argument( + "--use-prefixes", + action="store_true", + help="Abbreviate node IDs according to graph's encoded prefixes. (This will use prefixes in the graph, not the query.)", + ) parser.add_argument( "out_table", help="Expected extensions are .html for HTML tables or .md for Markdown tables.", @@ -124,6 +129,11 @@ def main() -> None: # The render to ASCII is in support of this script rendering results for website viewing. # .decode() is because hexlify returns bytes. column_value = binascii.hexlify(column.toPython()).decode() + elif isinstance(column, rdflib.URIRef): + if args.use_prefixes: + column_value = graph.namespace_manager.qname(column.toPython()) + else: + column_value = column.toPython() else: column_value = column.toPython() if row_no == 0: diff --git a/tests/case_utils/case_sparql_select/.check-prefixed_results.html b/tests/case_utils/case_sparql_select/.check-prefixed_results.html new file mode 100644 index 0000000..10e210b --- /dev/null +++ b/tests/case_utils/case_sparql_select/.check-prefixed_results.html @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + +
?nFile
0kb:file-1
1kb:file-2
\ No newline at end of file diff --git a/tests/case_utils/case_sparql_select/.check-prefixed_results.md b/tests/case_utils/case_sparql_select/.check-prefixed_results.md new file mode 100644 index 0000000..f49a624 --- /dev/null +++ b/tests/case_utils/case_sparql_select/.check-prefixed_results.md @@ -0,0 +1,4 @@ +| | ?nFile | +|----|-----------| +| 0 | kb:file-1 | +| 1 | kb:file-2 | \ No newline at end of file diff --git a/tests/case_utils/case_sparql_select/Makefile b/tests/case_utils/case_sparql_select/Makefile index 22a849b..6431be7 100644 --- a/tests/case_utils/case_sparql_select/Makefile +++ b/tests/case_utils/case_sparql_select/Makefile @@ -18,6 +18,8 @@ top_srcdir := $(shell cd ../../.. ; pwd) tests_srcdir := $(top_srcdir)/tests all: \ + prefixed_results.html \ + prefixed_results.md \ subclass-explicit-none.md \ subclass-implicit-any.md \ w3-output.html \ @@ -31,14 +33,30 @@ all: \ check-w3-markdown .PRECIOUS: \ + prefixed_results.% \ subclass-% \ w3-output.% check: \ check-w3-html \ check-w3-markdown \ + check-prefixed_results \ check-subclass +check-prefixed_results: \ + check-prefixed_results-html \ + check-prefixed_results-md + +check-prefixed_results-html: \ + .check-prefixed_results.html \ + prefixed_results.html + diff $^ + +check-prefixed_results-md: \ + .check-prefixed_results.md \ + prefixed_results.md + diff $^ + check-subclass: \ check-subclass-explicit-none \ check-subclass-implicit-any @@ -71,6 +89,21 @@ clean: *.md \ _* +prefixed_results.%: \ + $(tests_srcdir)/.venv.done.log \ + $(top_srcdir)/case_utils/case_sparql_select/__init__.py \ + $(top_srcdir)/case_utils/ontology/__init__.py \ + $(top_srcdir)/case_utils/ontology/version_info.py \ + subclass.json \ + subclass.sparql + source $(tests_srcdir)/venv/bin/activate \ + && case_sparql_select \ + --use-prefixes \ + _$@ \ + subclass.sparql \ + subclass.json + mv _$@ $@ + subclass-explicit-none.md: \ $(tests_srcdir)/.venv.done.log \ $(top_srcdir)/case_utils/case_sparql_select/__init__.py \ diff --git a/tests/case_utils/case_sparql_select/prefixed_results.html b/tests/case_utils/case_sparql_select/prefixed_results.html new file mode 100644 index 0000000..10e210b --- /dev/null +++ b/tests/case_utils/case_sparql_select/prefixed_results.html @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + +
?nFile
0kb:file-1
1kb:file-2
\ No newline at end of file diff --git a/tests/case_utils/case_sparql_select/prefixed_results.md b/tests/case_utils/case_sparql_select/prefixed_results.md new file mode 100644 index 0000000..f49a624 --- /dev/null +++ b/tests/case_utils/case_sparql_select/prefixed_results.md @@ -0,0 +1,4 @@ +| | ?nFile | +|----|-----------| +| 0 | kb:file-1 | +| 1 | kb:file-2 | \ No newline at end of file