← All Specifications

CORE-LD

The foundational LD profile of the URS universal representation model — defining the universal semantic building blocks for all DAG-*-LD specifications.

L3 — Core Linked Data 23 Invariants 397 Lines Draft

CORE-LD v0.1.0

The foundational LD profile of the URS universal representation model — defining the universal semantic building blocks for all DAG-*-LD specifications.

Status: Draft Constitutional dependencies: URS v0.1.0 (specs.initialcore.net/urs.html) Spec family: Foundational Profile (see CCA Framework §3 — Profile Composition) Dimension registry prefix: CORE-LD Canonical @context: https://specs.initialcore.net/ns/core-ld.jsonld

1. Preamble

CORE-LD is the foundational profile from which all other DAG-*-LD specifications derive. It does not specify encoding (JSON, CBOR), addressing mode (DAG, flat), or functional role (INPUT, MEMORY, POLICY). It defines the universal semantic building blocks that every extension inherits.

What CORE-LD is:

What CORE-LD is not:

1.1 Relationship to the dimensional architecture

Reality → USC → URS → CORE-LD → [functional profiles] → [encoding bindings] → CodeLabs → CoreFab → studio
                                  Foundational          Role-specific         Syntax-specific

URS defines what must be representable (the constitutional contract). CORE-LD defines how it is structurally expressed as a graph of typed, identified entities with provenance. Every functional profile (INPUT-LD, MEMORY-LD, POLICY-LD, TRUST-LD) is an extension of CORE-LD. Every encoding binding (JSON-CORE-LD, CBOR-CORE-LD) is a serialization of CORE-LD.

2. Representations

CORE-LD inherits the five primitive representation kinds from URS v0.1.0 §2, with the LD-specific term mappings and structural rules defined here.

2.1 Entity

{"@id": "_:e1", "@type": "Entity"}

Every distinct represented thing is an Entity. An Entity has:

Canonical form (CORE-LD frame):

{
  "@context": "https://specs.initialcore.net/ns/core-ld.jsonld",
  "@id": "_:entity-id",
  "@type": "Entity",
  "name": "...",
  "identifier": { "@type": "Identifier", "@id": "_:id", "scope": "local" },
  "provenance": {
    "Representer": "did:...",
    "Timestamp": "2030-01-01T00:00:00Z",
    "Authority": { "authorityType": "inherent" },
    "RepresentationContext": "urn:..."
  }
}

2.2 Property

A named value attached to an Entity. A Property has:

Properties appear as JSON-LD key-value pairs within the Entity object. Property references to other Entities use the target's @id.

2.3 Identifier

A handle by which an Entity is known. An Identifier has:

An Entity must have at least one Identifier (URS I2). The first identifier may be implicit from the Entity's own @id if no explicit identifier field is provided.

A directed relationship between two Entities. A Link has:

2.5 Group

A collection of Entities treated as a unit. A Group has:

Groups may not contain themselves (directly or transitively — URS I10).

3. Identity and Naming

3.1 Entity identity

An Entity is identified by its @id. CORE-LD defines three identity levels, inherited from URS §4.1:

LevelNamePropertyExample
L1Structural identityByte-for-byte canonical formSame canonical JSON → same L1
L2Identity identityHash of all identifiers + properties, excluding provenanceSame "what" independent of "who said it"
L3Constitutional identityFull entity including provenanceSame L2 + same constitutional context

3.2 Identifier scopes

ScopePatternPurpose
`local``_:...`Blank node, scoped to containing document
`constitutional``did:...`Stable across documents, binds to provenance
Explicit IRIFull IRIRegistered namespace, domain-specific

3.3 Constitutional identifiers

An identifier marked isConstitutional: true MUST satisfy:

4. Provenance Model

CORE-LD inherits the URS constitutional provenance model (§6) as a mandatory attachment for constitutional entities and optional for local entities.

4.1 Provenance block structure

"provenance": {
  "Representer": "did:icore:admin",
  "Timestamp": "2026-07-30T00:00:00Z",
  "Authority": { "authorityType": "inherent" },
  "RepresentationContext": "urn:icore:context:main"
}

Required fields (for constitutional entities — URS I16):

Optional fields (for all entities):

4.2 Authority types

TypeMeaningDelegation permitted?
`inherent`Authority flows from nature of entity itselfNo
`granted`Authority explicitly delegatedYes, with MayDelegate flag
`derived`Authority inferred through constitutional deductionNo direct delegation

4.3 Provenance inheritance

An Entity without an explicit provenance block inherits provenance from its containing document's document-level provenance (if declared). Constitutional identifiers always require explicit provenance on their Entity.

5. Relationship Model

5.1 Direct properties

Named values attached directly to an Entity object in JSON-LD. Property names MUST be defined terms in the active @context. Property values may be:

Directed, typed edges between Entities, represented as Link objects in the Entity's links array. A Link:

5.3 Groups

