From a80ecfaf0b09780032d7d080b3439580da7bd064 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martynas=20Jusevi=C4=8Dius?= Date: Fri, 7 Aug 2026 17:32:35 +0200 Subject: [PATCH] Resolve view term labels from /ns instead of the Linked Data proxy The four view controls (order-by dropdown, facet headers, parallax properties, rdf:type facet values) resolved predicate/class labels by proxying each term's vocabulary document (GET ?uri=), then applying ac:label to the response. With the proxy no longer serving ontology terms, route these through the app's /ns SPARQL endpoint instead. - view-results chain: add a property-metadata load step (mirroring the existing object-metadata step) that DESCRIBEs the result predicates over /ns before ldh:render-view, threading $property-metadata through to the order-by and facet-header rendering. - order-by + facet headers: render labels synchronously from $property-metadata via ac:label (local-name fallback for terms absent from the closure); drop the per-predicate proxy promises and the ldh:order-by-response / ldh:facet-filter-response handlers. - parallax + rdf:type facet values: swap each per-term proxy GET for a POST /ns DESCRIBE $Type VALUES { }; the response is still application/rdf+xml so the existing handlers are unchanged. Verified against the unesco-thesaurus demo: on /concepts/concept1002/ the redundant vocab-document proxy fetches drop (skos/core 9->5, rdf 2->1, prov 2->1), the SKOS view predicates now resolve via /ns, and the 429/502 the redundant load triggered are gone. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../xsl/bootstrap/2.3.2/client/block/view.xsl | 186 ++++++------------ 1 file changed, 62 insertions(+), 124 deletions(-) diff --git a/src/main/webapp/static/com/atomgraph/linkeddatahub/xsl/bootstrap/2.3.2/client/block/view.xsl b/src/main/webapp/static/com/atomgraph/linkeddatahub/xsl/bootstrap/2.3.2/client/block/view.xsl index c309ecd42..bc95f3ea6 100644 --- a/src/main/webapp/static/com/atomgraph/linkeddatahub/xsl/bootstrap/2.3.2/client/block/view.xsl +++ b/src/main/webapp/static/com/atomgraph/linkeddatahub/xsl/bootstrap/2.3.2/client/block/view.xsl @@ -158,6 +158,10 @@ exclude-result-prefixes="#all" ixsl:then(ldh:http-request-threaded(?, 'metadata-request', 'metadata-response')) => ixsl:then(ldh:handle-response(?, 'metadata-response')) => ixsl:then(ldh:set-object-metadata#1) => + ixsl:then(ldh:load-property-metadata(?, 'view-results-response')) => + ixsl:then(ldh:http-request-threaded(?, 'property-metadata-request', 'property-metadata-response')) => + ixsl:then(ldh:handle-response(?, 'property-metadata-response')) => + ixsl:then(ldh:set-property-metadata#1) => ixsl:then(ldh:render-view#1) "/> @@ -781,6 +785,7 @@ exclude-result-prefixes="#all" + @@ -822,18 +827,33 @@ exclude-result-prefixes="#all" - + - - - + + @@ -865,31 +885,6 @@ exclude-result-prefixes="#all"
- - - - - - - - - - - - - @@ -939,6 +934,7 @@ exclude-result-prefixes="#all" + @@ -965,21 +961,28 @@ exclude-result-prefixes="#all" - - - - + + + + + + + + + + + + + + + + + + + + + + @@ -1845,6 +1848,7 @@ exclude-result-prefixes="#all" + @@ -1920,6 +1924,7 @@ exclude-result-prefixes="#all" + @@ -1929,6 +1934,7 @@ exclude-result-prefixes="#all" + @@ -1954,45 +1960,6 @@ exclude-result-prefixes="#all" - - - - - - - - - - ldh:facet-filter-response - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -2010,8 +1977,9 @@ exclude-result-prefixes="#all" - - + + + + ), map{ 'duplicates': 'use-last' })"/> - - + + + - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file