{
    "model": {
        "rank": 1246,
        "code": "thing-q9143",
        "model_id": "vr.tr.programming-language",
        "name": "programming language",
        "purpose": "Let an agent explain programming languages by paradigm, typing, ecosystem and standard, and help people choose and learn languages.",
        "family": "Thing Registry",
        "category": "Information and virtual systems",
        "status": "research-draft",
        "kind": "thing",
        "plane": "INF",
        "domain": "INF.MED",
        "industry": "",
        "version": "",
        "url": "/models/thing/q9143/",
        "tier": 2,
        "score": 164,
        "payload": {
            "layer": "wikidata",
            "aliases": [
                "proof language",
                "general-purpose programming language",
                "glue language",
                "Agile programming",
                "workflow language",
                "declarative programming language",
                "pseudo language",
                "programming language based on Japanese",
                "page description language",
                "Web programming language",
                "dynamic programming language",
                "multi-paradigm programming language",
                "1st-generation programming language",
                "3rd-generation programming language",
                "frame language",
                "programming language extension",
                "Payjar (Programinglanguage)",
                "miniKanren",
                "hybrid programming language",
                "Unisys MCP programming languages",
                "2nd-generation programming language",
                "scripting language",
                "mini-language",
                "interpreted language",
                "high-level programming language",
                "imperative programming language",
                "synchronous programming language",
                "4th-generation programming language",
                "transaction control language",
                "dialect",
                "concurrent programming language",
                "data-driven programming language",
                "agent-oriented programming language",
                "structured programming language",
                "array programming language",
                "automata-based programming language",
                "constraint programming language",
                "dataflow programming language",
                "flow-based  programming language",
                "reactive programming language"
            ],
            "aliasCount": 134,
            "merged": 134,
            "knownIn": 164,
            "facets": null,
            "markers": [],
            "lexicalClass": "",
            "senseRank": null,
            "alsoRegisteredAs": "vr.tr.programming-language",
            "source": {
                "dataset": "wikidata",
                "item": "Q9143",
                "url": "https://www.wikidata.org/wiki/Q9143",
                "license": "CC0 1.0"
            }
        },
        "research": {
            "vercy": "1.0-draft",
            "publication": {
                "status": "research-draft",
                "adjudicationStatus": "unreviewed",
                "publishableCanonical": false,
                "generatedAt": "2026-09-11T14:17:01Z",
                "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": 1,
                "engine": "claude"
            },
            "metaModel": {
                "id": "THING-Q9143",
                "registryId": "vr.tr.programming-language",
                "name": "programming language",
                "version": "0.2.0-wave.1",
                "entryKind": "thing",
                "family": "Thing Registry",
                "domain": [
                    "INF.MED"
                ],
                "status": "research-draft"
            },
            "canonicalUrl": "https://ver.cy/models/thing/q9143/",
            "model": {
                "registry_id": "vr.tr.programming-language",
                "name": "programming language",
                "purpose": "Let an agent explain programming languages by paradigm, typing, ecosystem and standard, and help people choose and learn languages.",
                "definition": "A formal language for expressing computations that computers can execute, defined by syntax and semantics and implemented by compilers or interpreters, including general-purpose, declarative, scripting, workflow and proof languages; many are standardised, such as C, ECMAScript and SQL.",
                "what_it_is_for": "Writing software and specifications.",
                "affordances": [
                    "compare languages for a task",
                    "explain paradigms and type systems",
                    "find official specifications and documentation",
                    "learn a new language"
                ],
                "distinguishing_features": [
                    "Formal syntax and semantics",
                    "Implemented by tools",
                    "Paradigms and type systems vary",
                    "Ecosystems of libraries"
                ],
                "appearance": "Text-based code following a grammar, sometimes visual block languages.",
                "visual_identification": [
                    "Keywords, syntax and file extensions",
                    "Compilers and interpreters",
                    "Markup languages describe documents rather than computation"
                ],
                "physical_properties": [],
                "families_and_kinds": [
                    "general-purpose languages",
                    "declarative and query languages",
                    "scripting and glue languages",
                    "functional languages",
                    "proof and specification languages"
                ],
                "related_models": [
                    {
                        "relation": "is a kind of",
                        "target": "computer language",
                        "why": "category"
                    },
                    {
                        "relation": "is used in",
                        "target": "computer programming",
                        "why": "practice"
                    },
                    {
                        "relation": "is implemented by",
                        "target": "compiler or interpreter",
                        "why": "tool"
                    },
                    {
                        "relation": "is used to query",
                        "target": "database",
                        "why": "application"
                    }
                ],
                "identifiers": [],
                "standards_and_regulation": [
                    "ISO/IEC language standards such as C and C++",
                    "ECMA-262 ECMAScript",
                    "ISO/IEC 9075 SQL"
                ],
                "failure_modes_and_hazards": [
                    "Choosing a language by hype alone",
                    "Memory safety issues in some languages",
                    "Outdated version information"
                ],
                "in_scope": [],
                "out_of_scope": [],
                "characteristics": []
            },
            "sources": [],
            "structure": {
                "bundles": [
                    {
                        "id": "choose",
                        "name": "Choose",
                        "description": "Selecting a language.",
                        "rationale": "Tasks drive choice.",
                        "layers": [
                            {
                                "id": "task",
                                "name": "Task",
                                "description": "Fit for purpose.",
                                "findings": [
                                    {
                                        "id": "task-finding",
                                        "name": "Task",
                                        "description": "Fit for purpose.",
                                        "questions": [
                                            {
                                                "text": "Which language suits this task, platform and team?",
                                                "kind": "action"
                                            },
                                            {
                                                "text": "What are the trade-offs in performance, safety and ecosystem?",
                                                "kind": "boundary"
                                            }
                                        ]
                                    }
                                ]
                            },
                            {
                                "id": "ecosystem",
                                "name": "Ecosystem",
                                "description": "Libraries and tools.",
                                "findings": [
                                    {
                                        "id": "ecosystem-finding",
                                        "name": "Ecosystem",
                                        "description": "Ecosystem.",
                                        "questions": [
                                            {
                                                "text": "Which libraries, package managers and tools are mature for this language?",
                                                "kind": "provenance"
                                            },
                                            {
                                                "text": "Is it actively maintained?",
                                                "kind": "provenance"
                                            }
                                        ]
                                    }
                                ]
                            }
                        ]
                    },
                    {
                        "id": "concepts",
                        "name": "Concepts",
                        "description": "Language design.",
                        "rationale": "Design shapes use.",
                        "layers": [
                            {
                                "id": "paradigm",
                                "name": "Paradigm",
                                "description": "Paradigms.",
                                "findings": [
                                    {
                                        "id": "paradigm-finding",
                                        "name": "Paradigm",
                                        "description": "Paradigms.",
                                        "questions": [
                                            {
                                                "text": "Which paradigms does this language support?",
                                                "kind": "definition"
                                            },
                                            {
                                                "text": "How do they affect program design?",
                                                "kind": "definition"
                                            }
                                        ]
                                    }
                                ]
                            },
                            {
                                "id": "types",
                                "name": "Types",
                                "description": "Type systems.",
                                "findings": [
                                    {
                                        "id": "types-finding",
                                        "name": "Types",
                                        "description": "Type systems.",
                                        "questions": [
                                            {
                                                "text": "Is the language statically or dynamically typed, and how strong are its guarantees?",
                                                "kind": "definition"
                                            },
                                            {
                                                "text": "How does it handle memory safety?",
                                                "kind": "definition"
                                            }
                                        ]
                                    }
                                ]
                            }
                        ]
                    },
                    {
                        "id": "reference",
                        "name": "Reference",
                        "description": "Specifications.",
                        "rationale": "Standards define languages.",
                        "layers": [
                            {
                                "id": "spec",
                                "name": "Spec",
                                "description": "Specification.",
                                "findings": [
                                    {
                                        "id": "spec-finding",
                                        "name": "Spec",
                                        "description": "Specification.",
                                        "questions": [
                                            {
                                                "text": "Where is the official specification or standard for this language version?",
                                                "kind": "provenance"
                                            },
                                            {
                                                "text": "Which version is current?",
                                                "kind": "provenance"
                                            }
                                        ]
                                    }
                                ]
                            },
                            {
                                "id": "docs",
                                "name": "Docs",
                                "description": "Documentation.",
                                "findings": [
                                    {
                                        "id": "docs-finding",
                                        "name": "Docs",
                                        "description": "Documentation.",
                                        "questions": [
                                            {
                                                "text": "Where is the official documentation and tutorial?",
                                                "kind": "provenance"
                                            },
                                            {
                                                "text": "Which community resources are reliable?",
                                                "kind": "provenance"
                                            }
                                        ]
                                    }
                                ]
                            }
                        ]
                    },
                    {
                        "id": "learning",
                        "name": "Learning",
                        "description": "Learning languages.",
                        "rationale": "Practice builds skill.",
                        "layers": [
                            {
                                "id": "start",
                                "name": "Start",
                                "description": "Getting started.",
                                "findings": [
                                    {
                                        "id": "start-finding",
                                        "name": "Start",
                                        "description": "Getting started.",
                                        "questions": [
                                            {
                                                "text": "What is a good first project in this language?",
                                                "kind": "action"
                                            },
                                            {
                                                "text": "How should the toolchain be installed?",
                                                "kind": "action"
                                            }
                                        ]
                                    }
                                ]
                            },
                            {
                                "id": "history",
                                "name": "History",
                                "description": "Language history.",
                                "findings": [
                                    {
                                        "id": "history-finding",
                                        "name": "History",
                                        "description": "History.",
                                        "questions": [
                                            {
                                                "text": "Who created this language and when, according to reliable sources?",
                                                "kind": "provenance"
                                            },
                                            {
                                                "text": "Which languages influenced it?",
                                                "kind": "provenance"
                                            }
                                        ]
                                    }
                                ]
                            }
                        ]
                    }
                ]
            },
            "openQuestions": [
                "Should each language be a separate entry?",
                "How should specifications be linked?",
                "How should version histories be recorded?"
            ],
            "statistics": {
                "bundles": 4,
                "layers": 8,
                "findings": 8,
                "questions": 16
            }
        },
        "draft": {
            "generator": "vr.draft.v3",
            "status": "draft-generated",
            "researched": false,
            "archetype": "language",
            "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 language, record what state it is in, and decide what may be done with it.",
            "whatItIs": "Let an agent explain programming languages by paradigm, typing, ecosystem and standard, and help people choose and learn languages.",
            "characteristics": {
                "substance": "information",
                "origin": "conceptual",
                "agency": "inert"
            },
            "whatYouCanDoWithIt": [
                "read and interpreted",
                "observed and measured"
            ],
            "distinguishingFeatures": [
                "Names folded into this entry, which a task may need to split apart again: proof language, general-purpose programming language, glue language, Agile programming, workflow language, declarative programming language, pseudo language, programming language based on Japanese, page description language, Web programming language, dynamic programming language, multi-paradigm programming language.",
                "134 finer distinctions are held as aliases rather than separate entries, because telling them apart needs a task that asks for it.",
                "Described in 164 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 language, and on what evidence are they told apart?"
            ],
            "whatItIsMadeOf": "content that has to be carried by something else",
            "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": [
                "read it and act on what it says",
                "observe it, measure it, record its state"
            ],
            "howItIsRecognised": [
                "Recognised from text or speech by script, vocabulary and grammar - and script is the weakest of the three, since several languages share one."
            ],
            "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": [
                        "proof language",
                        "general-purpose programming language",
                        "glue language",
                        "Agile programming",
                        "workflow language",
                        "declarative programming language",
                        "pseudo language",
                        "programming language based on Japanese",
                        "page description language",
                        "Web programming language",
                        "dynamic programming language",
                        "multi-paradigm programming language"
                    ]
                }
            ],
            "standing": "Described in 164 Wikipedia languages, which measures how widely it is written about rather than how important or how common it is. 134 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 language from another, and a programming language 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 language, 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 language, 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 language 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 language, 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 language, 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 language 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 language 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 language, 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 language, 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 language 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 language from the things most often confused with it.",
                                        "questions": [
                                            {
                                                "id": "distinguishing-features-q01",
                                                "text": "What identifies and describes what distinguishes a programming language, 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 language, 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 language 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 language 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 language between them.",
                                        "questions": [
                                            {
                                                "id": "stages-and-transitions-q01",
                                                "text": "What identifies and describes the lifecycle of a programming language, 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 language, 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 language 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 language, how often and by whom.",
                                "findings": [
                                    {
                                        "id": "observation-record",
                                        "name": "Observation record",
                                        "description": "How an observation of a programming language 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 language, 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 language, 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 language is known, and what must it refuse?",
                                                "kind": "action",
                                                "answer_data": [
                                                    "permitted actions",
                                                    "preconditions",
                                                    "refusals",
                                                    "escalation"
                                                ]
                                            }
                                        ]
                                    }
                                ]
                            }
                        ]
                    },
                    {
                        "id": "content-and-access",
                        "name": "Content, encoding and access",
                        "description": "What a programming language says, how it is encoded and who may read it.",
                        "rationale": "An informational thing carries content that can be copied, versioned and withheld, none of which its physical carrier explains.",
                        "layers": [
                            {
                                "id": "content-and-encoding",
                                "name": "Content and encoding",
                                "description": "The content itself, its format and its language.",
                                "findings": [
                                    {
                                        "id": "content-and-format",
                                        "name": "Content, format and language",
                                        "description": "What a programming language contains and in what form it is held.",
                                        "questions": [
                                            {
                                                "id": "content-and-format-q01",
                                                "text": "What identifies and describes the content of a programming language, and in what units or vocabulary?",
                                                "kind": "definition",
                                                "answer_data": [
                                                    "identifiers",
                                                    "types and classes",
                                                    "values with units",
                                                    "explicit unknowns"
                                                ]
                                            },
                                            {
                                                "id": "content-and-format-q02",
                                                "text": "Who or what asserted this about the content of a programming language, by which method, and when was it true?",
                                                "kind": "provenance",
                                                "answer_data": [
                                                    "authority",
                                                    "method",
                                                    "evidence",
                                                    "event time",
                                                    "knowledge time"
                                                ]
                                            },
                                            {
                                                "id": "content-and-format-q03",
                                                "text": "What may an agent decide or do once the content of a programming language is known, and what must it refuse?",
                                                "kind": "action",
                                                "answer_data": [
                                                    "permitted actions",
                                                    "preconditions",
                                                    "refusals",
                                                    "escalation"
                                                ]
                                            }
                                        ]
                                    }
                                ]
                            },
                            {
                                "id": "access-and-rights",
                                "name": "Access, rights and retention",
                                "description": "Who may read, copy or change it, and for how long it is kept.",
                                "findings": [
                                    {
                                        "id": "access-rules",
                                        "name": "Access rules and retention",
                                        "description": "The permissions attached to a programming language and the period it survives.",
                                        "questions": [
                                            {
                                                "id": "access-rules-q01",
                                                "text": "What identifies and describes access to a programming language, and in what units or vocabulary?",
                                                "kind": "definition",
                                                "answer_data": [
                                                    "identifiers",
                                                    "types and classes",
                                                    "values with units",
                                                    "explicit unknowns"
                                                ]
                                            },
                                            {
                                                "id": "access-rules-q02",
                                                "text": "Who or what asserted this about access to a programming language, by which method, and when was it true?",
                                                "kind": "provenance",
                                                "answer_data": [
                                                    "authority",
                                                    "method",
                                                    "evidence",
                                                    "event time",
                                                    "knowledge time"
                                                ]
                                            },
                                            {
                                                "id": "access-rules-q03",
                                                "text": "What may an agent decide or do once access to a programming language is known, and what must it refuse?",
                                                "kind": "action",
                                                "answer_data": [
                                                    "permitted actions",
                                                    "preconditions",
                                                    "refusals",
                                                    "escalation"
                                                ]
                                            }
                                        ]
                                    }
                                ]
                            }
                        ]
                    },
                    {
                        "id": "speakers-and-standing",
                        "name": "Speakers, communities and standing",
                        "description": "Who speaks programming language, how many, and what status it holds where they live.",
                        "rationale": "Speaker numbers move, and legal standing changes without the language changing. Both are claims with a date and a source, never properties.",
                        "layers": [
                            {
                                "id": "speaker-populations",
                                "name": "Speaker populations",
                                "description": "Counts by kind of speaker, each with the year and the method behind it.",
                                "findings": [
                                    {
                                        "id": "population-estimates",
                                        "name": "Population estimates and their basis",
                                        "description": "First-language and second-language counts, who produced them and how.",
                                        "questions": [
                                            {
                                                "id": "population-estimates-q01",
                                                "text": "How many first-language and second-language speakers of programming language are claimed, for which year, and by whom?",
                                                "kind": "measurement"
                                            },
                                            {
                                                "id": "population-estimates-q02",
                                                "text": "What method produced that estimate - census, survey, projection - and what does it systematically miss?",
                                                "kind": "provenance"
                                            }
                                        ]
                                    }
                                ]
                            },
                            {
                                "id": "official-standing",
                                "name": "Official standing and policy",
                                "description": "Where programming language is official, taught, or barred, and under which instrument.",
                                "findings": [
                                    {
                                        "id": "legal-status",
                                        "name": "Legal status by jurisdiction",
                                        "description": "The status held in each place, with the law or treaty that grants it.",
                                        "questions": [
                                            {
                                                "id": "legal-status-q01",
                                                "text": "In which jurisdictions does programming language hold official, regional or minority status, and under what instrument?",
                                                "kind": "definition"
                                            },
                                            {
                                                "id": "legal-status-q02",
                                                "text": "What follows practically from that status - schooling, courts, signage - and what does not?",
                                                "kind": "action"
                                            }
                                        ]
                                    }
                                ]
                            }
                        ]
                    },
                    {
                        "id": "varieties-and-writing",
                        "name": "Varieties, registers and writing",
                        "description": "The forms programming language takes, and the scripts and spellings used to write it.",
                        "rationale": "A language is not its script and a standard is not the whole language. A model that conflates them cannot say which variety a text is in.",
                        "layers": [
                            {
                                "id": "varieties-and-continuum",
                                "name": "Varieties and the continuum",
                                "description": "Dialects, standards and the cuts drawn through a continuum that has none of its own.",
                                "findings": [
                                    {
                                        "id": "variety-inventory",
                                        "name": "Varieties and who separated them",
                                        "description": "Named varieties, their relation to the standard, and the authority behind each split.",
                                        "questions": [
                                            {
                                                "id": "variety-inventory-q01",
                                                "text": "Which varieties of programming language are distinguished in practice, and who drew each boundary?",
                                                "kind": "boundary"
                                            },
                                            {
                                                "id": "variety-inventory-q02",
                                                "text": "Which neighbouring lect is treated as the same language by one authority and a different one by another?",
                                                "kind": "boundary"
                                            }
                                        ]
                                    }
                                ]
                            },
                            {
                                "id": "script-and-orthography",
                                "name": "Script and orthography",
                                "description": "Writing systems in use, competing spellings, and reform history.",
                                "findings": [
                                    {
                                        "id": "writing-systems",
                                        "name": "Writing systems and orthographies",
                                        "description": "Scripts programming language is written in and which spelling convention applies where.",
                                        "questions": [
                                            {
                                                "id": "writing-systems-q01",
                                                "text": "Which scripts and orthographies are in use for programming language, and where does each apply?",
                                                "kind": "definition"
                                            },
                                            {
                                                "id": "writing-systems-q02",
                                                "text": "What identifies the orthography of a given text, and what should an agent do when it cannot tell?",
                                                "kind": "action"
                                            }
                                        ]
                                    }
                                ]
                            }
                        ]
                    },
                    {
                        "id": "codes-and-alignment",
                        "name": "Codes and external alignment",
                        "description": "The identifiers that name programming language across systems.",
                        "rationale": "Language codes are how every other system will refer to this, and they disagree with each other in known ways.",
                        "layers": [
                            {
                                "id": "identifier-schemes",
                                "name": "Identifier schemes",
                                "description": "ISO 639 parts, Glottolog, and the granularity each assumes.",
                                "findings": [
                                    {
                                        "id": "codes-and-granularity",
                                        "name": "Codes and the granularity they encode",
                                        "description": "Which code refers to this language and which refers to a group containing it.",
                                        "questions": [
                                            {
                                                "id": "codes-and-granularity-q01",
                                                "text": "Which ISO 639-1, 639-2 and 639-3 codes apply to programming language, and do they refer to the same extent?",
                                                "kind": "definition"
                                            },
                                            {
                                                "id": "codes-and-granularity-q02",
                                                "text": "Where do the schemes disagree about whether this is one language or several?",
                                                "kind": "boundary"
                                            }
                                        ]
                                    }
                                ]
                            }
                        ]
                    },
                    {
                        "id": "provenance-and-evidence",
                        "name": "Provenance, evidence and time",
                        "description": "Where every claim about a programming language 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 language and how confident it is.",
                                        "questions": [
                                            {
                                                "id": "claim-provenance-q01",
                                                "text": "What identifies and describes a claim about a programming language, 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 language, 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 language 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 language is retired without being erased.",
                                        "questions": [
                                            {
                                                "id": "validity-and-supersession-q01",
                                                "text": "What identifies and describes the validity of a claim about a programming language, 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 language, 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 language is known, and what must it refuse?",
                                                "kind": "action",
                                                "answer_data": [
                                                    "permitted actions",
                                                    "preconditions",
                                                    "refusals",
                                                    "escalation"
                                                ]
                                            }
                                        ]
                                    }
                                ]
                            }
                        ]
                    }
                ]
            },
            "statistics": {
                "bundles": 7,
                "layers": 13,
                "findings": 15,
                "questions": 40
            }
        }
    }
}