Skip to content

Nest Seimas org-units and parliamentary groups under the organization#7

Merged
namedgraph merged 2 commits into
masterfrom
nest-containers-under-org
Jul 22, 2026
Merged

Nest Seimas org-units and parliamentary groups under the organization#7
namedgraph merged 2 commits into
masterfrom
nest-containers-under-org

Conversation

@namedgraph

Copy link
Copy Markdown
Member

What

Move Seimas structural units and parliamentary groups from top-level flat containers to nested paths under the Seimas organization document, mirroring org:unitOf composition:

before after
org-units/{padalinio_id}/ organizations/lietuvos-respublikos-seimas/org-units/{padalinio_id}/
parliamentary-groups/{grupes_id}/ organizations/lietuvos-respublikos-seimas/groups/{grupes_id}/

Why

Every entity type getting its own top-level container crowds the namespace. Nesting an organization's constituent parts under its document URI expresses the org:unitOf composition in the path itself, and scales to future orgs with internal structure (ministries, courts).

URI-SCHEME.md principle #2 is refined accordingly: standalone entities fold flat by type; constituent parts nest under their whole. Membership is not composition, so persons/ and parties/ stay top-level — a person is a member of the Seimas, not a part of it.

How

  • The Seimas organization document becomes a container that is also the entity (same pattern as the taxonomy scheme containers) — it moves from ETL output into app/ scaffolding; units reference it via org:unitOf only.
  • mappings: org-units.rq (nested paths, drop the now-scaffolded Seimas block), persons.rq (membership cross-links)
  • app/: new organizations/lietuvos-respublikos-seimas.ttl + org-units.ttl + groups.ttl; remove old top-level org-units.ttl + parliamentary-groups.ttl
  • shapes/seimas.ttl: org:organization pattern accepts the nested paths
  • regenerated datasets/current/seimas/{org-units,persons}.trig + EXAMPLES.md

Verification

  • SHACL conforms + graph-level validation: 136 unit/group graphs, 148 persons
  • Canonical n-quads diff confirms the data change is a pure path rename (2810 membership objects moved, zero data loss) plus the 9-quad Seimas org relocating to scaffolding
  • Deployed and verified on the local LinkedDataHub stack: nested docs resolve anonymously, sub-containers list children (40 org-units, 96 groups), old flat URLs are empty

🤖 Generated with Claude Code

namedgraph and others added 2 commits July 22, 2026 12:07
Move Seimas structural units and parliamentary groups from top-level flat
containers to nested paths under the Seimas organization document, mirroring
org:unitOf composition:

  org-units/{id}/            -> organizations/lietuvos-respublikos-seimas/org-units/{id}/
  parliamentary-groups/{id}/ -> organizations/lietuvos-respublikos-seimas/groups/{id}/

URI-SCHEME.md principle #2 is refined accordingly: standalone entities fold
flat by type; constituent parts (org:unitOf / org:hasSubOrganization) nest
under their whole. Membership is not composition, so persons/ and parties/
stay top-level. The pattern generalizes to any future org with internal
structure.

The Seimas organization document becomes a container that is also the entity
(like the taxonomy scheme containers), moving from ETL output into app/
scaffolding; units reference it via org:unitOf only.

- mappings: org-units.rq (nested paths, drop the now-scaffolded Seimas block),
  persons.rq (membership cross-links)
- app/: new organizations/lietuvos-respublikos-seimas.ttl + org-units.ttl +
  groups.ttl; remove old top-level org-units.ttl + parliamentary-groups.ttl
- shapes/seimas.ttl: org:organization pattern accepts the nested paths
- regenerate datasets/current/seimas/{org-units,persons}.trig + EXAMPLES.md
- URI-SCHEME.md, README.md

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Record the precondition behind the Seimas nesting so admin-units/streets
aren't later "tidied" into a broken deep hierarchy: nest a part under its
whole in the URI only when every instance has the same well-known parent,
so the bare key + a constant prefix yields the URI with no lookup.

Admin units fail this (parent not encoded in the AR code — municipality 12
is in county 2, 13 in county 10, settlement 23643 in eldership 1867) and so
would break bare-key minting and churn under reforms. Also note that class
subsumption belongs in rdf:type/rdfs:subClassOf, not the path. Part-of and
is-a hierarchies stay in the RDF and the 1:N views; admin-units/ and
streets/ stay flat.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@namedgraph
namedgraph merged commit 1b4d38c into master Jul 22, 2026
2 checks passed
@namedgraph
namedgraph deleted the nest-containers-under-org branch July 22, 2026 11:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant