You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit d2c14e9
Browse filesBrowse the repository at this point in the historyBrowse files
+ bin/sparql --shex-endpoint: ShEx validation over a live SPARQL endpoint
--shex-endpoint <URL> --shex-schema <path/URL> --shex-map <text> validates
a shape map against a live SPARQL protocol endpoint instead of an
in-memory graph. Wiring: HTTPSPARQLClient -> bnr::RemoteGraphProvider ->
Validator::neighborhoodSource fetches each node's neighborhood on demand
as validation visits it, exactly the hook lib/ShExSchema.hpp already
carried for this. Fixed associations (node@shape, node@!shape, @start)
work directly; --shex-map's node-side prefixes borrow the schema's own
PREFIX declarations, since there's no separate data document here.
lib/ShExShapeMap.{hpp,cpp}: {FOCUS <p> _} / {_ <p> FOCUS} triple-pattern
matching is now abstracted behind a PatternMatcher interface
(matchFocusSubject/matchFocusObject) instead of hardcoded local-graph
iteration. LocalPatternMatcher preserves the exact prior behavior (all
--shex-manifest tests unaffected); bin/sparql's new RemotePatternMatcher
resolves a pattern's FOCUS candidates with one SPARQL round trip through
BNodeResolver::select, so a bnode FOCUS is told-bnode-safe.
tests: shex_query_map_over_endpoint mirrors RemotePatternMatcher against
the in-process MiniEndpoint (it's CLI-only code, not in the library) and
checks the remote {FOCUS ex:member _} resolution finds and validates
exactly the same groups a local scan would, bnode memberships included.
Verified manually end to end against bin/sparql --serve: fixed maps,
@! negation, query-pattern FOCUS resolution over bnode-membership groups,
and correct nonconformant/exit-code reporting.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
0 commit comments