{"id":30106,"date":"2025-11-03T13:34:20","date_gmt":"2025-11-03T12:34:20","guid":{"rendered":"https:\/\/wordlift.io\/blog\/en\/?p=30106"},"modified":"2025-11-04T12:02:09","modified_gmt":"2025-11-04T11:02:09","slug":"chatgpt-named-entities","status":"publish","type":"post","link":"https:\/\/wordlift.io\/blog\/en\/chatgpt-named-entities\/","title":{"rendered":"The Hidden Entity Layer of ChatGPT: From Named Entities to Products"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">What Lies Beneath ChatGPT\u2019s Interface<\/h2>\n\n\n\n<p>In my previous exploration, <em><a href=\"https:\/\/wordlift.io\/blog\/en\/openai-emerging-semantic-layer\/\">The OpenAI Emerging Semantic Layer<\/a><\/em>, I started to review how GTP-5 organizes knowledge beneath the surface, not through keywords, but through <strong>entities<\/strong>.<\/p>\n\n\n\n<p>This time, I took a closer look at the Server-Sent Event (SSE) streams that power ChatGPT\u2019s responses, inspired by the insights shared by <a href=\"https:\/\/www.linkedin.com\/posts\/klaas-foppen_brand-entities-are-now-appearing-in-chatgpt-activity-7386304758304624640-tMZK?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAAAABQtwByNjjZKKeLt7YWh_rnkBWROwd8VY\">the team at PromptWatch<\/a>.<br>By recording, parsing, and analyzing these real-time data flows, I uncovered <strong>a hidden layer of entity infrastructure<\/strong> that extends far beyond language understanding, now encompassing products, organizations, people, and even moderation logic.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img decoding=\"async\" width=\"1410\" height=\"886\" src=\"https:\/\/wordlift.io\/blog\/en\/wp-content\/uploads\/sites\/3\/2025\/11\/entity-recorder-chatgpt.png\" alt=\"\" class=\"wp-image-30108\" style=\"width:700px\" srcset=\"https:\/\/wordlift.io\/blog\/en\/wp-content\/uploads\/sites\/3\/2025\/11\/entity-recorder-chatgpt.png 1410w, https:\/\/wordlift.io\/blog\/en\/wp-content\/uploads\/sites\/3\/2025\/11\/entity-recorder-chatgpt-300x189.png 300w, https:\/\/wordlift.io\/blog\/en\/wp-content\/uploads\/sites\/3\/2025\/11\/entity-recorder-chatgpt-1024x643.png 1024w, https:\/\/wordlift.io\/blog\/en\/wp-content\/uploads\/sites\/3\/2025\/11\/entity-recorder-chatgpt-768x483.png 768w, https:\/\/wordlift.io\/blog\/en\/wp-content\/uploads\/sites\/3\/2025\/11\/entity-recorder-chatgpt-150x94.png 150w\" sizes=\"(max-width: 1410px) 100vw, 1410px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">How ChatGPT Streams Knowledge: The SSE Architecture<\/h2>\n\n\n\n<p>ChatGPT\u2019s web interface doesn\u2019t operate like an API call that returns a block of text. <br>Instead, it maintains a <strong>persistent streaming connection<\/strong> with the server via the <code>text\/event-stream<\/code> protocol, known as <strong>Server-Sent Events (SSE)<\/strong>.<\/p>\n\n\n\n<p>Every time ChatGPT \u201ctypes,\u201d the client receives a flow of structured events.<br>Each event contains not only the visible tokens of the reply but also a rich metadata payload.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>First insight:<\/strong> the payload returned by the OpenAI APIs <strong>differs from the metadata structure available in the ChatGPT WebUI<\/strong>; and <strong>it also varies between free and paid<\/strong> accounts. <\/p>\n<\/blockquote>\n\n\n\n<p>A simplified view of the process:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><strong>Phase<\/strong><\/th><th><strong>Endpoint<\/strong><\/th><th><strong>Purpose<\/strong><\/th><\/tr><\/thead><tbody><tr><td>1\ufe0f\u20e3 <strong>Moderation<\/strong><\/td><td><code>\/backend-api\/moderations<\/code><\/td><td>Checks for policy violations before generation<\/td><\/tr><tr><td>2\ufe0f\u20e3 <strong>Generation Stream (SSE)<\/strong><\/td><td><code>\/backend-api\/conversation<\/code><\/td><td>Streams assistant responses and internal state<\/td><\/tr><tr><td>3\ufe0f\u20e3 <strong>Output Moderation<\/strong><\/td><td><code>\/backend-api\/moderations<\/code><\/td><td>Re-evaluates AI output for compliance<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Unlike the public API (<code>\/v1\/chat\/completions<\/code>), which streams only plain text tokens, the private web interface streams <strong>complex JSON objects<\/strong> \u2014 containing message IDs, metadata, content types, and hidden annotations.<\/p>\n\n\n\n<p>This is where the \u201csemantic layer\u201d lives.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Method: Reverse-Engineering the Conversation Stream<\/h2>\n\n\n\n<p>I built a custom Playwright-based recorder in Python to intercept and log ChatGPT\u2019s internal <code>\/backend-api\/conversation<\/code> SSE stream.<\/p>\n\n\n\n<p>Each event is captured as raw text, decoded, and stored for analysis.<br>Using pattern recognition and entity extraction, I was able to identify <strong>multiple layers of structured data<\/strong> hidden in these streams, including:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>System Entities<\/strong>: Internal identifiers such as <code>message_id<\/code>, <code>conversation_id<\/code>, and <code>end_turn<\/code>, used by the React frontend.<\/li>\n\n\n\n<li><strong>Moderation Entities<\/strong>: Safety classifications (e.g., <em>self-harm, violence, sexual<\/em>) retrieved from the moderation endpoint.<\/li>\n\n\n\n<li><strong>Named Entity Recognition (NER) Layer<\/strong>: Lightweight in-text annotations for <code>Person<\/code>, <code>Organization<\/code>, <code>Event<\/code>, and <code>Location<\/code>.<\/li>\n\n\n\n<li><strong>Product Entities<\/strong>: Structured commerce nodes emitted in product-related conversations.<\/li>\n<\/ul>\n\n\n\n<p>Importantly, these data structures <strong>do not appear<\/strong> in:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>the <strong>OpenAI API<\/strong> (<code>api.openai.com\/v1\/chat\/completions<\/code>),<\/li>\n\n\n\n<li>nor in the <strong>free ChatGPT tier<\/strong> (which uses a different backend).<\/li>\n<\/ul>\n\n\n\n<p>They are <strong>exclusive to the ChatGPT web and paid tiers<\/strong>, where richer data pipelines are active. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Inside the Entity Layer<\/h2>\n\n\n\n<p>At the heart of the stream, I found that every conversational turn embeds entity placeholders that look like this:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img decoding=\"async\" width=\"604\" height=\"410\" src=\"https:\/\/wordlift.io\/blog\/en\/wp-content\/uploads\/sites\/3\/2025\/11\/carbon-2025-11-03T104630.782.png\" alt=\"\" class=\"wp-image-30109\" style=\"width:700px\" srcset=\"https:\/\/wordlift.io\/blog\/en\/wp-content\/uploads\/sites\/3\/2025\/11\/carbon-2025-11-03T104630.782.png 604w, https:\/\/wordlift.io\/blog\/en\/wp-content\/uploads\/sites\/3\/2025\/11\/carbon-2025-11-03T104630.782-300x204.png 300w, https:\/\/wordlift.io\/blog\/en\/wp-content\/uploads\/sites\/3\/2025\/11\/carbon-2025-11-03T104630.782-150x102.png 150w\" sizes=\"(max-width: 604px) 100vw, 604px\" \/><\/figure>\n\n\n\n<p>Each placeholder is then replaced dynamically by an object of a specific type \u2014<br>for instance, <code>organization_entity<\/code>, <code>person_entity<\/code>, or <code>event_entity<\/code>.<\/p>\n\n\n\n<p>This allows ChatGPT to build <strong>context-aware memory anchors<\/strong> across turns. When you ask, \u201cWhat is WordLift?\u201d and then follow with \u201cWho founded it?\u201d, the system already has a reference to the <strong>organization entity WordLift<\/strong> in memory.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">ChatGPT Entity Classes<\/h3>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/mermaid.ink\/img\/pako:eNp1ldtu4jAQhl8l8oo7WjXhEMjFSlDaPbXbbkuPpkJuYoK1wY4ch0IR776ObaJRuyFCir_557c98WGHYpFQFKFWa8c4U5G3m3HPmyG1pCs6Q5F-fSWFfmsDfk8kI68ZLSqBSahCuWQrIrenIhPSZn7pdHvBZOySgWZKNwrqzs3vs24sZEIlVPpB76TXBcqMcQoFQTAKBn0gKGgsePJhYOd9_YT_U30cmj-sHqBUVCr2we40GHX9CRAtBFe37N1V0O_lmxmqYvsZ3-9brRmf8VSSfOld3FR4hFe0KEhKX7yjo6_eWDcVSYgiLyZq4CnWI1SUK8PGhk0ObC7pgkrKY1qYcPVvtbxrKZIyVt4ZV0xtKzgxeWc4t5E5NRGTc2ZC55gloPkN63hGAfmuc1kMyQ8siWI8Begn5uVKD2rN6FsB-C89MxkvCVeQXuAFJaqUNJkrAm0usV4GKZ2XMoP633V95oUo5WHSNnhVzy0T4m-Zz-s62vg1FgtdK5jyB6-rFX0YlCvelV7r0pXOm25zvdzrAt5gIVPC2bueuOAm68YGfMzJikISYMYTuoGog-246-6s663GC_VGpA3cWggcHYGODjU4TnFORe6-39Qi4OcI9HOowe8O5xlx9M4SYOcItHOowe4ev0rC7Xq7twTYOQLtHGqwe8B0fdggD5YAO0egnUMNdo9aqXc7N9-YZHMl9Sq1e-XRCoC7I9DdoQb3J1wduEybr23oyWLg6Qj0dKjB81l_HpqkFj9bBPwcgX4ONfiNRljReMlZrKdfKFKdkPZrjUZOAOxrBjuoYd0FaqNUsgRFSpa0jfSBsCJVE32-ehK6IGWmqrNzr9Nywp-FWB0ypSjTJYoWJCt0q8z1RqcTRvTBuqqpPhPNDVJyhSI_DI0JinZog6Ig9I-7nbA7HA5P_E5_MGyjLYr63eMwHAx7_c6gEwbdYWffRu-m15PjQdhrI5owJeSlvTfN9bn_B7G_Nr8?type=png\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><strong>Type<\/strong><\/th><th><strong>Description<\/strong><\/th><th><strong>Purpose<\/strong><\/th><\/tr><\/thead><tbody><tr><td><code>entity<\/code><\/td><td>Generic placeholder for untyped entity references<\/td><td>Lightweight mention linking<\/td><\/tr><tr><td><code>person_entity<\/code><\/td><td>Individuals, founders, public figures<\/td><td>Used in biographies and relationships<\/td><\/tr><tr><td><code>organization_entity<\/code><\/td><td>Companies, institutions<\/td><td>Used for corporate and contextual queries<\/td><\/tr><tr><td><code>event_entity<\/code><\/td><td>Events, conferences, historic moments<\/td><td>Temporal grounding<\/td><\/tr><tr><td><code>product_entity<\/code><\/td><td>Products, devices, commercial items<\/td><td>Structured product layer for commerce<\/td><\/tr><tr><td><code>moderation_entity<\/code><\/td><td>Policy categories (violence, hate, etc.)<\/td><td>Internal safety classification<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Each component serves a specific purpose in how ChatGPT organizes, filters, and enriches its responses. Beyond inference, these entities may also hold value for pre-training tasks, forming the <strong>semantic layer<\/strong> that characterize every conversation.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Product Knowledge Graph of ChatGPT<\/h2>\n\n\n\n<p>If you follow our work on <strong>agentic commerce<\/strong> and product feeds, this section will feel like the next logical step. Building on:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><a href=\"https:\/\/wordlift.io\/blog\/en\/the-agentic-commerce-revolution-from-visit-to-purchased\/\">The Agentic Commerce Revolution<\/a><\/strong><\/li>\n\n\n\n<li><strong><a href=\"https:\/\/wordlift.io\/blog\/en\/openai-product-feeds\/?utm_source=chatgpt.com\">OpenAI Product Feeds<\/a><\/strong><\/li>\n\n\n\n<li><strong><a href=\"https:\/\/wordlift.io\/blog\/en\/ai-in-ecommerce\/\">AI in eCommerce<\/a><\/strong><\/li>\n<\/ul>\n\n\n\n<p>I was able to analyze the <strong>product_entity<\/strong> objects. They behave differently from other entity types: instead of just being named references, they carry <strong>fully structured product metadata<\/strong>, much <strong>like a JSON-LD Product object<\/strong>.<\/p>\n\n\n\n<p>Here\u2019s a simplified example extracted from the stream:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"id\": \"2997526925583449256\",\n  \"title\": \"Bialetti Moka Express (classic size)\",\n  \"price\": \"\u20ac23.90\",\n  \"rating\": 4.7,\n  \"num_reviews\": 5900,\n  \"merchants\": \"Unieuro + others\",\n  \"featured_tag\": \"classic everyday model\",\n  \"image_urls\": &#91;\"https:\/\/...jpg\"],\n  \"metadata_sources\": &#91;\"p2\"]\n}\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Key findings:<\/h2>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<ul class=\"wp-block-list\">\n<li>Product IDs are <strong>18\u201320 digit numeric codes<\/strong> \u2014 matching <strong>Google Shopping catalog IDs<\/strong>, not GTINs.<\/li>\n\n\n\n<li>All product URLs are <strong>empty strings<\/strong> \u2014 ChatGPT renders them internally, without external navigation.<\/li>\n\n\n\n<li>The provider field (<code>\"p2\"<\/code>) is consistent \u2014 suggesting a single, centralized product data source.<\/li>\n<\/ul>\n<\/blockquote>\n\n\n\n<p>These objects represent a <strong>hidden product graph<\/strong>, connecting user intent to structured commerce data \u2014 effectively turning ChatGPT into a semantic front-end for product discovery.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why These Entities Matter<\/h2>\n\n\n\n<p>The presence of entity annotations and product schemas inside the ChatGPT stream indicates a <strong>shift from generative text<\/strong> toward <strong>structured reasoning<\/strong>.<\/p>\n\n\n\n<p>This architecture enables:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Context persistence across turns (via entity IDs).<\/li>\n\n\n\n<li>Memory-level grounding (via internal references).<\/li>\n\n\n\n<li>Hybrid search + reasoning (via entity-typed nodes).<\/li>\n\n\n\n<li>Commerce experiences (via the <code>product_entity<\/code> layer).<\/li>\n<\/ul>\n\n\n\n<p>In other words, ChatGPT\u2019s semantic layer functions like a <strong>private, evolving <a class=\"wl-entity-page-link\" title=\"any&#039;s SEO. &gt;\" href=\"https:\/\/wordlift.io\/blog\/en\/entity\/knowledge-graph\/\" data-id=\"http:\/\/data.wordlift.io\/wl0216\/entity\/knowledge_graph;https:\/\/www.wikidata.org\/wiki\/Q33002955\" >knowledge graph<\/a><\/strong>, updated in real time as users interact with the model.<\/p>\n\n\n\n<p>SSE entities reveal how the UI reasons in terms of typed nodes. Publishing the matching Schema.org JSON-LD makes those same nodes machine readable for AI search and shopping. Use the table below to translate each SSE entity into concrete markup, then the product attribute map to wire your feeds.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>SSE entity \u2192 Schema.org map<\/strong><\/p>\n<\/blockquote>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>SSE entity class<\/th><th>Primary Schema.org type<\/th><th>Key JSON-LD properties to include<\/th><th>Where it helps<\/th><\/tr><\/thead><tbody><tr><td>person_entity<\/td><td>Person<\/td><td>name, sameAs, url, image, jobTitle, worksFor<\/td><td>Author panels, citations, E-E-A-T surfaces<\/td><\/tr><tr><td>organization_entity<\/td><td>Organization<\/td><td>name, url, logo, sameAs, brand, contactPoint<\/td><td>Brand cards, site links, knowledge answers<\/td><\/tr><tr><td>place_entity<\/td><td>Place or LocalBusiness<\/td><td>name, address, geo, openingHours, telephone, sameAs<\/td><td>Local AI results, maps, travel panels<\/td><\/tr><tr><td>event_entity<\/td><td>Event<\/td><td>name, startDate, endDate, location, organizer, offers<\/td><td>What\u2019s on, ticketing answers<\/td><\/tr><tr><td>brand_entity<\/td><td>Brand<\/td><td>name, url, logo, sameAs, aggregateRating<\/td><td>Product clustering, brand overviews<\/td><\/tr><tr><td>product_entity<\/td><td>Product + Offer<\/td><td>name, description, image, brand, color, material, weight, category, inProductGroupWithID, sku, gtin*, isVariantOf; offers.price, offers.priceCurrency, offers.availability, offers.itemCondition, offers.inventoryLevel<\/td><td>AI shopping answers, price and availability, product comparisons<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">* add gtin when available. If missing, prefer sku plus a stable inProductGroupWithID.<br><\/figcaption><\/figure>\n\n\n\n<h5 class=\"wp-block-heading\">Product attribute map<\/h5>\n\n\n\n<p>Mapping detected attributes and ChatGPT Shopping feed fields to Schema.org for the example item.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Feed field or detected attribute<\/th><th>Example value<\/th><th>Schema.org property<\/th><th>Notes<\/th><\/tr><\/thead><tbody><tr><td>id<\/td><td>shopify_US_9020023177513_47811512729897<\/td><td>sku<\/td><td>Use variant id as sku<\/td><\/tr><tr><td>item_group_id<\/td><td>shopify_US_9020023177513<\/td><td>inProductGroupWithID<\/td><td>Stable group id across variants<\/td><\/tr><tr><td>title<\/td><td>Slim Ski Bag Martian Red<\/td><td>name<\/td><td>Keep variant-level name<\/td><\/tr><tr><td>description<\/td><td>Travel light and stylishly&#8230;<\/td><td>description<\/td><td>Plain text preferred<\/td><\/tr><tr><td>link<\/td><td><a href=\"https:\/\/example.com\/\">https:\/\/myblackbriar.com\/<\/a>&#8230;<\/td><td>url<\/td><td>Canonical PDP URL<\/td><\/tr><tr><td>image_link<\/td><td><a href=\"https:\/\/cdn.shopify.com\/...png\">https:\/\/cdn.shopify.com\/&#8230;png<\/a><\/td><td>image<\/td><td>Array supports multiple images<\/td><\/tr><tr><td>additional_image_link[]<\/td><td>&#8230;01.jpg, &#8230;03.jpg<\/td><td>image<\/td><td>Append to image array<\/td><\/tr><tr><td>price<\/td><td>199.99 USD<\/td><td>offers.price and offers.priceCurrency<\/td><td>priceCurrency from suffix<\/td><\/tr><tr><td>sale_price<\/td><td>163.99 USD<\/td><td>offers.priceSpecification or a second Offer<\/td><td>Use UnitPriceSpecification or separate Offer for sale<\/td><\/tr><tr><td>availability<\/td><td>in_stock<\/td><td>offers.availability<\/td><td>Map to InStock, OutOfStock, PreOrder<\/td><\/tr><tr><td>inventory_quantity<\/td><td>2<\/td><td>offers.inventoryLevel<\/td><td>QuantitativeValue with value 2<\/td><\/tr><tr><td>condition<\/td><td>new<\/td><td>offers.itemCondition<\/td><td>NewCondition, UsedCondition, etc.<\/td><\/tr><tr><td>brand<\/td><td>Black Briar USA<\/td><td>brand.name<\/td><td>Wrap in Brand object when possible<\/td><\/tr><tr><td>color<\/td><td>Martian Red<\/td><td>color<\/td><td>Free text ok<\/td><\/tr><tr><td>material<\/td><td>N\/A<\/td><td>material<\/td><td>Omit if unknown<\/td><\/tr><tr><td>weight<\/td><td>10 lb<\/td><td>weight<\/td><td>QuantitativeValue if you can parse unit<\/td><\/tr><tr><td>product_category<\/td><td>luggage &amp; bags &gt; backpacks<\/td><td>category<\/td><td>Use your site taxonomy or GPC<\/td><\/tr><tr><td>age_group<\/td><td>adult<\/td><td>audience.audienceType<\/td><td>Or PeopleAudience with audienceType<\/td><\/tr><tr><td>gender<\/td><td>unisex<\/td><td>audience.suggestedGender<\/td><td>Or audienceType &#8220;unisex&#8221;<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">The Limits of Access: Why You Won\u2019t See It in the API<\/h2>\n\n\n\n<p>The public OpenAI API \u2014 even with streaming enabled \u2014 provides only lightweight text deltas (<code>choices[].delta.content<\/code>).<br>It does not expose any of the rich metadata, entity references, or moderation categories visible in ChatGPT\u2019s private SSE stream.<\/p>\n\n\n\n<p>This means:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Developers using the API are working with <strong>surface-level tokens<\/strong>, not the structured entity layer underneath.<\/li>\n\n\n\n<li>The richer layer is reserved for OpenAI\u2019s own interfaces, such as ChatGPT and GPTs.<\/li>\n\n\n\n<li>The <strong>free ChatGPT version<\/strong> also lacks this infrastructure; the entity layer is observable only in paid or \u201cPro\u201d tiers.<\/li>\n<\/ul>\n\n\n\n<p>This reinforces that ChatGPT is not just an interface to a model \u2014 it\u2019s an <strong>orchestrated system<\/strong> combining models, moderation services, entity linkers, and product indexes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">From Knowledge Graphs to Product Graphs<\/h2>\n\n\n\n<p>We now see the semantic layer evolving in real time: from basic NER to structured product representation.<br>The pattern is unmistakable:<br>OpenAI is aligning its internal knowledge representation with <strong>web-standard ontologies<\/strong> like Schema.org and GS1, creating a private, operational <strong>Product Graph<\/strong>.<\/p>\n\n\n\n<p>This has deep implications for SEO, e-commerce, and digital marketing.<br>For brands and publishers, the only way to appear in this new conversational economy is to <strong>publish structured, machine-readable data<\/strong>.<br>WordLift\u2019s mission, to make content and products understandable by machines, has never been more relevant.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion: The Rise of the Semantic Infrastructure<\/h2>\n\n\n\n<p>ChatGPT\u2019s entity layer is not theoretical; it\u2019s operational.<br>From people to products, it builds a real-time knowledge graph beneath every conversation.<br>And just like the web, it relies on structured identifiers, metadata, and <a class=\"wl-entity-page-link\" title=\"linked-data\" href=\"https:\/\/wordlift.io\/blog\/en\/entity\/linked-data\/\" data-id=\"http:\/\/data.wordlift.io\/wl0216\/entity\/linked_data;http:\/\/rdf.freebase.com\/ns\/m.02r2kb1;http:\/\/yago-knowledge.org\/resource\/Linked_data;http:\/\/dbpedia.org\/resource\/Linked_data;http:\/\/data.redlink.io\/91\/be9\/entity\/linked_data\" >linked data<\/a> patterns to function.<\/p>\n\n\n\n<p>This new layer is invisible in the API, absent in the free version, and yet central to how modern AI systems perceive, reason, and recommend.<br>It\u2019s the missing semantic infrastructure that connects human language to machine understanding, and soon, to transactions.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><em>We are witnessing the birth of the reasoning web, where every entity, from a person to a product, becomes a structured node in a machine-readable conversation.<\/em><\/p>\n<\/blockquote>\n\n\n\n\n\n<h5 class=\"wp-block-heading\">Note on methodology<\/h5>\n\n\n\n<p>I captured ChatGPT\u2019s Server-Sent Events (SSE) from the web client using Playwright\u2019s request routing. The script below logs the full SSE payload to disk and extracts the internal <code>content_references<\/code> blocks into JSON. This is a point-in-time, UI-level observation for research. Only record your own sessions, avoid sensitive prompts, and respect the site\u2019s Terms of Use and your local laws. Entity field names and shapes can change without notice. The code of the recorder is <a href=\"https:\/\/gist.github.com\/cyberandy\/7d4bf48e2a7052c69e9e8c4efbce2483\">available on Gist<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A deep dive into ChatGPT\u2019s hidden semantic layer. By analyzing its SSE streams, we uncover how OpenAI\u2019s web client structures entities, moderates outputs, and connects to a product graph that mirrors Google Shopping feeds.<\/p>\n","protected":false},"author":6,"featured_media":30125,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"wl_entities_gutenberg":"","_wlpage_enable":"","footnotes":""},"categories":[4300,4202,4305,612],"tags":[],"wl_entity_type":[30],"coauthors":[4226],"class_list":["post-30106","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-agentic-ai","category-e-commerce","category-openai","category-semantic-seo","wl_entity_type-article"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>The Hidden Entity Layer of ChatGPT: From Named Entities to Products<\/title>\n<meta name=\"description\" content=\"A deep dive into ChatGPT\u2019s hidden semantic layer. By analyzing its SSE streams, we uncover how OpenAI\u2019s web client structures entities, moderates outputs, and connects to a product graph that mirrors Google Shopping feeds.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/wordlift.io\/blog\/en\/chatgpt-named-entities\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The Hidden Entity Layer of ChatGPT: From Named Entities to Products\" \/>\n<meta property=\"og:description\" content=\"A deep dive into ChatGPT\u2019s hidden semantic layer. By analyzing its SSE streams, we uncover how OpenAI\u2019s web client structures entities, moderates outputs, and connects to a product graph that mirrors Google Shopping feeds.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wordlift.io\/blog\/en\/chatgpt-named-entities\/\" \/>\n<meta property=\"og:site_name\" content=\"WordLift Blog\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-03T12:34:20+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-11-04T11:02:09+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/wordlift.io\/blog\/en\/wp-content\/uploads\/sites\/3\/2025\/11\/chatgpt-named-entities-wordlift.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Andrea Volpini\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"The Hidden Entity Layer of ChatGPT: From Named Entities to Products\" \/>\n<meta name=\"twitter:description\" content=\"A deep dive into ChatGPT\u2019s hidden semantic layer. By analyzing its SSE streams, we uncover how OpenAI\u2019s web client structures entities, moderates outputs, and connects to a product graph that mirrors Google Shopping feeds.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/wordlift.io\/blog\/en\/wp-content\/uploads\/sites\/3\/2025\/11\/chatgpt-named-entities-wordlift.png\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andrea Volpini\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/wordlift.io\/blog\/en\/chatgpt-named-entities\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/wordlift.io\/blog\/en\/chatgpt-named-entities\/\"},\"author\":{\"name\":\"Andrea Volpini\",\"@id\":\"https:\/\/wordlift.io\/blog\/en\/#\/schema\/person\/574352082cc71dab8d164410f1cabe0a\"},\"headline\":\"The Hidden Entity Layer of ChatGPT: From Named Entities to Products\",\"datePublished\":\"2025-11-03T12:34:20+00:00\",\"dateModified\":\"2025-11-04T11:02:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/wordlift.io\/blog\/en\/chatgpt-named-entities\/\"},\"wordCount\":1607,\"publisher\":{\"@id\":\"https:\/\/wordlift.io\/blog\/en\/#organization\"},\"image\":{\"@id\":\"https:\/\/wordlift.io\/blog\/en\/chatgpt-named-entities\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/wordlift.io\/blog\/en\/wp-content\/uploads\/sites\/3\/2025\/11\/chatgpt-named-entities-wordlift.png\",\"articleSection\":[\"Agentic AI\",\"E-Commerce\",\"OpenAI\",\"Semantic SEO\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/wordlift.io\/blog\/en\/chatgpt-named-entities\/\",\"url\":\"https:\/\/wordlift.io\/blog\/en\/chatgpt-named-entities\/\",\"name\":\"The Hidden Entity Layer of ChatGPT: From Named Entities to Products\",\"isPartOf\":{\"@id\":\"https:\/\/wordlift.io\/blog\/en\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/wordlift.io\/blog\/en\/chatgpt-named-entities\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/wordlift.io\/blog\/en\/chatgpt-named-entities\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/wordlift.io\/blog\/en\/wp-content\/uploads\/sites\/3\/2025\/11\/chatgpt-named-entities-wordlift.png\",\"datePublished\":\"2025-11-03T12:34:20+00:00\",\"dateModified\":\"2025-11-04T11:02:09+00:00\",\"description\":\"A deep dive into ChatGPT\u2019s hidden semantic layer. By analyzing its SSE streams, we uncover how OpenAI\u2019s web client structures entities, moderates outputs, and connects to a product graph that mirrors Google Shopping feeds.\",\"breadcrumb\":{\"@id\":\"https:\/\/wordlift.io\/blog\/en\/chatgpt-named-entities\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/wordlift.io\/blog\/en\/chatgpt-named-entities\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/wordlift.io\/blog\/en\/chatgpt-named-entities\/#primaryimage\",\"url\":\"https:\/\/wordlift.io\/blog\/en\/wp-content\/uploads\/sites\/3\/2025\/11\/chatgpt-named-entities-wordlift.png\",\"contentUrl\":\"https:\/\/wordlift.io\/blog\/en\/wp-content\/uploads\/sites\/3\/2025\/11\/chatgpt-named-entities-wordlift.png\",\"width\":1200,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/wordlift.io\/blog\/en\/chatgpt-named-entities\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Blog\",\"item\":\"https:\/\/wordlift.io\/blog\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The Hidden Entity Layer of ChatGPT: From Named Entities to Products\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/wordlift.io\/blog\/en\/#website\",\"url\":\"https:\/\/wordlift.io\/blog\/en\/\",\"name\":\"WordLift Blog\",\"description\":\"AI-Powered SEO\",\"publisher\":{\"@id\":\"https:\/\/wordlift.io\/blog\/en\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/wordlift.io\/blog\/en\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/wordlift.io\/blog\/en\/#organization\",\"name\":\"WordLift\",\"url\":\"https:\/\/wordlift.io\/blog\/en\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/wordlift.io\/blog\/en\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/mk0wordliftblog7j5te.kinstacdn.com\/wp-content\/uploads\/sites\/3\/2017\/04\/logo-1.png\",\"contentUrl\":\"https:\/\/mk0wordliftblog7j5te.kinstacdn.com\/wp-content\/uploads\/sites\/3\/2017\/04\/logo-1.png\",\"width\":152,\"height\":40,\"caption\":\"WordLift\"},\"image\":{\"@id\":\"https:\/\/wordlift.io\/blog\/en\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/wordlift.io\/blog\/en\/#\/schema\/person\/574352082cc71dab8d164410f1cabe0a\",\"name\":\"Andrea Volpini\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/wordlift.io\/blog\/en\/#\/schema\/person\/image\/466a1652833e48ca11c81b363eba7c25\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6b9d3d311b50a8749201fe4b318907a8?s=96&d=mm&r=pg\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/6b9d3d311b50a8749201fe4b318907a8?s=96&d=mm&r=pg\",\"caption\":\"Andrea Volpini\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"The Hidden Entity Layer of ChatGPT: From Named Entities to Products","description":"A deep dive into ChatGPT\u2019s hidden semantic layer. By analyzing its SSE streams, we uncover how OpenAI\u2019s web client structures entities, moderates outputs, and connects to a product graph that mirrors Google Shopping feeds.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/wordlift.io\/blog\/en\/chatgpt-named-entities\/","og_locale":"en_US","og_type":"article","og_title":"The Hidden Entity Layer of ChatGPT: From Named Entities to Products","og_description":"A deep dive into ChatGPT\u2019s hidden semantic layer. By analyzing its SSE streams, we uncover how OpenAI\u2019s web client structures entities, moderates outputs, and connects to a product graph that mirrors Google Shopping feeds.","og_url":"https:\/\/wordlift.io\/blog\/en\/chatgpt-named-entities\/","og_site_name":"WordLift Blog","article_published_time":"2025-11-03T12:34:20+00:00","article_modified_time":"2025-11-04T11:02:09+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/wordlift.io\/blog\/en\/wp-content\/uploads\/sites\/3\/2025\/11\/chatgpt-named-entities-wordlift.png","type":"image\/png"}],"author":"Andrea Volpini","twitter_card":"summary_large_image","twitter_title":"The Hidden Entity Layer of ChatGPT: From Named Entities to Products","twitter_description":"A deep dive into ChatGPT\u2019s hidden semantic layer. By analyzing its SSE streams, we uncover how OpenAI\u2019s web client structures entities, moderates outputs, and connects to a product graph that mirrors Google Shopping feeds.","twitter_image":"https:\/\/wordlift.io\/blog\/en\/wp-content\/uploads\/sites\/3\/2025\/11\/chatgpt-named-entities-wordlift.png","twitter_misc":{"Written by":"Andrea Volpini","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/wordlift.io\/blog\/en\/chatgpt-named-entities\/#article","isPartOf":{"@id":"https:\/\/wordlift.io\/blog\/en\/chatgpt-named-entities\/"},"author":{"name":"Andrea Volpini","@id":"https:\/\/wordlift.io\/blog\/en\/#\/schema\/person\/574352082cc71dab8d164410f1cabe0a"},"headline":"The Hidden Entity Layer of ChatGPT: From Named Entities to Products","datePublished":"2025-11-03T12:34:20+00:00","dateModified":"2025-11-04T11:02:09+00:00","mainEntityOfPage":{"@id":"https:\/\/wordlift.io\/blog\/en\/chatgpt-named-entities\/"},"wordCount":1607,"publisher":{"@id":"https:\/\/wordlift.io\/blog\/en\/#organization"},"image":{"@id":"https:\/\/wordlift.io\/blog\/en\/chatgpt-named-entities\/#primaryimage"},"thumbnailUrl":"https:\/\/wordlift.io\/blog\/en\/wp-content\/uploads\/sites\/3\/2025\/11\/chatgpt-named-entities-wordlift.png","articleSection":["Agentic AI","E-Commerce","OpenAI","Semantic SEO"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/wordlift.io\/blog\/en\/chatgpt-named-entities\/","url":"https:\/\/wordlift.io\/blog\/en\/chatgpt-named-entities\/","name":"The Hidden Entity Layer of ChatGPT: From Named Entities to Products","isPartOf":{"@id":"https:\/\/wordlift.io\/blog\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/wordlift.io\/blog\/en\/chatgpt-named-entities\/#primaryimage"},"image":{"@id":"https:\/\/wordlift.io\/blog\/en\/chatgpt-named-entities\/#primaryimage"},"thumbnailUrl":"https:\/\/wordlift.io\/blog\/en\/wp-content\/uploads\/sites\/3\/2025\/11\/chatgpt-named-entities-wordlift.png","datePublished":"2025-11-03T12:34:20+00:00","dateModified":"2025-11-04T11:02:09+00:00","description":"A deep dive into ChatGPT\u2019s hidden semantic layer. By analyzing its SSE streams, we uncover how OpenAI\u2019s web client structures entities, moderates outputs, and connects to a product graph that mirrors Google Shopping feeds.","breadcrumb":{"@id":"https:\/\/wordlift.io\/blog\/en\/chatgpt-named-entities\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wordlift.io\/blog\/en\/chatgpt-named-entities\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/wordlift.io\/blog\/en\/chatgpt-named-entities\/#primaryimage","url":"https:\/\/wordlift.io\/blog\/en\/wp-content\/uploads\/sites\/3\/2025\/11\/chatgpt-named-entities-wordlift.png","contentUrl":"https:\/\/wordlift.io\/blog\/en\/wp-content\/uploads\/sites\/3\/2025\/11\/chatgpt-named-entities-wordlift.png","width":1200,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/wordlift.io\/blog\/en\/chatgpt-named-entities\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog","item":"https:\/\/wordlift.io\/blog\/en\/"},{"@type":"ListItem","position":2,"name":"The Hidden Entity Layer of ChatGPT: From Named Entities to Products"}]},{"@type":"WebSite","@id":"https:\/\/wordlift.io\/blog\/en\/#website","url":"https:\/\/wordlift.io\/blog\/en\/","name":"WordLift Blog","description":"AI-Powered SEO","publisher":{"@id":"https:\/\/wordlift.io\/blog\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/wordlift.io\/blog\/en\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/wordlift.io\/blog\/en\/#organization","name":"WordLift","url":"https:\/\/wordlift.io\/blog\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/wordlift.io\/blog\/en\/#\/schema\/logo\/image\/","url":"https:\/\/mk0wordliftblog7j5te.kinstacdn.com\/wp-content\/uploads\/sites\/3\/2017\/04\/logo-1.png","contentUrl":"https:\/\/mk0wordliftblog7j5te.kinstacdn.com\/wp-content\/uploads\/sites\/3\/2017\/04\/logo-1.png","width":152,"height":40,"caption":"WordLift"},"image":{"@id":"https:\/\/wordlift.io\/blog\/en\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/wordlift.io\/blog\/en\/#\/schema\/person\/574352082cc71dab8d164410f1cabe0a","name":"Andrea Volpini","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/wordlift.io\/blog\/en\/#\/schema\/person\/image\/466a1652833e48ca11c81b363eba7c25","url":"https:\/\/secure.gravatar.com\/avatar\/6b9d3d311b50a8749201fe4b318907a8?s=96&d=mm&r=pg","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6b9d3d311b50a8749201fe4b318907a8?s=96&d=mm&r=pg","caption":"Andrea Volpini"}}]}},"_wl_alt_label":[],"wl:entity_url":"http:\/\/data.wordlift.io\/wl0216\/post\/the-hidden-entity-layer-of-chatgpt-from-named-entities-to-products-30106","_links":{"self":[{"href":"https:\/\/wordlift.io\/blog\/en\/wp-json\/wp\/v2\/posts\/30106"}],"collection":[{"href":"https:\/\/wordlift.io\/blog\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordlift.io\/blog\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordlift.io\/blog\/en\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/wordlift.io\/blog\/en\/wp-json\/wp\/v2\/comments?post=30106"}],"version-history":[{"count":12,"href":"https:\/\/wordlift.io\/blog\/en\/wp-json\/wp\/v2\/posts\/30106\/revisions"}],"predecessor-version":[{"id":30134,"href":"https:\/\/wordlift.io\/blog\/en\/wp-json\/wp\/v2\/posts\/30106\/revisions\/30134"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordlift.io\/blog\/en\/wp-json\/wp\/v2\/media\/30125"}],"wp:attachment":[{"href":"https:\/\/wordlift.io\/blog\/en\/wp-json\/wp\/v2\/media?parent=30106"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordlift.io\/blog\/en\/wp-json\/wp\/v2\/categories?post=30106"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordlift.io\/blog\/en\/wp-json\/wp\/v2\/tags?post=30106"},{"taxonomy":"wl_entity_type","embeddable":true,"href":"https:\/\/wordlift.io\/blog\/en\/wp-json\/wp\/v2\/wl_entity_type?post=30106"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/wordlift.io\/blog\/en\/wp-json\/wp\/v2\/coauthors?post=30106"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}