forked from istSOS/istSOS4
-
Notifications
You must be signed in to change notification settings - Fork 0
Week 10 Report
Vishmayraj Zala edited this page Aug 19, 2026
·
2 revisions
Note: Met with mentors on August 7 and walked through the completed DCAT-AP 3.0 work end to end. Was handed the authorization layer as the focus for next week.
I performed the following tasks during week 10:
API layer (api.py)
- Added the new
/connector/dcat/root,/connector/dcat/orphan, and/connector/dcat/{network_id}routes, each with a.ttlsibling for Turtle while JSON-LD is the unsuffixed default, as the more broadly consumed format. - Registered the static
/dcat/rootand/dcat/orphanroutes ahead of the dynamic/dcat/{network_id}route so the path parameter can't swallow them. -
/connectorroot now reportsdcat_enabled,dcat_mandatory_fields_set, and DCAT availability/last-fetch alongside the existing STAC fields. - Gated every DCAT route behind
@_require_enabled(DCAT_TRANSFORMER, "DCAT_TRANSFORMER"), returning a 404 with an explicit "set this env var to enable it" message, distinct from the 503 used for "enabled but not harvested yet." - DCAT availability/last-fetch/network-id metadata is now tracked independently of STAC's (
dcat:meta:*vsstac:meta:*), so one transformer failing isn't reported as if both did.
SHACL validation and compliance fixes
- Ran the generated graphs through
pyshaclagainst the official DCAT-AP 3.0 SHACL shapes end to end and worked through what it surfaced: correcteddct:languageto point at a URI (EU NAL concept) rather than a literal, and added missingskos:Concepttyping plus several other RDF-shape fixes (rdfs:ResourceonaccessURL/endpointURLtargets,dct:Standardtyping onconformsTotargets,dct:LicenseDocument/dct:RightsStatement/dct:LinguisticSystemtyping). - Added modular serialization, JSON-LD as the primary/default format with Turtle available as a secondary, on every cached scope.
- All scopes (root, orphan, per-Network) now validate clean against the SHACL shapes with zero violations.
PR #208 opened
- Opened
feat(connector): DCAT-AP 3.0 transformer implementation - dataset/series building, license & language resolution, dual-format caching, closing out the DCAT-AP mapping work that had been scoped as "next PR" back in #204. This wraps up everything from weeks 8 through the first half of this week. Depends on #195 and #204. - Validated against the
dummy_datamodule's generated dataset under bothNETWORK=0andNETWORK=1; RDFLib parse-back andpyshaclconfirm zero dangling links and full DCAT-AP 3.0 conformance across all generated scopes.
Details can be found in:
- PR: #208
- API/caching/compliance work:
api/app/v1/connector/api.py,cache.py,config.py,dcat_transformer.py
What do I plan to do next week?
- Implement the authorization layer for the connector: config-driven public/private split for catalog metadata, a way to fully hide specific networks, and the STAC authentication extension.
Am I blocked on anything?
- No blockages. Automated test coverage for the connector package (both STAC and DCAT sides) is still outstanding and noted as the immediate next step after auth.