{
    "model": {
        "rank": 6897,
        "code": "thing-q188267",
        "model_id": "vr.tr.programming-paradigm",
        "name": "programming paradigm",
        "purpose": "Let an agent explain programming paradigms, relay major paradigms, language examples, related practices and debates from computer science sources with positions attributed, describe the named aliases and flag misfiled algorithm aliases, and distinguish paradigms from programming languages, design patterns, algorithm techniques and software development methodologies.",
        "family": "Thing Registry",
        "category": "Cross-cutting context",
        "status": "research-draft",
        "kind": "thing",
        "plane": "XCT",
        "domain": "XCT.QLT",
        "industry": "",
        "version": "",
        "url": "/models/thing/q188267/",
        "tier": 2,
        "score": 58,
        "payload": {
            "layer": "wikidata",
            "aliases": [
                "vibe coding",
                "typing discipline",
                "Interface-based programming",
                "dynamic programming",
                "live coding",
                "Held–Karp algorithm"
            ],
            "aliasCount": 6,
            "merged": 6,
            "knownIn": 58,
            "facets": null,
            "markers": [],
            "lexicalClass": "",
            "senseRank": null,
            "alsoRegisteredAs": null,
            "source": {
                "dataset": "wikidata",
                "item": "Q188267",
                "url": "https://www.wikidata.org/wiki/Q188267",
                "license": "CC0 1.0"
            }
        },
        "research": {
            "vercy": "1.0-draft",
            "publication": {
                "status": "research-draft",
                "adjudicationStatus": "unreviewed",
                "publishableCanonical": false,
                "generatedAt": "2026-09-14T00:01:21Z",
                "providers": [
                    "Claude"
                ],
                "breadth": "written by Claude from model knowledge without web access - no source was read, every claim is a lead to verify",
                "pass": 2,
                "wave": 4,
                "engine": "claude"
            },
            "metaModel": {
                "id": "THING-Q188267",
                "registryId": "vr.tr.programming-paradigm",
                "name": "programming paradigm",
                "version": "0.2.0-wave.4",
                "entryKind": "thing",
                "family": "Thing Registry",
                "domain": [
                    "XCT.QLT"
                ],
                "status": "research-draft"
            },
            "canonicalUrl": "https://ver.cy/models/thing/q188267/",
            "model": {
                "registry_id": "vr.tr.programming-paradigm",
                "name": "programming paradigm",
                "purpose": "Let an agent explain programming paradigms, relay major paradigms, language examples, related practices and debates from computer science sources with positions attributed, describe the named aliases and flag misfiled algorithm aliases, and distinguish paradigms from programming languages, design patterns, algorithm techniques and software development methodologies.",
                "definition": "A style or approach to programming that shapes how programs are structured and reasoned about, such as imperative and procedural programming, object-oriented programming, functional programming, logic programming, declarative and event-driven programming, with related practices the registry aliases name including interface-based programming, typing disciplines such as static and dynamic typing, live coding, programming during performance or with immediate feedback, and vibe coding, an informal term popularised in 2025 for AI-assisted programming by prompting with little manual code review, whose risks are debated; dynamic programming and the Held-Karp algorithm for the travelling salesman problem are algorithm design techniques rather than paradigms and appear misfiled. Most modern languages support multiple paradigms.",
                "what_it_is_for": "Classifying approaches to programming.",
                "affordances": [
                    "explain major paradigms",
                    "relay language examples",
                    "describe named practices",
                    "flag misfiled aliases"
                ],
                "distinguishing_features": [
                    "Conceptual model",
                    "Language support",
                    "Multi-paradigm languages",
                    "Evolving practices"
                ],
                "appearance": "Not a physical object; seen in code style and language features.",
                "visual_identification": [
                    "Style of structuring programs",
                    "Vibe coding, typing discipline, interface-based programming, dynamic programming, live coding, Held-Karp algorithm",
                    "Languages implement paradigms; design patterns solve recurring problems; algorithm techniques solve computations; methodologies organise development work"
                ],
                "physical_properties": [
                    {
                        "quantity": "Simula, first object-oriented language",
                        "typical_range": "1967",
                        "unit": "note",
                        "note": ""
                    },
                    {
                        "quantity": "Lisp",
                        "typical_range": "1958",
                        "unit": "year",
                        "note": "functional influence"
                    },
                    {
                        "quantity": "vibe coding term",
                        "typical_range": "2025",
                        "unit": "year",
                        "note": "popularised by Andrej Karpathy, attributed"
                    }
                ],
                "families_and_kinds": [
                    "imperative and procedural",
                    "object-oriented",
                    "functional",
                    "logic and declarative",
                    "event-driven and reactive"
                ],
                "related_models": [
                    {
                        "relation": "is a kind of",
                        "target": "programming style",
                        "why": "in registry terms"
                    },
                    {
                        "relation": "includes",
                        "target": "functional programming",
                        "why": ""
                    },
                    {
                        "relation": "includes",
                        "target": "object-oriented programming",
                        "why": ""
                    },
                    {
                        "relation": "is contrasted with",
                        "target": "dynamic programming",
                        "why": "misfiled alias"
                    }
                ],
                "identifiers": [],
                "standards_and_regulation": [
                    "Language specifications such as ISO C++ and ECMAScript",
                    "Secure coding guidelines"
                ],
                "failure_modes_and_hazards": [
                    "Treating algorithms as paradigms",
                    "Overstating AI-assisted coding reliability",
                    "Paradigm dogmatism"
                ],
                "in_scope": [],
                "out_of_scope": [],
                "characteristics": []
            },
            "sources": [],
            "structure": {
                "bundles": [
                    {
                        "id": "understand",
                        "name": "Understand",
                        "description": "What a programming paradigm is.",
                        "rationale": "Definition.",
                        "layers": [
                            {
                                "id": "definition",
                                "name": "Definition",
                                "description": "Definition.",
                                "findings": [
                                    {
                                        "id": "definition-finding",
                                        "name": "Definition",
                                        "description": "Definition.",
                                        "questions": [
                                            {
                                                "text": "What is a programming paradigm, and how does it differ from languages, design patterns, algorithm techniques and methodologies?",
                                                "kind": "definition"
                                            },
                                            {
                                                "text": "Is the question about learning, choosing a language, AI-assisted coding or theory?",
                                                "kind": "boundary"
                                            }
                                        ]
                                    }
                                ]
                            },
                            {
                                "id": "aliases",
                                "name": "Aliases",
                                "description": "Named aliases.",
                                "findings": [
                                    {
                                        "id": "aliases-finding",
                                        "name": "Aliases",
                                        "description": "Aliases.",
                                        "questions": [
                                            {
                                                "text": "What are vibe coding, typing disciplines, interface-based programming and live coding, and why are dynamic programming and Held-Karp different?",
                                                "kind": "definition"
                                            },
                                            {
                                                "text": "Which entry fits the specific concept?",
                                                "kind": "action"
                                            }
                                        ]
                                    }
                                ]
                            }
                        ]
                    },
                    {
                        "id": "paradigms",
                        "name": "Paradigms",
                        "description": "Major paradigms.",
                        "rationale": "Sources.",
                        "layers": [
                            {
                                "id": "oop",
                                "name": "OOP",
                                "description": "Object-oriented.",
                                "findings": [
                                    {
                                        "id": "oop-finding",
                                        "name": "OOP",
                                        "description": "OOP.",
                                        "questions": [
                                            {
                                                "text": "What are objects, classes and inheritance, and which languages emphasise them?",
                                                "kind": "provenance"
                                            },
                                            {
                                                "text": "Which references are standard?",
                                                "kind": "provenance"
                                            }
                                        ]
                                    }
                                ]
                            },
                            {
                                "id": "functional",
                                "name": "Functional",
                                "description": "Functional.",
                                "findings": [
                                    {
                                        "id": "functional-finding",
                                        "name": "Functional",
                                        "description": "Functional.",
                                        "questions": [
                                            {
                                                "text": "What are pure functions and immutability in functional programming?",
                                                "kind": "provenance"
                                            },
                                            {
                                                "text": "Which sources are cited?",
                                                "kind": "provenance"
                                            }
                                        ]
                                    }
                                ]
                            }
                        ]
                    },
                    {
                        "id": "practice",
                        "name": "Practice",
                        "description": "Practices.",
                        "rationale": "Attribution.",
                        "layers": [
                            {
                                "id": "typing",
                                "name": "Typing",
                                "description": "Typing disciplines.",
                                "findings": [
                                    {
                                        "id": "typing-finding",
                                        "name": "Typing",
                                        "description": "Typing.",
                                        "questions": [
                                            {
                                                "text": "How do static and dynamic typing differ, and what trade-offs are argued, with views attributed?",
                                                "kind": "provenance"
                                            },
                                            {
                                                "text": "Which entry fits type system?",
                                                "kind": "action"
                                            }
                                        ]
                                    }
                                ]
                            },
                            {
                                "id": "vibe",
                                "name": "AI-assisted coding",
                                "description": "Vibe coding.",
                                "findings": [
                                    {
                                        "id": "vibe-finding",
                                        "name": "AI-assisted coding",
                                        "description": "AI-assisted coding.",
                                        "questions": [
                                            {
                                                "text": "What do developers and security researchers say about vibe coding risks and benefits, with positions attributed and checked against current sources?",
                                                "kind": "provenance"
                                            },
                                            {
                                                "text": "Is the presentation neutral and attributed?",
                                                "kind": "boundary"
                                            }
                                        ]
                                    }
                                ]
                            }
                        ]
                    },
                    {
                        "id": "context",
                        "name": "Context",
                        "description": "Culture.",
                        "rationale": "Context.",
                        "layers": [
                            {
                                "id": "livecoding",
                                "name": "Live coding",
                                "description": "Live coding performance.",
                                "findings": [
                                    {
                                        "id": "livecoding-finding",
                                        "name": "Live coding",
                                        "description": "Live coding.",
                                        "questions": [
                                            {
                                                "text": "How is live coding used in music performance and teaching?",
                                                "kind": "provenance"
                                            },
                                            {
                                                "text": "Which entry fits live coding?",
                                                "kind": "action"
                                            }
                                        ]
                                    }
                                ]
                            },
                            {
                                "id": "algorithms",
                                "name": "Algorithms",
                                "description": "Dynamic programming.",
                                "findings": [
                                    {
                                        "id": "algorithms-finding",
                                        "name": "Algorithms",
                                        "description": "Algorithms.",
                                        "questions": [
                                            {
                                                "text": "What is dynamic programming as an algorithm design technique?",
                                                "kind": "provenance"
                                            },
                                            {
                                                "text": "Which entry fits dynamic programming?",
                                                "kind": "action"
                                            }
                                        ]
                                    }
                                ]
                            }
                        ]
                    }
                ]
            },
            "openQuestions": [
                "The registry aliases dynamic programming and Held-Karp algorithm should be moved to algorithm entries",
                "Should vibe coding be a separate entry with debates attributed?",
                "Should typing discipline be moved to type system entries?"
            ],
            "statistics": {
                "bundles": 4,
                "layers": 8,
                "findings": 8,
                "questions": 16
            }
        },
        "draft": {
            "generator": "vr.draft.v3",
            "status": "draft-generated",
            "researched": false,
            "archetype": "abstract concept",
            "method": "Written from the archetype playbook - what this kind of thing needs beyond identity and provenance - and from the structure that recurred across 6,333 models already researched by two engines. Applied to this entry by rule. No source was read for this thing and no claim here is researched. This entry carries no facets of its own, so they were inferred from its domain - a guess about a whole domain applied to one thing.",
            "facetsInferred": true,
            "nextPass": "A researcher replaces this draft with a sourced specification. Treat every sentence below as a proposal to argue with.",
            "purpose": "Give an agent a durable, checkable way to recognise a programming paradigm, record what state it is in, and decide what may be done with it.",
            "whatItIs": "Let an agent explain programming paradigms, relay major paradigms, language examples, related practices and debates from computer science sources with positions attributed, describe the named aliases and flag misfiled algorithm aliases, and distinguish paradigms from programming languages, design patterns, algorithm techniques and software development methodologies.",
            "characteristics": {
                "substance": "abstract",
                "origin": "conceptual",
                "agency": "inert"
            },
            "whatYouCanDoWithIt": [
                "observed and measured"
            ],
            "distinguishingFeatures": [
                "Names folded into this entry, which a task may need to split apart again: vibe coding, typing discipline, Interface-based programming, dynamic programming, live coding, Held–Karp algorithm.",
                "6 finer distinctions are held as aliases rather than separate entries, because telling them apart needs a task that asks for it.",
                "Described in 58 Wikipedia languages, which is a measure of how widely the thing is known, not of how important it is."
            ],
            "openQuestionsForResearch": [
                "Which of the bundles below does a real task actually need, and which are ceremony?",
                "What does this thing have that the facets do not capture at all?",
                "Which neighbouring kind is most often confused with a programming paradigm, and on what evidence are they told apart?"
            ],
            "whatItIsMadeOf": "an abstraction with no physical instance",
            "physicalCharacter": [
                "Does nothing on its own; everything it does, something else did to it.",
                "These come from the domain this entry sits in rather than from the entry itself, so treat them as a first guess about the whole domain applied to one thing."
            ],
            "whatCanBeDoneWithIt": [
                "observe it, measure it, record its state"
            ],
            "howItIsRecognised": [
                "Nothing to see. What is recognised is an instance of it, and which instances count is exactly what is argued about."
            ],
            "relatedModels": [
                {
                    "relation": "covers",
                    "note": "Finer kinds folded into this entry because telling them apart needs a task that asks for it. Each is a model waiting to be split out when one does.",
                    "targets": [
                        "vibe coding",
                        "typing discipline",
                        "Interface-based programming",
                        "dynamic programming",
                        "live coding",
                        "Held–Karp algorithm"
                    ]
                }
            ],
            "standing": "Described in 58 Wikipedia languages, which measures how widely it is written about rather than how important or how common it is. 6 finer distinctions are held inside this entry as names rather than as separate models.",
            "structure": {
                "bundles": [
                    {
                        "id": "identity-and-classification",
                        "name": "Identity, naming and classification",
                        "description": "How an agent tells one programming paradigm from another, and a programming paradigm from things that resemble it.",
                        "rationale": "Recognition comes before every other claim. Without stable identity nothing else in the model can be trusted to be about the same thing twice.",
                        "layers": [
                            {
                                "id": "naming-and-identifiers",
                                "name": "Names and identifiers",
                                "description": "The names this thing goes by and the identifiers that survive translation and time.",
                                "findings": [
                                    {
                                        "id": "preferred-name-and-aliases",
                                        "name": "Preferred name, aliases and local names",
                                        "description": "Which name to use, which names mean the same thing, and which merely sound similar.",
                                        "questions": [
                                            {
                                                "id": "preferred-name-and-aliases-q01",
                                                "text": "What identifies and describes the name of a programming paradigm, and in what units or vocabulary?",
                                                "kind": "definition",
                                                "answer_data": [
                                                    "identifiers",
                                                    "types and classes",
                                                    "values with units",
                                                    "explicit unknowns"
                                                ]
                                            },
                                            {
                                                "id": "preferred-name-and-aliases-q02",
                                                "text": "Who or what asserted this about the name of a programming paradigm, by which method, and when was it true?",
                                                "kind": "provenance",
                                                "answer_data": [
                                                    "authority",
                                                    "method",
                                                    "evidence",
                                                    "event time",
                                                    "knowledge time"
                                                ]
                                            },
                                            {
                                                "id": "preferred-name-and-aliases-q03",
                                                "text": "What may an agent decide or do once the name of a programming paradigm is known, and what must it refuse?",
                                                "kind": "action",
                                                "answer_data": [
                                                    "permitted actions",
                                                    "preconditions",
                                                    "refusals",
                                                    "escalation"
                                                ]
                                            }
                                        ]
                                    },
                                    {
                                        "id": "stable-identifiers",
                                        "name": "Stable identifiers and external keys",
                                        "description": "Identifiers that keep pointing at this kind of thing across systems and languages.",
                                        "questions": [
                                            {
                                                "id": "stable-identifiers-q01",
                                                "text": "What identifies and describes an identifier for a programming paradigm, and in what units or vocabulary?",
                                                "kind": "definition",
                                                "answer_data": [
                                                    "identifiers",
                                                    "types and classes",
                                                    "values with units",
                                                    "explicit unknowns"
                                                ]
                                            },
                                            {
                                                "id": "stable-identifiers-q02",
                                                "text": "Who or what asserted this about an identifier for a programming paradigm, by which method, and when was it true?",
                                                "kind": "provenance",
                                                "answer_data": [
                                                    "authority",
                                                    "method",
                                                    "evidence",
                                                    "event time",
                                                    "knowledge time"
                                                ]
                                            },
                                            {
                                                "id": "stable-identifiers-q03",
                                                "text": "What may an agent decide or do once an identifier for a programming paradigm is known, and what must it refuse?",
                                                "kind": "action",
                                                "answer_data": [
                                                    "permitted actions",
                                                    "preconditions",
                                                    "refusals",
                                                    "escalation"
                                                ]
                                            }
                                        ]
                                    }
                                ]
                            },
                            {
                                "id": "classification-and-granularity",
                                "name": "Classification and granularity",
                                "description": "Where a programming paradigm sits among kinds, and how finely a task needs to cut it.",
                                "findings": [
                                    {
                                        "id": "kind-and-parents",
                                        "name": "Kind, parents and neighbouring kinds",
                                        "description": "The classes this thing belongs to and the ones it is next to.",
                                        "questions": [
                                            {
                                                "id": "kind-and-parents-q01",
                                                "text": "What identifies and describes the kind of a programming paradigm, and in what units or vocabulary?",
                                                "kind": "definition",
                                                "answer_data": [
                                                    "identifiers",
                                                    "types and classes",
                                                    "values with units",
                                                    "explicit unknowns"
                                                ]
                                            },
                                            {
                                                "id": "kind-and-parents-q02",
                                                "text": "Who or what asserted this about the kind of a programming paradigm, by which method, and when was it true?",
                                                "kind": "provenance",
                                                "answer_data": [
                                                    "authority",
                                                    "method",
                                                    "evidence",
                                                    "event time",
                                                    "knowledge time"
                                                ]
                                            },
                                            {
                                                "id": "kind-and-parents-q03",
                                                "text": "What may an agent decide or do once the kind of a programming paradigm is known, and what must it refuse?",
                                                "kind": "action",
                                                "answer_data": [
                                                    "permitted actions",
                                                    "preconditions",
                                                    "refusals",
                                                    "escalation"
                                                ]
                                            }
                                        ]
                                    },
                                    {
                                        "id": "distinguishing-features",
                                        "name": "Distinguishing features",
                                        "description": "What separates a programming paradigm from the things most often confused with it.",
                                        "questions": [
                                            {
                                                "id": "distinguishing-features-q01",
                                                "text": "What identifies and describes what distinguishes a programming paradigm, and in what units or vocabulary?",
                                                "kind": "definition",
                                                "answer_data": [
                                                    "identifiers",
                                                    "types and classes",
                                                    "values with units",
                                                    "explicit unknowns"
                                                ]
                                            },
                                            {
                                                "id": "distinguishing-features-q02",
                                                "text": "Who or what asserted this about what distinguishes a programming paradigm, by which method, and when was it true?",
                                                "kind": "provenance",
                                                "answer_data": [
                                                    "authority",
                                                    "method",
                                                    "evidence",
                                                    "event time",
                                                    "knowledge time"
                                                ]
                                            },
                                            {
                                                "id": "distinguishing-features-q03",
                                                "text": "What may an agent decide or do once what distinguishes a programming paradigm is known, and what must it refuse?",
                                                "kind": "action",
                                                "answer_data": [
                                                    "permitted actions",
                                                    "preconditions",
                                                    "refusals",
                                                    "escalation"
                                                ]
                                            }
                                        ]
                                    }
                                ]
                            }
                        ]
                    },
                    {
                        "id": "state-and-lifecycle",
                        "name": "State and lifecycle",
                        "description": "The states a programming paradigm passes through and the events that move it between them.",
                        "rationale": "Most decisions about a thing depend on what state it is in now, which is a claim with a time on it, not a property.",
                        "layers": [
                            {
                                "id": "lifecycle-stages",
                                "name": "Lifecycle stages",
                                "description": "From coming into existence to ceasing to be one of these.",
                                "findings": [
                                    {
                                        "id": "stages-and-transitions",
                                        "name": "Stages and transitions",
                                        "description": "The stages worth naming and what moves a programming paradigm between them.",
                                        "questions": [
                                            {
                                                "id": "stages-and-transitions-q01",
                                                "text": "What identifies and describes the lifecycle of a programming paradigm, and in what units or vocabulary?",
                                                "kind": "definition",
                                                "answer_data": [
                                                    "identifiers",
                                                    "types and classes",
                                                    "values with units",
                                                    "explicit unknowns"
                                                ]
                                            },
                                            {
                                                "id": "stages-and-transitions-q02",
                                                "text": "Who or what asserted this about the lifecycle of a programming paradigm, by which method, and when was it true?",
                                                "kind": "provenance",
                                                "answer_data": [
                                                    "authority",
                                                    "method",
                                                    "evidence",
                                                    "event time",
                                                    "knowledge time"
                                                ]
                                            },
                                            {
                                                "id": "stages-and-transitions-q03",
                                                "text": "What may an agent decide or do once the lifecycle of a programming paradigm is known, and what must it refuse?",
                                                "kind": "action",
                                                "answer_data": [
                                                    "permitted actions",
                                                    "preconditions",
                                                    "refusals",
                                                    "escalation"
                                                ]
                                            }
                                        ]
                                    }
                                ]
                            },
                            {
                                "id": "observations-and-status",
                                "name": "Observations and current status",
                                "description": "What is observed about a programming paradigm, how often and by whom.",
                                "findings": [
                                    {
                                        "id": "observation-record",
                                        "name": "Observation record",
                                        "description": "How an observation of a programming paradigm is recorded so that it can be superseded rather than overwritten.",
                                        "questions": [
                                            {
                                                "id": "observation-record-q01",
                                                "text": "What identifies and describes an observation of a programming paradigm, and in what units or vocabulary?",
                                                "kind": "definition",
                                                "answer_data": [
                                                    "identifiers",
                                                    "types and classes",
                                                    "values with units",
                                                    "explicit unknowns"
                                                ]
                                            },
                                            {
                                                "id": "observation-record-q02",
                                                "text": "Who or what asserted this about an observation of a programming paradigm, by which method, and when was it true?",
                                                "kind": "provenance",
                                                "answer_data": [
                                                    "authority",
                                                    "method",
                                                    "evidence",
                                                    "event time",
                                                    "knowledge time"
                                                ]
                                            },
                                            {
                                                "id": "observation-record-q03",
                                                "text": "What may an agent decide or do once an observation of a programming paradigm is known, and what must it refuse?",
                                                "kind": "action",
                                                "answer_data": [
                                                    "permitted actions",
                                                    "preconditions",
                                                    "refusals",
                                                    "escalation"
                                                ]
                                            }
                                        ]
                                    }
                                ]
                            }
                        ]
                    },
                    {
                        "id": "definitions-in-contest",
                        "name": "Definitions and who holds them",
                        "description": "What programming paradigm is taken to mean, and by whom.",
                        "rationale": "When a field disagrees about a concept, the disagreement is the content. A model that picks one definition silently destroys the information.",
                        "layers": [
                            {
                                "id": "competing-definitions",
                                "name": "Competing definitions",
                                "description": "The main readings and the traditions behind them.",
                                "findings": [
                                    {
                                        "id": "definition-map",
                                        "name": "Definitions and their holders",
                                        "description": "Each definition with the school or body that holds it.",
                                        "questions": [
                                            {
                                                "id": "definition-map-q01",
                                                "text": "Which definitions of programming paradigm are in use, and which tradition or body holds each?",
                                                "kind": "definition"
                                            },
                                            {
                                                "id": "definition-map-q02",
                                                "text": "What turns on the difference between them in practice?",
                                                "kind": "boundary"
                                            }
                                        ]
                                    }
                                ]
                            },
                            {
                                "id": "operationalisation",
                                "name": "Operationalisation",
                                "description": "How it is measured or applied when it has to be.",
                                "findings": [
                                    {
                                        "id": "operational-record",
                                        "name": "Measures and proxies",
                                        "description": "Instruments and indicators used to stand in for it.",
                                        "questions": [
                                            {
                                                "id": "operational-record-q01",
                                                "text": "How is programming paradigm operationalised or measured in practice, and by what instrument?",
                                                "kind": "measurement"
                                            },
                                            {
                                                "id": "operational-record-q02",
                                                "text": "What does that operationalisation leave out, and when does that matter?",
                                                "kind": "boundary"
                                            }
                                        ]
                                    }
                                ]
                            }
                        ]
                    },
                    {
                        "id": "instances-and-use",
                        "name": "Instances, use and consequence",
                        "description": "What counts as an instance of programming paradigm and what follows from calling something that.",
                        "rationale": "Applying a concept is an act with consequences, so a model must say what the label licenses and what it does not.",
                        "layers": [
                            {
                                "id": "instances",
                                "name": "What counts as an instance",
                                "description": "Clear cases, borderline cases and non-cases.",
                                "findings": [
                                    {
                                        "id": "instance-tests",
                                        "name": "Tests for an instance",
                                        "description": "What would settle whether something falls under it.",
                                        "questions": [
                                            {
                                                "id": "instance-tests-q01",
                                                "text": "What would settle whether something is an instance of programming paradigm?",
                                                "kind": "boundary"
                                            },
                                            {
                                                "id": "instance-tests-q02",
                                                "text": "Which borderline cases are argued about, and on what grounds?",
                                                "kind": "definition"
                                            }
                                        ]
                                    }
                                ]
                            },
                            {
                                "id": "consequence",
                                "name": "Consequence of application",
                                "description": "Rights, duties or decisions that follow from the label.",
                                "findings": [
                                    {
                                        "id": "consequence-record",
                                        "name": "What the label licenses",
                                        "description": "What an agent may do once something is classified this way.",
                                        "questions": [
                                            {
                                                "id": "consequence-record-q01",
                                                "text": "What follows practically once something is treated as programming paradigm?",
                                                "kind": "action"
                                            },
                                            {
                                                "id": "consequence-record-q02",
                                                "text": "What must an agent not infer from the label alone?",
                                                "kind": "action"
                                            }
                                        ]
                                    }
                                ]
                            }
                        ]
                    },
                    {
                        "id": "provenance-and-evidence",
                        "name": "Provenance, evidence and time",
                        "description": "Where every claim about a programming paradigm came from and when it held.",
                        "rationale": "A claim without a source and a time cannot be superseded, only overwritten, and an agent that overwrites loses the ability to explain itself.",
                        "layers": [
                            {
                                "id": "source-and-authority",
                                "name": "Source and authority",
                                "description": "Who said it, on what evidence, and how strongly.",
                                "findings": [
                                    {
                                        "id": "claim-provenance",
                                        "name": "Claim provenance and confidence",
                                        "description": "The authority behind each claim about a programming paradigm and how confident it is.",
                                        "questions": [
                                            {
                                                "id": "claim-provenance-q01",
                                                "text": "What identifies and describes a claim about a programming paradigm, and in what units or vocabulary?",
                                                "kind": "definition",
                                                "answer_data": [
                                                    "identifiers",
                                                    "types and classes",
                                                    "values with units",
                                                    "explicit unknowns"
                                                ]
                                            },
                                            {
                                                "id": "claim-provenance-q02",
                                                "text": "Who or what asserted this about a claim about a programming paradigm, by which method, and when was it true?",
                                                "kind": "provenance",
                                                "answer_data": [
                                                    "authority",
                                                    "method",
                                                    "evidence",
                                                    "event time",
                                                    "knowledge time"
                                                ]
                                            },
                                            {
                                                "id": "claim-provenance-q03",
                                                "text": "What may an agent decide or do once a claim about a programming paradigm is known, and what must it refuse?",
                                                "kind": "action",
                                                "answer_data": [
                                                    "permitted actions",
                                                    "preconditions",
                                                    "refusals",
                                                    "escalation"
                                                ]
                                            }
                                        ]
                                    }
                                ]
                            },
                            {
                                "id": "time-and-versions",
                                "name": "Time, versions and supersession",
                                "description": "When a claim was true, when it was learnt, and what replaced it.",
                                "findings": [
                                    {
                                        "id": "validity-and-supersession",
                                        "name": "Validity period and supersession",
                                        "description": "How an old claim about a programming paradigm is retired without being erased.",
                                        "questions": [
                                            {
                                                "id": "validity-and-supersession-q01",
                                                "text": "What identifies and describes the validity of a claim about a programming paradigm, and in what units or vocabulary?",
                                                "kind": "definition",
                                                "answer_data": [
                                                    "identifiers",
                                                    "types and classes",
                                                    "values with units",
                                                    "explicit unknowns"
                                                ]
                                            },
                                            {
                                                "id": "validity-and-supersession-q02",
                                                "text": "Who or what asserted this about the validity of a claim about a programming paradigm, by which method, and when was it true?",
                                                "kind": "provenance",
                                                "answer_data": [
                                                    "authority",
                                                    "method",
                                                    "evidence",
                                                    "event time",
                                                    "knowledge time"
                                                ]
                                            },
                                            {
                                                "id": "validity-and-supersession-q03",
                                                "text": "What may an agent decide or do once the validity of a claim about a programming paradigm is known, and what must it refuse?",
                                                "kind": "action",
                                                "answer_data": [
                                                    "permitted actions",
                                                    "preconditions",
                                                    "refusals",
                                                    "escalation"
                                                ]
                                            }
                                        ]
                                    }
                                ]
                            }
                        ]
                    }
                ]
            },
            "statistics": {
                "bundles": 5,
                "layers": 10,
                "findings": 12,
                "questions": 32
            }
        }
    }
}