<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Dhilip Kumar on Medium]]></title>
        <description><![CDATA[Stories by Dhilip Kumar on Medium]]></description>
        <link>https://medium.com/@dhilip.kumar?source=rss-995b1ffb2643------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*2kNqaA8opTUdacztuKc2xg.png</url>
            <title>Stories by Dhilip Kumar on Medium</title>
            <link>https://medium.com/@dhilip.kumar?source=rss-995b1ffb2643------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Thu, 12 Nov 2026 02:04:20 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@dhilip.kumar/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[Remote Humans: Can Light Control the Brain?]]></title>
            <link>https://medium.com/@dhilip.kumar/remote-humans-can-light-control-the-brain-57cd2a809912?source=rss-995b1ffb2643------2</link>
            <guid isPermaLink="false">https://medium.com/p/57cd2a809912</guid>
            <category><![CDATA[human-genetics]]></category>
            <category><![CDATA[innovation]]></category>
            <category><![CDATA[brain-computer-interface]]></category>
            <dc:creator><![CDATA[Dhilip Kumar]]></dc:creator>
            <pubDate>Wed, 28 Oct 2026 11:10:59 GMT</pubDate>
            <atom:updated>2026-10-28T11:10:59.476Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*6VwHwWsdvr2znVNdJAXagg.png" /></figure><p>Technology keeps surprising us and moving human progress forward.</p><p>One example is the brain-computer interface (BCI), which tries to decode what the mind is thinking. Think of it as voice-to-text, but for thoughts. You wouldn’t have to speak, you’d just think, and the system would turn that into text or commands. It could even cut down on noise, and people might share things without speaking. But how secure would that be?</p><p>The next step is changing what the brain does, and that is where <strong>optogenetics</strong> comes in.</p><p>Our brain has about 86 billion neurons and several hundred trillion connections (synapses) between them. Optogenetics tries to control a chosen few of those neurons using light. It works in three steps:</p><ol><li>A gene for a light-sensitive protein called an <strong>opsin</strong> is delivered into specific neurons.</li><li>Light of a particular color is sent in through a thin optical fiber.</li><li>Depending on the protein used, the neurons are either activated or silenced.</li></ol><p>Is it a remote control like the one for your TV or AC? Not quite. A TV remote has one button and one result. In the brain, you stimulate one set of neurons, but the final outcome depends on how they affect the cells connected to them.</p><p>Tamil cinema gave us a version of this idea in <em>7aum Arivu</em>, where characters control other people’s minds with a gaze. Real science is far more careful. Researchers are exploring whether the same approach could one day help with conditions that involve faulty brain circuits, such as addiction.</p><p>Today, this research is mostly at the experimental stage in animals like mice. The challenge is the brain’s complexity. Because neurons are so tightly connected, changing one cell can affect many others, and we can’t always predict the result.</p><p>If it matures safely, it could help people with conditions like Parkinson’s and depression. It also raises a bigger question: if we can influence thoughts and behavior, who decides how, and when?</p><p>The scientists linked to this field include Karl Deisseroth, Peter Hegemann and Georg Nagel. Nagel and Hegemann discovered Channelrhodopsin-2, a light-sensitive protein that became a key tool in this research.</p><p>What do you think, is this hope or risk?</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=57cd2a809912" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Thinking Without Words: A Beginner’s Guide to Latent Reasoning in LLMs]]></title>
            <link>https://medium.com/@dhilip.kumar/thinking-without-words-a-beginners-guide-to-latent-reasoning-in-llms-aeb165c7a7c7?source=rss-995b1ffb2643------2</link>
            <guid isPermaLink="false">https://medium.com/p/aeb165c7a7c7</guid>
            <category><![CDATA[llm-reasoning]]></category>
            <category><![CDATA[llm]]></category>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[artificial-intelligence]]></category>
            <dc:creator><![CDATA[Dhilip Kumar]]></dc:creator>
            <pubDate>Thu, 22 Oct 2026 14:55:29 GMT</pubDate>
            <atom:updated>2026-10-22T14:55:29.191Z</atom:updated>
            <content:encoded><![CDATA[<h3>How language models can reason in vectors instead of words, what it could save, and what it still gets wrong</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*YOigEVEVaeddXRS6svBw1g.png" /></figure><h3>What Is Reasoning?</h3><p>For people, reasoning means working through a problem step by step to reach a conclusion. You might add up prices, check whether a plan follows from your assumptions, or compare options before choosing one.</p><p>Language models can do something similar. Given a hard question, a model can produce intermediate steps before its final answer, and those steps often improve accuracy. The open question is <em>where</em> those steps should happen: in written words, or inside the model’s internal numbers.</p><h3>An Overview of Text Reasoning</h3><p>Text reasoning, usually called chain-of-thought (CoT), is the most common approach today. The model writes out its intermediate steps as ordinary text before giving an answer.</p><p>Take this question: <em>A bakery sells muffins at $2 and cookies at $1.50. A customer buys 4 muffins and 6 cookies and pays with a $20 bill. What is the change?</em> A text-reasoning model might write:</p><ul><li>Muffins: 4 × $2 = $8</li><li>Cookies: 6 × $1.50 = $9</li><li>Total: $17</li><li>Change: $20 − $17 = $3</li></ul><p><strong>Strengths:</strong> Every step is visible, so people can check, debug, and trust the reasoning. It is well understood and widely deployed.</p><p><strong>Weakness:</strong> Every step costs tokens, and long reasoning chains are slow and expensive.</p><h3>An Overview of Latent Reasoning</h3><p>Latent reasoning takes a different route. The model still works with vectors internally, as it always does, but between steps it does not turn its internal state into a word. Instead, the hidden vector from one step is fed directly into the next. The model reasons in continuous vector space and produces text only for the final answer.</p><p>With the same bakery question, the model’s internal state might carry “muffins total 8,” then “cookies total 9,” then “total 17,” then “change 3,” with none of these written out. The user sees only “$3.”</p><p>A widely cited method is <strong>COCONUT (Chain of Continuous Thought)</strong>, from Meta researchers in 2024. It trains a model to use continuous thoughts instead of words, using a curriculum that gradually replaces written reasoning steps with hidden-state steps.</p><h3>Further Reading</h3><ul><li><strong>White paper:</strong> <a href="https://arxiv.org/abs/2507.06203">A Survey on Latent Reasoning</a> (Zhu et al., 2025)</li><li><strong>COCONUT:</strong> Search for the 2024 paper <em>“Training Large Language Models to Reason in a Continuous Latent Space”</em> by Hao et al.</li></ul><h3>Models That Support It</h3><p>Latent reasoning is mostly a research area. Examples include:</p><ul><li><strong>Huginn-3.5B</strong>, a depth-recurrent model with open weights on Hugging Face (tomg-group-umd/huginn-0125), described in <a href="https://arxiv.org/abs/2502.05171">Scaling up Test-Time Compute with Latent Reasoning</a></li><li><strong>COCONUT-style research models</strong>, which are prototypes rather than products</li><li><strong>Hybrid approaches</strong> such as Token Assorted, which mix latent and text tokens</li></ul><p>I am not aware of a major commercial API that documents purely latent reasoning. Check current provider documentation before assuming otherwise.</p><h3>The Industry Perspective</h3><p>Industry interest in latent reasoning comes from three directions:</p><ul><li><strong>Efficiency:</strong> Fewer generated tokens could lower serving costs and latency.</li><li><strong>Capability:</strong> Some researchers believe continuous states can carry richer intermediate information than single words.</li><li><strong>Concern:</strong> Hidden reasoning is harder to monitor. Safety and interpretability researchers have flagged this as a real trade-off.</li></ul><p>The field is still early. Most published results use small or medium models and specific benchmarks, so treat broad claims about production benefits with caution.</p><h3>Text Reasoning vs. Latent Reasoning: The Logical Flow</h3><p>Consider the same question processed both ways.</p><p><strong>Text reasoning:</strong></p><ol><li>The question is tokenized and embedded into vectors.</li><li>The model computes an internal state for the first step.</li><li>It projects that state onto the vocabulary and picks a word, “8.”</li><li>That word is embedded again and becomes the input for the next step.</li><li>The process repeats until the model writes “$3.”</li></ol><p><strong>Latent reasoning:</strong></p><ol><li>The question is tokenized and embedded into vectors, as before.</li><li>The model computes the same internal state for the first step.</li><li>It does not pick a word. The full vector is fed forward as the next input.</li><li>The model continues computing from that vector through several latent steps.</li><li>Only after the planned steps does it write “$3.”</li></ol><blockquote><strong><em>The key difference is the discretization step.</em></strong><em> Text reasoning collapses each intermediate state into a discrete word, while latent reasoning keeps the continuous state. In both cases, the computation happens in vectors. Text reasoning adds a bottleneck at each step, and latent reasoning removes it.</em></blockquote><p>It’s also worth contrasting latent reasoning with vector databases. A vector database retrieves the stored item nearest to a query, and its vectors don’t change. Latent reasoning computes a new state from the previous one at each step.</p><h3>Pros and Cons of Latent Reasoning</h3><h3>Pros</h3><ul><li><strong>Fewer generated tokens:</strong> Intermediate steps aren’t written out, which can cut output-token costs and latency.</li><li><strong>Higher information per step:</strong> A continuous vector can carry more than one discrete word.</li><li><strong>Possible parallel exploration:</strong> A single vector may represent several candidate paths at once.</li><li><strong>Less need for hand-written reasoning data:</strong> Some methods, such as depth-recurrent models, need no bespoke reasoning traces.</li><li><strong>Adaptive compute:</strong> Some architectures can spend more computation on harder inputs.</li></ul><h3>Cons</h3><ul><li><strong>Low transparency:</strong> Hidden vectors are hard to read, which makes auditing and debugging difficult.</li><li><strong>Accuracy gap:</strong> Latent methods have often trailed explicit chain-of-thought, especially on math-heavy tasks.</li><li><strong>Unclear reasoning:</strong> Some analyses found weak evidence that the internal steps are truly step-by-step.</li><li><strong>Training complexity:</strong> Curricula and gradient handling are more involved than standard fine-tuning.</li><li><strong>Oversight risk:</strong> Reasoning that isn’t in text is harder to monitor for problematic plans.</li></ul><h3>Token Cost: Does Latent Reasoning Save Money?</h3><p>Partly, and the savings are narrower than they first appear.</p><p><strong>Where the savings come from:</strong> Text reasoning is billed per output token. If a problem needs 300 tokens of written reasoning and a latent approach needs only 30 tokens for the final answer, the output cost falls sharply.</p><p><strong>Where the savings don’t apply:</strong></p><ul><li><strong>Input tokens are still billed.</strong> The question and any context cost the same.</li><li><strong>Compute isn’t free.</strong> Latent steps still run the model’s layers, and some architectures use as much or more compute per step.</li><li><strong>Pricing may change.</strong> If providers can’t meter latent steps as tokens, they may charge by compute time or another measure, and your savings depend on that choice.</li><li><strong>Accuracy affects cost.</strong> If a latent approach fails more often and needs retries, the cheaper tokens can be offset by extra calls.</li></ul><p><strong>A practical test:</strong> Compare cost per <em>correct answer</em>, not cost per request. Also compare against text reasoning with a shorter reasoning budget, which is often the simplest way to cut token spend today.</p><blockquote><strong><em>Bottom line:</em></strong><em> Latent reasoning can reduce billed reasoning tokens, but it doesn’t eliminate compute or input costs, and it is still experimental. Measure on your own tasks before relying on it.</em></blockquote><h3>References</h3><ul><li>Zhu et al., <a href="https://arxiv.org/abs/2507.06203"><em>A Survey on Latent Reasoning</em></a>, 2025</li><li>Geiping et al., <a href="https://arxiv.org/abs/2502.05171"><em>Scaling up Test-Time Compute with Latent Reasoning: A Recurrent Depth Approach</em></a>, 2025</li><li>Hao et al., <em>Training Large Language Models to Reason in a Continuous Latent Space</em> (COCONUT), 2024</li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=aeb165c7a7c7" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Why Most Knowledge Graphs Answer Nothing]]></title>
            <link>https://medium.com/@dhilip.kumar/why-most-knowledge-graphs-answer-nothing-5623907759bc?source=rss-995b1ffb2643------2</link>
            <guid isPermaLink="false">https://medium.com/p/5623907759bc</guid>
            <category><![CDATA[knwoledge-graph]]></category>
            <category><![CDATA[ai-ready-data]]></category>
            <category><![CDATA[llm]]></category>
            <category><![CDATA[ontology]]></category>
            <dc:creator><![CDATA[Dhilip Kumar]]></dc:creator>
            <pubDate>Wed, 21 Oct 2026 15:23:25 GMT</pubDate>
            <atom:updated>2026-10-21T15:23:25.515Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*470Btm3EbUj9yuNflLUO4g.png" /></figure><h4>Design the questions before you build the graph, the same way you design tables before you load rows.</h4><h3>Why knowledge graphs matter</h3><p>Most of an organisation’s important questions are about connections, not single records. Which customers are linked to the same fraud ring? Which drugs interact with a patient’s current prescriptions? Which projects stall if one supplier or one engineer disappears? A knowledge graph stores those connections directly, so they can be followed, counted and explained.</p><ul><li><strong>It joins data that lives in separate systems.</strong> A CRM, an ERP, a document store and a ticketing tool each hold part of the picture. A graph links their entities into one model, so a question can cross all of them in a single query.</li><li><strong>It makes relationships fast to follow.</strong> Questions that need four or five hops, such as “suppliers of suppliers” or “friends of friends”, stay quick in a graph where they would need many expensive joins in tables.</li><li><strong>It carries meaning, not just data.</strong> Typed nodes and edges say what a thing is and how it relates to others. That shared vocabulary lets people, applications and AI systems read the data the same way.</li><li><strong>It grounds AI in facts.</strong> Retrieval over a knowledge graph gives a language model precise, connected facts with a traceable path, which reduces hallucination and makes answers explainable.</li><li><strong>It answers “why”, not only “what”.</strong> A path through the graph is an explanation: this product is at risk <em>because</em> this component comes from this factory in this restricted region.</li></ul><p>That power is exactly why design matters. A graph is only as useful as the connections it was built to hold.</p><h3>Why knowledge graphs make data AI-ready</h3><p>A knowledge graph makes data AI-ready by doing the relating before the language model sees anything. The data arrives pre-related, so the model receives a few connected facts instead of a pile of loosely matching text.</p><ul><li><strong>The data is pre-related</strong>. Entities are resolved and linked when the graph is loaded. The model never has to work out that “Acme” in an invoice and “Acme Steel Ltd” in a contract are the same supplier.</li><li><strong>Relationships are found before the LLM is called</strong>. A multi-hop question is answered by a graph traversal, which is exact and repeatable. In the bike example, the graph finds the path from Acme Steel to RideShop, and the model only has to explain it.</li><li><strong>The context window stays under control</strong>. Only the small subgraph the question touches goes into the prompt, not dozens of document chunks. That means fewer tokens, less noise and lower cost.</li><li><strong>Hallucination goes down</strong>. The model answers from explicit facts, and every claim can be traced back to a path in the graph and checked.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*DuvLHbQi7xtZM4Q3ejOdWg.png" /><figcaption><em>Without a graph, the LLM guesses the links. With one, the links arrive already resolved.</em></figcaption></figure><p>One caution keeps this honest. A graph reduces hallucination; it does not remove it, and it only helps when the graph holds the facts the question needs. That is the thesis again: a graph is AI-ready only for the questions it was designed to answer.</p><h3>A simple supply chain example</h3><p>Imagine a small bike company. It buys parts from suppliers, builds bikes in its plants, and ships them to customers. A knowledge graph of that business has six kinds of things (nodes) and five kinds of links (edges).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Opgp5bAAFgNee9k0o_nDjg.png" /><figcaption>I<em>f Acme Steel fails, follow the links to RideShop.</em></figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*RN5sRNJN55hfxs6BKrsLsQ.png" /><figcaption><em>The same graph as a list of facts.</em></figcaption></figure><p>Now ask one simple question: <strong>if Acme Steel stops supplying, which customers are affected?</strong>. In the graph you just follow the links: Acme Steel supplies the Frame, the Frame is used in the City Bike, the City Bike is in Shipment #4512, and that shipment goes to RideShop. The answer is RideShop, and the path itself explains why.</p><p>Notice the order. We did not collect every document about bikes and hope this answer appeared. We started from the question, and the question told us exactly which nodes and edges we needed: Supplier, Part, Product, Shipment and Customer, linked by SUPPLIES, USED_IN, CONTAINS and SHIPS_TO. Plant and MADE_AT are there because a second question needs them: “which customers are affected if the Chennai plant shuts down?” If no question needed a node or edge, it would not be in the graph.</p><h3>Build the questions first</h3><p>A knowledge graph is not something you build first and make sense of later. It is closer to designing a relational database: you decide the tables and columns before you load a single row, and you decide them by asking what you need to read back out.</p><p>Many knowledge graph projects start the other way round. A team extracts entities from documents, links everything that co-occurs, loads millions of nodes and edges, and then opens a graph explorer hoping the structure will reveal insight. It rarely does. What appears is a dense hairball, a few super-connected nodes, and a long list of questions the graph cannot answer cleanly.</p><p>The fix is a change in order. <strong>Choose what you will read before you fill the graph.</strong> Write down the questions, turn them into queries, and let those queries define the node types, edge types and properties. Only then start loading data.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*3HW9t2PvKLIwX0BsaNeu7g.png" /><figcaption><em>Start from the questions, not from the data.</em></figcaption></figure><p>Both paths have four steps. The difference is where the questions sit: at the end, as a hope, or at the start, as the design brief.</p><h3>The lesson relational databases already taught us</h3><p>Nobody designs an RDBMS by creating one giant table, inserting every fact they can find, and working out the columns afterwards. Good database design starts from the access patterns: which screens, reports and APIs will read this data, and what joins and filters they need.</p><p>Those access patterns decide almost everything. They decide which things deserve their own table, which attributes become columns, which relationships become foreign keys, and which columns get indexed. A reporting query that groups orders by region forces you to store region somewhere you can join to. A fraud check that looks up every account sharing a phone number forces phone number to be a first-class, indexed value rather than a free-text note.</p><p>The schema is a contract with the queries. A knowledge graph needs the same contract. The fact that a graph <em>can</em> hold any node connected to any other node does not mean it <em>should</em>.</p><h3>Mapping the analogy</h3><p>Every core design decision in a relational schema has a direct counterpart in a knowledge graph.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Xaf-1xNpo0yvNkDl-RMVaQ.png" /><figcaption><em>Every relational design decision has a graph counterpart.</em></figcaption></figure><p>The last row matters most. In SQL, a query you did not plan for becomes an expensive multi-way join. In a graph, a question you did not plan for becomes a traversal across edges that were never modelled, or that were modelled under five different names.</p><h3>The ontology is your schema</h3><p>In a relational database, the schema of tables, columns and keys is written before any data arrives. In a knowledge graph, that role is played by the ontology: the agreed definition of which classes of things exist, which relationships can connect them, and what each one means.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*cGq1JuhzmqNMnCYOGrK-Ig.png" /><figcaption><em>The ontology decides what things mean and what may connect.</em></figcaption></figure><p>An ontology does more than a table schema does.</p><ul><li><strong>It defines meaning, not just structure.</strong> It says that a Supplier is a kind of Organisation, and that OWNED_BY always points from a subsidiary to its parent. Everyone who reads the graph interprets the data the same way.</li><li><strong>It sets the rules for what can connect.</strong> If LOCATED_IN may only link a Facility to a Region, a bad extraction that links a person to a country is caught at load time instead of polluting queries later.</li><li><strong>It keeps sources consistent.</strong> When five systems call the same relationship five different names, the ontology picks one and maps the others to it. This prevents the vocabulary drift described below.</li><li><strong>It enables reasoning.</strong> Rules such as “ownership is transitive” let the graph infer that a company owns its subsidiary’s subsidiaries, without loading that fact separately.</li><li><strong>It makes the graph reusable.</strong> Aligning with shared vocabularies such as <a href="https://schema.org/">schema.org</a> or an industry standard lets other teams and tools understand your graph without a translation layer.</li></ul><p>This is where the thesis becomes concrete. Choosing what you will read means writing the ontology first. The questions tell you which classes and relationships you need, and the ontology turns that list into a contract the data must follow.</p><p>More on Ontology Read my previous Article</p><p><a href="https://medium.com/@dhilip.kumar/from-unstructured-chaos-to-queryable-knowledge-designing-ontology-backed-knowledge-graphs-for-9df031d97257">https://medium.com/@dhilip.kumar/from-unstructured-chaos-to-queryable-knowledge-designing-ontology-backed-knowledge-graphs-for-9df031d97257</a></p><h3>Query-first design in practice</h3><p>Now scale the bike example up to a real procurement team that wants a supplier-risk knowledge graph. The tempting start is to ingest every contract, invoice, news article and supplier website, extract every named entity, and see what emerges. The query-first start looks like this.</p><ol><li><strong>Write the questions in plain language.</strong> For example: “Which of our products depend, directly or through a sub-supplier, on a factory in a region with an active trade restriction?” and “Which suppliers share a parent company, so that one failure hits several contracts?”</li><li><strong>Turn each question into a traversal.</strong> The first question walks from Product to Component to Supplier to Facility to Region, then checks a Restriction. The second walks from Supplier up OWNED_BY edges to a common Company.</li><li><strong>Derive the schema from the traversals.</strong> The node types are Product, Component, Supplier, Facility, Region, Restriction and Company. The edge types are CONTAINS, SUPPLIED_BY, OPERATES, LOCATED_IN, SUBJECT_TO and OWNED_BY. Properties are only the ones a query filters or returns, such as Restriction.status and SUPPLIED_BY.share_pct.</li><li><strong>Decide what each source contributes.</strong> Invoices populate SUPPLIED_BY. A corporate registry populates OWNED_BY. News articles are useful only if they can be resolved to a Restriction or a Facility; otherwise they stay out.</li><li><strong>Load, then test the questions.</strong> If a question returns nothing or nonsense, fix the model or the extraction before adding more data.</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*xsWq2FqxmwsxAK0iAWu_6g.png" /><figcaption><em>Two questions set the whole supplier-risk schema.</em></figcaption></figure><p>Each coloured path is one question. Together they produce the full schema, and nothing outside those paths needs to be loaded.</p><p>The first question then becomes a short, predictable query:</p><pre>MATCH (p:Product)-[:CONTAINS*1..3]-&gt;(:Component)-[:SUPPLIED_BY]-&gt;(s:Supplier)<br>      -[:OPERATES]-&gt;(f:Facility)-[:LOCATED_IN]-&gt;(r:Region)-[:SUBJECT_TO]-&gt;(x:Restriction {status: &#39;active&#39;})<br>RETURN p.name, s.name, f.name, r.name, x.name</pre><p>Every label and relationship in that query exists because the question needed it. Nothing in the graph is there just in case.</p><h3>Why “load everything and explore” fails</h3><p>The build-first approach feels productive because the node count goes up every day. The costs show up later, when someone finally asks a real question.</p><ul><li><strong>Inconsistent relationship names.</strong> Without a defined edge vocabulary, the same fact arrives as WORKS_AT, EMPLOYED_BY, MEMBER_OF and RELATED_TO. Every query has to guess them all, and most will miss one.</li><li><strong>Generic “related to” edges.</strong> Co-occurrence links say two things appeared together, not how they relate. They inflate the graph and carry almost no meaning a query can use.</li><li><strong>Duplicate entities.</strong> “IBM”, “I.B.M.” and “International Business Machines” become three nodes. Entity resolution is only tractable when you know which entity types matter and what their keys are.</li><li><strong>Hub nodes.</strong> A node like Country: USA or Topic: Technology ends up linked to millions of others. Traversals through it explode in cost and return noise.</li><li><strong>Missing data you actually needed.</strong> The one property a key question depends on, such as an ownership percentage or an effective date, was never extracted because no one knew it mattered.</li><li><strong>No way to say “done”.</strong> Without target questions, there is no test for whether the graph is complete, correct or useful. Exploration has no finish line.</li></ul><p>All six problems have the same root cause. The graph was filled before anyone decided what it was for.</p><h3>Where the analogy breaks down</h3><p>The RDBMS comparison is about discipline, not about rigidity. Graphs differ from relational tables in ways that matter, and pretending otherwise would throw away their strengths.</p><ul><li><strong>The schema can grow cheaply.</strong> Adding a new edge type to a graph does not need a migration or a rewrite of existing rows. That is a reason to design for today’s questions and extend later, not a reason to skip design.</li><li><strong>Relationships are first-class.</strong> In SQL, a many-to-many relationship needs a join table, and deep chains of joins get slow. In a graph, a five-hop traversal is normal. This lets you plan questions that would be impractical in a relational model.</li><li><strong>Some exploration is legitimate.</strong> Community detection, centrality and link prediction can surface patterns nobody thought to ask about. But these algorithms work far better on a graph with clean, typed edges than on a hairball, so they reward up-front design too.</li><li><strong>Ontologies can be shared and reasoned over.</strong> Semantic web graphs built on RDF and OWL let you reuse public vocabularies and infer new facts from rules. That adds a layer of meaning tables do not have, but someone still has to choose which classes and properties to adopt.</li></ul><p>So the honest version of the thesis is this: a graph’s schema is more flexible than a table’s, but it still has to exist before the data does. Flexibility lowers the cost of changing your mind. It does not remove the need to decide in the first place.</p><h3>Before you load a single node</h3><p>Treat the graph like a database you are about to design, and answer these questions first.</p><ul><li>Have we written down the 5 to 10 questions this graph must answer?</li><li>Can each question be expressed as a traversal over named node and edge types?</li><li>Does every node type, edge type and property trace back to at least one of those questions?</li><li>Do we know the unique key for each node type, so duplicates can be merged?</li><li>Do we know which source populates each edge type?</li><li>Do we have a test query per question to run after every load?</li></ul><p>A knowledge graph earns its value from the questions it can answer, not from the number of nodes and edges it holds. Decide what you will read, then build the graph that makes reading it easy.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=5623907759bc" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[The Line That Never Left: How y = mx + b Became an LLM]]></title>
            <link>https://medium.com/@dhilip.kumar/the-line-that-never-left-how-y-mx-b-became-an-llm-5271b6d94034?source=rss-995b1ffb2643------2</link>
            <guid isPermaLink="false">https://medium.com/p/5271b6d94034</guid>
            <category><![CDATA[deep-learning]]></category>
            <category><![CDATA[agents]]></category>
            <category><![CDATA[llm]]></category>
            <category><![CDATA[machine-learning]]></category>
            <dc:creator><![CDATA[Dhilip Kumar]]></dc:creator>
            <pubDate>Tue, 04 Aug 2026 14:34:16 GMT</pubDate>
            <atom:updated>2026-08-04T14:34:16.190Z</atom:updated>
            <content:encoded><![CDATA[<p>Four generations of AI, one quiet trick hiding inside all of them</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/922/1*3TXDyzKr_d_srlrRF4t_Iw.png" /></figure><p>I recently attended a university hackathon. Every single team was building “agents” — LLMs wired up to tools, calling APIs, chaining tasks together. Impressive demos, fast-moving code, a lot of excitement in the room.</p><p>But when I asked a few teams a simple question — <em>why did the model Hallucinates and just say that word, and not one of the other 50,000 it could have said?</em> I mostly got toward “it’s just the AI.” The honest feedback was <strong>before you build on top of LLMs, understand the fundamentals underneath them.</strong></p><p>So here it is, built from the ground up: how a straight line turns into something nonlinear, and how that nonlinear machine ends up predicting the next word by looking at every other word at once. No black box. Just the actual mechanism, one step at a time.</p><p>Here’s the picture I want you to walk away with <strong>every major leap in AI — from the simplest statistical models of the 1950s to the LLM powering agents has been built on the same quiet trick, dressed up in a bigger costume each time</strong>.</p><p>To see the trick clearly, picture a talent show judge. A contestant finishes singing, and the judge doesn’t shout “yes” or “no” — they hold up a score. 8.2. , 6.5. Somewhere in their head, that number came from a rough formula: pitch mattered a lot, stage presence mattered a little, that one cracked note cost some points. Add it all up, and you get a score. That judge’s habit — score first, then decide — is the whole story.</p><p>Here’s the whole journey in one picture four generations of AI, each one adding a single new idea on top of the last:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/940/1*neUhMp7dTpCJgEQ6VDdS8Q.png" /></figure><p><strong>Act I: The judge learns to guess a probability</strong></p><p>Imagine you’re not scoring a talent show — you’re trying to predict something binary. Will this customer churn? Is this email spam? Will this loan default?</p><p>The earliest, simplest way to do this is logistic regression. It works in two steps:</p><p><strong>Step 1 — Score it</strong>. Take your inputs (income, email length, whatever matters) and combine them into a single number using weights you’ve learned:</p><p>score = w₁·x₁ + w₂·x₂ + … + b</p><p>If this looks like y = mx + b from high school algebra, that’s because it basically is just with more than one x. This raw number is called a logit. It can be anything: -12, 4, whatever. It’s not a probability yet — it’s just a lean, a hunch, a raw score.</p><p><strong>Step 2 — Squash it</strong>. A raw score of “4” doesn’t mean much on its own. So you run it through a function called sigmoid, which takes any number and folds it into the range between 0 and 1:</p><p>probability = sigmoid(score)</p><p>Now “4” becomes something like “0.98” — a 98% chance of churning. That squashing step is the entire magic trick. Everything downstream from here is really just this same move, performed at greater and greater scale.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/809/1*ipoyXTTN22ujUCcdCfYjyQ.png" /></figure><p><strong><em>For the technically inclined</em></strong><em>:</em> the model is trained by maximum likelihood — adjusting the weights <em>w</em> so the predicted probabilities line up as closely as possible with what actually happened, measured via cross-entropy loss. This training principle — maximize the likelihood of the true outcome — never changes for the rest of this story either.</p><p><strong>Act II: The judge stops being one person</strong></p><p>Logistic regression has a limit: it can only draw a straight line through your data. Real-world patterns are rarely that polite.</p><p>Deep learning solves this — but not by simply “adding more of the same.” Here’s the part that trips people up: if you stack ten linear scoring steps on top of each other with nothing else, you still just get… one linear scoring step. Math folds it right back down. Depth alone buys you nothing.</p><p>The actual unlock is inserting a nonlinear twist between each layer — a small function (called an activation function, commonly ReLU) that breaks the straight line. Do this repeatedly, and something remarkable happens: the network starts learning to build features on top of features. In an image model, early layers might learn to detect edges, the next layer combines edges into shapes, the next combines shapes into “this looks like a cat’s ear.”</p><p>Then, at the very last layer, the network does exactly what our talent show judge did: computes a score, then squashes it into a probability (using softmax, sigmoid’s cousin, when there are more than two possible outcomes — cat vs. dog vs. bird, instead of just yes vs. no).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/940/1*zjezDjCKURDzDtb67t4kZw.png" /></figure><p>The judge didn’t retire. Twenty layers of increasingly sophisticated judges now hand their scores up the chain, and the final judge still just says: “score it, squash it, done.”</p><p>This is the linear-to-nonlinear jump in a nutshell: linear alone can only cut the world with straight lines; nonlinearity is what lets the model bend.</p><p><strong>Act III: The judge starts listening to the room</strong></p><p>Deep networks got powerful, but they had a blind spot: earlier architectures (like RNNs) read text one word at a time, in order, like reading with your finger under each word, forgetting what came ten words ago.</p><p>Transformers fixed this with a mechanism called attention. Instead of reading in a strict sequence, every word gets to look at <em>every other word in the sentence at once</em> and decide how much each one matters. In the sentence “the trophy didn’t fit in the suitcase because <em>it</em> was too big,” the model needs to figure out whether “it” refers to the trophy or the suitcase — and attention is what lets the model weigh those relationships directly, regardless of distance.</p><p>This is a genuine architectural idea, not just “more layers” or “more scale.” A transformer with attention behaves fundamentally differently from a deep network without it.</p><p>And yet — look closely at the final layer of a transformer, and you’ll find our judge again: a score for each possible output, squashed by softmax into a probability distribution.</p><p><strong>Act IV: The judge sits in a stadium, and never stops reading</strong></p><p>So what actually makes an LLM an <em>LLM</em>, if the architecture (transformer) already existed?</p><p>Mostly, it’s two things:</p><ol><li>Scale. Billions of parameters instead of millions. Hundreds of billions of words of training text instead of a curated dataset.</li><li>A deceptively simple training objective. Predict the next word. That’s it. Read a sentence, hide the next word, guess it, check the answer, adjust the weights. Repeat this trillions of times across nearly the entire written internet, and the network is forced to develop something that looks a lot like grammar, facts, reasoning patterns, and style — not because anyone taught it those things directly, but because predicting the next word well <em>requires</em> implicitly learning them.</li></ol><p>Here’s the part I find genuinely beautiful: at the very last step, when an LLM is deciding what word to say next, it computes a logit for every single word in its vocabulary — tens of thousands of scores, each one informed by attention over <em>every token that came before it</em> — and runs all of them through softmax to get a probability distribution over what to say next. Then it samples from that distribution.</p><p>The talent show judge is still there. They’re just now scoring 50,000 contestants simultaneously, thousands of times per second, to write a single paragraph — and each score is shaped by everything said so far, not just the last word.</p><p>This is the fundamental loop underneath every agent at that hackathon: think, choose a tool, generate a response — every one of those “decisions” is this same score → squash → sample mechanism, running over and over, one token at a time.</p><p><strong>The thread that never broke</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/946/1*HPVLWU4Tivmv8BD16jKaog.png" /></figure><p>Every “revolutionary leap” in this story is really a new way of computing a better, richer, more context-aware score. The final move — squash that score into a probability, using sigmoid or softmax — has not changed since the earliest days of statistics. It’s not a coincidence that we still call the output of the last layer of an LLM a “logit.” It’s the same word, because it’s the same idea.</p><p>So the next time you’re at a event and someone’s spinning up an agent in twenty minutes, you’ll know what’s actually happening underneath: a talent show judge, still holding up a scorecard, still doing the same two-step move it always did — just with a much, much bigger room to judge, and every other word in the room whispering in its ear.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=5271b6d94034" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[From Unstructured Chaos to Queryable Knowledge: Designing Ontology-Backed Knowledge Graphs for…]]></title>
            <link>https://medium.com/@dhilip.kumar/from-unstructured-chaos-to-queryable-knowledge-designing-ontology-backed-knowledge-graphs-for-9df031d97257?source=rss-995b1ffb2643------2</link>
            <guid isPermaLink="false">https://medium.com/p/9df031d97257</guid>
            <category><![CDATA[knowledge-graph]]></category>
            <category><![CDATA[unstructured-data]]></category>
            <category><![CDATA[ontology]]></category>
            <dc:creator><![CDATA[Dhilip Kumar]]></dc:creator>
            <pubDate>Wed, 15 Jul 2026 05:43:17 GMT</pubDate>
            <atom:updated>2026-07-15T05:43:17.111Z</atom:updated>
            <content:encoded><![CDATA[<h3>From Unstructured Chaos to Queryable Knowledge: Designing Ontology-Backed Knowledge Graphs for Agentic Applications</h3><h3>Introduction</h3><p>If you’re building an agentic application, at some point you’ll hit the same wall: your agent needs to reason over a pile of unstructured information — PDFs, wikis, transcripts, tickets, contracts — and a vector store alone doesn’t cut it. Semantic search is great at finding <em>similar</em> text. It’s much weaker at answering questions like “who founded companies headquartered in Cupertino before 1980” — questions that require <em>structure</em>, not just similarity.</p><p>That’s where knowledge graphs come in. But a knowledge graph is only as useful as the schema behind it. Nodes and edges without a schema are just a pile of triples with no way to validate, infer, or query consistently. That schema is called an <strong>ontology</strong>, and the order in which you build your ontology and your graph — and how you keep both current as new data arrives — is the difference between a knowledge base that stays useful and one that quietly rots into noise.</p><p>This post walks through a practical pattern for building this system when you’re starting from a genuinely unfamiliar domain: you don’t know your entity types yet, you don’t know your relationships yet, and forcing a schema on day one would just be guessing. We’ll cover:</p><ul><li>Why “discover, then formalize” beats “schema-first” when the domain is unknown</li><li>What an ontology actually is, versus what a knowledge graph instance is (with a worked example)</li><li>The AI-native steps that bridge unstructured vectors to a structured graph</li><li>The two loops that keep the whole system alive: the <strong>build loop</strong> and the <strong>query loop</strong></li></ul><h3>Why not schema-first?</h3><p>Traditional knowledge engineering says: define your ontology first, then extract data to fit it. That works when you already understand the domain.In my Previous Article I have mentioned that <a href="https://medium.com/@dhilip.kumar/semantic-interoperability-layer-for-data-products-be6830c996a6?postPublishedType=initial">Sematic Interoperability for Data Product</a> , that is for known domain. It falls apart when you don’t — you end up either guessing at a schema that doesn’t match reality, or spending weeks in workshops with domain experts before writing a single line of extraction code.</p><p>The alternative — increasingly practical because of LLMs — is <strong>discover-then-formalize</strong>:</p><ol><li>Explore the unstructured corpus first, using vector search, so a human can get a feel for the domain</li><li>Let an LLM do open, schema-free extraction to surface candidate entities and relationships</li><li>Induce a starter ontology from those candidates (cluster near-duplicate labels, normalize types, human approves)</li><li>Re-run extraction against that seed ontology to build a properly typed graph</li><li>Keep both the ontology and the graph evolving as new data arrives, instead of treating either as “done”</li></ol><p>This isn’t a rejection of ontology-first design — it’s a recognition that with LLMs in the loop, you can <em>earn</em> the ontology from real data instead of authoring it from assumptions.</p><h3>Ontology vs. knowledge graph: getting the layers right</h3><p>A common point of confusion: are nodes and edges the same thing as classes and relationships? Not quite. They’re two different layers.</p><p><strong>The ontology (schema / TBox)</strong> defines:</p><ul><li><strong>Classes</strong> — the types of things that can exist (Organization, Person, Location)</li><li><strong>Subclass hierarchies</strong> — Company is a subclass of Organization</li><li><strong>Relationship types</strong> — headquartered_in, founded_by, with domain and range constraints</li><li><strong>Datatype properties</strong> — attributes like founded_year, which point to literal values, not other nodes</li></ul><p><strong>The knowledge graph (instance data / ABox)</strong> is the actual facts:</p><ul><li><strong>Nodes</strong> — instances of a class (Apple is an instance of Company)</li><li><strong>Edges</strong> — instances of a relationship type (Apple —headquartered_in→ Cupertino)</li><li><strong>Literals</strong> — attribute values with no independent identity (1976, attached to Apple via founded_year)</li></ul><p>That third category — literals — is worth calling out because it’s the most common mistake in extraction pipelines. A literal has no identity and nothing else ever points to it. An entity like Tim Cook, by contrast, <em>does</em> have identity — he could later connect to other facts (other roles, other organizations), so he should become a node, not a flattened attribute.</p><h3>Worked example</h3><p><strong>Ontology:</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/798/1*D5kZ6a917up8L3oyvviiFQ.png" /><figcaption>Ontology</figcaption></figure><p><strong>Knowledge graph instance:</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/798/1*sTBG-ewChT83y7VDGYTxOQ.png" /><figcaption>Ontology</figcaption></figure><p><em>(Simplified for the example — Apple was actually founded by Steve Jobs, Steve Wozniak, and Ronald Wayne. The point here is structural, not historical accuracy.)</em></p><p>The ontology says such a relationship <em>could</em> exist between a Company and a Location; the graph asserts that it <em>does</em>, specifically for Apple. That&#39;s the whole relationship between the two layers in one sentence.</p><p><strong>The ontology, as a schema:</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/813/1*r9VYh04crQDhUei7HV4_3Q.png" /></figure><p><strong>The knowledge graph, as instance data of that schema:</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/813/1*ioq0i8jxp6r-JAwZCi-dCg.png" /></figure><p>Notice the 1976 node in the diagram is styled differently on purpose — it&#39;s drawn as a box because Mermaid needs <em>something</em> to point an arrow at, but conceptually it isn&#39;t part of the graph&#39;s node set the way Apple, Cupertino, and Tim Cook are. It has no identity and nothing else will ever point to it.</p><h3>The AI-native bridge: turning exploration into a schema</h3><p>The gap in a pure “explore, then build ontology” plan is <em>how</em> human exploration of vectors turns into structured types. Semantic search surfaces similar passages — it doesn’t automatically surface “I need a Contract class and a governed_by relationship.&quot; You need an explicit step in between:</p><ol><li><strong>Ingest and chunk</strong> the unstructured sources</li><li><strong>Embed into a vector store</strong> — this becomes the exploration substrate</li><li><strong>Human exploration</strong> — a subject-matter expert queries and browses semantically, gets a feel for what matters</li><li><strong>Schema-free (open) extraction</strong> — an LLM pass extracts <em>candidate</em> entities and relationships with no fixed schema, tagging anything unfamiliar rather than discarding it or forcing a bad fit</li><li><strong>Ontology induction</strong> — cluster and normalize the candidate labels (embedding similarity plus LLM-assisted merging) so “Apple Inc,” “Apple,” and “AAPL” collapse into one entity, and near-duplicate relation labels collapse into one predicate. A human reviews and approves this as the <strong>seed ontology</strong>.</li><li><strong>Re-run extraction</strong> against the seed ontology, now producing properly typed nodes and edges</li></ol><p>Laid out as a sequence, the actors involved and the order they talk to each other looks like this:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*3sLL1U3rTVay_mnFKTR5gg.png" /></figure><p>From here, the two ongoing loops take over.</p><h3>Loop one: the build loop</h3><p>This loop never really finishes — it just slows down as the domain model matures.</p><p><strong>Unstructured data</strong> splits into two parallel paths:</p><ul><li><strong>Vector store path</strong> — chunk and embed for semantic search</li><li><strong>Extraction path</strong> — LLM extraction, constrained (or guided) by the current ontology, producing candidate triples</li></ul><p>Extracted candidates go to <strong>human review</strong>, which does two things: approves valid nodes/edges into the <strong>ontology and knowledge graph store</strong>, and — critically — feeds back to <em>update the ontology itself</em> when something genuinely new shows up (a new class, a new relationship type). That updated ontology then guides the <em>next</em> extraction pass. It’s a loop, not a pipeline stage.</p><p>There are two extraction modes worth knowing:</p><ul><li><strong>Closed/constrained extraction</strong> — the LLM only extracts instances of classes and relations already in the ontology. Use this once the ontology is fairly stable.</li><li><strong>Open extraction with ontology as guidance</strong> — the LLM proposes new candidate types when the text doesn’t fit anything defined yet, tagged separately rather than dropped or force-fit. Use this early on, or during periodic re-audits.</li></ul><p>A useful discipline: run a <strong>conformance check</strong> after every extraction pass — does every triple’s subject/object type actually match its relation’s declared domain and range? LLMs do occasionally hallucinate relation types near ontology boundaries; catching that automatically, before it reaches human review, saves a lot of reviewer time.</p><p>Both paths converge into a <strong>hybrid retrieval layer</strong> — vector store plus ontology-backed graph — which is what the query loop actually talks to.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/914/1*G-RVwVN3E9WiIidFjbxswQ.png" /></figure><p>This loop has no natural end state. It keeps running — just less frequently — for as long as new documents keep arriving.</p><h3>Loop two: the query loop</h3><p>Every query — from an agent or a human — runs through this loop:</p><ol><li><strong>Query arrives</strong></li><li><strong>Ontology interprets and plans</strong> — it doesn’t hold the answer, it holds the map. For “who founded Apple?”, the ontology tells the planner: founded_by exists, domain is Company, range is Person, so look for a Company node matching &quot;Apple&quot; and traverse that edge. This is also where disambiguation happens — if &quot;Apple&quot; could mean the company or something else in your domain, the ontology&#39;s type system is what lets the agent ask a sharp clarifying question instead of guessing.</li><li><strong>Split into two retrieval paths</strong>:</li></ol><ul><li><strong>Graph traversal</strong> for precise, structured, multi-hop facts</li><li><strong>Vector search</strong> for fuzzy, narrative, or free-text context</li></ul><p>4<strong>. Combine and assemble</strong> the answer from both</p><p>5<strong>. Human review</strong> — added conditionally, for ambiguous or high-stakes queries only</p><p>The two human-in-the-loop points in this whole system are doing genuinely different jobs, and it’s worth being explicit about which one you mean when you say “HITL”: build-time review is about the <em>correctness of the schema and the data</em>; query-time review is about <em>disambiguation and risk on a specific answer</em>. Conflating them tends to produce a review UI that’s mediocre at both.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/680/1*O9BQig4USjDIowP7vx3FiQ.png" /></figure><p>This is the consumption pipeline — the part of the system every agent or user-facing query actually runs through, on every request, regardless of what stage the build loop happens to be in.</p><h3>Putting it together</h3><p>The full lifecycle, end to end:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/909/1*qQS1UxZlD50Uj8PCTsgn5Q.png" /></figure><p>The build loop runs continuously in the background, growing slower in cadence as your ontology matures. The query loop runs on every single request, and it’s only as good as whatever state the build loop has produced so far. Neither one is ever “done” — and treating either as a one-time setup step is the most common way these systems degrade over time.</p><h3>What’s not covered here (and probably should be, next)</h3><p>This post focused on the design pattern. A few things worth a follow-up if you’re taking this to production:</p><ul><li><strong>Ontology versioning and migration</strong> — how to evolve class/relationship definitions without breaking already-extracted data</li><li><strong>Conflict resolution</strong> — what happens when two documents assert contradictory facts about the same entity</li><li><strong>Evaluation metrics</strong> — how do you actually measure extraction quality and ontology coverage over time, not just eyeball it</li><li><strong>Access control and multi-tenancy</strong> — if different consumers should see different slices of the graph</li><li><strong>Tooling choices</strong> — graph database options (e.g., property graph vs. RDF/OWL stores), and where GraphRAG-style frameworks fit in versus building this extraction/review loop yourself</li><li><strong>Cost and latency tradeoffs</strong> — LLM extraction and re-extraction at scale isn’t free; when to batch vs. stream</li></ul><h3>Conclusion</h3><p>The instinct that started this whole discussion — “I don’t know my domain yet, so let me explore first” — turns out to be the right one, as long as it’s paired with a mechanism to turn that exploration into structure. Vectors alone give you similarity, not truth; a knowledge graph without an ontology is just an unconstrained pile of triples wearing a fancier name. The ontology is what turns raw extraction into something an agent can trust, validate, and traverse with confidence.</p><p>The bigger shift, though, is realizing this isn’t a project with a finish line. It’s two loops running at different tempos: a <strong>build loop</strong> that keeps refining the schema and the graph as new documents arrive, and a <strong>query loop</strong> that leans on whatever state the build loop has produced at that moment — no more, no less. Treat either one as a one-time setup task, and the system quietly drifts out of sync with reality. Treat both as ongoing, and you end up with a knowledge base an agent can actually reason over, not just search.</p><p>If you’re building this for a real agentic application, start small: pick one narrow slice of your corpus, run it through the discover-then-formalize sequence end to end, and let the seed ontology be genuinely rough. It’s much easier to extend a small, honest ontology than to unwind a large, wrong one.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9df031d97257" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Semantic Interoperability Layer for Data Products]]></title>
            <link>https://medium.com/@dhilip.kumar/semantic-interoperability-layer-for-data-products-be6830c996a6?source=rss-995b1ffb2643------2</link>
            <guid isPermaLink="false">https://medium.com/p/be6830c996a6</guid>
            <category><![CDATA[ontology]]></category>
            <category><![CDATA[data-product-ontology]]></category>
            <category><![CDATA[knowledge-graph]]></category>
            <dc:creator><![CDATA[Dhilip Kumar]]></dc:creator>
            <pubDate>Thu, 18 Jun 2026 01:34:34 GMT</pubDate>
            <atom:updated>2026-06-18T01:34:34.179Z</atom:updated>
            <content:encoded><![CDATA[<p><em>Human-Mediated to Agent Mediated Data Consumption</em></p><p><em>Using Ontology-Driven Semantic Contracts to Enable Cross-Domain Data Understanding — Author </em><a href="https://medium.com/u/995b1ffb2643"><em>Dhilip Kumar</em></a><em> &amp; Arvind Babu</em></p><h3>Abstract</h3><p>The motivation for a Semantic Interoperability Layer stems from a fundamental shift in how data is consumed. Traditional data contracts were designed for traditional systems they enforce structure and format, which is sufficient when human developers mediate every integration. However, as AI agents become first-class consumers of enterprise data, they require more than structure; they need contextual understanding of how business processes relate to one another (e.g., how procurement connects to inventory, logistics, and demand planning within a supply chain). Therefore, interoperability is no longer optional — it is the foundation that enables both traditional systems and autonomous agents to interpret data with shared meaning. The new semantic contract does not replace the traditional contract; it extends it, serving both paradigms while unlocking the contextual and relational intelligence that agent-driven architectures demand.This work proposes a <strong>Semantic Interoperability Layer</strong> for data products, where interoperability is achieved through <strong>ontology-driven semantic contracts</strong>. These contracts extend beyond structural definitions to encode meaning, relationships, and intent, enabling systems to align and interpret data consistently across domains.</p><p>In this model:</p><p><strong>Semantic contracts</strong> define meaning, relationships, and intent — not just structure — serving as the binding agreement between data products and their consumers, whether traditional systems or autonomous AI agents.</p><p><strong>Ontologies</strong> operate as a three-tier shared abstraction (upper, domain, and bridging), enabling automated translation and alignment across domains without manual mapping</p><p>Data products become <strong>semantically interoperable</strong> by design through ontology-driven annotations at the source, eliminating downstream reconciliation and duplicate transformation logic.</p><p>A <strong>Context Engine</strong> provides relational reasoning over the Knowledge Graph, allowing AI agents to understand how business processes connect without human intervention.</p><p>Integration shifts from <strong>manual transformation to automated semantic reasoning</strong>, where queries are resolved through graph traversal and intent resolution rather than point-to-point data mapping</p><h3>This approach reduces integration complexity, improves data consistency, and enables both traditional systems and AI agents to consume enterprise data with contextual understanding and semantic clarity. By bridging the needs of human-mediated and agent-mediated architectures through a unified semantic contract, it unlocks scalable cross-domain collaboration in AI-first enterprises.</h3><h3>Problem Statement</h3><p>Data mesh promised domain autonomy with interoperability. Enterprises got the autonomy. The interoperability never arrived.</p><p>Despite significant investment in domain-driven architectures, data product platforms, and contract frameworks, enterprises remain trapped in a structural interoperability model — one that enforces <em>shape</em> compatibility while leaving <em>meaning</em> alignment as an exercise for the consumer. The consequences are architectural, not cosmetic.</p><p><strong>The structural contract ceiling</strong></p><p>Current data contracts enforce payload shape, field types, and SLA guarantees. They operate entirely at the syntactic layer. No mechanism exists in the contract stack to formally declare what a field means, how concepts relate across domains, or under what business intent a data product should be consumed. A status: “CLOSED” is structurally valid but semantically unresolvable fulfilled, cancelled, expired, or merged and the contract is silent.</p><p><strong>Consumer-side semantic debt</strong></p><p>Without semantic encoding at the source, every consuming domain builds its own interpretation layer: bespoke mapping, transformation, and reconciliation logic that encodes invisible semantic assumptions. This produces pairwise integration mappings across n domains unversioned, untested, and guaranteed to drift. The enterprise accumulates semantic debt that compounds with every new domain, every new consumer, and every schema evolution.</p><p><strong>The agent consumption gap</strong></p><p>This gap becomes structurally untenable as AI agents enter the consumption plane. A human analyst tolerates semantic ambiguity through tribal knowledge and manual reconciliation. An autonomous agent cannot. <strong><em>When an LLM-based orchestrator receives a procurement dataset, it needs to know that a purchase order triggers an inventory reservation, generates an accounts payable entry, and constrains a logistics schedule</em></strong> — not through prompt engineering, but through formal ontological declaration. Current architectures deliver well-typed payloads with zero relational context: the agent gets the nouns but not the gramma</p><p><strong>Root cause</strong></p><p>The enterprise data platform has no semantic layer. Contracts enforce structure. Catalogs provide discovery. Governance defines policy. Nothing formally encodes meaning, cross-domain relationships, or consumption intent. This is the architectural gap the Semantic Interoperability Layer closes.</p><p><strong>Observable impact</strong></p><p>· Integration overhead scales quadratically: Each new domain requires mapping against every existing consumer</p><p>· Data reuse collapses: Products are discoverable but semantically unusable across domain boundaries</p><p>· Analytics diverge silently: Same concept, different interpretations, conflicting dashboards</p><p>· Trust erodes : Consumers rebuild from source, creating shadow pipelines that undermine the mesh investment</p><p>· AI adoption stalls at domain boundaries: Agents reason within one domain but fail across domains where no formal relationships exist</p><p>Despite advances in data mesh and domain-driven architectures, enterprises face significant challenges in achieving true interoperability:</p><ul><li>Data products expose <strong>schemas without meaning</strong>, making interpretation ambiguous</li><li>Cross-domain integration requires <strong>manual mapping and transformation efforts</strong></li><li>Semantic inconsistencies lead to <strong>duplicate logic and conflicting interpretations</strong></li><li>Data contracts are limited to <strong>structure, not intent or context</strong></li><li>AI systems struggle due to <strong>lack of unified semantic grounding</strong></li></ul><p>As a result:</p><ul><li>High integration overhead</li><li>Low data reuse across domains</li><li>Inconsistent analytics and decision outcomes</li><li>Reduced trust in enterprise data</li></ul><h3>Objectives &amp; Scope</h3><h3>Primary Aim</h3><p>To design a <strong>Semantic Interoperability Layer</strong> that positions <strong>ontology-driven semantic contracts</strong> between the data product plane and the consumption plane — enabling data products to be consistently interpreted, automatically aligned, and consumed with contextual understanding by both traditional systems and autonomous AI agents, without replacing existing data infrastructure.</p><h3>Objectives</h3><ul><li><strong>Define a semantic contract specification</strong> that extends structural contracts with formal semantics encoding meaning, relationships, cardinality constraints, and consumption intent using OWL/RDFS, SHACL, and JSON-LD</li><li><strong>Establish a three-tier ontology model</strong> — upper ontology for cross-cutting abstractions, federated domain ontologies owned by domain teams, and a collaboratively governed bridging ontology that formally declares cross-domain relationships (e.g., Purchase Order — generates → Accounts Payable)</li><li><strong>Enable automated semantic alignment</strong> through an ontology mapping and alignment engine that eliminates pairwise domain mappings in favour of per-domain ontology alignment</li><li><strong>Instantiate a knowledge graph</strong> that materializes the ontology with live enterprise state, providing a queryable substrate for bounded graph traversal and relational reasoning</li><li><strong>Deliver agent-ready data consumption</strong> through a Context Engine that resolves queries with relational context — enabling AI agents to reason across domain boundaries using formal ontological assertions rather than prompt-engineered heuristics</li></ul><h3>Scope</h3><p><strong><em>In scope</em></strong></p><ul><li><strong>Semantic contract framework</strong>: specification, validation, and lifecycle management for ontology-driven contracts that extend existing structural contracts</li><li><strong>Three-tier ontology architecture</strong>: upper, domain, and bridging ontologies with federated ownership and collaborative governance of cross-domain relationships</li><li><strong>Knowledge graph integration</strong>: instantiation of ontological relationships as queryable graph , serving as the foundation for all semantic reasoning</li><li><strong>Context Engine</strong>: bounded graph traversal with intent resolution for AI agent consumption, delivering scoped context frames rather than raw payloads</li><li><strong>Integration pattern support</strong>: event-driven , API gateway , batch , and stream processing for semantic enrichment and validation</li><li><strong>Supply chain as the primary domain use case</strong>: procurement, inventory, logistics, and demand planning demonstrating cross-domain interoperability with finance and operations</li></ul><p><strong><em>Out of scope</em></strong></p><ul><li>Replacement of existing data platforms, lakehouses, or orchestration infrastructure — the SIL augments the current stack, it does not replace it</li><li>Domain-specific business logic modelling — domain teams retain ownership of internal business rules; the SIL governs only the semantic interface between domains</li><li>Fully automated ontology governance without human oversight : the bridging ontology requires collaborative human governance; automation assists but does not replace domain stewardship</li><li>Natural language processing or LLM-based ontology generation : the ontology is formally authored and validated, not inferred from unstructured text</li><li>Enterprise-wide deployment across all domains simultaneously : the architecture is designed for incremental adoption, starting with the supply chain domain and extending domain by domain</li></ul><h3>Technical Approach &amp; Innovation</h3><h3>Proposed solution</h3><p>The solution introduces a <strong>five-layer Semantic Interoperability Architecture</strong> that positions three new capabilities between the data product plane and the consumption plane: a Virtualization Layer that projects meaning without replicating data, a Semantic Interoperability Layer governed by ontology-driven semantic contracts, and a Knowledge Graph that stores relationships and ontological assertions as the queryable substrate for all downstream reasoning.</p><p>Each data product is bound to a formal semantic contract — a declarative artifact expressed in JSON-LD with SHACL validation graphs — that extends the structural schema (Avro, Protobuf) with concept definitions (OWL/RDFS), relationship axioms, cardinality constraints, and cross-domain alignment mappings. These contracts are published and validated at the source, not reconciled at the consumer.</p><p>Instead of consumers building bespoke interpretation layers for every domain they integrate with, the architecture shifts semantic reconciliation to a shared infrastructure layer. When the supply chain domain publishes a Purchase Order data product, its semantic contract formally declares that this entity <em>triggers</em> an Inventory Reservation, <em>generates</em> an AccountsPayable entry in the finance domain, and <em>constrains</em> a ShipmentSchedule in the logistics domain. Any consumer — whether a BI platform, an operational application, or an autonomous AI agent — can traverse these relationships through the Knowledge Graph without writing a single line of domain-specific mapping code.</p><p>The Virtualization Layer ensures this happens without full data replication. The Knowledge Graph holds relationships and ontological structure; when a Context Engine query needs actual data values (quantities, dates, amounts), those queries resolve downward through virtual SPARQL endpoints (Ontop/Morph-KGC) and federated query engines (Trino/Dremio) against live data products. Data stays in place. Meaning is projected. Only high-frequency subgraphs are materialized on demand.</p><h3>Methodology</h3><p>Step 1 — Define the semantic data product model</p><p>Extend existing data product specifications to include three layers: structural schema (field types, nullability, enumerations), descriptive metadata (ownership, freshness, lineage), and ontology mapping (concept binding, relationship axioms, domain constraints). In the supply chain domain, this means the PurchaseOrder data product declares not only that it has fields like order_id, supplier_id, quantity, and status, but that PurchaseOrder is a subtype of the upper ontology concept Entity, that supplier_id resolves to the Supplier concept through a placed-with relationship, and that status: CLOSED means fulfilled (not cancelled, not expired) as formally defined in the supply chain domain ontology.</p><p>Step 2 — Develop semantic contracts</p><p>Author semantic contracts as JSON-LD documents with embedded SHACL constraint graphs. Each contract binds the data product to a specific ontology version, declares its concept mappings, and specifies cross-domain relationships through the bridging ontology. The supply chain PurchaseOrder contract includes the assertion PurchaseOrder — generates → AccountsPayable with cardinality exactly-one and a trigger condition on status transition to APPROVED. This assertion is not documentation — it is a machine-executable ontological declaration that the Alignment Engine can traverse and the Context Engine can reason over.</p><p>Step 3 — Implement the three-tier ontology and knowledge graph</p><p>Build the ontology in three tiers: an upper ontology defining universal abstractions (Entity, Process, Event, Agent, Location, Measure), federated domain ontologies owned by each domain team (Supply Chain defines PurchaseOrder, Inventory, Shipment, DemandForecast; Finance defines AccountsPayable, CostCenter, JournalEntry), and a collaboratively governed bridging ontology where cross-domain relationships are formally declared. Instantiate the ontology as a knowledge graph (Neo4j/Neptune/Jena) containing typed relationship edges — not replicated data — that represent the live state of enterprise relationships.</p><p>Step 4 — Deploy the virtualization layer</p><p>Implement virtual SPARQL endpoints using Ontop or Morph-KGC that map R2RML definitions to live data product sources, enabling the Knowledge Graph to resolve entity attributes on demand without data replication. Deploy federated query engines (Trino/Dremio) for cross-domain SQL and GraphQL federation. Configure selective materialization for high-frequency subgraphs — for example, the PurchaseOrder → InventoryReservation → ShipmentSchedule hot path may be materialized for sub-second agent queries, while the long tail of historical relationships remains virtualized.</p><p>Step 5 — Enable semantic validation</p><p>Implement SHACL/ShEx constraint enforcement at two checkpoints: contract publish-time (validating that the semantic contract is internally consistent and compatible with the bridging ontology) and data ingestion-time (validating that incoming data conforms to the declared semantic constraints). When the supply chain domain publishes a new PurchaseOrder with supplier_id referencing a supplier not registered in the ontology, semantic validation catches this before it enters the consumption plane — shifting quality left rather than reconciling downstream.</p><p>Step 6 — Activate translation, alignment, and context services</p><p>Deploy the Alignment Engine (RML/R2RML-based) for automated cross-domain semantic translation. Activate the Context Engine for bounded graph traversal with intent resolution — when an AI agent queries “impact of delaying PO-4821,” the engine walks the knowledge graph through bridging relationships (PurchaseOrder → InventoryReservation → ShipmentSchedule → DemandForecast → SLA commitments), resolves “impact” against the supply chain domain’s consequence model, bounds traversal at domain contract boundaries, and returns a scoped context frame. This is formal relational reasoning over a typed, constrained graph — not keyword search, not RAG retrieval.</p><p>Step 7 — Integrate with existing data platforms</p><p>Connect to existing infrastructure through four integration patterns: event-driven propagation (Kafka/CloudEvents) for real-time CDC with semantic enrichment at stream level, a semantic API gateway (GraphQL-LD) for synchronous queries with contract enforcement, batch ontology sync (Spark/Airflow) for historical backfill and bulk enrichment, and continuous stream validation (Flink/ksqlDB) for inline semantic constraint checking on streaming data products. The SIL augments the existing stack — no platform is replaced.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/750/1*5Ix1IaUb7P2IYPj1an3Bbg.png" /></figure><h3>THE SHIFT (Top-left)</h3><p><strong><em>From Structural Integration → Semantic Interoperability</em></strong></p><p><strong>Today</strong></p><p>· Schema-driven data exchange</p><p>· API-level integration</p><p>· Meaning interpreted manually</p><p><strong>Emerging</strong></p><p>· Ontology-driven data alignment</p><p>· Semantic contracts</p><p>· Machine-interpretable meaning</p><p><strong>Key Insight</strong></p><p>Interoperability is shifting from aligning structure to aligning <strong>meaning</strong></p><h3>2. THE PROBLEM (Left-middle)</h3><p><strong><em>Why Data Products Still Fail to Interoperate</em></strong></p><p>· Data contracts enforce <strong>structure, not meaning</strong></p><p>· Cross-domain integration requires <strong>manual mapping</strong></p><p>· Semantic inconsistencies across domains</p><p>· Duplicated transformation logic</p><p>· AI systems lack <strong>contextual grounding</strong></p><p>Result:</p><p>· Fragile integrations</p><p>· Inconsistent analytics &amp; decisions</p><p>· High integration cost</p><p>· Low trust in enterprise data</p><h3>3. THE PROPOSED PARADIGM (Centre — intro)</h3><p><strong>Semantic Interoperability Layer</strong></p><p>Make data products <strong>interoperable by design</strong> using ontology-driven semantic contracts</p><h3>4. CORE ARCHITECTURE (CENTER — MAIN VISUAL)</h3><p><strong>Layered Architecture</strong></p><p>[ CONSUMERS ]</p><p>AI Systems • Applications • Analytics</p><p>↓</p><p>[ SEMANTIC INTEROPERABILITY LAYER ]</p><p>Semantic Contracts • Ontology Mapping • Alignment Engine</p><p>↓</p><p>[ ONTOLOGY / KNOWLEDGE GRAPH ]</p><p>Domain Concepts • Relationships • Vocabulary</p><p>↓</p><p>[ DATA PRODUCT LAYER ]</p><p>Domain Data Products (Schema + Metadata + Semantics)</p><p>↓</p><p>[ DATA SOURCES ]</p><p>Systems • Streams • Databases</p><p><strong>Core Flow</strong></p><p>Data Product → Semantic Mapping → Alignment → Consumption</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/925/1*RUeOqtRFvPbpBctK2xGMNg.png" /></figure><p><strong>Key Capabilities</strong></p><p>· Semantic contract validation</p><p>· Ontology-driven translation</p><p>· Cross-domain alignment</p><p>· Meaning-aware data consumption</p><p><strong>Key Insight</strong></p><p>Data integration becomes <strong>semantic reasoning</strong>, not transformation</p><h3>5. KEY ARCHITECTURAL SHIFTS (Right middle)</h3><p>· Schema Contracts → Semantic Contracts</p><p>· Data Mapping → Ontology Alignment</p><p>· Manual Integration → Automated Interpretation</p><p>· Metadata → Semantic Context</p><p>· Data Exchange → Context Exchange</p><h3>6. TRADE-OFFS (Right-lower)</h3><p>· STANDARDIZATION ↔ FLEXIBILITY</p><p>o Global ontology vs domain variation</p><p>· ACCURACY ↔ COMPLEXITY</p><p>o Richer semantics vs modeling effort</p><p>· CENTRALIZATION ↔ FEDERATION</p><p>o Shared ontology vs domain ownership</p><p>· PERFORMANCE ↔ SEMANTIC DEPTH</p><p>o Speed vs reasoning richness</p><h3>7. WHAT THIS ENABLES (Bottom-left)</h3><p>· Seamless cross-domain interoperability</p><p>· Reduced integration and transformation effort</p><p>· Consistent data interpretation across systems</p><p>· Improved data reuse across domains</p><p>· AI-ready, context-aware data consumption</p><p>· Higher trust in enterprise data</p><h3>8. FUTURE OUTLOOK (Bottom-centre)</h3><p>· Data contracts evolve into <strong>semantic, intent-aware contracts</strong></p><p>· Ontologies become <strong>core enterprise infrastructure</strong></p><p>· Integration shifts to <strong>semantic alignment platforms</strong></p><p>· AI systems rely on <strong>context-rich data ecosystems</strong></p><p>· Enterprises move from <strong>data-driven → meaning-driven architectures</strong></p><p><strong>9. DISCUSSION PROMPTS (Bottom-right)</strong></p><p>· Can schemas alone ever ensure interoperability?</p><p>· Who owns the enterprise ontology?</p><p>· How much semantic standardization is needed?</p><p>· Can semantic alignment be fully automated?</p><p>· How do we scale ontology across domains?</p><h3>DESIGN GUIDELINES (CRITICAL)</h3><p><strong>Visual Balance</strong></p><p>· 70–75% visuals</p><p>· 25–30% text</p><p><strong>Colour Coding</strong></p><p>· Blue → Data / systems</p><p>· Purple → Semantic / ontology</p><p>· Orange → Alignment / flow</p><p><strong>Layout Tips</strong></p><p>· Centre diagram must be <strong>largest element (40%)</strong></p><p>· Left = problem narrative</p><p>· Right = interpretation (shifts + trade-offs)</p><p>· Bottom = impact + future</p><h3>FINAL “WOW” LINE (Add near center or bottom)</h3><p><strong>“<em>We don’t integrate data — we align meaning. And we don’t copy data — we project it.</em>.”</strong></p><h3>1-LINE PITCH</h3><p>“We extend data contracts with ontology-driven semantics, so data products become interoperable by meaning, not just structure.”</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=be6830c996a6" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Summary of Atomic Habits by James Clear]]></title>
            <link>https://medium.com/@dhilip.kumar/summary-of-atomic-habits-by-james-clear-b396d46f7878?source=rss-995b1ffb2643------2</link>
            <guid isPermaLink="false">https://medium.com/p/b396d46f7878</guid>
            <category><![CDATA[book-review]]></category>
            <category><![CDATA[book-review-writing]]></category>
            <dc:creator><![CDATA[Dhilip Kumar]]></dc:creator>
            <pubDate>Sun, 23 Nov 2025 15:28:38 GMT</pubDate>
            <atom:updated>2025-11-23T15:37:04.905Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/518/1*yKXAnBb1ReAFx63u-11kfA.png" /><figcaption>Image by Author the concepts of diagram created by ChatGpt &amp; Book Image is from Original Author book in google Images</figcaption></figure><p>Ever wondered whether a hobby can eventually become a habit? I was curious about how closely the two are connected and whether they share the same roots. So, I did some digging using a few online research tools — and here’s what I discovered</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/940/1*hWlHx6Y5uMg81lrTgWpGMQ.png" /></figure><p>Hobby: an activity done regularly</p><p>Habit: in Latin Habere Meaning ‘have, consist of’</p><p>Both done regularly and consistently. Create a hobby to build habits or build a habit to create a hobby.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/516/1*H8FQluFo3qggPx7_5YGvow.png" /><figcaption>Image by Author the concepts of diagram created by ChatGpt</figcaption></figure><p><strong>James Clear breaks habits into four big buckets and here’s the simplest way to understand them:</strong></p><p><strong>I. Foundational Concepts of <em>Atomic Habits</em></strong></p><p>The core philosophy of <em>Atomic Habits</em> is that big, meaningful change is the result of small, consistent improvements. Behavior change is viewed as an iterative cycle: <strong>Try → Fail → Learn → Try Differently</strong>, reinforcing that progress is nonlinear but cumulative.</p><p>James Clear emphasizes that behavior does not exist in isolation — it is shaped by the interaction between a person and their environment, expressed through the formula</p><p>B = f(P, E)</p><p>(Behavior = function of Person + Environment).</p><p>Foundational research also distinguishes two major habit types:</p><ul><li>Outcome-Based Habits, which focus on results</li><li>Identity-Based Habits, which focus on who you become</li></ul><p>Identity-based habits are ultimately more powerful because they reshape self-perception, making behavior change more sustainable.</p><p><strong>II. The Four Steps of Building Habits (The Habit Loop)</strong></p><p>The formation and reinforcement of any habit follow a predictable four-step loop. At its core, <strong>the reward is what drives the entire cycle</strong>, and it emerges only after the interaction of the first three steps: <strong>cue → craving → response</strong>.</p><ol><li><strong>Cue — The Trigger</strong><br> A cue acts as a reminder or prompt. Its purpose is simple: <strong>to help you notice a potential reward.</strong></li><li><strong>Craving — The Motivation</strong><br> A craving creates a powerful desire. Its function is <strong>to make you want the reward</strong> that follows the cue.</li><li><strong>Response — The Action</strong><br> The response is the behavior itself. Its purpose is <strong>to obtain the reward</strong> that the craving motivates.</li><li><strong>Reward — The Outcome</strong><br> The reward provides satisfaction and reinforces learning.<br> We pursue rewards because <strong>they both please us and teach us</strong> — and the human brain is wired with extensive neural circuitry that pushes us toward seeking them.</li></ol><p><strong>III. The Four Laws of Habit Change</strong></p><p>James Clear outlines four practical laws that can be applied to the habit loop, depending on whether you want to <strong>build a new habit</strong> or <strong>break an existing one</strong>. These laws provide a simple, actionable framework for shaping behavior with intention.</p><p><strong>A. Four Laws for Building Atomic Habits</strong></p><ol><li><strong>Cue — Make it obvious</strong><br> Increase visibility and clarity so the behavior is easy to start.</li><li><strong>Craving — Make it attractive</strong><br> Pair the habit with something pleasurable or motivating.</li><li><strong>Response — Make it easy</strong><br> Reduce friction and simplify the behavior so it’s effortless to perform.</li><li><strong>Reward — Make it satisfying</strong><br> Reinforce the behavior with immediate satisfaction to encourage repetition.</li></ol><p><strong>B. Four Laws for Breaking Bad Habits</strong></p><ol><li><strong>Cue — Make it invisible</strong><br> Remove or reduce exposure to triggers.</li><li><strong>Craving — Make it unattractive</strong><br> Reframe the habit to highlight its negative consequences.</li><li><strong>Response — Make it difficult</strong><br> Add friction so the behavior becomes harder to perform.</li><li><strong>Reward — Make it unsatisfying</strong><br> Introduce immediate accountability or negative consequences.</li></ol><p><strong>IV. The Power of Visual Cues and Small Changes</strong></p><p>Research consistently shows that <strong>visual cues play an outsized role in shaping human behavior</strong>. Of the body’s 11 million sensory receptors, <strong>10 million are dedicated to sight</strong>, meaning that nearly half of the brain’s processing power is devoted to visual input. Because of this dominance, even small visual signals can create disproportionate behavioral change.</p><p>A striking example illustrates this principle:</p><p><strong>The Schiphol Airport Case:</strong> In the 1990s, cleaning staff at Amsterdam’s Schiphol Airport placed a tiny fly-shaped sticker near the center of men’s urinals. This simple visual cue encouraged users to aim more accurately, reducing spillage significantly. The result was measurable and impressive: <strong>an 8% reduction in annual restroom cleaning costs</strong> — all triggered by a sticker smaller than a coin.</p><p>This incident reinforces a key truth of habit formation:<br> <strong>Small habit changes, anchored by clear cues, can create remarkably large benefits — both socially and personally.</strong></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=b396d46f7878" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Context Engineering in Agentic AI]]></title>
            <link>https://medium.com/@dhilip.kumar/context-engineering-in-agentic-ai-74dc04011545?source=rss-995b1ffb2643------2</link>
            <guid isPermaLink="false">https://medium.com/p/74dc04011545</guid>
            <category><![CDATA[context-engineering]]></category>
            <category><![CDATA[prompt-engineering]]></category>
            <category><![CDATA[agentic-ai]]></category>
            <category><![CDATA[content-category-list]]></category>
            <dc:creator><![CDATA[Dhilip Kumar]]></dc:creator>
            <pubDate>Sat, 15 Nov 2025 13:00:09 GMT</pubDate>
            <atom:updated>2025-11-15T13:00:09.540Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/952/1*x0LNQlwUv9pAaWCm-GSZgA.png" /></figure><p><strong>From Prompt to Context: The Rise of Context Engineering in Agentic AI</strong></p><p>Whenever a meaningful conversation begins, a good presenter <strong>sets the context</strong> first. Before diving into details, they align everyone’s minds bringing all participants’ “human large language models” into the same mental space so the vision, agenda, and goals move in the right direction.</p><p><strong>A Scene That Explains It All</strong></p><p>Recently, I watched a movie that beautifully illustrated this idea.</p><p>Two childhood friends grew up together in a small village. Years later, one of them moved to the city for family reasons. When he returned to the village for a wedding, he met his old friend again. The friend from the village recognized him instantly, but the one from the city couldn’t recall his name.</p><p>Embarrassed, he asked, “What’s your name again?”</p><p>Instead of answering directly, the village friend gave him <strong>clues</strong> where they used to live, the games they played, even the character names they used as kids. Each clue provided <strong>context</strong>. Gradually, the city friend pieced the memories together and finally remembered his friend’s name.</p><p>It was an emotional and nostalgic moment and surprisingly, it reminded me of how <strong>Large Language Models (LLMs)</strong> work.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/940/1*ya1qsBjvpkiK46mVry9ieg.png" /><figcaption>Prompt Based Communication</figcaption></figure><p>To get a precise answer, you don’t just throw in a question. You provide <strong>context</strong> examples, cues, structure the way a human brain recalls memories and connects meaning.</p><p>In this story, <strong>the prompt</strong> was the question (“What’s your name?”), but <strong>the context</strong> made understanding possible.</p><p><strong>From Prompt Engineering to Context Engineering</strong></p><p>In the early phase of Generative AI, everything revolved around <strong>prompting</strong>. Prompt engineering became an art form carefully crafting questions and instructions to make LLMs respond effectively. But as <strong>Agentic AI</strong> evolved, something shifted.It was no longer enough to give a single prompt and expect a perfect answer. Real-world systems needed reasoning across <strong>multiple turns</strong>, <strong>longer time horizons</strong>, and <strong>dynamic knowledge sources</strong>.</p><p>This led to the rise of <strong>Context Engineering</strong> the discipline of <strong>curating and maintaining the optimal set of information</strong> (or tokens) that an LLM uses during inference.</p><p><strong>What Is Context Engineering?</strong></p><p>Context engineering is about <strong>orchestrating everything the model needs to think and act intelligently</strong> not just the immediate prompt.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/317/1*esyx7WhANDQhJ2XC4ch8kQ.png" /><figcaption>Agent Architecture</figcaption></figure><p>It includes:</p><ul><li><strong>System Instructions:</strong> Defining the agent’s goals and rules.</li><li><strong>Memory:</strong> Persisting relevant information across interactions.</li><li><strong>Tools and APIs:</strong> The capabilities exposed through frameworks like the Model Context Protocol (MCP).</li><li><strong>External Data:</strong> Information pulled in real time from documents, sensors, or APIs.</li><li><strong>Message History:</strong> Prior conversations that shape the next decision.</li></ul><p>An agent running continuously generates more and more data that may influence future reasoning. Good context engineering means <strong>selecting the smallest, most relevant set of signals</strong> that maximize the model’s performance much like a presenter keeping the discussion focused on what truly matters.</p><p>Context is not a monolithic concept but a <strong>multidimensional construct</strong> that spans several domains:</p><ul><li><strong>Context by Role in Reference and Meaning : Philosophical and Linguistic Contexts</strong> define how meaning and reference are established.</li><li><strong>Functional Context : AI and Computational Contexts</strong> describe how systems reason, infer, and act using structured assumptions.</li><li><strong>Context in Dynamic and Procedural Contexts</strong> emphasize how knowledge evolves and becomes actionable.</li><li><strong>Context in Dialogue and Natural Language Systems: Sensorial and Logical Contexts</strong> unify human and machine perception through measurable, temporal, and semantic dimensions.</li></ul><p>Together, these frameworks highlight that <strong>context is the connective fabric</strong> of understanding enabling both human cognition and artificial intelligence to interpret, reason, and act meaningfully within a world rich in ambiguity and intent.</p><p>This <strong>mind map</strong> visually organizes the <strong>taxonomy of context</strong> across six major domains.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/940/1*Nz5-aD6maas8iiA0erVpjA.png" /><figcaption>Mind Map : Context Categorization</figcaption></figure><p><strong>“Context”</strong>, branching into six key categories:</p><ol><li><strong>By Role in Reference &amp; Meaning</strong> — Linguistic and philosophical contexts like <em>Objective</em>, <em>Intentional</em>, <em>K-Context</em>, <em>Alternative K-contexts</em>, and <em>Fictional Contexts</em>.</li><li><strong>Functional in AI &amp; Modeling</strong> — Contexts used in computation such as <em>Projection</em>, <em>Approximation</em>, <em>Ambiguity</em>, <em>Mental State</em>, and <em>Problem-Solving Contexts</em>.</li><li><strong>Dynamic &amp; Procedural</strong> — Contexts that evolve with reasoning, including <em>External Knowledge</em>, <em>Contextual Knowledge</em>, and <em>Proceduralized Context</em>.</li><li><strong>In Dialogue &amp; NLP</strong> — Communication-oriented contexts: <em>Dialogical</em>, <em>Situational</em>, <em>Interlocutionary</em>, <em>Domain</em>, and <em>Dialogue Contexts</em>.</li><li><strong>In Ubiquitous Computing</strong> — Sensor-based contexts following the <em>5W1H model</em> (Who, What, Where, When, Why, How) and their <em>Preliminary</em>, <em>Integrated</em>, and <em>Final</em> stages.</li><li><strong>By Logical Structure</strong> — Formal representations such as <em>Context Sets</em>, <em>CIL Contexts</em>, <em>Contextual Propositions</em>, and <em>Interpretation/Evaluation Contexts</em>.</li></ol><p><strong>Conclusion</strong></p><p>Overall, the mind map captures <strong>how context operates across philosophy, AI, linguistics, logic, and computing</strong>, illustrating that context is a <strong>multidimensional framework connecting meaning, reasoning, and situational awareness.</strong></p><p><strong>References</strong></p><ul><li><strong>Recanati, F. (2004).</strong> <strong>Literal Meaning.</strong> Cambridge University Press. — Discusses <strong>intentional vs public aspects of context</strong>, context-shifts, and how alternative contexts can supply content for indexicals and demonstratives. (<a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC4687163/?utm_source=chatgpt.com">PMC</a>)</li><li><strong>Bonomi, A. (2008).</strong> <em>Fictional Contexts.</em> In <strong>Context-Sensitivity and Semantic Minimalism</strong> (eds. G. Preyer &amp; G. Peter). — Treats <strong>fictional contexts</strong> where characters (ficta) act as agents and truth is evaluated relative to a story-world. (<a href="https://www.abonomi.it/wp-content/uploads/2022/04/trento201102.pdf?utm_source=chatgpt.com">abonomi.it</a>)</li><li><strong>Gurevych, I., Porzel, R., &amp; Malaka, R. (2006).</strong> <em>In Context: Integrating Domain- and Situation-specific Knowledge for Dialogue Systems.</em> In W. Wahlster (Ed.), <strong>SmartKom: Foundations of Multimodal Dialogue Systems</strong>, Springer. — Provides a table of context types for spoken dialogue systems: <strong>dialogical context, ontological/domain context, situational context, and interlocution Ary (user) context</strong>, plus the notion of overall dialogue context. (<a href="https://download.mmag.hrz.tu-darmstadt.de/pub/FB20/Dekanat/Publikationen/UKP/SmartkomContext2006.pdf">download.mmag.hrz.tu-darmstadt.de</a>)</li><li><strong>Bunt, H. (2000).</strong> <em>Dialogue Pragmatics and Context Specification.</em> In <strong>Abduction, Belief and Context in Dialogue; Studies in Computational Pragmatics</strong>, pp. 81–150. Benjamins. — Discusses what constitutes <strong>dialogue context</strong> and how linguistic, situational and user-related factors jointly determine interpretation and generation. (<a href="https://www.researchgate.net/profile/Harry-Bunt/publication/237265090_Dialogue_pragmatics_and_context_specification/links/53ed0b760cf26b9b7dc0cf4b/Dialogue-pragmatics-and-context-specification.pdf?utm_source=chatgpt.com">ResearchGate</a>)</li><li><strong>Larsson, S., &amp; Traum, D. (2000).</strong> <em>Information State and Dialogue Management in the TRINDI Dialogue Move Engine Toolkit.</em> <strong>Natural Language Engineering, 6(3–4), 323–340.</strong> — Treats dialogue as updates to an <strong>information state/dialogue context</strong>, integrating linguistic, domain, and user information. (<a href="https://www.research.ed.ac.uk/files/23610047/Bunt_Alexandersson_ET_AL_2010_Towards_an_ISO_Standard_for_Dialogue_Act_Annotation.pdf?utm_source=chatgpt.com">Edinburgh Research</a>)</li><li>Anthropic Applied AI Team. (2025, September 29). <em>Effective context engineering for AI agents.</em> Anthropic. Retrieved from <a href="https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents?utm_source=chatgpt.com">https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=74dc04011545" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Why a ‘Stateless Agent’ Isn’t Truly an Agent]]></title>
            <link>https://medium.com/@dhilip.kumar/why-a-stateless-agent-isn-t-truly-an-agent-252fce0bba7a?source=rss-995b1ffb2643------2</link>
            <guid isPermaLink="false">https://medium.com/p/252fce0bba7a</guid>
            <category><![CDATA[autonomous-agent]]></category>
            <category><![CDATA[ai-agent]]></category>
            <category><![CDATA[agent-type]]></category>
            <category><![CDATA[automation]]></category>
            <dc:creator><![CDATA[Dhilip Kumar]]></dc:creator>
            <pubDate>Wed, 05 Nov 2025 16:16:04 GMT</pubDate>
            <atom:updated>2025-11-05T16:16:04.087Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*GUZgo2e6RlIrvEKoDKlOgQ.png" /></figure><p>A “stateless agent” in agentic AI is actually a misnomer because true agents, by definition, need some form of memory and adaptability, while stateless architectures simply repeat tasks without learning or accumulating experience. The task-oriented automations operating with context understanding and natural language capabilities, but lacking persistent memory is context-powered programs not an agent here is why,</p><p><strong>Stateless Agents vs. Automation</strong></p><ul><li>Stateless agents process each interaction as a standalone event, with no retained history — making their outputs predictable and repeatable for the same inputs.​</li><li>This is ideal for basic, repetitive functions (like answering one-shot queries or running isolated computations), but it isn’t “agentic” in the sense of goal-driven, learning AI.​</li><li>When memory and learning are missing, these systems become automations they execute jobs but do not adapt, improve, or personalize based on prior experience.​</li></ul><p><strong>Agent Characteristics and the Role of Memory</strong></p><ul><li>True agents are designed to remember context, update themselves based on feedback, and pursue tasks with dynamic strategies.​</li><li>Stateless systems may have natural language understanding and context processing per request — sometimes leveraging system prompts or instructions — but without memory, they cannot develop “agency” or autonomous capabilities.​</li></ul><p><strong>Architectural Implications</strong></p><ul><li>Some stateless frameworks mimic agents: they interface with Model Context Protocols (MCPs), support sophisticated prompting, and parse intent flexibly.</li><li>However, these are not “agents” in a full sense — they’re programs or automations that repeatedly execute mapped instructions for business functions.​</li><li>The absence of memory and autonomous learning means they aren’t agentic, nor are they truly “stateless agents.” Rather, they are stateless processes, agentless automations, or context-powered programs.​</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/894/1*JULze3H85I_ZUMkhIXqeuA.png" /><figcaption>Characteristics</figcaption></figure><p>In short, a stateless architecture with natural language and context processing is not truly agentic — it’s better defined as intelligent automation or a process that executes mapped jobs without memory or autonomy.</p><p><strong>References</strong></p><ol><li><a href="https://www.belsterns.com/post/statefulvs-statelesaiagents">https://www.belsterns.com/post/statefulvs-statelesaiagents</a></li><li><a href="https://insights.daffodilsw.com/blog/stateful-vs-stateless-ai-agents-when-to-choose-each-pattern">https://insights.daffodilsw.com/blog/stateful-vs-stateless-ai-agents-when-to-choose-each-pattern</a></li><li><a href="https://zbrain.ai/building-stateful-agents-with-zbrain/">https://zbrain.ai/building-stateful-agents-with-zbrain/</a></li><li><a href="https://mem0.ai/blog/why-stateless-agents-fail-at-personalization">https://mem0.ai/blog/why-stateless-agents-fail-at-personalization</a></li><li><a href="https://codewave.com/insights/agentic-ai-vs-ai-agents-key-differences/">https://codewave.com/insights/agentic-ai-vs-ai-agents-key-differences/</a></li><li><a href="https://dev.to/abhishekjaiswal_4896/the-difference-between-ai-agents-and-traditional-ai-models-1aj">https://dev.to/abhishekjaiswal_4896/the-difference-between-ai-agents-and-traditional-ai-models-1aj</a></li></ol><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=252fce0bba7a" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Software Engineering Shift: From Contract to Context]]></title>
            <link>https://medium.com/@dhilip.kumar/software-engineering-shift-from-contract-to-context-cd5210073ec3?source=rss-995b1ffb2643------2</link>
            <guid isPermaLink="false">https://medium.com/p/cd5210073ec3</guid>
            <dc:creator><![CDATA[Dhilip Kumar]]></dc:creator>
            <pubDate>Tue, 28 Oct 2025 03:25:18 GMT</pubDate>
            <atom:updated>2025-10-28T03:25:18.857Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*mDjzb2lnVXRersV0w3pMFQ.png" /><figcaption>Contract to Context</figcaption></figure><p>Software engineering has undergone many paradigm shifts in its history. From the early days of machine-level programming to object orientation, from client-server computing to the cloud, each era has brought new abstractions and challenges. The latest shift, driven by intelligent agents and natural language interfaces, is a move from contract-driven systems to context-driven systems.</p><p>This transition is not just about technology — it changes how we design, validate, and trust software. Contracts remain important, but context is now the driving force that determines how systems reason, adapt, and act.</p><p><strong>The Era of Contracts</strong></p><p>For most of software engineering’s history, the contract defined how software was built and consumed. A contract was a formal, precise, and deterministic agreement between components — whether between user and interface, two systems, or a developer and the database.</p><ul><li><strong>User Contracts</strong>: End users interacted through rigid controls — text boxes, list boxes, checkboxes, and buttons. These controls exposed a contract: the user could only provide information in permitted formats, and the system responded accordingly.</li><li><strong>UI Contracts</strong>: In web applications, HTML defined the contract. Each element — forms, buttons, event handlers — was a binding agreement between developers and browsers on what behavior was expected.</li><li><strong>Integration Contracts</strong>: As systems grew interconnected, XML schemas, JSON structures, and REST APIs became the lingua franca. Each side had to adhere strictly to schema definitions; otherwise, communication failed.</li><li><strong>Database Contracts</strong>: Structured Query Language (SQL) epitomized contract enforcement. To query data, you needed to know the exact schema, table, and column definitions. Even the rise of NoSQL could not fully replace SQL because developers valued this predictable contract.</li></ul><p>In this world, if you broke the contract, the system failed. Contracts provided guardrails for reliable execution, but they were rigid and unforgiving.</p><p><strong>The Rise of Context</strong></p><p>The growth of AI-powered agents has disrupted this model. Instead of relying only on fixed contracts, systems are now expected to interpret <em>context</em>.</p><ul><li>Natural Language First: Users increasingly interact with software through natural language, not predefined controls. A request like <em>“Show me last quarter’s sales in India”</em> does not conform to a strict API contract. Instead, it requires interpretation of intent.</li><li>Context as Meaning: Context is the broader semantic environment surrounding a request. It is not just what the user says, but also <em>how they say it</em>, <em>when they say it</em>, and <em>what tools are available</em> for execution.</li><li>Agents as Interpreters: The software agent now mediates between ambiguous, fluid human intent and strict system contracts. The flow of interaction becomes:</li><li>User context: expressed in natural language.</li><li>Agent context: defined by system prompts, memory, and reasoning strategies.</li><li>Tool context: exposed through specifications like API descriptions or Model Context Protocol (MCP).</li><li>Execution as Mapping: The agent maps human context into system contracts — converting ambiguous intent into SQL queries, API calls, or tool invocations. Contracts still exist, but they are wrapped in an interpretive layer of context.</li></ul><p>In essence, contracts have not disappeared. They have been <em>subsumed into a context-driven pipeline</em>, where interpretation precedes execution.</p><p><strong>Context → Contract: A New Flow</strong></p><p>The modern execution flow in context-driven software looks like this:</p><ol><li>User Intent: Expressed in natural language.</li><li>Agent Grounding: The system prompt or reasoning model ensures the agent aligns with the right domain and scope.</li><li>Tooling Context: Agents check exposed capabilities — schemas, APIs, or knowledge sources — to know what they can leverage.</li><li>Translation to Contract: The agent maps intent into a tool-specific contract (e.g., creating an SQL query, calling an API, or executing a workflow).</li><li>Result Interpretation: The output is contextualized back into human-readable form.</li></ol><p>This pipeline ensures that context arrives before contract. The system must first understand <em>why</em> and <em>what</em> is being asked before it can execute.</p><p><strong>From Deterministic to Semantic Systems</strong></p><p>This shift is more than technical — it represents a philosophical change in software design.</p><ul><li>Deterministic Era (Contract-driven): Inputs were clean, structured, and validated. The user pressed a button, the system executed a contract, and the output was deterministic.</li><li>Semantic Era (Context-driven): Inputs are natural, ambiguous, and conversational. Interpretation is required before execution. Contracts remain in place, but they serve the tools, not the user.</li></ul><p>This mirrors the transition from command-driven mainframes → GUI-driven desktops → web APIs → context-driven agents. Each wave has democratized access to computation, and each has expanded the role of <strong>Real-World Examples</strong></p><ul><li>ChatGPT Plugins and MCP: When a user asks <em>“Find me the top three vegan restaurants nearby”</em>, the AI interprets intent and maps it to a contracts-based tool like Yelp API. Yelp still exposes a predictable API schema, but the user is oblivious — the agent is bridging intent to contract.</li><li>LangChain Agents: In AI agent frameworks, tools expose structured contracts for functions. Agents parse user context and choose which contract to invoke.</li><li>Databases in Agentic Workflows: A user’s natural language query like <em>“Show me customers who purchased more than three times last month”</em> can be transformed into a precise SQL command by the agent, without user knowledge of schema details.interpretation and flexibility.</li></ul><p><strong>Implications for Software Engineering</strong></p><p>This context-first shift is redefining engineering practices:</p><ul><li>New Design Discipline: Prompt engineering, context scoping, and guardrail design become as critical as schema definition once was.</li><li>Contextual Validation: Instead of only validating data formats, engineers must validate interpretation. Does the agent truly understand the user request correctly?</li><li>Exposed Tool Context: Tools must expose contracts in machine-readable, context-friendly formats like OpenAPI, JSON Schema, or MCP.</li><li>Shifting Roles: Traditional roles (UI developer, API designer, DBA) may converge into <em>Context Architects</em> — professionals who design how context maps into tools.</li><li>Trust and Safety: Since context is probabilistic, misinterpretation risks increase. Systems must include safeguards like grounding checks, system prompts, and rule-based filters.</li></ul><p><strong>Opportunities and Risks</strong></p><ul><li>Opportunities:</li><li>Democratization of software usage (anyone can “talk” to systems).</li><li>Greater integration flexibility, since context bridges heterogeneous systems.</li><li>Enhanced personalization, as agents adapt contextually to each user.</li><li>Risks:</li><li>Misinterpretation of context leading to wrong actions.</li><li>Over-reliance on language models without proper validation.</li></ul><p>Security hazards if malicious or ambiguous context bypasses safeguards.</p><p><strong>Future Outlook</strong></p><p>In the years ahead, software may increasingly expose <em>capabilities instead of APIs</em>. Instead of forcing developers or users to learn schemas, systems will declare what they can <em>do</em>, leaving context-driven agents to handle the specifics of execution.</p><p>Imagine a world where:</p><ul><li>A finance system no longer publishes SQL schemas but simply offers capabilities — “query transactions,” “generate reports.”</li><li>A logistics system simply exposes <em>affordances</em> like “track shipment” or “optimize route,” and agents orchestrate these capabilities based on context.</li><li>Developers design not only system APIs, but also <em>contextual affordances</em> that intelligent agents can leverage.</li></ul><p>The role of software engineering will then expand — from <em>contract writers</em> to <em>context designers</em>.</p><p><strong>Conclusion</strong></p><p>The shift from contract to context marks a foundational transformation in software engineering. Contracts still underpin systems, holding structure and precision, but they are no longer the first-class citizens. Instead, context — shaped by intent, semantics, and interpretation — leads the way.</p><p>In this new era, software engineers are context engineers. Their job is to ensure that the bridges between human intent and system execution are reliable, safe, and meaningful. Software is no longer just about handling precise input — it is about understanding, adapting, and responding to context.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=cd5210073ec3" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>