content-explorer/examples/dataspaces/software-architecture/snapshot.json

371 lines
11 KiB
JSON
Raw Normal View History

2026-10-12 18:28:16 +02:00
{
"schemaVersion": "0.1",
"dataspace": {
"id": "software-architecture",
"title": "Software Architecture",
"description": "A small illustrative collection of patterns and ideas in software design. The sentences were written for this demo and are not quotations from another corpus."
2026-10-12 18:28:16 +02:00
},
"kinds": [
{
"id": "concept",
"label": "Concept",
"plural": "Concepts"
},
{
"id": "pattern",
"label": "Pattern",
"plural": "Patterns"
},
{
"id": "person",
"label": "Person",
"plural": "Persons"
},
{
"id": "artifact",
"label": "Artifact",
"plural": "Artifacts"
}
],
"sources": [
{
"id": "src:software-architecture:authored-demo",
"uri": "https://example.invalid/content-explorer/software-architecture/fixture",
"title": "Original illustrative demo fixture written for content-explorer",
"license": "CC0-1.0",
"attribution": "Content Explorer demo authors; fictional source URI is a fixture placeholder"
}
],
"entities": [
{
"id": "urn:ce:software-architecture:concept:coupling",
"kindId": "concept",
"title": "Coupling",
"tldr": "The degree to which software elements depend on one another.",
"summary": "Coupling is how much one software element must know about another in order to work.",
"tags": [
"dependency"
],
2026-10-12 18:28:16 +02:00
"sourceRefs": [
"src:software-architecture:authored-demo"
],
"asOf": "2026-10-12",
"claimRefs": [
"claim:coupling:tldr"
]
2026-10-12 18:28:16 +02:00
},
{
"id": "urn:ce:software-architecture:concept:cohesion",
"kindId": "concept",
"title": "Cohesion",
"tldr": "The degree to which a module groups related responsibilities.",
"summary": "Cohesion is how closely the responsibilities inside one module belong together.",
"tags": [
"modularity"
],
2026-10-12 18:28:16 +02:00
"sourceRefs": [
"src:software-architecture:authored-demo"
],
"asOf": "2026-10-12",
"claimRefs": [
"claim:cohesion:tldr"
]
2026-10-12 18:28:16 +02:00
},
{
"id": "urn:ce:software-architecture:concept:interface",
"kindId": "concept",
"title": "Interface contract",
"tldr": "An agreed description of interaction between components.",
"summary": "An interface contract names the interactions two parts are allowed to rely on.",
"tags": [
"boundary"
],
2026-10-12 18:28:16 +02:00
"sourceRefs": [
"src:software-architecture:authored-demo"
],
"asOf": "2026-10-12",
"claimRefs": [
"claim:interface:tldr"
]
2026-10-12 18:28:16 +02:00
},
{
"id": "urn:ce:software-architecture:pattern:adapter",
"kindId": "pattern",
"title": "Adapter pattern",
"tldr": "An adapter translates between interfaces.",
"summary": "An adapter lets a caller use one interface while the callee offers another.",
"tags": [
"translation"
],
2026-10-12 18:28:16 +02:00
"sourceRefs": [
"src:software-architecture:authored-demo"
],
"asOf": "2026-10-12",
"claimRefs": [
"claim:adapter:tldr"
]
2026-10-12 18:28:16 +02:00
},
{
"id": "urn:ce:software-architecture:pattern:ports-adapters",
"kindId": "pattern",
"title": "Ports and adapters",
"tldr": "A pattern for isolating core logic from outside systems.",
"summary": "Ports and adapters keep domain logic from importing the details of a database, a UI, or a network.",
"tags": [
"isolation"
],
2026-10-12 18:28:16 +02:00
"sourceRefs": [
"src:software-architecture:authored-demo"
],
"asOf": "2026-10-12",
"claimRefs": [
"claim:ports-adapters:tldr"
]
2026-10-12 18:28:16 +02:00
},
{
"id": "urn:ce:software-architecture:pattern:event-driven",
"kindId": "pattern",
"title": "Event-driven architecture",
"tldr": "Software components communicate through events.",
"summary": "In an event-driven arrangement, parts announce facts and other parts react, instead of calling each other directly.",
"tags": [
"communication"
],
2026-10-12 18:28:16 +02:00
"sourceRefs": [
"src:software-architecture:authored-demo"
],
"asOf": "2026-10-12",
"claimRefs": [
"claim:event-driven:tldr"
]
2026-10-12 18:28:16 +02:00
},
{
"id": "urn:ce:software-architecture:person:alexander",
"kindId": "person",
"title": "Christopher Alexander",
"tldr": "Architect whose pattern-language ideas influenced software design.",
"summary": "Christopher Alexander described pattern languages for buildings. Software designers later borrowed that way of naming recurring forms.",
"tags": [
"patterns"
],
2026-10-12 18:28:16 +02:00
"sourceRefs": [
"src:software-architecture:authored-demo"
],
"asOf": "2026-10-12",
"claimRefs": [
"claim:alexander:tldr"
]
2026-10-12 18:28:16 +02:00
},
{
"id": "urn:ce:software-architecture:artifact:adr",
"kindId": "artifact",
"title": "Architecture Decision Record",
"tldr": "A lightweight record of architectural decisions and rationale.",
"summary": "An architecture decision record states a decision, its context, and the consequences the writers accepted.",
"tags": [
"record"
],
2026-10-12 18:28:16 +02:00
"sourceRefs": [
"src:software-architecture:authored-demo"
],
"asOf": "2026-10-12",
"claimRefs": [
"claim:adr:tldr"
]
2026-10-12 18:28:16 +02:00
},
{
"id": "urn:ce:software-architecture:artifact:c4",
"kindId": "artifact",
"title": "C4 model diagram",
"tldr": "A set of views for communicating software architecture.",
"summary": "The C4 model offers a small set of diagrams, from system context down to code, so different readers can stop at the level they need.",
"tags": [
"diagram"
],
2026-10-12 18:28:16 +02:00
"sourceRefs": [
"src:software-architecture:authored-demo"
],
"asOf": "2026-10-12",
"claimRefs": [
"claim:c4:tldr"
]
2026-10-12 18:28:16 +02:00
}
],
"relations": [
{
"id": "r1",
"predicate": "adapts",
"from": "urn:ce:software-architecture:pattern:adapter",
"to": "urn:ce:software-architecture:concept:interface",
"sourceRefs": [
"src:software-architecture:authored-demo"
]
},
{
"id": "r2",
"predicate": "uses",
"from": "urn:ce:software-architecture:pattern:ports-adapters",
"to": "urn:ce:software-architecture:concept:interface",
"sourceRefs": [
"src:software-architecture:authored-demo"
]
},
{
"id": "r3",
"predicate": "addressed-by",
"from": "urn:ce:software-architecture:concept:coupling",
"to": "urn:ce:software-architecture:pattern:ports-adapters",
"sourceRefs": [
"src:software-architecture:authored-demo"
]
},
{
"id": "r4",
"predicate": "related-to",
"from": "urn:ce:software-architecture:concept:cohesion",
"to": "urn:ce:software-architecture:concept:coupling",
"sourceRefs": [
"src:software-architecture:authored-demo"
]
},
{
"id": "r5",
"predicate": "documents",
"from": "urn:ce:software-architecture:artifact:adr",
"to": "urn:ce:software-architecture:pattern:ports-adapters",
"sourceRefs": [
"src:software-architecture:authored-demo"
]
},
{
"id": "r6",
"predicate": "visualizes",
"from": "urn:ce:software-architecture:artifact:c4",
"to": "urn:ce:software-architecture:concept:interface",
"sourceRefs": [
"src:software-architecture:authored-demo"
]
},
{
"id": "r7",
"predicate": "affects",
"from": "urn:ce:software-architecture:pattern:event-driven",
"to": "urn:ce:software-architecture:concept:coupling",
"sourceRefs": [
"src:software-architecture:authored-demo"
]
}
],
"claims": [
{
"id": "claim:coupling:tldr",
"subjectId": "urn:ce:software-architecture:concept:coupling",
"key": "tldr",
"value": "The degree to which software elements depend on one another.",
"status": "asserted",
"evidenceRefs": [
"src:software-architecture:authored-demo"
],
"observedAt": "2026-10-12"
},
{
"id": "claim:cohesion:tldr",
"subjectId": "urn:ce:software-architecture:concept:cohesion",
"key": "tldr",
"value": "The degree to which a module groups related responsibilities.",
"status": "asserted",
"evidenceRefs": [
"src:software-architecture:authored-demo"
],
"observedAt": "2026-10-12"
},
{
"id": "claim:interface:tldr",
"subjectId": "urn:ce:software-architecture:concept:interface",
"key": "tldr",
"value": "An agreed description of interaction between components.",
"status": "asserted",
"evidenceRefs": [
"src:software-architecture:authored-demo"
],
"observedAt": "2026-10-12"
},
{
"id": "claim:adapter:tldr",
"subjectId": "urn:ce:software-architecture:pattern:adapter",
"key": "tldr",
"value": "An adapter translates between interfaces.",
"status": "asserted",
"evidenceRefs": [
"src:software-architecture:authored-demo"
],
"observedAt": "2026-10-12"
},
{
"id": "claim:ports-adapters:tldr",
"subjectId": "urn:ce:software-architecture:pattern:ports-adapters",
"key": "tldr",
"value": "A pattern for isolating core logic from outside systems.",
"status": "asserted",
"evidenceRefs": [
"src:software-architecture:authored-demo"
],
"observedAt": "2026-10-12"
},
{
"id": "claim:event-driven:tldr",
"subjectId": "urn:ce:software-architecture:pattern:event-driven",
"key": "tldr",
"value": "Software components communicate through events.",
"status": "asserted",
"evidenceRefs": [
"src:software-architecture:authored-demo"
],
"observedAt": "2026-10-12"
},
{
"id": "claim:alexander:tldr",
"subjectId": "urn:ce:software-architecture:person:alexander",
"key": "tldr",
"value": "Architect whose pattern-language ideas influenced software design.",
"status": "asserted",
"evidenceRefs": [
"src:software-architecture:authored-demo"
],
"observedAt": "2026-10-12"
},
{
"id": "claim:adr:tldr",
"subjectId": "urn:ce:software-architecture:artifact:adr",
"key": "tldr",
"value": "A lightweight record of architectural decisions and rationale.",
"status": "asserted",
"evidenceRefs": [
"src:software-architecture:authored-demo"
],
"observedAt": "2026-10-12"
},
{
"id": "claim:c4:tldr",
"subjectId": "urn:ce:software-architecture:artifact:c4",
"key": "tldr",
"value": "A set of views for communicating software architecture.",
"status": "asserted",
"evidenceRefs": [
"src:software-architecture:authored-demo"
],
"observedAt": "2026-10-12"
},
{
"id": "claim:unknown:numeric-scale",
"subjectId": "urn:ce:software-architecture:concept:coupling",
"key": "numeric-scale",
"status": "unknown",
"evidenceRefs": [
"src:software-architecture:authored-demo"
],
"observedAt": "2026-10-12"
}
2026-10-12 18:28:16 +02:00
]
}