Examples
Examples illustrate conformant graph patterns. Validate any capsule against the appropriate SHACL file before treating it as normative proof — see Alignment and conformance.
Published canonical examples
Section titled “Published canonical examples”These files are hosted on ontology.commonapproach.org:
| File | Description | Validate with |
|---|---|---|
| CIDSBasicZerokitsTestData-SHARED.json | Zero Waste Meal Kits — org → outcomes → indicators → reports, plus Address and Population nodes (Essential-related). Nodes also include the SFF context URL for shared hosting | Prefer cids.essentialtier.shacl.ttl (or sff.shacl.ttl if treating dual context as SFF-ready). Basic Tier SHACL alone may not cover Address/Population |
| CIDSBasictestandSFFSampleData.json | Same organization plus SFF companion nodes (OrganizationProfile, EDG profiles, FundingStatus, funder org placeholder) | sff.shacl.ttl |
Public URLs above are authoritative.
Minimal Basic Tier pattern
Section titled “Minimal Basic Tier pattern”Every node object includes @context, @type, and @id. The organization anchors outcomes; outcomes link themes and indicators; reports link indicators.
{ "@context": "https://ontology.commonapproach.org/contexts/cidsContext.jsonld", "@type": "cids:Organization", "@id": "https://example.org/Organization/demo", "hasLegalName": "Demo Organization", "hasOutcome": ["https://example.org/Outcome/main"], "hasIndicator": ["https://example.org/Indicator/primary"]}A complete minimal capsule adds Outcome, Indicator, IndicatorReport, and Theme nodes with cross-links — see the Zero Waste example for a full working graph (that file also includes Essential-tier nodes beyond this minimal pattern).
Realistic patterns in the Zero Waste capsule
Section titled “Realistic patterns in the Zero Waste capsule”From CIDSBasicZerokitsTestData-SHARED.json:
- Stable org namespace —
https://zerowastemealkits.ca/Organization/zerowastemealkits - SDG theme IRIs —
https://metadata.un.org/sdg/12,/sdg/2on outcomes viaforTheme - Many-to-many — multiple indicators per outcome; multiple reports per indicator
- Address and Population as linked nodes (Essential-related patterns)
- Dual
@context— CIDS + SFF context URLs on each node (even when SFF-specific classes are absent)
SFF extension pattern
Section titled “SFF extension pattern”CIDSBasictestandSFFSampleData.json adds:
- Dual
@contextarray (CIDS + SFF contexts) OrganizationProfilewith team/board profiles and EDG characteristicsFundingStatuswithFundingStatecode list reference- Secondary funder
Organizationplaceholder
Validate with sff.shacl.ttl, not Basic Tier SHACL alone.
Anti-patterns (illustrative)
Section titled “Anti-patterns (illustrative)”Missing @id on entity
Section titled “Missing @id on entity”{ "@context": "https://ontology.commonapproach.org/contexts/cidsContext.jsonld", "@type": "cids:Outcome", "hasName": "Reduce waste"}Fails: SHACL expects IRIs for entity nodes; importers cannot merge stably.
Theme as free text only
Section titled “Theme as free text only”"forTheme": [{ "hasName": "SDG 12" }]Fails or degrades interoperability: Prefer https://metadata.un.org/sdg/12 or a documented code list URI.
Valid SHACL but incomplete for a funder
Section titled “Valid SHACL but incomplete for a funder”A capsule may pass sff.shacl.ttl yet lack fields a specific program requires (e.g. optional OrganizationID). See SHACL validation vs. funder requirements.
Validate an example
Section titled “Validate an example”shacl validate \ -s sff.shacl.ttl \ -d CIDSBasictestandSFFSampleData.json \ > report.ttlOr use CIDS-validate.sh with --codelists for code-list-aware validation. Hosted validation: Working with capsules.
Related
Section titled “Related”- Serialization —
@contextand@idrules - Obligations by tier
- CIDS for developers — field reference
