{
  "type": "abp/universe/v1",
  "id": "u2",
  "n": 2,
  "name": "The deployment shape",
  "level": "across",
  "owner": "the vendor's published words, read on a date, with a hash, and never probed",
  "centre": "the setting",
  "smallest": "a scope, a flag or a line on a documentation page",
  "status": "partial",
  "status_note": "Since v0.4.3 the product, the tool a capability is reached through and the setting that moves a barrier are nodes, all derived from data that was already published: the tools in the vendor's words, the reductions the map publishes per capability, and the difference between two variants of one product. Since v0.4.4 seven shapes contributed by riskmandate.ai are promoted here with their provenance, their scopes are nodes in the vendor's own identifier, and material is valued on every row they state it on. Documentation pages and contradictions are carried as data on the profile and are not nodes yet. This is the first universe where the vocabulary is not this site's: a vendor speaks in scopes, tool names, flags, consent screens and administrator settings, and the ABP keeps them in the vendor's words and draws an edge from each to the primitive it exposes.",
  "node_types": [
    {
      "name": "Product",
      "formula": "[Product] := a node that -has_variant-> at least one [DeploymentShape]",
      "exists_today": true,
      "note": null,
      "matched": 15
    },
    {
      "name": "DeploymentShape",
      "formula": "[DeploymentShape] := a node that -grants-> at least one [Capability]",
      "exists_today": true,
      "note": null,
      "matched": 16
    },
    {
      "name": "Tool",
      "formula": "[Tool] := a node that a [DeploymentShape] -runs_with-> and that -exposes-> at least one [Capability]",
      "exists_today": true,
      "note": "One node per shape, in the vendor's words, because what shell (Bash) reaches depends on where it runs.",
      "matched": 64
    },
    {
      "name": "Scope",
      "formula": "[Scope] := a node that a [DeploymentShape] is -scoped_by-> and that -permits-> at least one [Capability]",
      "exists_today": true,
      "note": "In the vendor's word, never translated. The connector shapes contributed by riskmandate.ai at v0.4.4 reach most of their rows through one.",
      "matched": 9
    },
    {
      "name": "Setting",
      "formula": "[Setting] := a node that -narrows-> at least one [Capability] and -moves-> it to at least one [Barrier]",
      "exists_today": true,
      "note": "Two kinds, both from published data: the reduction the map publishes per capability, and the setting that distinguishes two variants of one product, derived by diffing their grants. The confirmations flag is the second kind, and it is the path the home page's pair of examples was a sentence about.",
      "matched": 21
    },
    {
      "name": "DocumentationPage",
      "formula": "a [SourceFile] in U0 that a [Shape], [Tool], [Scope] or [Setting] is -documented_at->",
      "exists_today": false,
      "note": null,
      "matched": null
    },
    {
      "name": "Contradiction",
      "formula": "a node where an -advertises-> claim and a -scoped_by-> scope on the same [Product] disagree, both quoted, both dated, published unresolved",
      "exists_today": false,
      "note": "riskmandate.ai's Lab 01 holds four of these with verbatim quotes and URLs.",
      "matched": null
    }
  ],
  "verbs": [
    {
      "edge": "has_variant",
      "inverse": "variant_of",
      "domain": "Product",
      "range": "DeploymentShape",
      "reads_as": "this product has this variant",
      "inverse_reads_as": "this variant is a variant of this product",
      "from": "proposed here",
      "status": "live"
    },
    {
      "edge": "runs_with",
      "inverse": "run_by",
      "domain": "DeploymentShape",
      "range": "Tool",
      "reads_as": "this shape runs with this tool",
      "inverse_reads_as": "this tool is run by these shapes",
      "from": "proposed here",
      "status": "live"
    },
    {
      "edge": "exposes",
      "inverse": "exposed_by",
      "domain": "Tool",
      "range": "Capability",
      "reads_as": "this tool exposes this capability",
      "inverse_reads_as": "this capability is exposed by these tools",
      "from": "graphs.sgit.ai edge set",
      "status": "live"
    },
    {
      "edge": "scoped_by",
      "inverse": "scopes",
      "domain": "DeploymentShape",
      "range": "Scope",
      "reads_as": "this shape is scoped by this vendor scope",
      "inverse_reads_as": "this scope scopes these shapes",
      "from": "proposed here",
      "status": "live"
    },
    {
      "edge": "permits",
      "inverse": "permitted_by",
      "domain": "Scope",
      "range": "Capability",
      "reads_as": "this scope permits this capability",
      "inverse_reads_as": "this capability is permitted by these scopes",
      "from": "proposed here",
      "status": "live"
    },
    {
      "edge": "moves",
      "inverse": "moved_by",
      "domain": "Setting",
      "range": "Barrier",
      "reads_as": "this setting moves a capability to this barrier",
      "inverse_reads_as": "this barrier is where these settings move a capability to",
      "from": "proposed here",
      "status": "live"
    },
    {
      "edge": "narrows",
      "inverse": "narrowed_by",
      "domain": "Setting",
      "range": "Capability",
      "reads_as": "this setting narrows this capability",
      "inverse_reads_as": "this capability is narrowed by these settings",
      "from": "proposed here",
      "status": "live"
    },
    {
      "edge": "documented_at",
      "inverse": "documents",
      "domain": "Shape, Tool, Scope or Setting",
      "range": "DocumentationPage",
      "reads_as": "this tool is documented at this page, read on this date",
      "inverse_reads_as": "this page documents these tools",
      "from": "proposed here",
      "status": "proposed"
    },
    {
      "edge": "advertises",
      "inverse": "advertised_by",
      "domain": "Product",
      "range": "Capability",
      "reads_as": "this product's page advertises this capability",
      "inverse_reads_as": "this capability is advertised by these products",
      "from": "proposed here",
      "status": "proposed"
    },
    {
      "edge": "contradicts",
      "inverse": "contradicted_by",
      "domain": "Contradiction",
      "range": "Scope or Capability",
      "reads_as": "this advertised claim contradicts this granted scope",
      "inverse_reads_as": "this scope is contradicted by this claim",
      "from": "proposed here",
      "status": "proposed"
    },
    {
      "edge": "grants",
      "inverse": "granted_by",
      "domain": "DeploymentShape",
      "range": "Capability",
      "reads_as": "this deployment shape grants this capability",
      "inverse_reads_as": "this capability is granted by this deployment shape",
      "from": "graphs.sgit.ai edge set",
      "status": "live"
    }
  ],
  "adds": "The position on a connector that is present and switched off, which is the most common state in any real estate. The enforcer test decides it: if the switch is inside the agent's grant, the capability is in the grant at barrier setting, one click away, and the label counts it; if the switch is outside the grant, the capability is not in the grant, and the estate in U9 records it as one setting away. No new barrier kind and no new label field. The seven shapes riskmandate.ai has already built are layer one facts and belong at this address, through an intake path that carries their provenance.",
  "junctions_live": [
    {
      "edge": "grants",
      "inverse": "granted_by",
      "to": "u1",
      "status": "live"
    },
    {
      "edge": "exposes",
      "inverse": "exposed_by",
      "to": "u1",
      "status": "live"
    },
    {
      "edge": "moves",
      "inverse": "moved_by",
      "to": "u4",
      "status": "live"
    },
    {
      "edge": "narrows",
      "inverse": "narrowed_by",
      "to": "u1",
      "status": "live"
    },
    {
      "edge": "permits",
      "inverse": "permitted_by",
      "to": "u1",
      "status": "live"
    }
  ],
  "page": "https://abp.sgit.ai/model/universes/u2/index.html",
  "brief": "https://abp.sgit.ai/docs/briefs/v0.4.0__dev-brief__the-abp-is-a-fractal-semantic-graph-one-row-crosses-nine-universes-and-each-keeps-its-own-ontology/index.html",
  "provenance": {
    "source": "https://what-can-it-do.games.sgit.ai/data/",
    "source_page": "https://what-can-it-do.games.sgit.ai/map/index.html",
    "retrieved": "2026-09-11T13:00:37Z",
    "pack_version": "v0.8.0",
    "content_hash": "sha256:d6d4ba40f1fb1f93f660687e4787ac10c2e1835efeb3929a4c8ad62cee8897ef",
    "verbatim_bytes": "upstream/",
    "note": "The universe is authored in admin/build/universes.py; the matched counts and the live junctions are computed from the graph on every build.",
    "licence": "CC BY 4.0"
  }
}