An Entity of @type: Group provides a collective structure over member Entities:

6. Composition Rules

CORE-LD is the foundational profile. Functional profiles extend it. Encoding profiles bind it.

6.1 Adding a functional profile

A functional profile (e.g., INPUT-LD, MEMORY-LD) MUST: 1. Declare extends: CORE-LD in its preamble 2. Inherit all CORE-LD invariants as its own 3. Add only new invariants — never relax existing ones 4. Define its own @context extension terms as a superset of the CORE-LD @context 5. State its composition rule: CORE-LD + [profile]

6.2 Adding an encoding binding

An encoding profile (e.g., JSON-CORE-LD, CBOR-CORE-LD) MUST: 1. Declare encodes: CORE-LD (or encodes: CORE-LD + [profile] for multi-profile bindings) 2. Preserve all CORE-LD invariants in the encoding 3. Define a deterministic lossless mapping between the LD abstract representation and the byte representation 4. State its encoding rule: [profile] + [encoding]

6.3 Addressing mode

Addressing modes (content-addressed via DAG, location-addressed, etc.) are orthogonal to CORE-LD. A specification that uses content-addressing (e.g., DAG-CORE-LD) adds:

6.4 Profile naming convention

[CORE-LD]                              → Foundational
[Profile-LD]                           → Functional extension
[Encoding]-[Profile-LD]                → Encoded profile
[Addr]-[Encoding]-[Profile-LD]         → Addressed, encoded profile
Example: DAG-CBOR-MEMORY-LD
         Addr=DAG, Encoding=CBOR, Profile=MEMORY-LD (extends CORE-LD)

7. Invariants

CORE-LD inherits all 23 URS invariants (I1–I23) as its conformance criteria. These are restated here in LD-specific terms.

7.1 Structural invariants (I1–I11)

IDInvariantCORE-LD check
I1Every entity has a valid kind`@type` ∈ {Entity, Property, Identifier, Link, Group} or registered extension
I2Every entity has at least one identifier`@id` present, or explicit `identifier` field, or both
I3No two entities share an identifierAll `@id` values + all explicit identifier values are unique across the graph
I4Every property references only entities in the graphProperty values that are IRI strings resolve to an entity `@id` in the graph
I5Every entity is self-referencingEntity's own `@id` implicitly references itself
I6Every link has a source and target in the graph`source` and `target` IRIs resolve to entities in the graph, target non-empty
I7Every link has a type`linkType` present and non-empty
I8Set members are uniqueIn a Set group, no two `members` entries have the same `@id`
I9Map keys are uniqueIn a Map group, all keys in `entries` are distinct
I10No group contains itselfRecursive containment check against group hierarchy
I11Exactly one root entityA single Entity not referenced as a property/link/member of another Entity

7.2 Identity invariants (I12–I15)

IDInvariantCORE-LD check
I12Constitutional identifiers use valid hash format`canonicalHash` is a valid multihash starting with known function code
I13Constitutional identifiers require provenance attestationEvery Entity with `isConstitutional: true` identifier has a `provenance` block
I14Local identifiers use blank nodesLocal-scope identifiers use `_:` prefix
I15Constitutional provenance is chainedProvenance of a constitutional entity traces to a known authority

7.3 Provenance invariants (I16–I19)

IDInvariantCORE-LD check
I16Provenance block has required fieldsMust include Representer, Timestamp, Authority, RepresentationContext
I17Authority type is valid`authorityType` ∈ {inherent, granted, derived}
I18Delegation links have permission flags`mayDelegate: true` on granted-authority delegation links
I19Delegation depth is bounded`delegationDepth` ≤ configurable maximum (default 5)

7.4 Context invariant (I20)

IDInvariantCORE-LD check
I20Constitutional representation declares context`provenance.RepresentationContext` is present for any entity with constitutional identifiers

7.5 Canonicalization invariants (I21–I23)

IDInvariantCORE-LD check
I21Canonical form is deterministicSame entity graph produces identical canonical output
I22Canonical form encodes structural identity onlyIdentifier relabeling preserves structural identity
I23Canonical form is acyclicNo entity transitively contains itself

8. Core @context

The standard CORE-LD @context resolves to:

