An Obligation Graph Diff is a computational comparison of two structured semantic networks—known as obligation graphs—that represent the duties, rights, and conditional logic extracted from different versions of a legal agreement. Unlike a textual redline, this process operates on a formal deontic logic model, comparing the nodes (parties, actions, deadlines) and edges (obligations, permissions, prohibitions) to identify where the normative relationship between contracting parties has been fundamentally added, deleted, or modified.
Glossary
Obligation Graph Diff

What is Obligation Graph Diff?
A comparison of the structured network of duties, rights, and conditions extracted from two contract versions to identify new, removed, or altered normative relationships between parties.
This technique relies on a clause-level extraction pipeline that first parses unstructured contract language into a machine-readable graph, where a node might represent a 'Buyer' entity and a directed edge represents a 'shall deliver' duty with a temporal constraint. The diff algorithm then performs graph isomorphism and edit-distance calculations on this structured representation, flagging a semantic change—such as a payment term shifting from 'net-30' to 'net-60'—even if the surrounding textual wording has been completely rephrased, ensuring no material alteration to a party's risk profile is missed.
Key Features
Core capabilities of an obligation graph diff engine that transforms unstructured contract text into a structured network of duties, rights, and conditions, then compares versions to surface normative changes.
Deontic Node Extraction
Parses contract text to identify and classify deontic modalities—obligations (shall), permissions (may), and prohibitions (shall not)—as discrete nodes in a graph. Each node captures the actor, action, and modality type, forming the atomic unit of comparison. This transforms unstructured prose into a machine-readable normative structure.
Relational Edge Mapping
Constructs directed edges between deontic nodes to represent normative relationships:
- Conditional edges: Obligation X triggers only if condition Y is met
- Reciprocal edges: Party A's duty corresponds to Party B's right
- Hierarchical edges: A clause's sub-obligations inherit from a parent duty This graph topology enables comparison of structural changes, not just textual edits.
Semantic Node Alignment
Uses vector embedding similarity and cross-document coreference to match corresponding obligations across versions, even when reworded, renumbered, or relocated. A payment obligation in Section 3.2 of Version A is correctly aligned with its counterpart in Section 4.1 of Version B, preventing false-positive insertions and deletions.
Normative Change Classification
Classifies each detected graph delta into operation types:
- Obligation Added: A new duty imposed on a party
- Obligation Removed: A duty eliminated entirely
- Modality Shifted: A 'may' becomes a 'shall' (permission to obligation)
- Condition Narrowed: A condition precedent becomes stricter
- Party Reassigned: A duty moves from Party A to Party B
Risk Impact Scoring
Assigns a materiality score to each graph change based on configurable risk policies. A modality shift from 'may' to 'shall' in an indemnification clause receives a higher severity flag than a formatting change. Integrates with playbook comparison to surface deviations from organizational standards automatically.
Temporal Obligation Tracking
Models time-bound normative states by attaching temporal constraints to obligation nodes. Detects when a deadline is shortened, a renewal window is narrowed, or an effective date is altered. This temporal reasoning layer ensures that changes to when a duty applies are surfaced alongside changes to what the duty is.
Frequently Asked Questions
Explore the mechanics of comparing structured networks of duties, rights, and conditions across contract versions to identify normative changes that textual redlines miss.
An Obligation Graph Diff is a computational comparison of the structured, machine-readable networks of duties, rights, and conditions extracted from two versions of a contract. Unlike a textual redline that highlights word changes, an obligation graph diff operates on a semantic graph where nodes represent parties, clauses, or defined terms, and directed edges represent deontic relationships such as 'Party A shall deliver X to Party B' or 'Party B is permitted to audit Y.' The diff algorithm first parses each contract version into its corresponding deontic logic graph, then applies graph isomorphism and edit distance algorithms to identify three critical change types: new obligations (novel edges), removed rights (deleted edges), and altered conditions (modified edge properties or threshold values). This process reveals that a seemingly minor textual change—like moving a deadline from '30 days' to '15 days'—is actually a material alteration of a performance duty, automatically flagged for legal review.
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

Automate internal workflows
Use AI to route work, draft outputs, trigger actions, and keep approvals and logs in place.
Useful when repetitive work moves across multiple tools and teams.

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
Related Terms
Core concepts and adjacent technologies that enable the structured comparison of normative party relationships across contract versions.
Deontic Logic Modeling
The formal representation of obligations, permissions, and prohibitions that underpins the graph structure. Before a diff can be performed, each clause must be classified into a deontic modality—such as O(p) (obligation to perform p) or F(p) (forbidden to perform p). This formalization transforms natural language into a computable normative framework, enabling the diff engine to recognize that changing 'shall' to 'may' is not a textual edit but a fundamental shift from obligation to permission.
Semantic Differencing
A comparison technique that identifies changes in meaning or legal effect even when the textual wording is entirely different. While a standard text diff sees no match between 'Lessee shall indemnify Lessor' and 'Tenant holds Landlord harmless', semantic differencing recognizes these as the same obligation. The obligation graph diff relies on this capability to correctly align nodes across versions before comparing their properties and relationships.
Cross-Document Coreference
The task of identifying when different textual expressions across multiple document versions refer to the same real-world entity. In an obligation graph, nodes representing parties like 'ABC Corp' and 'ABC Corporation, a Delaware entity' must be resolved to the same canonical entity. Without robust coreference resolution, the diff engine would falsely report a new party node and orphaned obligations, generating a cascade of spurious changes.
Defined Term Reconciliation
The automated process of tracking changes to the definition of a capitalized term across contract versions and ensuring its usage remains consistent with the modified meaning. If 'Confidential Information' is redefined in v2 to exclude 'independently developed information', the obligation graph diff must propagate this semantic shift to every obligation node referencing that term, flagging obligations that are effectively narrowed or extinguished by the definitional change.
Obligation Change Detection
A specialized semantic diff that specifically flags modifications to the duties, rights, and responsibilities of contracting parties. This is the direct output of the obligation graph diff process. Key change types include:
- Novation: A new party replaces an existing obligor
- Delegation: Performance duty shifts to a third party
- Waiver: An existing right is relinquished
- Accretion: A new obligation is added to an existing node
Normative Conflict Resolution
The algorithmic detection and reconciliation of contradictory legal rules introduced by a diff. When the obligation graph comparison reveals that v2 adds an obligation to deliver widgets by June 1 while retaining an obligation to deliver by March 1, the engine must flag a temporal conflict. Resolution strategies include precedence rules (specific over general), temporal ordering (later-in-time controls), and hierarchy (main body over schedule).

About the author
Prasad Kumkar
CEO & MD, Inference Systems
Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.
His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.
Partnered with leading AI, data, and software stack.
How We Work
Custom AI workflows for your Business
One-fit-all AI don't work for modern businesses. At Inferensys, we aim to understand your business & custom requirements; which we use to define most efficient agentic workflows, the data, and the tools for your business.
01
Review the use case
We understand the task, the users, and where AI can actually help.
Read more02
Pick the right approach
We define what needs search, automation, or product integration.
Read more03
Build the first useful version
We implement the part that proves the value first.
Read more04
Improve from there
We add the checks and visibility needed to keep it useful.
Read moreThe first call is a practical review of your use case and the right next step.
Talk to Us