Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/arg-tech/xaif/llms.txt

Use this file to discover all available pages before exploring further.

Every element in an AIF argument graph is represented as a node. A node is a JSON object with a nodeID, a type field that classifies its role in the argument, and a text field that carries its content. AIF defines seven node types, each serving a distinct structural function: two content-bearing types (L and I) and five relation types (RA, CA, MA, YA, TA) that are inserted between content nodes to make the nature of connections explicit.

Node JSON format

All seven node types share the same base structure:
{
  "nodeID": "<NODE ID>",
  "type": "<NODE TYPE>",
  "text": "<NODE TEXT>",
  "timestamp": "OPTIONAL"
}
FieldTypeDescription
nodeIDint or stringUnique identifier for the node within the graph.
typestringOne of "L", "I", "RA", "CA", "MA", "YA", or "TA".
textstringThe textual content of the node. For content nodes this is the actual text; for relation nodes this is the relation label (e.g. "Default Inference").
timestampstringOptional. Records when the locution was uttered, independent of processing time.
nodeID can be either an integer (0, 1, 2) or a string ("88", "2_164926129380455983"). The underscore format — where the left part is a sequential integer and the right part is a session timestamp — is used by OVA-sourced data. The AIF Python class handles both formats transparently when assigning the next available ID.

L — Locution node

A locution node holds the raw, unprocessed text exactly as it came from the speaker. It preserves stylistic elements, pronoun references, and rhetorical phrasing that are later neutralised in the corresponding I-node. For dialogue data, the text field typically follows the pattern "Speaker Name: text span". Each L-node is tied to a speaker via the locutions array (see Edges & Relations).
{
  "nodeID": "88",
  "text": "Sergiy Zhadan: I imagine it's scary for birds to fly over the river",
  "type": "L",
  "timestamp": "2077-01-01 12:12:30"
}

I — Information / Proposition node

An information node (also called a proposition node) holds the processed, context-resolved, and stylistically neutralised propositional content of the corresponding locution. Pronouns are resolved, speaker attribution is removed, and the text is rendered as a standalone declarative statement. I-nodes are the primary units of propositional analysis. All argument relations (RA, CA, MA) connect I-nodes to other I-nodes.
{
  "nodeID": "12",
  "text": "Sergiy imagines that flying over the river is scary for birds",
  "type": "I",
  "timestamp": "2077-01-01 12:12:30"
}

RA — Rule Application / Inference node

An RA node represents a support or inference relationship. It is inserted between two I-nodes to indicate that the propositional content of one node supports, entails, or gives reason for the other. The default text label is "Default Inference", though named inference schemes (e.g. "Analogy", "Expert Opinion", "Consequences") are also used.
{
  "nodeID": "9",
  "text": "Default Inference",
  "type": "RA"
}
In the graph, this node appears on the path I-node → RA-node → I-node: the antecedent I-node has an edge to the RA-node, and the RA-node has an edge to the consequent I-node.

CA — Conflict Application node

A CA node represents an attack or conflict relationship between two propositions. It is inserted between two I-nodes to indicate that one proposition contradicts or undermines the other. The default text label is "Default Conflict".
{
  "nodeID": "12",
  "text": "Default Conflict",
  "type": "CA"
}
The edge pattern is the same as for RA: I-node → CA-node → I-node, where the attacking I-node points into the CA-node and the CA-node points to the attacked I-node.

MA — Modification Application / Rephrase node

An MA node represents a rephrase or paraphrase relationship. It is inserted between two I-nodes to indicate that one proposition is a restatement or paraphrase of the other. The default text label is "Default Rephrase".
{
  "nodeID": "15",
  "text": "Default Rephrase",
  "type": "MA"
}

YA — Illocutionary node

A YA node is an illocutionary anchor that binds together pairs of nodes in a specific communicative act. In the most common pattern, a YA node connects an L-node to its corresponding I-node, encoding the speech act performed (e.g. "Default Illocuting", "Asserting", "Analysing", "Arguing").
{
  "nodeID": "4",
  "text": "Default Illocuting",
  "type": "YA"
}

The L → YA → I pattern

Every locution in a dialogue argument graph is linked to its proposition via a YA node. Given L-node 0 and I-node 3, the illocutionary chain looks like this:
L-node (0) ──► YA-node (4) ──► I-node (3)
Expressed as edges:
[
  { "edgeID": 0, "fromID": 0, "toID": 4 },
  { "edgeID": 1, "fromID": 4, "toID": 3 }
]
This separation is what allows tools to independently analyse the raw utterance (via L-nodes), the abstract propositional content (via I-nodes), and the illocutionary act that maps one to the other (via YA-nodes).

TA — Transition node

A TA node captures a discourse transition between two locutions — the functional relationship between a predecessor locution and its successor. Transition nodes model the flow of the conversation, not the logical content of the propositions. The default text label is "Default Transition", though named transition types such as "Asserting" and "Questioning" also appear. TA nodes can have multiple ancestors or children, making them non-binary by design.
{
  "nodeID": "20",
  "text": "Default Transition",
  "type": "TA"
}
In the graph, a TA node sits between two L-nodes, forming the path L-node → TA-node → L-node to indicate that the second locution is a response to or continuation of the first.

Summary

TypeFull nameConnectsDefault text
LLocution— (content node)Raw utterance text
IInformation / Proposition— (content node)Processed proposition text
RARule ApplicationI → RA → I"Default Inference"
CAConflict ApplicationI → CA → I"Default Conflict"
MAModification ApplicationI → MA → I"Default Rephrase"
YAIllocutionaryL → YA → I"Default Illocuting"
TATransitionL → TA → L"Default Transition"

Build docs developers (and LLMs) love