{
  "@context": {
    "Entity": "https://specs.initialcore.net/ns/urs#Entity",
    "Property": "https://specs.initialcore.net/ns/urs#Property",
    "Identifier": "https://specs.initialcore.net/ns/urs#Identifier",
    "Link": "https://specs.initialcore.net/ns/urs#Link",
    "Group": "https://specs.initialcore.net/ns/urs#Group",
    "Set": "https://specs.initialcore.net/ns/urs#Set",
    "Sequence": "https://specs.initialcore.net/ns/urs#Sequence",
    "Map": "https://specs.initialcore.net/ns/urs#Map",

    "kind": "https://specs.initialcore.net/ns/urs#kind",
    "name": "https://schema.org/name",
    "description": "https://schema.org/description",
    "identifier": {
      "@id": "https://specs.initialcore.net/ns/urs#identifier",
      "@type": "@id"
    },
    "provenance": {
      "@id": "https://specs.initialcore.net/ns/urs#provenance",
      "@type": "@id"
    },
    "links": {
      "@id": "https://specs.initialcore.net/ns/urs#links",
      "@container": "@set"
    },
    "members": {
      "@id": "https://specs.initialcore.net/ns/urs#members",
      "@container": "@set"
    },
    "entries": "https://specs.initialcore.net/ns/urs#entries",
    "groupVariant": "https://specs.initialcore.net/ns/urs#groupVariant",

    "source": "https://specs.initialcore.net/ns/urs#source",
    "target": "https://specs.initialcore.net/ns/urs#target",
    "linkType": "https://specs.initialcore.net/ns/urs#linkType",
    "isConstitutional": "https://specs.initialcore.net/ns/urs#isConstitutional",
    "scope": "https://specs.initialcore.net/ns/urs#scope",
    "canonicalHash": "https://specs.initialcore.net/ns/urs#canonicalHash",

    "Representer": "https://specs.initialcore.net/ns/urs#Representer",
    "Timestamp": {"@id": "https://specs.initialcore.net/ns/urs#Timestamp", "@type": "xsd:dateTime"},
    "Authority": "https://specs.initialcore.net/ns/urs#Authority",
    "authorityType": "https://specs.initialcore.net/ns/urs#authorityType",
    "RepresentationContext": "https://specs.initialcore.net/ns/urs#RepresentationContext",
    "PriorState": "https://specs.initialcore.net/ns/urs#PriorState",
    "mayDelegate": "https://specs.initialcore.net/ns/urs#mayDelegate",
    "delegationDepth": "https://specs.initialcore.net/ns/urs#delegationDepth",

    "inherent": "https://specs.initialcore.net/ns/urs#inherent",
    "granted": "https://specs.initialcore.net/ns/urs#granted",
    "derived": "https://specs.initialcore.net/ns/urs#derived",
    "local": "https://specs.initialcore.net/ns/urs#local"
  }
}

9. Conformance

9.1 Implementation requirements

A conforming CORE-LD implementation MUST:

1. Parse CORE-LD documents using the URS frame (§2.1 canonical form) 2. Validate all 23 URS invariants (I1–I23) against any claimed CORE-LD document 3. Produce canonical CORE-LD output (deterministic key-sorted JSON-LD with the CORE-LD frame applied) 4. Reject documents that violate any invariant, with a diagnostic identifying which invariant(s) failed and which entity(ies) caused the failure 5. Resolve the CORE-LD @context (§8) to its published URI

9.2 Conformance levels

LevelRequirements
L1 StructuralI1–I11 pass; document parses and frames correctly
L2 IdentityL1 + I12–I15 pass; constitutional identifiers valid
L3 ConstitutionalL2 + I16–I23 pass; full provenance + canonicalization

9.3 Conformance suite

The URS Conformance Suite (urs_conformance.py) serves as the CORE-LD conformance suite. It validates all 23 invariants on any CORE-LD document. To claim CORE-LD L3 conformance, an implementation MUST pass the full suite on a standard corpus of test documents.

The Profile Conformance Extensions (profile_conformance.py) extend the suite to the functional profiles: each profile run validates the 23 inherited invariants plus the profile's own invariants (I-INPUT-1..12, I-MEM-1..18, I-POL-1..19, I-TRUST-1..20). It is the conformance suite for the JSON-CORE-LD encoding binding (§6.2 composition rule) and its multi-profile bindings (JSON-INPUT-LD, JSON-MEMORY-LD, JSON-POLICY-LD, JSON-TRUST-LD).

10. CORE-LD Profile Composition Summary

CORE-LD (foundational)
├── extends with: functional role
│   ├── + INPUT-LD    →  CORE-LD + input semantics
│   ├── + MEMORY-LD   →  CORE-LD + persistent knowledge
│   ├── + POLICY-LD   →  CORE-LD + constraint/reasoning
│   ├── + TRUST-LD    →  CORE-LD + attestation/verification
│   └── + DOMAIN-*    →  CORE-LD + domain vocabulary
├── binds to: encoding
│   ├── + JSON        →  JSON-CORE-LD
│   ├── + CBOR        →  CBOR-CORE-LD
│   └── + ...         →  other encoding bindings
└── addresses via: addressing mode
    ├── + DAG         →  DAG-*-CORE-LD
    └── + ...         →  other addressing modes

All combinations inherit CORE-LD invariants. All combinations are interoperable at the profile level. No combination may weaken or omit a CORE-LD invariant.


CORE-LD v0.1.0 — July 30, 2026. Draft. Extends URS v0.1.0. Defines the foundational profile of the DAG--LD specification family.*