From 2462b64763c21e0cd135d534a2553390e590d883 Mon Sep 17 00:00:00 2001 From: david Date: Mon, 23 Sep 2024 17:21:44 +1000 Subject: [PATCH 1/2] Fix vocpub profile to display all properties for concepts when displaying a Concept Scheme. --- .../profiles/vocprez_default_profiles.ttl | 3 ++- prez/sparql/objects_listings.py | 10 ++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/prez/reference_data/profiles/vocprez_default_profiles.ttl b/prez/reference_data/profiles/vocprez_default_profiles.ttl index ad313d24..cc244f0e 100644 --- a/prez/reference_data/profiles/vocprez_default_profiles.ttl +++ b/prez/reference_data/profiles/vocprez_default_profiles.ttl @@ -9,6 +9,7 @@ PREFIX rdf: PREFIX rdfs: PREFIX schema: PREFIX sh: +PREFIX shext: PREFIX skos: PREFIX reg: PREFIX xsd: @@ -103,7 +104,7 @@ prez:VocPrezProfile altr-ext:hasNodeShape [ a sh:NodeShape ; sh:targetClass skos:ConceptScheme ; - altr-ext:relativeProperties skos:broader , skos:narrower ; + altr-ext:relativeProperties shext:allPredicateValues ; ] ; altr-ext:hasNodeShape [ a sh:NodeShape ; diff --git a/prez/sparql/objects_listings.py b/prez/sparql/objects_listings.py index 8ad779ea..cdc216bf 100644 --- a/prez/sparql/objects_listings.py +++ b/prez/sparql/objects_listings.py @@ -234,7 +234,10 @@ def generate_relative_properties( rel_string += """OPTIONAL { """ rel_string += f"""?{other_kvs[k]} ?rel_{k}_props ?rel_{k}_val .\n""" if construct_select == "select": - rel_string += f"""VALUES ?rel_{k}_props {{ {" ".join('<' + str(pred) + '>' for pred in relative_properties)} }} }}\n""" + if relative_properties == [URIRef('http://example.com/shacl-extension#allPredicateValues')]: + rel_string += f"""VALUES ?rel_{k}_props {{ UNDEF }} }}\n""" + else: + rel_string += f"""VALUES ?rel_{k}_props {{ {" ".join('<' + str(pred.n3()) + '>' for pred in relative_properties)} }} }}\n""" return rel_string @@ -272,7 +275,10 @@ def generate_include_predicates(include_predicates): VALUES ?p { } """ if include_predicates: - return f"""VALUES ?p{{\n{chr(10).join([f"<{p}>" for p in include_predicates])}\n}}""" + if include_predicates == [URIRef('http://example.com/shacl-extension#allPredicateValues')]: + return "" + else: + return f"""VALUES ?p{{\n{chr(10).join([f"<{p}>" for p in include_predicates])}\n}}""" return "" From 0f5964c311b34f45c7500096aa2d090578f61684 Mon Sep 17 00:00:00 2001 From: david Date: Mon, 23 Sep 2024 18:17:49 +1000 Subject: [PATCH 2/2] Fix introduced bug --- prez/sparql/objects_listings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prez/sparql/objects_listings.py b/prez/sparql/objects_listings.py index cdc216bf..d283e967 100644 --- a/prez/sparql/objects_listings.py +++ b/prez/sparql/objects_listings.py @@ -237,7 +237,7 @@ def generate_relative_properties( if relative_properties == [URIRef('http://example.com/shacl-extension#allPredicateValues')]: rel_string += f"""VALUES ?rel_{k}_props {{ UNDEF }} }}\n""" else: - rel_string += f"""VALUES ?rel_{k}_props {{ {" ".join('<' + str(pred.n3()) + '>' for pred in relative_properties)} }} }}\n""" + rel_string += f"""VALUES ?rel_{k}_props {{ {" ".join('<' + pred + '>' for pred in relative_properties)} }} }}\n""" return rel_string