From abp.sgit.ai, the page as fetched on 2026-09-25 · open the live page ↗Everything on this sheet is the source site's own text; the newsroom's chrome is outside it.
{
"type": "abp/edge-vocabulary/v1",
"_what_this_is": "Every edge this model is written in. Each is a verb with a DISTINCT, meaningfully named inverse, a stated domain and range, and the sentence it reads as. The inverse is not the same edge walked backwards: it has different fan out, and that asymmetry is what stops the graph exploding.",
"the_banned_edge": "There is no generic association edge in this model and there will not be one. It constrains nothing and costs fan out.",
"extending_it": "A new edge needs a sentence, its inverse needs a DIFFERENT sentence, and both need a stated domain and range.",
"source": "https://graphs.sgit.ai/v1/grammar/edge-set.html",
"count": 22,
"universes": "Each edge names the universe of its domain and of its range, and `crosses` is true when they differ: a junction edge, the property that turns a set of graphs into a fractal rather than a pile. Computed from the node types, never declared. See universes/index.json.",
"edges": [
{
"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",
"domain_universe": "u2",
"range_universe": "u1",
"crosses": true
},
{
"edge": "reaches",
"inverse": "reachable_from",
"domain": "Capability",
"range": "ReachClass",
"reads_as": "this capability reaches this reach class",
"inverse_reads_as": "this reach class is reachable from this capability",
"from": "graphs.sgit.ai edge set",
"domain_universe": "u1",
"range_universe": "u1",
"crosses": false
},
{
"edge": "similar_to",
"inverse": "similar_to",
"domain": "Node",
"range": "Node",
"reads_as": "our node is similar to their node",
"inverse_reads_as": "symmetric, and partial on purpose",
"from": "graphs.sgit.ai anchor nodes",
"domain_universe": "any",
"range_universe": "any",
"crosses": false
},
{
"edge": "supersedes",
"inverse": "superseded_by",
"domain": "Node",
"range": "Node",
"reads_as": "this claim supersedes that one",
"inverse_reads_as": "that claim is superseded by this one",
"from": "graphs.sgit.ai, supersede never delete",
"domain_universe": "any",
"range_universe": "any",
"crosses": false
},
{
"edge": "has_verb",
"inverse": "verb_of",
"domain": "Capability",
"range": "Verb",
"reads_as": "this capability has the verb read",
"inverse_reads_as": "read is the verb of these capabilities",
"from": "proposed here",
"domain_universe": "u1",
"range_universe": "u1",
"crosses": false
},
{
"edge": "acts_on",
"inverse": "acted_on_by",
"domain": "Capability",
"range": "ObjectClass",
"reads_as": "this capability acts on files",
"inverse_reads_as": "files are acted on by these capabilities",
"from": "proposed here",
"domain_universe": "u1",
"range_universe": "u1",
"crosses": false
},
{
"edge": "in_family",
"inverse": "family_of",
"domain": "Capability",
"range": "Family",
"reads_as": "this capability is in the filesystem family",
"inverse_reads_as": "the filesystem family is the family of these capabilities",
"from": "proposed here",
"domain_universe": "u1",
"range_universe": "u1",
"crosses": false
},
{
"edge": "has_undo_class",
"inverse": "undo_class_of",
"domain": "Capability",
"range": "UndoClass",
"reads_as": "this capability has the undo class no",
"inverse_reads_as": "undo class no is the undo class of these capabilities",
"from": "proposed here",
"domain_universe": "u1",
"range_universe": "u1",
"crosses": false
},
{
"edge": "bounded_by",
"inverse": "bounds",
"domain": "GrantedCapability",
"range": "Barrier",
"reads_as": "this granted capability is bounded by this barrier",
"inverse_reads_as": "this barrier bounds these granted capabilities",
"from": "proposed here",
"domain_universe": "u3",
"range_universe": "u4",
"crosses": true
},
{
"edge": "enforced_by",
"inverse": "enforces",
"domain": "Barrier",
"range": "Enforcer",
"reads_as": "this barrier is enforced by something above the grant",
"inverse_reads_as": "this enforcer enforces these barriers",
"from": "proposed here",
"domain_universe": "u4",
"range_universe": "u4",
"crosses": false
},
{
"edge": "authorises",
"inverse": "authorised_by",
"domain": "Mandate",
"range": "Capability",
"reads_as": "this mandate authorises this capability",
"inverse_reads_as": "this capability is authorised by this mandate",
"from": "proposed here",
"domain_universe": "u5",
"range_universe": "u1",
"crosses": true
},
{
"edge": "withholds",
"inverse": "withheld_by",
"domain": "Mandate",
"range": "Capability",
"reads_as": "this mandate withholds this capability",
"inverse_reads_as": "this capability is withheld by this mandate",
"from": "proposed here",
"domain_universe": "u5",
"range_universe": "u1",
"crosses": true
},
{
"edge": "exceeds",
"inverse": "exceeded_by",
"domain": "GrantedCapability",
"range": "Mandate",
"reads_as": "this granted capability exceeds this mandate",
"inverse_reads_as": "this mandate is exceeded by these granted capabilities",
"from": "proposed here",
"domain_universe": "u3",
"range_universe": "u5",
"crosses": true
},
{
"edge": "falls_short_of",
"inverse": "unmet_by",
"domain": "Mandate",
"range": "Capability",
"reads_as": "this mandate falls short of this capability it asked for",
"inverse_reads_as": "this capability is unmet by this deployment shape",
"from": "proposed here",
"domain_universe": "u5",
"range_universe": "u1",
"crosses": true
},
{
"edge": "known_by",
"inverse": "evidences",
"domain": "GrantedCapability",
"range": "EvidenceTier",
"reads_as": "this granted capability is known by observation",
"inverse_reads_as": "observation evidences these granted capabilities",
"from": "proposed here",
"domain_universe": "u3",
"range_universe": "u3",
"crosses": false
},
{
"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",
"domain_universe": "u2",
"range_universe": "u2",
"crosses": false
},
{
"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",
"domain_universe": "u2",
"range_universe": "u2",
"crosses": false
},
{
"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",
"domain_universe": "u2",
"range_universe": "u1",
"crosses": true
},
{
"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",
"domain_universe": "u2",
"range_universe": "u4",
"crosses": true
},
{
"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",
"domain_universe": "u2",
"range_universe": "u1",
"crosses": true
},
{
"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",
"domain_universe": "u2",
"range_universe": "u2",
"crosses": false
},
{
"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",
"domain_universe": "u2",
"range_universe": "u1",
"crosses": true
}
],
"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": "Edges marked `graphs.sgit.ai edge set` are reused under their published names. Edges marked `proposed here` are this site's, and are marked as such rather than presented as settled.",
"licence": "CC BY 4.0"
}
}