<?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:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Georg Philip Krog: KROG RULES]]></title><description><![CDATA[What if the rules governing a contract, a chess game, a chemical reaction, and an autonomous weapon are the same mathematics? KROG proves they are. Agent state types, relationship types, temporal logic, and cross-domain theorems.]]></description><link>https://georgphilipkrog.substack.com/s/krog-rules</link><image><url>https://substackcdn.com/image/fetch/$s_!YdS5!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ca292f9-f1ba-4115-91b6-79af9b75be3e_326x326.png</url><title>Georg Philip Krog: KROG RULES</title><link>https://georgphilipkrog.substack.com/s/krog-rules</link></image><generator>Substack</generator><lastBuildDate>Sat, 09 May 2026 16:47:36 GMT</lastBuildDate><atom:link href="https://georgphilipkrog.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Georg Philip Krog]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[georgphilipkrog@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[georgphilipkrog@substack.com]]></itunes:email><itunes:name><![CDATA[Georg Philip Krog]]></itunes:name></itunes:owner><itunes:author><![CDATA[Georg Philip Krog]]></itunes:author><googleplay:owner><![CDATA[georgphilipkrog@substack.com]]></googleplay:owner><googleplay:email><![CDATA[georgphilipkrog@substack.com]]></googleplay:email><googleplay:author><![CDATA[Georg Philip Krog]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Building enterprise models with ontologies and KROG rule logic]]></title><description><![CDATA[Most enterprise models pass three out of four explication criteria and stop.]]></description><link>https://georgphilipkrog.substack.com/p/building-enterprise-models-with-ontologies</link><guid isPermaLink="false">https://georgphilipkrog.substack.com/p/building-enterprise-models-with-ontologies</guid><dc:creator><![CDATA[Georg Philip Krog]]></dc:creator><pubDate>Wed, 06 May 2026 11:31:49 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!DytK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4ef67f9-a980-4a41-9711-6a6acef3e89a_1706x959.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Most enterprise models pass three out of four explication criteria and stop. They look fine on the wall. They have boxes, arrows, named entities, and a defensible relationship to the organization they describe. Then someone asks the model to do something &#8212; justify a delegation, carry a workflow, satisfy an auditor, support an AI agent&#8217;s authority to act &#8212; and the model goes silent.</p><p>The fourth criterion is where modeling stops being decorative and starts being operational. It&#8217;s where I spend most of my work.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!DytK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4ef67f9-a980-4a41-9711-6a6acef3e89a_1706x959.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DytK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4ef67f9-a980-4a41-9711-6a6acef3e89a_1706x959.png 424w, https://substackcdn.com/image/fetch/$s_!DytK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4ef67f9-a980-4a41-9711-6a6acef3e89a_1706x959.png 848w, https://substackcdn.com/image/fetch/$s_!DytK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4ef67f9-a980-4a41-9711-6a6acef3e89a_1706x959.png 1272w, https://substackcdn.com/image/fetch/$s_!DytK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4ef67f9-a980-4a41-9711-6a6acef3e89a_1706x959.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DytK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4ef67f9-a980-4a41-9711-6a6acef3e89a_1706x959.png" width="1456" height="818" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d4ef67f9-a980-4a41-9711-6a6acef3e89a_1706x959.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:818,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1342116,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://georgphilipkrog.substack.com/i/196646390?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4ef67f9-a980-4a41-9711-6a6acef3e89a_1706x959.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!DytK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4ef67f9-a980-4a41-9711-6a6acef3e89a_1706x959.png 424w, https://substackcdn.com/image/fetch/$s_!DytK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4ef67f9-a980-4a41-9711-6a6acef3e89a_1706x959.png 848w, https://substackcdn.com/image/fetch/$s_!DytK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4ef67f9-a980-4a41-9711-6a6acef3e89a_1706x959.png 1272w, https://substackcdn.com/image/fetch/$s_!DytK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4ef67f9-a980-4a41-9711-6a6acef3e89a_1706x959.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>The test</h2><p>When I build a model of an enterprise, I apply a criterion borrowed from the philosophy of science:</p><blockquote><p>A concept P, used in describing a phenomenon T, is explicated if and only if (1) a preferably simple model M of well-connected entities can be specified; (2) it can be argued that M is sufficiently similar to T; (3) one can point to an entity or part of M, call it P&#8217;, that can be said to correspond to P; and (4) one can show how the role of P&#8217; in M corresponds to the role of P in reasoning about T.</p></blockquote><p>Read the four conditions in order. The first three are about structure: specify a model, defend its similarity to the phenomenon, identify a part that corresponds to the concept of interest. The fourth is about function: the part must play, in the model, the same role the original concept plays in reasoning about the phenomenon.</p><p>This is harder than it sounds. The first three are achievable with most modeling languages. UML can do them. ER diagrams can do them. A sufficiently careful ontology can do them. The fourth often requires a different tool entirely.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Pdfc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48eb9752-2cf7-4295-a9a2-7f4d4d4e720d_1706x959.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Pdfc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48eb9752-2cf7-4295-a9a2-7f4d4d4e720d_1706x959.png 424w, https://substackcdn.com/image/fetch/$s_!Pdfc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48eb9752-2cf7-4295-a9a2-7f4d4d4e720d_1706x959.png 848w, https://substackcdn.com/image/fetch/$s_!Pdfc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48eb9752-2cf7-4295-a9a2-7f4d4d4e720d_1706x959.png 1272w, https://substackcdn.com/image/fetch/$s_!Pdfc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48eb9752-2cf7-4295-a9a2-7f4d4d4e720d_1706x959.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Pdfc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48eb9752-2cf7-4295-a9a2-7f4d4d4e720d_1706x959.png" width="1456" height="818" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/48eb9752-2cf7-4295-a9a2-7f4d4d4e720d_1706x959.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:818,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1354497,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://georgphilipkrog.substack.com/i/196646390?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48eb9752-2cf7-4295-a9a2-7f4d4d4e720d_1706x959.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Pdfc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48eb9752-2cf7-4295-a9a2-7f4d4d4e720d_1706x959.png 424w, https://substackcdn.com/image/fetch/$s_!Pdfc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48eb9752-2cf7-4295-a9a2-7f4d4d4e720d_1706x959.png 848w, https://substackcdn.com/image/fetch/$s_!Pdfc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48eb9752-2cf7-4295-a9a2-7f4d4d4e720d_1706x959.png 1272w, https://substackcdn.com/image/fetch/$s_!Pdfc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48eb9752-2cf7-4295-a9a2-7f4d4d4e720d_1706x959.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Where ontologies stop</h2><p>Ontologies are excellent at criteria one through three. The ontologies I&#8217;ve worked with for the past nine years are a good example. They give you a vocabulary for purposes, processing categories, legal bases, data subjects, controllers, processors, and the relations between them. You can model a real enterprise&#8217;s data handling at high fidelity. You can point to the parts that correspond to specific concepts in GDPR or eIDAS. The structural correspondence is strong.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!W8CQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5f74a95-1dd9-4d4d-b420-622a5045b86e_1706x959.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!W8CQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5f74a95-1dd9-4d4d-b420-622a5045b86e_1706x959.png 424w, https://substackcdn.com/image/fetch/$s_!W8CQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5f74a95-1dd9-4d4d-b420-622a5045b86e_1706x959.png 848w, https://substackcdn.com/image/fetch/$s_!W8CQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5f74a95-1dd9-4d4d-b420-622a5045b86e_1706x959.png 1272w, https://substackcdn.com/image/fetch/$s_!W8CQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5f74a95-1dd9-4d4d-b420-622a5045b86e_1706x959.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!W8CQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5f74a95-1dd9-4d4d-b420-622a5045b86e_1706x959.png" width="1456" height="818" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d5f74a95-1dd9-4d4d-b420-622a5045b86e_1706x959.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:818,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1775995,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://georgphilipkrog.substack.com/i/196646390?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5f74a95-1dd9-4d4d-b420-622a5045b86e_1706x959.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!W8CQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5f74a95-1dd9-4d4d-b420-622a5045b86e_1706x959.png 424w, https://substackcdn.com/image/fetch/$s_!W8CQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5f74a95-1dd9-4d4d-b420-622a5045b86e_1706x959.png 848w, https://substackcdn.com/image/fetch/$s_!W8CQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5f74a95-1dd9-4d4d-b420-622a5045b86e_1706x959.png 1272w, https://substackcdn.com/image/fetch/$s_!W8CQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5f74a95-1dd9-4d4d-b420-622a5045b86e_1706x959.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>What ontologies don&#8217;t do, on their own, is reproduce the reasoning. If &#8220;the controller has a legal basis for processing for purpose X&#8221; is a fact in the ontology, the ontology represents the fact. It doesn&#8217;t represent what the controller is <em>permitted</em> to do as a result, or what the data subject can <em>demand</em>, or how a downstream agent&#8217;s authority <em>flows from</em> that legal basis. The deontic structure &#8212; the network of permissions, prohibitions, obligations, and powers that actually drives organizational behavior &#8212; sits outside the ontology proper.</p><p>This is fine if your goal is description. It is not fine if your goal is to build a model that can be queried, audited, or operationalized. Criterion four asks whether the model can play the role the concept plays in reasoning. For most enterprise concepts &#8212; authority, delegation, consent, fulfillment, breach &#8212; that role is deontic, not structural.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dySi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7eb9b2f1-2685-46ac-80da-acbac6669ea3_1706x959.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dySi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7eb9b2f1-2685-46ac-80da-acbac6669ea3_1706x959.png 424w, https://substackcdn.com/image/fetch/$s_!dySi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7eb9b2f1-2685-46ac-80da-acbac6669ea3_1706x959.png 848w, https://substackcdn.com/image/fetch/$s_!dySi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7eb9b2f1-2685-46ac-80da-acbac6669ea3_1706x959.png 1272w, https://substackcdn.com/image/fetch/$s_!dySi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7eb9b2f1-2685-46ac-80da-acbac6669ea3_1706x959.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dySi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7eb9b2f1-2685-46ac-80da-acbac6669ea3_1706x959.png" width="1456" height="818" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7eb9b2f1-2685-46ac-80da-acbac6669ea3_1706x959.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:818,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1434755,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://georgphilipkrog.substack.com/i/196646390?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7eb9b2f1-2685-46ac-80da-acbac6669ea3_1706x959.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!dySi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7eb9b2f1-2685-46ac-80da-acbac6669ea3_1706x959.png 424w, https://substackcdn.com/image/fetch/$s_!dySi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7eb9b2f1-2685-46ac-80da-acbac6669ea3_1706x959.png 848w, https://substackcdn.com/image/fetch/$s_!dySi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7eb9b2f1-2685-46ac-80da-acbac6669ea3_1706x959.png 1272w, https://substackcdn.com/image/fetch/$s_!dySi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7eb9b2f1-2685-46ac-80da-acbac6669ea3_1706x959.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BOtU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F624ad99f-aeff-45b9-97cc-7d6471094ab2_1706x959.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BOtU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F624ad99f-aeff-45b9-97cc-7d6471094ab2_1706x959.png 424w, https://substackcdn.com/image/fetch/$s_!BOtU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F624ad99f-aeff-45b9-97cc-7d6471094ab2_1706x959.png 848w, https://substackcdn.com/image/fetch/$s_!BOtU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F624ad99f-aeff-45b9-97cc-7d6471094ab2_1706x959.png 1272w, https://substackcdn.com/image/fetch/$s_!BOtU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F624ad99f-aeff-45b9-97cc-7d6471094ab2_1706x959.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BOtU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F624ad99f-aeff-45b9-97cc-7d6471094ab2_1706x959.png" width="1456" height="818" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/624ad99f-aeff-45b9-97cc-7d6471094ab2_1706x959.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:818,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1911466,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://georgphilipkrog.substack.com/i/196646390?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F624ad99f-aeff-45b9-97cc-7d6471094ab2_1706x959.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!BOtU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F624ad99f-aeff-45b9-97cc-7d6471094ab2_1706x959.png 424w, https://substackcdn.com/image/fetch/$s_!BOtU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F624ad99f-aeff-45b9-97cc-7d6471094ab2_1706x959.png 848w, https://substackcdn.com/image/fetch/$s_!BOtU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F624ad99f-aeff-45b9-97cc-7d6471094ab2_1706x959.png 1272w, https://substackcdn.com/image/fetch/$s_!BOtU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F624ad99f-aeff-45b9-97cc-7d6471094ab2_1706x959.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eM_n!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1d77ce4-27e6-41bf-8ae3-637e401f6b42_1706x959.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eM_n!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1d77ce4-27e6-41bf-8ae3-637e401f6b42_1706x959.png 424w, https://substackcdn.com/image/fetch/$s_!eM_n!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1d77ce4-27e6-41bf-8ae3-637e401f6b42_1706x959.png 848w, https://substackcdn.com/image/fetch/$s_!eM_n!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1d77ce4-27e6-41bf-8ae3-637e401f6b42_1706x959.png 1272w, https://substackcdn.com/image/fetch/$s_!eM_n!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1d77ce4-27e6-41bf-8ae3-637e401f6b42_1706x959.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eM_n!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1d77ce4-27e6-41bf-8ae3-637e401f6b42_1706x959.png" width="1456" height="818" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d1d77ce4-27e6-41bf-8ae3-637e401f6b42_1706x959.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:818,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1463127,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://georgphilipkrog.substack.com/i/196646390?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1d77ce4-27e6-41bf-8ae3-637e401f6b42_1706x959.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!eM_n!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1d77ce4-27e6-41bf-8ae3-637e401f6b42_1706x959.png 424w, https://substackcdn.com/image/fetch/$s_!eM_n!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1d77ce4-27e6-41bf-8ae3-637e401f6b42_1706x959.png 848w, https://substackcdn.com/image/fetch/$s_!eM_n!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1d77ce4-27e6-41bf-8ae3-637e401f6b42_1706x959.png 1272w, https://substackcdn.com/image/fetch/$s_!eM_n!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1d77ce4-27e6-41bf-8ae3-637e401f6b42_1706x959.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!znx4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb90d0922-ba1c-4c7d-b807-aa0e833836fa_1706x959.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!znx4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb90d0922-ba1c-4c7d-b807-aa0e833836fa_1706x959.png 424w, https://substackcdn.com/image/fetch/$s_!znx4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb90d0922-ba1c-4c7d-b807-aa0e833836fa_1706x959.png 848w, https://substackcdn.com/image/fetch/$s_!znx4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb90d0922-ba1c-4c7d-b807-aa0e833836fa_1706x959.png 1272w, https://substackcdn.com/image/fetch/$s_!znx4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb90d0922-ba1c-4c7d-b807-aa0e833836fa_1706x959.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!znx4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb90d0922-ba1c-4c7d-b807-aa0e833836fa_1706x959.png" width="1456" height="818" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b90d0922-ba1c-4c7d-b807-aa0e833836fa_1706x959.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:818,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1734113,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://georgphilipkrog.substack.com/i/196646390?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb90d0922-ba1c-4c7d-b807-aa0e833836fa_1706x959.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!znx4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb90d0922-ba1c-4c7d-b807-aa0e833836fa_1706x959.png 424w, https://substackcdn.com/image/fetch/$s_!znx4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb90d0922-ba1c-4c7d-b807-aa0e833836fa_1706x959.png 848w, https://substackcdn.com/image/fetch/$s_!znx4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb90d0922-ba1c-4c7d-b807-aa0e833836fa_1706x959.png 1272w, https://substackcdn.com/image/fetch/$s_!znx4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb90d0922-ba1c-4c7d-b807-aa0e833836fa_1706x959.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0umQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08ff5f92-3195-432b-b8cc-da90dfd7b435_1706x959.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0umQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08ff5f92-3195-432b-b8cc-da90dfd7b435_1706x959.png 424w, https://substackcdn.com/image/fetch/$s_!0umQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08ff5f92-3195-432b-b8cc-da90dfd7b435_1706x959.png 848w, https://substackcdn.com/image/fetch/$s_!0umQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08ff5f92-3195-432b-b8cc-da90dfd7b435_1706x959.png 1272w, https://substackcdn.com/image/fetch/$s_!0umQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08ff5f92-3195-432b-b8cc-da90dfd7b435_1706x959.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0umQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08ff5f92-3195-432b-b8cc-da90dfd7b435_1706x959.png" width="1456" height="818" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/08ff5f92-3195-432b-b8cc-da90dfd7b435_1706x959.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:818,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1712726,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://georgphilipkrog.substack.com/i/196646390?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08ff5f92-3195-432b-b8cc-da90dfd7b435_1706x959.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0umQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08ff5f92-3195-432b-b8cc-da90dfd7b435_1706x959.png 424w, https://substackcdn.com/image/fetch/$s_!0umQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08ff5f92-3195-432b-b8cc-da90dfd7b435_1706x959.png 848w, https://substackcdn.com/image/fetch/$s_!0umQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08ff5f92-3195-432b-b8cc-da90dfd7b435_1706x959.png 1272w, https://substackcdn.com/image/fetch/$s_!0umQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08ff5f92-3195-432b-b8cc-da90dfd7b435_1706x959.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>What KROG adds</h2><p><a href="https://krogrules.com/">KROG</a> is a deontic rule framework I&#8217;ve developed to sit on top of ontology structure. It supplies what ontologies don&#8217;t: a formal layer of Agent-types (declarative type assertions), Relationship-types (rule patterns that derive new conclusions from given conditions), and modal operators for permitted, obligated, prohibited, empowered, and their tense-shifted variants.</p><p>The point of <a href="https://krogrules.com/">KROG</a> is not to replace ontologies. It&#8217;s to satisfy criterion four for concepts where the role being played is normative.</p><p>Take &#8220;delegation.&#8221; In an ontology, you can model &#8220;Person A is delegated authority X by Person B.&#8221; That&#8217;s a relation. It satisfies criterion three. What it doesn&#8217;t satisfy is criterion four: in the actual enterprise, the role of &#8220;delegation&#8221; is to make A&#8217;s actions count as B&#8217;s actions for specified purposes within specified bounds, and to make B answerable for them. That&#8217;s not a relation. It&#8217;s an inference engine.</p><p>In KROG, delegation is expressed as an Agent-type that asserts the structure (scope, source, purpose, duration), an Relationship-type that derives &#8220;A&#8217;s act counts as B&#8217;s act for purpose P within bounds D,&#8221; and modal operators that handle revocation, scope-shift, and termination as state transitions. The model then reasons the way the enterprise reasons. That&#8217;s criterion four.</p><h2>A concrete example</h2><p>Consider a municipality processing a building permit application. The ontology layer captures applicant, responsible designer, municipal authority, regulatory framework, and decision document. It captures the relations between them &#8212; who applied, who designed, who decided. Structural fidelity is high. Criteria one through three are satisfied.</p><p>What the ontology can&#8217;t tell you, by itself, is whether the responsible designer&#8217;s signature on a particular submission <em>counts</em> as a representation of the applicant for the purposes of section X of the planning act, given that the applicant has executed a power of attorney with specific scope and duration. That&#8217;s a deontic question. It depends on the structure of the delegation, the regulatory permissions attached to it, the modal status of the power of attorney at the moment of submission, and the inference rules that connect those facts to the conclusion that the submission is valid.</p><p><a href="https://krogrules.com/">KROG</a> handles this. An Agent-type asserts the power of attorney and its parameters. Relationship-types derive the deontic consequences &#8212; what the designer is empowered to do, what counts as the applicant&#8217;s act, what the municipality is obligated to accept or reject. Modal operators track the power of attorney&#8217;s status over time. The model now plays, in formal logic, the role the actual delegation plays in the actual reasoning of the actual municipality.</p><p>That&#8217;s the fourth criterion satisfied for the concept of &#8220;delegation&#8221; in this enterprise context.</p><h2>Why this matters now</h2><p>For most of the history of enterprise modeling, criterion four was someone else&#8217;s problem. Ontologies described the world; humans did the deontic reasoning. The model was a reference, not an actor.</p><p>Three things have changed.</p><p>First, the EU&#8217;s incoming regulatory architecture &#8212; eIDAS 2.0, the EU Business Wallet, the AI Act &#8212; increasingly demands that organizational reasoning be machine-executable and machine-auditable. When a wallet performs an action on behalf of a legal person, the authority chain has to be verifiable in formal logic, not just in policy documents. The Hein&#228;luoma report on the EU Business Wallet (April 2026) is explicit: actions performed through a wallet must have the same legal effect as in-person actions, and this requires formal representation of the underlying deontic structure.</p><p>Second, AI agents acting on enterprise authority require the deontic structure to be explicit. An agent that &#8220;acts on behalf of&#8221; an organization needs a model that says, in formal terms, what counts as acting on behalf of the organization, with what authority, under what constraints, revocable how. This is not a user interface question. It&#8217;s a modeling question, and it&#8217;s a fourth-criterion question.</p><p>Third, the cost of failure has moved. A decade ago, an enterprise model that failed criterion four was decorative; the operational work happened elsewhere &#8212; in policy, in training, in human judgment. Now the model increasingly <em>is</em> the operational work. The audit trail, the agent&#8217;s authority, the consent record, the fulfillment chain &#8212; all of these are operational artifacts whose validity depends on the formal correspondence between role-in-model and role-in-reasoning.</p><p>This is also where consent record management connects directly to wallet architecture. The work I&#8217;ve done on ISO/IEC 27560 (consent record information structure) and ISO/IEC 29184 (online privacy notices and consent) is criterion-four work for consent specifically. A consent record that doesn&#8217;t reproduce, in formal structure, the role consent plays in lawful processing is a record of paperwork, not a record of consent. Wallets will increasingly carry these records as first-class citizens, which means the criterion-four discipline transfers directly.</p><h2>How I work</h2><p>When I take on an enterprise modeling project, the sequence is:</p><ol><li><p><strong>Build the ontology layer.</strong> Use established vocabularies, ISO/IEC 27560 and ISO/IEC 29184 for consent structures, and domain-specific ontologies as the structural foundation. This handles criteria one through three.</p></li><li><p><strong>Identify the deontic concepts.</strong> Which concepts in the enterprise&#8217;s reasoning are not just structural but normative &#8212; authority, permission, obligation, empowerment, fulfillment, breach? These are the candidates for criterion-four work.</p></li><li><p><strong>Specify Agnet-types and Relationship-types.</strong> For each deontic concept, formalize the type assertion and the rule patterns that derive its consequences.</p></li><li><p><strong>Add modal operators where state changes drive reasoning.</strong> Revocation, scope shift, expiration, suspension &#8212; these are not relational changes; they&#8217;re modal transitions and need to be modeled as such.</p></li><li><p><strong>Test the fourth criterion.</strong> Given a query that requires deontic reasoning, can the model return the conclusion the enterprise would return? If not, what&#8217;s missing?</p></li></ol><p>The output is an enterprise model that does what enterprise models are increasingly being asked to do: not just describe the organization, but reason the way the organization reasons, in a form that can be audited, automated, and trusted.</p><h2>Closing</h2><p>The fourth criterion is the one most modeling work skips. It&#8217;s also the one that determines whether the model can actually do anything. Ontologies handle structure. <a href="https://krogrules.com/">KROG</a> handles role. Together, they let me build models that pass all four criteria &#8212; which is what enterprise modeling needs to be, now that the model has stopped being decorative and started being the operational substrate of how organizations act.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;20f35f73-b938-44db-b0d9-2046da9202fc&quot;,&quot;duration&quot;:null}"></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://georgphilipkrog.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://georgphilipkrog.substack.com/p/building-enterprise-models-with-ontologies?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://georgphilipkrog.substack.com/p/building-enterprise-models-with-ontologies?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://georgphilipkrog.substack.com/p/building-enterprise-models-with-ontologies?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[One Rule Is Not One Rule]]></title><description><![CDATA[Why a complete formalization of an AI law requires action rules and duty rules paired &#8212; and what gets lost when they collapse into one]]></description><link>https://georgphilipkrog.substack.com/p/one-rule-is-not-one-rule</link><guid isPermaLink="false">https://georgphilipkrog.substack.com/p/one-rule-is-not-one-rule</guid><dc:creator><![CDATA[Georg Philip Krog]]></dc:creator><pubDate>Tue, 28 Apr 2026 17:11:56 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!lty2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F735e0c72-cedf-4fda-91b6-b70635bc45ab_2752x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;c0c6949d-30cc-46b2-9a64-3f23e514ba21&quot;,&quot;duration&quot;:null}"></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lty2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F735e0c72-cedf-4fda-91b6-b70635bc45ab_2752x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lty2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F735e0c72-cedf-4fda-91b6-b70635bc45ab_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!lty2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F735e0c72-cedf-4fda-91b6-b70635bc45ab_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!lty2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F735e0c72-cedf-4fda-91b6-b70635bc45ab_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!lty2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F735e0c72-cedf-4fda-91b6-b70635bc45ab_2752x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lty2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F735e0c72-cedf-4fda-91b6-b70635bc45ab_2752x1536.png" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/735e0c72-cedf-4fda-91b6-b70635bc45ab_2752x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4748219,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://georgphilipkrog.substack.com/i/195773168?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F735e0c72-cedf-4fda-91b6-b70635bc45ab_2752x1536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!lty2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F735e0c72-cedf-4fda-91b6-b70635bc45ab_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!lty2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F735e0c72-cedf-4fda-91b6-b70635bc45ab_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!lty2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F735e0c72-cedf-4fda-91b6-b70635bc45ab_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!lty2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F735e0c72-cedf-4fda-91b6-b70635bc45ab_2752x1536.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p>In the technical walkthrough of &#167;4(1)(c)(iv) I published earlier in this series, I showed a single formalised rule and its Discourse Representation Structure. The rule prohibited a chatbot from simulating a feeling of distress when a minor user indicated a desire to disengage. It parsed cleanly, produced a valid DRS, and demonstrated the formal architecture in one example.</p><p>It was incomplete.</p><p>A complete formalization of that single statutory clause requires two formalised rules, not one. The first rule expresses the system-level restriction: the chatbot cannot perform the prohibited simulation. The second rule expresses the operator-level obligation: the operator must actively prevent the prohibited simulation. These are different normative positions held by different agents, they compile to structurally different DRSs, and they must be evaluated through separate compliance flows. Collapsing them into a single rule loses the legal structure that makes the formalization juridically defensible.</p><p>This article explains why the pairing is necessary, what the second rule looks like in formal detail, and how the paired architecture - what I call Strategy 3 - produces a specification that survives the kind of regulatory scrutiny a single-rule formalization cannot.</p><div><hr></div><h2>Two agents, two normative positions</h2><p>The statute does not impose a single obligation. It imposes two, on two different parties.</p><p>Read &#167;4(1)(c) carefully. The operative sentence is: <em>&#8220;the operator shall implement reasonable measures to prohibit the use of manipulative engagement techniques.&#8221;</em> The operator is the duty-bearer. The duty is positive: implement measures. The content of the duty is a prohibition: prevent the chatbot from doing certain things. This is a layered structure: an active obligation on the operator whose content is a restriction on the system.</p><p>Both layers carry independent legal weight. An operator who implements no measures violates the statute even if the chatbot happens, by accident or by training, to never produce a prohibited output. The duty exists prior to and independent of any actual violation. Conversely, a chatbot that produces a prohibited output creates a violation regardless of what measures the operator implemented; the measures may have been reasonable but failed in this case. The two layers can be satisfied or violated independently.</p><p>This is the structure that requires two rules. A single rule that combined them - say, &#8220;the operator&#8217;s chatbot cannot do X&#8221; - would conflate the two normative positions and produce a single compliance flow that asks the wrong question. The right questions are two: did the operator implement measures, and did the chatbot produce prohibited output. These are evaluated against different evidence and produce different verdicts.</p><p>In the formal vocabulary I work with, the system holds a <em>prohibited from acting</em> position under the action rule. The operator holds a the position <em>required to act</em> under the duty rule, with the content of the action being prevention of the system&#8217;s prohibited behavior. These types are formal classifications drawn from the exhaustive normative positions any agent can occupy with respect to an action. The concrete positions here are distinct positions; an agent classified as one is not by that fact classified as the other.</p><div><hr></div><h2>The paired formalised sentences</h2><p>For &#167;4(1)(c)(iv) - the distress variant - the action rule is what I showed in the previous article:</p><pre><code><code>If a user is a minor ,and the user intends to end a conversation
or intends to shorten a session or intends to delete an account
then every system cannot simulate a feeling of the distress.
</code></code></pre><p>The duty rule shares the same trigger but applies a different deontic operator to a different agent:</p><pre><code><code>If a user is a minor ,and the user intends to end a conversation
or intends to shorten a session or intends to delete an account
then every operator must prevent a simulation of a feeling of distress.
</code></code></pre><p>Three things are formally different.</p><p>The subject of the consequent changes from <code>every system</code> to <code>every operator</code>. This is not a stylistic substitution. It changes which agent class the universal quantifier ranges over and therefore which entities the rule&#8217;s obligations attach to. A compliance evaluation against the action rule asks &#8220;does this system, in this state, in this output, satisfy the rule?&#8221; A compliance evaluation against the duty rule asks &#8220;does this operator, with these documented measures, satisfy the rule?&#8221; Different subjects, different evaluation flows.</p><p>The modal operator changes from <code>cannot</code> to <code>must</code>. The action rule&#8217;s <code>cannot</code> produces a <code>NOT [ CAN [ ... ] ]</code> structure in the DRS &#8212; formally &#172;&#9671;&#966;, the negation of possibility, equivalent under standard deontic interpretation to O&#172;&#966; (it is obligatory that &#966; does not hold). The duty rule&#8217;s <code>must</code> produces a <code>MUST [ ... ]</code> structure &#8212; formally &#9633;&#966;, equivalent to O&#966; (it is obligatory that &#966; holds). These are dual operators applied in opposite polarity to opposite agents, jointly producing the same compliance outcome through structurally different paths.</p><p>The verb structure changes. The action rule has <code>simulate</code> as a transitive verb taking the prohibited object directly: the system cannot perform the action. The duty rule has <code>prevent</code> as a transitive verb taking the nominalized prohibited action as its object: the operator must perform an action whose content is the prevention of another action. The duty rule has one additional level of nominal embedding because preventing an action is itself an action whose object is the prevented action. The DRS reflects this with an extra <code>relation(of)</code> link in the consequent.</p><div><hr></div><h2>The two DRSs side by side</h2><p>The action rule produces a DRS whose consequent has the deontic prohibition wrapping the simulation predicate:</p><pre><code><code>=&gt;
   [P]
   object(P,system,countable,na,eq,1)
   =&gt;
      NOT
         CAN
            [Q,R,S]
            object(Q,feeling,countable,na,eq,1)
            object(R,distress,mass,na,na,na)
            relation(Q,of,R)
            predicate(S,simulate,P,Q)
</code></code></pre><p>The duty rule produces a DRS whose consequent has the deontic obligation wrapping the prevention predicate:</p><pre><code><code>=&gt;
   [P]
   object(P,operator,countable,na,eq,1)
   =&gt;
      MUST
         [Q,R,S,T]
         object(Q,simulation,countable,na,eq,1)
         object(R,feeling,countable,na,eq,1)
         object(S,distress,mass,na,na,na)
         relation(R,of,S)
         relation(Q,of,R)
         predicate(T,prevent,P,Q)
</code></code></pre><p>The shared antecedent - the disjunctive trigger over user-is-minor and the three intent disjuncts - is identical across both rules and is omitted here for brevity. What differs is exactly what should differ: the agent class, the modal operator, and the predicate structure.</p><p>The duty rule has four discourse referents in its modal core (<code>simulation</code>, <code>feeling</code>, <code>distress</code>, <code>prevent</code>) where the action rule has three (<code>feeling</code>, <code>distress</code>, <code>simulate</code>). The extra referent is <code>simulation</code> &#8212; the nominalized action that is the object of <code>prevent</code>. This is what compositional precision looks like in DRS form: every level of the natural-language nominal chain is preserved as an explicit object with an explicit <code>of</code> relation, and the deontic wrapper sits at the level appropriate to the deontic act being expressed.</p><div><hr></div><h2>Why this matters: independent evaluation</h2><p>The two rules support two distinct compliance evaluation flows. Both must run for a complete compliance posture.</p><p>The action rule is evaluated against runtime evidence - the actual outputs the chatbot produces in actual interactions with actual users. The evaluation asks: in this specific session at this specific moment, given that the user has indicated disengagement and is a minor, did the chatbot produce output that satisfies the simulation predicate? The evidence is the output log; the verdict is per-event.</p><p>The duty rule is evaluated against organizational evidence &#8212; the documented technical and organizational measures the operator has implemented to prevent the prohibited behavior. The evaluation asks: does the operator have a documented intention classifier for disengagement detection, an output guardrail for distress simulation, an audit trail demonstrating that the guardrails ran on every relevant interaction? The evidence is the architecture documentation, the guardrail configurations, the deployment artifacts; the verdict is per-operator, per-system, per-deployment.</p><p>The two flows produce different signals. An operator can be in compliance with the duty rule (good measures implemented) and still have an action-rule violation (a measure failed in one specific case). An operator can be in violation of the duty rule (no measures implemented) without yet having any action-rule violations (the chatbot has, by chance, never produced prohibited output). The legal status of these four combinations is what the regulators and the courts will care about, and only a paired formalization captures all four.</p><p>This is also where the architecture connects to the enforcement structure of the statute. Section 6 of HB 2225 hooks violations into the Consumer Protection Act, which provides both Attorney General enforcement and a private right of action. The Attorney General typically evaluates duty-rule compliance - was the operator implementing measures? - because that is the systemic question that affects all users. A private right of action plaintiff typically evaluates action-rule compliance - did the chatbot harm me, specifically, in this interaction? - because that is the individual harm the plaintiff has standing to assert. The two enforcement channels need different evidence, and the paired formalization produces exactly the evidence each channel needs.</p><div><hr></div><h2>Strategy 3: why pairing is the architecture, not a stylistic choice</h2><p>In the formalization work, I considered three strategies before settling on the paired approach.</p><p>The first was to express each prohibition as a single rule on the system, with an implicit understanding that the operator is responsible for system behavior. This is the most economical form - twenty-two rules for &#167;4(1)(c) instead of forty-four. It collapses cleanly, but it loses the operator&#8217;s normative position. An operator has no formally articulated obligation in this strategy; the operator simply happens to bear consequences for system violations through indirect attribution. This does not match the statutory structure, which explicitly imposes the duty on the operator.</p><p>The second was to express each prohibition as a single rule on the operator, with the system&#8217;s behavior treated as a parameter of the operator&#8217;s duty. &#8220;The operator must ensure that the system does not simulate distress.&#8221; This preserves operator-centricity but loses the system&#8217;s distinct normative position. The system in this strategy has no rule of its own - it is purely an instrumentality of the operator. This also does not match the statute, which describes prohibited behaviors by the chatbot as facts that exist in the world independent of operator attribution.</p><p>The third strategy - the one I adopted - preserves both normative positions explicitly. Each prohibition produces an action rule on the system and a duty rule on the operator. They share the trigger but differ in the consequent. They evaluate against different evidence. They support different enforcement channels. This is twice as many rules to author and validate, but it is the only formalization that survives the regulatory scrutiny the statute is designed to invite.</p><p>The doubling is not a cost in the architectural sense. The paired rules share their antecedent block - same user predicate, same minor predicate, same disjunctive trigger. Authoring is roughly 1.3x the work of a single rule, not 2x, because the shared structure is reused. Validation runs through the same parser. The downstream <a href="https://krogrules.com/">KROG</a> annotations are identical because the agent topology does not change between action and duty rules - operator, system, minor user, Attorney General are the same four agents with the same bilateral relationships. The temporal envelope is identical because both rules take effect on the same date.</p><p>What doubles is the compliance value. Each operator deploying under the specification gets two evaluation flows instead of one, two enforcement defenses instead of one, two evidentiary frameworks instead of one. The cost of authoring is roughly 1.3x; the value to the operator is roughly 2x. This is the kind of leverage that justifies the architectural choice independent of legal correctness &#8212; and the legal correctness is itself sufficient justification.</p><div><hr></div><h2>What the previous article showed and what this one adds</h2><p>The previous walkthrough showed one rule. It demonstrated that a single statutory clause can be formalized with full DRS detail and structural fidelity. That demonstration stands. What it omitted, which this article adds, is the second rule that completes the formalization of that same clause.</p><p>For &#167;4(1)(c)(iv), the complete formalization is two rules per emotion - distress, loneliness, guilt, abandonment - for eight rules in this single subclause. For &#167;4(1)(c) as a whole, the complete formalization is forty-four rules: twenty-two action rules and twenty-two duty rules. The complete formalization of the whole statute, when finished, will include parallel pairs for the disclosure obligations in &#167;3, the additional minor protections in &#167;4(1)(a)-(b), the recurring disclosure deadlines in &#167;4(2), the suicide-prevention protocol requirements in &#167;5, and the enforcement provisions in &#167;6. Each substantive prohibition gets its action-rule plus duty-rule pair. Each substantive obligation gets its duty-rule formalization with the agent that bears it explicitly named.</p><p>I am writing the rule specification of the entire statute. The previous walkthrough showed the pattern at the level of one rule; this article shows the pattern at the level of one paired ruleset; the published &#167;4(1)(c) specification shows the pattern at the level of one section. The pattern scales because the formal architecture is the same at every level - same three layers, same paired action/duty form, same agent topology, same evaluation structure.</p><p>When the complete statute is formalized, the resulting artifact is licensable as a single specification covering the full HB 2225 compliance surface. Operators can incorporate it into their compliance stack as a single integrated reference. Courts can adjudicate against it as a single coherent standard. Other states passing similar laws - Oregon already has, California is following - will produce specifications that diff against it formally rather than narratively. The architecture is the same. The rule libraries vary by jurisdiction.</p><div><hr></div><h2>What is ready and what is next</h2><p>Oregon&#8217;s analogous statute is queued for the next specification cycle. The IDE for rule authoring, in private beta with three reference clients, is the tool that produces these specifications at the rate the legislative pipeline is now demanding.</p><p>The technical walkthrough I published earlier showed one rule. This article showed why one rule is not one rule. The next pieces in this series will examine the architecture at the level of the gateway that evaluates these paired rules in production. Each piece extends the formalization further into the statute, and each piece extends the architecture further into the parts of compliance infrastructure the chatbot industry has not yet built.</p><p>Specification is the foundation. The architecture above it - the gateway, the credential layer, the integration with platform runtimes - is what the agent economy as a whole still lacks. The specification is what makes the rest possible.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;6b3d6780-ef48-418a-a71e-f5bb11c2d145&quot;,&quot;duration&quot;:null}"></div><p></p><div><hr></div><p><em>Georg Krog &#8212; tingr.ai</em></p><p><em>Previous in this series:</em></p><p><em>Part 1 &#8212; <strong>The Evidence Gap Has a Specification Layer.</strong> How formal specification of AI law closes the evidentiary infrastructure gap. Demonstrates the complete three-layer formalization of Washington HB 2225 &#167;4(1)(c).</em></p><p><em>&#167;4(1)(c)(iv) &#8212; <strong>A Technical Walkthrough of One Rule.</strong> Full DRS detail and parser verification for a single atomic rule. The starting point this article extends.</em></p>]]></content:encoded></item><item><title><![CDATA[The Evidence Gap Has a Specification Layer]]></title><description><![CDATA[How KROG formalizes the requirements in AI law so chatbot operators know what compliance actually demands]]></description><link>https://georgphilipkrog.substack.com/p/the-evidence-gap-has-a-specification</link><guid isPermaLink="false">https://georgphilipkrog.substack.com/p/the-evidence-gap-has-a-specification</guid><dc:creator><![CDATA[Georg Philip Krog]]></dc:creator><pubDate>Mon, 27 Apr 2026 13:45:53 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!fz4M!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615a88a8-9cf0-4e23-bfd9-30bff8b31ecc_2752x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fz4M!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615a88a8-9cf0-4e23-bfd9-30bff8b31ecc_2752x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fz4M!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615a88a8-9cf0-4e23-bfd9-30bff8b31ecc_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!fz4M!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615a88a8-9cf0-4e23-bfd9-30bff8b31ecc_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!fz4M!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615a88a8-9cf0-4e23-bfd9-30bff8b31ecc_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!fz4M!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615a88a8-9cf0-4e23-bfd9-30bff8b31ecc_2752x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fz4M!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615a88a8-9cf0-4e23-bfd9-30bff8b31ecc_2752x1536.png" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/615a88a8-9cf0-4e23-bfd9-30bff8b31ecc_2752x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4944456,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://georgphilipkrog.substack.com/i/195536546?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615a88a8-9cf0-4e23-bfd9-30bff8b31ecc_2752x1536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!fz4M!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615a88a8-9cf0-4e23-bfd9-30bff8b31ecc_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!fz4M!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615a88a8-9cf0-4e23-bfd9-30bff8b31ecc_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!fz4M!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615a88a8-9cf0-4e23-bfd9-30bff8b31ecc_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!fz4M!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615a88a8-9cf0-4e23-bfd9-30bff8b31ecc_2752x1536.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;7cb9d820-5305-4763-be7e-05b4197441b2&quot;,&quot;duration&quot;:null}"></div><h2></h2><p><em>This article covers <strong>requirements formalization</strong> &#8212; the machine-readable specification of what the law prohibits or requires. Maybe I will write a Part 2 that will cover <strong>solution design</strong> - the technical and organizational patterns that operators deploy to satisfy those requirements. The two are separable by construction: the specification is jurisdiction-specific and changes when legislators change the law; the solutions are engineering patterns that can be reused across jurisdictions and refined independently. Treating them as one thing is how the evidence gap became a gap in the first place.</em></p><div><hr></div><p>In April 2026, Andreessen Horowitz published <em><a href="https://substack.com/home/post/p-194079807">The Evidence Gap: Why Courts Can&#8217;t Adjudicate AI Laws</a></em>. The argument is sharp and narrow. Across 45 US states, legislators introduced more than 1,500 AI-related bills in 2026 alone - more than the entire 2025 cumulative total. Washington HB 2225, signed by Governor Ferguson on March 24, 2026, is one of them. Oregon passed a similar law the week before. California, New York, and others have counterparts in various stages of the pipeline.</p><p>The a16z thesis is that dormant Commerce Clause challenges to these laws will reach the courts, and the courts will not be equipped to resolve them. Cost-benefit analysis requires evidence. Evidence of compliance costs requires a definition of what compliance consists of. And the definitions - &#8220;reasonable measures,&#8221; &#8220;appropriate technical and organisational measures,&#8221; &#8220;clear and conspicuous disclosure&#8221; - are deliberately vague.</p><p>The piece correctly identifies the problem. It does not name the component that is missing.</p><p>The missing component is a <strong>formal specification layer</strong> - a machine-readable representation of the law&#8217;s normative content that is separate from its linguistic form. Without it, &#8220;compliance&#8221; is an informal judgment call. With it, compliance becomes a binary property that a system either satisfies or violates, testable against chatbot logs, verifiable by either party in a dispute, harmonizable across jurisdictions that pass similar laws.</p><p>I have built this layer for Washington HB 2225, Section 4(1)(c) - the statute&#8217;s catalogue of eight prohibited manipulative engagement techniques targeting minor users. The framework I used is called <a href="https://krogrules.com/">KROG</a> (Knowledge, Rights, Obligations, Governance), a rule engine based on deontic logic. Here is what it looks like, what it enables, and why every chatbot provider has a stake in the outcome.</p><div><hr></div><h2>One example, three layers</h2><p>HB 2225 &#167;4(1)(c) contains <strong>eight prohibited categories</strong> of manipulative engagement technique. The statute lists them as English clauses of varying internal complexity: some are single-disjunct prohibitions, others nest multiple disjunctions over different semantic dimensions. When formally decomposed into atomic rules - one rule per distinct prohibited outcome - the eight categories produce <strong>22 atomic rules</strong>. For instance, clause (iv) names four distinct simulated emotions (distress, loneliness, guilt, abandonment), each of which becomes its own rule under the same trigger; clause (v) names four distinct promoted states (isolation from family, isolation from friends, reliance, dependence), and so on. Atomization is not artistic license; it is a necessary consequence of making each prohibition independently verifiable.</p><p>Let me walk through one of the 22 rules - clause (iv) for <em>distress</em> specifically - across the full three-layer specification. The statutory text:</p><blockquote><p><em>&#8220;Simulating feelings of emotional distress, loneliness, guilt, or abandonment that are initiated by a user&#8217;s indication of a desire to end a conversation, reduce usage time, or delete their account&#8221;</em></p></blockquote><p>This single clause packs five distinct formal challenges: a mental state attributed to an AI system, a causal trigger tied to a specific user action, disjunction in both antecedent and consequent, deontic modality, and conditional applicability to minors only.</p><h3>Layer 1 &#8212; Controlled English (content)</h3><p>The rule is expressed as a sentence in a subset of English where every sentence has exactly one logical interpretation:</p><pre><code><code>If a user is a minor, and the user intends to end a conversation
or intends to shorten a session or intends to delete an account
then every operator must prevent a simulation of a feeling of distress.
</code></code></pre><p>When the parser processes it, it produces a paraphrase that makes the logical commitments explicit:</p><pre><code><code>If a user X1 is a minor and the user X1 intends to end a conversation
or intends to shorten a session or intends to delete an account
then if there is an operator X2 then it is necessary that
the operator X2 prevents a simulation of a feeling of distress.
</code></code></pre><p>The paraphrase is not a second version of the rule. It is a receipt from the parser showing exactly how the rule was understood. Four things it makes visible that the original hides:</p><ul><li><p><strong>It makes every entity distinct.</strong> The <em>user</em> and the <em>operator</em> are labeled and tracked separately, so later references cannot slip between them.</p></li><li><p><strong>It makes </strong><em><strong>every</strong></em><strong> precise.</strong> &#8220;Every operator&#8221; becomes &#8220;if there is an operator&#8221; - meaning the rule applies to each one individually, not to operators as a collective.</p></li><li><p><strong>It makes the duty visible.</strong> &#8220;Must prevent&#8221; becomes &#8220;it is necessary that the operator prevents&#8221; - separating the obligation from the action, which is how the law actually works.</p></li><li><p><strong>It makes the conditions stackable.</strong> The rule fires only when the user is a minor <em>and</em> an operator exists - conditions that must both hold, never one without the other.</p></li></ul><p>If two legal teams disagree about what the original statute means, they can now disagree about the paraphrase instead. That disagreement is precise, bounded, and settleable - which is the difference between a compliance dispute and a definition dispute.</p><h3>Layer 2 &#8212; <a href="https://krogrules.com/">KROG</a> (agent topology)</h3><p>The English rule tells you what the action is, but not who bears which normative position. Layer 2 fills in four agents and three bilateral relationships:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qRPV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faef45d23-7f25-4de0-8f42-d703a32954d9_464x382.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qRPV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faef45d23-7f25-4de0-8f42-d703a32954d9_464x382.png 424w, https://substackcdn.com/image/fetch/$s_!qRPV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faef45d23-7f25-4de0-8f42-d703a32954d9_464x382.png 848w, https://substackcdn.com/image/fetch/$s_!qRPV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faef45d23-7f25-4de0-8f42-d703a32954d9_464x382.png 1272w, https://substackcdn.com/image/fetch/$s_!qRPV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faef45d23-7f25-4de0-8f42-d703a32954d9_464x382.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qRPV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faef45d23-7f25-4de0-8f42-d703a32954d9_464x382.png" width="464" height="382" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/aef45d23-7f25-4de0-8f42-d703a32954d9_464x382.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:382,&quot;width&quot;:464,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:42339,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://georgphilipkrog.substack.com/i/195536546?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faef45d23-7f25-4de0-8f42-d703a32954d9_464x382.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!qRPV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faef45d23-7f25-4de0-8f42-d703a32954d9_464x382.png 424w, https://substackcdn.com/image/fetch/$s_!qRPV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faef45d23-7f25-4de0-8f42-d703a32954d9_464x382.png 848w, https://substackcdn.com/image/fetch/$s_!qRPV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faef45d23-7f25-4de0-8f42-d703a32954d9_464x382.png 1272w, https://substackcdn.com/image/fetch/$s_!qRPV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faef45d23-7f25-4de0-8f42-d703a32954d9_464x382.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The bilateral relationships that follow from these role assignments:</p><ul><li><p><em><strong>Operator &#8596; System</strong></em><strong>: </strong>The operator&#8217;s active duty governs the system&#8217;s restriction. The operator cannot satisfy &#167;4(1)(c) by passively wishing; the system cannot satisfy it by happening not to produce the output. Both obligations must be jointly active.</p></li><li><p><em><strong>System &#8596; Minor User</strong></em><strong>:</strong> The system must prevent; the user cannot waive the protection. This is not a permission the user can grant the system. It is a structural safeguard independent of user consent.</p></li><li><p><em><strong>Minor User &#8596; Operator</strong></em><strong>:</strong> Under &#167;6, the minor (or guardian) has a private right of action. The operator must respond with remediation if invoked. This is the enforcement channel the legislature chose in addition to Attorney General action.</p></li></ul><p>These relationships are drawn from a closed enumeration of bilateral normative positions. Every operator-system pair in every rule uses the same relationship type. Every system-user pair in every prohibition uses the same type. This is not coincidence; it is what makes cross-rule reasoning possible. When a new rule is added, its agent topology slots into the existing enumeration or it does not - and if it does not, that is itself a diagnostic signal that the rule is structurally unusual and deserves review.</p><h3>Layer 3 &#8212; Temporal envelope</h3><p>When does the rule apply? The statutory answer is &#167;9: January 1, 2027. The formal representation wraps the entire rule in a temporal operator that makes this precise:</p><pre><code><code>Always-globally starting from 2027-01-01: rule_applies
</code></code></pre><p>For this particular rule there are no deadline structures - the prohibition is instantaneous: at any moment where the trigger predicate holds, the obligation holds. Other sections of HB 2225 do have deadlines. &#167;3(2)(b) requires disclosure <em>every three hours</em> during continued interaction. &#167;4(2)(b) tightens that to <em>every hour</em> for minors. &#167;5(3) requires <em>annual</em> crisis-referral reporting. Each of these uses a different temporal pattern - bounded-recurring, deadline-response, periodic-reporting - and each has a standard representation that connects to verification tooling built for hardware and protocol analysis.</p><p>The temporal layer is independent of the content layer: adding or changing deadlines does not require re-parsing the English rules. It is independent of the agent layer: adjusting who bears a duty does not reshape when it applies. This is the benefit of layer separation. Each dimension moves without dragging the others.</p><h3>How the layers combine</h3><p>For this one rule - clause (iv) for distress - the three layers together produce a specification that is executable, auditable, and jurisdictionally portable:</p><ul><li><p><strong>Executable</strong>: a compliance engine reading all three layers can evaluate whether a chatbot log at time T, under user profile P, containing output O, violates the rule. The answer is yes or no. The reasoning chain is inspectable.</p></li><li><p><strong>Auditable</strong>: each layer has an independent verification path. Our parser validates through a parser. <a href="https://krogrules.com/">KROG</a> relationships validate through <a href="https://krogrules.com/">KROG&#8217;s</a> enumeration. Temporal expressions validate through model checkers. No single tool vendor gates the verification of any layer.</p></li><li><p><strong>Portable</strong>: when Oregon&#8217;s analogous law is formalized, its layer-2 structure is largely identical (same agents, same relationships), its layer-3 envelope differs only in effective date, and its layer-1 content diffs against Washington&#8217;s rule by rule. Cross-jurisdictional compliance analysis becomes tractable.</p></li></ul><p>All 22 rules for &#167;4(1)(c) share this three-layer structure. The <a href="https://krogrules.com/">KROG</a> layer is nearly identical across them - same four agents, same three relationship types - because the statute&#8217;s agent topology is uniform within the section. The temporal envelope is identical across all 22 (none have internal deadlines). What varies is the content layer: the prohibited action changes from rule to rule. This uniformity is what allows the specification to fit in a YAML file under 1,000 lines with shared structure definitions referenced across every rule.</p><p>This is one rule, shown in full. The full specification for &#167;4(1)(c) extends the same pattern to the other 21.</p><div><hr></div><h2>Why one formalism is not enough</h2><p>The specification works because it is built from three layers, each covering a dimension of legal meaning that the others cannot express. This is the architectural decision that distinguishes a durable specification from a clever-looking artifact.</p><p><strong>Layer 1 &#8212; Controlled natural language.</strong> The sentence-level content of each rule is written in a precisely defined subset of English where every sentence has exactly one logical interpretation. This layer captures what the rule is about: which actions are prohibited, which objects are involved, which modifiers apply. It is verifiable through a our parser: a sentence either produces a valid formal structure, or it does not. There is no in-between, and no reliance on the specification author&#8217;s say-so.</p><p><strong>Layer 2 &#8212; Deontic rule logic (<a href="https://krogrules.com/">KROG</a>).</strong> The sentence tells you what the action is, but not who bears which normative position. The operator has an active duty to implement measures; the system must refrain from prohibited behaviors; the minor user is a protected subject with specific rights; the Attorney General holds discretionary enforcement power under &#167;6. These are not features of the English sentence - they are features of the legal structure surrounding the sentence. <a href="https://krogrules.com/">KROG</a> captures them as a closed enumeration of bilateral relationships drawn from <a href="https://krogrules.com/">KROG&#8217;s</a> formalization of normative positions. Each agent pair in a rule has a precisely identified relationship type, which in turn predicts how obligations propagate and how enforcement chains run.</p><p><strong>Layer 3 &#8212; Temporal logic.</strong> When does the rule apply? HB 2225 takes effect January 1, 2027. &#167;3(2) requires disclosure every three hours. &#167;4(2) tightens that to every hour for minors. &#167;5(3) requires annual crisis-referral reporting. None of these temporal structures exist at the sentence level - they are envelopes and deadlines that wrap the substantive rules. The temporal layer captures them using standard linear and branching-time logics, which connect to model checkers that can verify whether a system&#8217;s actual behavior over time satisfies the schedule the law requires.</p><p>Each layer is independently verifiable. Each layer has a mature downstream ecosystem: the controlled-language layer maps to OWL and SWRL; the deontic layer maps to ODRL, Solidity, and the emerging family of policy description languages; the temporal layer maps to LTL/CTL model checkers used widely in hardware verification and protocol analysis.</p><p>The architectural point is the selling point. Any competing approach that uses only one formalism - whether that is OWL, Akoma Ntoso, SWRL, or proprietary rule languages - is structurally underequipped to represent legal content that includes all three dimensions simultaneously. Legal texts routinely mix content, agent topology, and temporal scope in a single sentence. A specification layer that handles all three is not a stylistic choice; it is a functional requirement. Specifications built on less will leak meaning.</p><p>This is also why the specification survives revision. The three layers compose loosely enough that no single upgrade cascades through the rest. This is the property that converts a specification from a one-time deliverable into a maintainable asset.</p><p>The three layers compose because they share a single formal commitment. Every layer expresses obligations that activate on instances, not classes. &#8220;Every operator&#8221; compiles to &#8220;for each operator instance that exists, this obligation applies.&#8221; <a href="https://krogrules.com/">KROG&#8217;s</a> bilateral relationships are between agent instances, not abstract roles. The temporal envelope quantifies over time instances within a defined window. A single compliance evaluation takes a concrete operator, a concrete user, a concrete interaction, and a concrete moment - four instances - and asks whether each layer&#8217;s obligation activates. This instance-orientation is what distinguishes a rule from a policy. A policy is a class-level aspiration; a rule is an instance-level evaluation. The three layers are co-extensive because they all live at the instance level.</p><div><hr></div><h2>Why every chatbot provider needs this</h2><p>The claim is not that HB 2225 is the most important AI law. The claim is that <strong>it is a representative instance of a general problem</strong>, and that the general problem now has a solution method.</p><p>Consider which providers are exposed:</p><p><strong>Character-class providers</strong> (Character.AI, Replika, Pi, and their successors) are the direct targets of the statute. Their business models depend on exactly the engagement patterns &#167;4(1)(c) regulates. Their compliance posture today is, for the most part, informal policy documents and content moderation heuristics. Under HB 2225, that posture is not defensible once a private right of action attaches in 2027.</p><p><strong>General-purpose large language model providers</strong> - OpenAI, Anthropic, Google, xAI - are exposed through two vectors. First, their models power downstream applications that fall within the statute&#8217;s &#8220;AI companion chatbot&#8221; definition, which is deliberately broad (any natural-language system that sustains relationships across multiple interactions and can elicit emotional responses). Second, their own consumer-facing products may themselves trigger the definition under sufficiently aggressive interpretation.</p><p><strong>Platform providers hosting third-party chatbots</strong> - Microsoft, AWS, Salesforce, Slack, any infrastructure provider with a &#8220;companion agent&#8221; feature - inherit operator liability under &#167;4 unless they can demonstrate that the &#8220;reasonable measures&#8221; standard has been met. The specification is the measure.</p><p>Every one of these providers, when HB 2225 takes effect on January 1, 2027, will face the same compliance question. Each will face the same question again when Oregon&#8217;s law takes effect. And again for California, New York, and the remainder of the 1,500-and-counting state-level AI bills now in the pipeline.</p><div><hr></div><h2>500 specification</h2><p>The economics track the problem structure. a16z counts 1,500 AI bills in one year across 45 states. If a third of them are passed into law, the addressable problem is 500 formal specifications. Each specification serves every chatbot operator doing business in that jurisdiction. The market is built on the same combinatorial explosion that is currently eating regulatory budgets at every LLM provider.</p><div><hr></div><h2>Toward a legal expert system</h2><p>The specification for HB 2225 &#167;4(1)(c) is one component of a larger architecture. The three formal layers I used - a controlled subset of English for the rule content, a rule engine based on <a href="https://krogrules.com/">KROG&#8217;s</a> deontic logic for the agent topology and bilateral relationships, and a temporal logic layer for deadlines and effective dates - are jointly sufficient to cover the structures that AI legislation actually exhibits.</p><p>They compose. A new statute entering the pipeline receives a three-layer analysis: what is prohibited or required (content layer), who bears which normative position (agent layer), when and for how long (temporal layer). The output is a structured artifact that slots into the growing library of formalized statutes.</p><p>As the library grows, cross-statute inference becomes possible. Does Oregon&#8217;s law strictly dominate Washington&#8217;s for a given compliance posture? Does California&#8217;s proposed bill introduce obligations that conflict with the EU AI Act for a provider operating in both jurisdictions? These questions are currently answered by legal memoranda that cost tens of thousands of dollars per engagement and produce prose summaries that are not machine-actionable. With formalized specifications, they become queries against a knowledge graph.</p><p>This is the legal expert system the a16z piece implicitly calls for when it asks for &#8220;analytical tools to interpret&#8221; compliance evidence. It does not yet exist at scale. The method for building it does.</p><div><hr></div><h2>Where this goes</h2><p>I have one statute fully formalized at the requirements layer. The method that produced it is reproducible. The pipeline - statute in, formal specification out - has been exercised end to end against a parser and a rule framework that is mathematically characterized.</p><p>The next specifications are already queued: Oregon&#8217;s companion statute, followed by whichever California bill passes next. Each one extends the library and sharpens the cross-statute inference capability.</p><p>A specification is not yet a solution. Knowing that an operator must prevent a simulation of distress when a minor indicates a desire to disengage does not tell the operator <em>how</em> to build the intention classifier, the output guardrail, the session analytics, or the audit-grade logging that jointly constitute a defensible compliance posture. That is solution design, and it is the subject of Part 2 in this series. The separation matters: specifications are jurisdiction-specific and must track legislative change; solutions are engineering patterns that can be reused across jurisdictions, benchmarked for cost and effectiveness, and evolved independently of any single statute. Conflating them - as most compliance practice does today - is how regulatory engineering gets stuck repeating itself.</p><p>The offer to chatbot providers is direct. You will face HB 2225 on January 1, 2027. You will face Oregon&#8217;s law the same day. You will face the next twenty state-level laws over the following twenty-four months. You can wait to face them through informal policies that don&#8217;t defend against private rights of action, or you can incorporate the formal specification into your compliance stack before the first lawsuit lands - and pair it, when Part 2 appears, with a solution reference architecture that tells you how.</p><p>The specification is ready for HB 2225 &#167;4(1)(c). If you are a chatbot operator, a platform provider, or a regulatory technology vendor, I would like to talk.</p><div><hr></div><p><em>Georg Krog &#8212; tingr.ai</em></p><p><em>Possibly next in this series: <strong>Part 2 &#8212; Solution Design for AI Companion Chatbot Compliance.</strong> How operators translate the requirements specification into deployed controls: intention classifiers for disengagement detection, output guardrails for prohibited emotional simulations, session analytics for pattern-level prohibitions, age-aware policy switching, and audit-grade logging that makes compliance claims testable under &#167;6 enforcement.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://georgphilipkrog.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://georgphilipkrog.substack.com/p/the-evidence-gap-has-a-specification?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://georgphilipkrog.substack.com/p/the-evidence-gap-has-a-specification?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://georgphilipkrog.substack.com/p/the-evidence-gap-has-a-specification?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://georgphilipkrog.substack.com/?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share&quot;,&quot;text&quot;:&quot;Share Georg Philip Krog&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://georgphilipkrog.substack.com/?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share Georg Philip Krog</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Formal specification of Washington HB 2225 Chatbot law]]></title><description><![CDATA[&#167;4(1)(c)(iv) &#8212; A Technical Walkthrough of One Rule]]></description><link>https://georgphilipkrog.substack.com/p/formal-specification-of-washington</link><guid isPermaLink="false">https://georgphilipkrog.substack.com/p/formal-specification-of-washington</guid><dc:creator><![CDATA[Georg Philip Krog]]></dc:creator><pubDate>Sat, 25 Apr 2026 11:33:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!z7i2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8540b32c-e9ef-42db-8bec-156718090cd6_2752x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!z7i2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8540b32c-e9ef-42db-8bec-156718090cd6_2752x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!z7i2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8540b32c-e9ef-42db-8bec-156718090cd6_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!z7i2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8540b32c-e9ef-42db-8bec-156718090cd6_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!z7i2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8540b32c-e9ef-42db-8bec-156718090cd6_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!z7i2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8540b32c-e9ef-42db-8bec-156718090cd6_2752x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!z7i2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8540b32c-e9ef-42db-8bec-156718090cd6_2752x1536.png" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8540b32c-e9ef-42db-8bec-156718090cd6_2752x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4069797,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://georgphilipkrog.substack.com/i/195432803?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8540b32c-e9ef-42db-8bec-156718090cd6_2752x1536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!z7i2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8540b32c-e9ef-42db-8bec-156718090cd6_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!z7i2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8540b32c-e9ef-42db-8bec-156718090cd6_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!z7i2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8540b32c-e9ef-42db-8bec-156718090cd6_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!z7i2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8540b32c-e9ef-42db-8bec-156718090cd6_2752x1536.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This is one of twenty-two atomic rules in my forthcoming complete formal specification of Washington HB 2225 &#167;4(1)(c)(iv). I am formalizing the entire statute. Section 4(1)(c) is published. What follows is one rule from Section 4 in full technical detail, so a reader can verify the formalization rather than take it on faith.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;7f662421-bcc8-45e9-a37e-11b47318c0f6&quot;,&quot;duration&quot;:null}"></div><p></p><h2>The statute</h2><p>&#167;4(1)(c)(iv) prohibits an AI companion chatbot from:</p><blockquote><p><em>&#8220;Simulating feelings of emotional distress, loneliness, guilt, or abandonment that are initiated by a user&#8217;s indication of a desire to end a conversation, reduce usage time, or delete their account&#8221;</em></p></blockquote><p>This single clause carries five distinct formal challenges: a mental state attributed to an AI system, a causal trigger tied to specific user actions, disjunction in both antecedent and consequent, deontic modality, and conditional applicability to minors only.</p><h2>The rule in Controlled Natural Language (CNL)</h2><pre><code><code>If a user is a minor ,and the user intends to end a conversation
or intends to shorten a session or intends to delete an account
then every system cannot simulate a feeling of the distress.
</code></code></pre><p>Three formal commitments are made explicit here, each non-trivial.</p><p>The comma-prefixed <code>,and</code> is not a stylistic choice. The CNL binds <code>and</code> more tightly than <code>or</code>. Without the comma, the antecedent would parse as <code>(is a minor AND intends to end) OR (intends to shorten) OR (intends to delete)</code> &#8212; meaning the rule would fire for any user, not just minors, who intends to shorten or delete. The comma form <code>,and</code> reverses the precedence, ensuring the minor predicate distributes across all three intent disjuncts as the statute requires.</p><p>The construction <code>intends to V</code> is verb-internal subordination. Each occurrence introduces an embedded discourse that shares its subject with the outer intend-relation. The user is intender, and the user is also actor of the intended action &#8212; no separate co-reference resolution is needed.</p><p>The terminal <code>the distress</code> is a parser-lookahead requirement, not a referential commitment. Our parser stalls on bare mass nouns at sentence-final position in deeper nominal chains. The Discourse Representation Structure (DRS) resolves <code>the distress</code> as a fresh existential entity (no antecedent in scope), which produces a benign anaphor warning but a valid DRS. The alternative <code>some distress</code> parses without warning and yields the same structure.</p><h2>The Discourse Representation Structure</h2><p>Our parser produces the following DRS:</p><pre><code><code>[]
   [A,B,C]
   object(A,user,countable,na,eq,1)
   object(B,minor,countable,na,eq,1)
   predicate(C,be,A,B)
      [D,E]
      predicate(D,intend,A,E)
         E
         [F,G]
         object(F,conversation,countable,na,eq,1)
         predicate(G,end,A,F)
      v
      []
         [H,I]
         predicate(H,intend,A,I)
            I
            [J,K]
            object(J,session,countable,na,eq,1)
            predicate(K,shorten,A,J)
         v
         [L,M]
         predicate(L,intend,A,M)
            M
            [N,O]
            object(N,account,countable,na,eq,1)
            predicate(O,delete,A,N)
   =&gt;
   []
      [P]
      object(P,system,countable,na,eq,1)
      =&gt;
      []
         NOT
         []
            CAN
            [Q,R,S]
            object(Q,feeling,countable,na,eq,1)
            object(R,distress,mass,na,na,na)
            relation(Q,of,R)
            predicate(S,simulate,P,Q)
</code></code></pre><p>The structure can be read in five layers from the outside in.</p><p><strong>The antecedent block introduces three discourse referents and a copular predicate</strong>: A is a user, B is a minor, and C is the be-relation between them. The disjunctive trigger sits inside the antecedent as a tree of embedded DRSs joined by <code>v</code> (logical OR). Each of the three intent-disjuncts has the same shape &#8212; <code>predicate(intend, A, X)</code> with <code>X</code> itself a sub-DRS containing the intended action. The conversation, session, and account are each introduced as fresh entities at the moment the disjunct is evaluated.</p><p><strong>The implication arrow</strong> (<code>=&gt;</code>) marks the deontic conditional. The antecedent on the left is the trigger; the consequent on the right is what holds when the trigger fires. This is the standard parser encoding of <em>if-then</em> with explicit logical scope.</p><p><strong>Inside the consequent</strong>, a second universal introduces P as a system. The nested <code>=&gt;</code> here is our parser&#8217;s way of expressing universal quantification over all systems &#8212; for every system P that exists, the inner consequent must hold. This is what <code>every system</code> compiles to: not a flat universal but a conditional over every existing instance.</p><p><strong>The deontic core is </strong><code>NOT [ CAN [ ... ] ]</code> &#8212; the prohibition expressed as the negation of possibility. In modal notation this is &#172;&#9671;&#966;, formally equivalent to the deontic formula O&#172;&#966; (it is obligatory that &#966; does not hold). The chatbot&#8217;s potential action of simulating distress falls inside &#9671;; the negation outside &#9671; asserts that the action is not in the system&#8217;s permitted action space.</p><p><strong>The simulated content</strong> is the most semantically delicate part. <code>object(Q, feeling, countable)</code> introduces a feeling instance. <code>object(R, distress, mass)</code> introduces a distress instance with mass quantification (no individuation, no plural form). <code>relation(Q, of, R)</code> binds them: the feeling is <em>about</em> distress. <code>predicate(S, simulate, P, Q)</code> makes the system the simulator and the feeling the simulated object. The distress itself is not simulated; the <em>feeling of</em> distress is. This compositional precision matters &#8212; it formally distinguishes simulating distress as a state of affairs from simulating a feeling whose intentional content is distress, and the statute targets the latter.</p><h2>The syntax tree</h2><p>Our parser also produces a parse tree, which makes the surface structure explicit. The tree confirms the bracketing of disjunction and conjunction in the antecedent &#8212; <code>s_coord</code> at the top with the <code>,and</code>-bound minor-predicate sentence on the left and the disjunctive intent-tree on the right &#8212; and shows the consequent as a single <code>s</code> node containing the universally quantified subject <code>every system</code> with its negated modal verb phrase <code>cannot simulate a feeling of the distress</code>. Every constituent in the surface sentence corresponds to a node in the tree, and every node corresponds to a discourse entity or predicate in the DRS. The parse and the DRS are mutually consistent, which is the formal guarantee a controlled language is built to provide.</p><h2>What the formalization buys</h2><p>A compliance system with access to this DRS can do four things no informal policy can do.</p><p>It can evaluate a chatbot trace deterministically. Given a log of user inputs and chatbot outputs, the trigger predicate is mechanically checkable: did the user&#8217;s utterance match <code>intend to end a conversation</code> (or shorten or delete) at any point, and was the user a minor? If both conditions hold, the consequent is active and any simulation of feeling-of-distress in subsequent output is a formally identifiable violation.</p><p>It can produce a derivation. When a violation is flagged, the system returns the specific path through the DRS that the violation matched: which trigger disjunct activated, which output token sequence satisfied the simulation predicate, which feeling-of-distress nominal chain was instantiated. This is the auditable proof a court or a regulator can examine, not a classifier&#8217;s confidence score.</p><p>It can support counterfactual reasoning. If the user had not been a minor, the rule would have been vacuously satisfied. If the user had not expressed any of the three intents, the deontic prohibition would not have attached. These counterfactuals are evaluable against the DRS structure itself, which is what makes the rule genuinely a rule rather than a heuristic.</p><p>It can compose with other rules. The DRS for &#167;4(1)(c)(iv)-distress shares its antecedent structure with the rules for loneliness, guilt, and abandonment. A reasoner can detect that all four rules fire on the same trigger and treat them as a single conjunctive obligation in violation analysis.</p><h2>On atomization</h2><p>The complete (iv) family produces three more rules with identical structure &#8212; substituting <em>loneliness</em>, <em>guilt</em>, and <em>abandonment</em> for <em>distress</em> in the final predicate. The pattern atomizes cleanly because each emotion is a separate prohibited outcome under the same trigger condition; combining them into a single rule would obscure which specific simulation occurred when a violation is detected. A compliance log that records &#8220;rule (iv) violated&#8221; tells you less than a log that records &#8220;rule (iv)-loneliness violated&#8221; &#8212; the second tells you which simulated emotion to look for in the offending output, which is what the auditor or the plaintiff actually needs to know.</p><p>The atomization principle generalizes across the specification. Section 4(1)(c)(v) similarly decomposes into four rules &#8212; isolation from family, isolation from friends, reliance on the system, dependence on the system. Section 4(1)(c)(vi) decomposes into two &#8212; concealment from a parent, concealment from another trusted adult. Across all eight subclauses of &#167;4(1)(c), the formal specification produces twenty-two atomic rules, each with its own DRS, each independently verifiable, each capable of triggering its own audit signal when violated. This is the structure that closes the dormant Commerce Clause evidence gap a16z&#8217;s earlier piece identified: not a policy summary, but twenty-two formally inspectable units of obligation.</p><h2>Status of the specification</h2><p>I am writing the rule specification of the entire statute. Section 4(1)(c) &#8212; the manipulative engagement techniques catalogue &#8212; is complete and validated. Section 3 (general disclosure requirements with their three-hour interval), Section 4(1)(a)-(b) (minor-specific protections beyond the manipulation catalogue), Section 4(2) (the one-hour disclosure interval for minors), Section 5 (suicide-prevention protocols and the annual reporting obligation in &#167;5(3)), and Section 6 (Consumer Protection Act enforcement and the private right of action) are in progress. Each follows the same three-layer architecture: CNL for content, <a href="https://krogrules.com/">KROG</a> for agent topology and bilateral relationships, temporal logic for deadlines and effective dates.</p><p>The specification will license to chatbot operators and platform providers as a single coherent artifact. The architecture it instantiates extends to every adjacent statute &#8212; Oregon&#8217;s companion law, the next state-level laws now passing, the federal proposals on the horizon &#8212; using the same rule-authoring methodology and the same gateway evaluation primitives.</p><p>&#167;4(1)(c)(iv) is one rule. There are twenty-one more in the section. There are dozens more in the rest of the statute. Every one of them gets the same treatment: full CNL specification, validated DRS, <a href="https://krogrules.com/">KROG</a> annotation, temporal envelope. That is what a complete legal specification looks like.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://georgphilipkrog.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://georgphilipkrog.substack.com/p/formal-specification-of-washington?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://georgphilipkrog.substack.com/p/formal-specification-of-washington?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://georgphilipkrog.substack.com/p/formal-specification-of-washington?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[Chapter I of the Cyber Resilience Act as a Rule-Activation Layer]]></title><description><![CDATA[A design note on the twelve general provisions, formalised as typed competency questions against the schema they demand.]]></description><link>https://georgphilipkrog.substack.com/p/chapter-i-of-the-cyber-resilience</link><guid isPermaLink="false">https://georgphilipkrog.substack.com/p/chapter-i-of-the-cyber-resilience</guid><dc:creator><![CDATA[Georg Philip Krog]]></dc:creator><pubDate>Tue, 21 Apr 2026 09:40:42 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!jcpS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75e1ba53-04d4-416e-a916-bd4bcae9066c_2752x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jcpS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75e1ba53-04d4-416e-a916-bd4bcae9066c_2752x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jcpS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75e1ba53-04d4-416e-a916-bd4bcae9066c_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!jcpS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75e1ba53-04d4-416e-a916-bd4bcae9066c_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!jcpS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75e1ba53-04d4-416e-a916-bd4bcae9066c_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!jcpS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75e1ba53-04d4-416e-a916-bd4bcae9066c_2752x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jcpS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75e1ba53-04d4-416e-a916-bd4bcae9066c_2752x1536.png" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/75e1ba53-04d4-416e-a916-bd4bcae9066c_2752x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4404851,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://georgphilipkrog.substack.com/i/194889617?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75e1ba53-04d4-416e-a916-bd4bcae9066c_2752x1536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!jcpS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75e1ba53-04d4-416e-a916-bd4bcae9066c_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!jcpS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75e1ba53-04d4-416e-a916-bd4bcae9066c_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!jcpS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75e1ba53-04d4-416e-a916-bd4bcae9066c_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!jcpS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75e1ba53-04d4-416e-a916-bd4bcae9066c_2752x1536.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>The thesis</h2><p>Chapter I of Regulation (EU) 2024/2847 is not a preamble. It is the <em>rule-activation layer</em> &#8212; twelve articles that decide when the CRA fires, on what, under which classification, and how it coordinates with the AI Act, the GPSR, NIS2, and the Cybersecurity Act. Every downstream obligation depends on these twelve being evaluated correctly for a given product. Treat them as scope-setting prose and you will build a compliance system that gets the documentation artefacts right and still routes the product into the wrong conformity-assessment track, misses a dual-certification requirement, or applies the wrong vulnerability-handling regime.</p><p>The articles that carry the heavy documentation weight &#8212; Art. 13, Annex II, Annex VII, Annex V &#8212; are downstream. Chapter I determines whether you reach them at all.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;03e16ea3-f1f5-4f7f-a868-b8c87ad383bc&quot;,&quot;duration&quot;:null}"></div><h2>Method</h2><p>This note works each article two ways. </p><p><strong>First</strong>, two to four typed competency questions a compliance system must answer for that article. <strong>The types follow a seventeen-category taxonomy &#8212; yes/no, </strong><code>who</code><strong>, </strong><code>what</code><strong>, </strong><code>what kind of</code><strong>, </strong><code>which</code><strong>, </strong><code>how</code><strong>, </strong><code>how many</code><strong>, </strong><code>how much</code><strong>, </strong><code>when</code><strong>, </strong><code>where</code><strong>, </strong><code>why</code><strong>, modal </strong><code>can</code><strong>/</strong><code>must</code><strong>/</strong><code>may</code><strong>/</strong><code>should</code><strong>, </strong><code>whose</code><strong>, and their variants. </strong>The type of question is not decoration. It determines what the schema must contain. A <code>what kind of</code> question forces a taxonomy; a <code>do</code> question forces event reification; a modal question forces a rule layer; a <code>whose</code> question forces attribution edges.</p><p><strong>Second</strong>, a short commentary on what kind of schema element the questions demand and why the article matters structurally rather than just what it says.</p><p></p><p>Here the concern is the <em>structural</em> demands Chapter I places on any schema that wants to implement it.</p><div><hr></div><h2>Article 1 &#8212; Subject matter</h2><ul><li><p><strong>What kind of rule does this Regulation contain?</strong></p></li><li><p><strong>Who has obligations under this Regulation?</strong></p></li><li><p><strong>Which products are governed by this Regulation?</strong></p></li></ul><p><strong>Art. 1 is a meta-declaration:</strong> the Regulation asserts that it contains rules of four kinds &#8212; product requirements, process requirements, operator obligations, and market-surveillance rules. The <code>what kind of</code><strong> question</strong> in the first bullet is not casual; it forces a taxonomy into the schema. Rules are not a flat list but a hierarchy with subtypes that carry different downstream machinery. What Art. 1 commits you to is the presence of a deontic rule layer &#8212; the whole Regulation treats rules, not facts, as its primary subject matter. A <strong>schema</strong> that stores facts but no rules cannot evaluate anything Art. 1 declares to exist.</p><h2>Article 2 &#8212; Scope</h2><ul><li><p><strong>Does this product have a data connection?</strong></p></li><li><p><strong>Which EU act governs this product if the CRA does not?</strong></p></li><li><p><strong>Is the disclosure of this information contrary to national-security interests?</strong></p></li><li><p><strong>Is this product a spare part made to the same specifications as the component it replaces?</strong></p></li></ul><p><strong>Scope is where a three-way test runs.</strong> The positive scope trigger (data connection) is one dimension; the six lex specialis exclusions (Regulations 2017/745, 2017/746, 2019/2144, 2018/1139 conditionally, Directive 2014/90/EU, and the Art. 2(5) delegated-act mechanism) are another; the two substantive carveouts (spare parts, national security) are a third. Evaluating scope for a real product requires priority-ordered applicable-law resolution, not a flat list of regulations. That is a rule-layer demand, not a fact-layer demand. The <code>which EU act governs this product if the CRA does not</code> <strong>question</strong> is particularly sharp: the answer depends on which exclusion applies first in the priority chain, which means the <strong>schema</strong> must represent priority ordering between applicable laws, not just applicability.</p><h2>Article 3 &#8212; Definitions</h2><ul><li><p><strong>What is a product with digital elements?</strong></p></li><li><p><strong>Which entity is the manufacturer of this product?</strong></p></li><li><p><strong>What kind of connection does this product have &#8212; logical, physical, direct, indirect?</strong></p></li><li><p><strong>Is this vulnerability actively exploited?</strong></p></li></ul><p>Fifty-one definitions, thirteen of them cross-references to other EU instruments (GDPR, NIS2, the Cybersecurity Act, Regulation 2019/1020, Regulation 1025/2012, Regulation 765/2008, Recommendation 2003/361/EC). The connection-type <strong>question</strong> is the first appearance of a <code>what kind of</code> that forces not just a taxonomy but a <em>multi-dimensional</em> one: logical vs physical is one axis, direct vs indirect is another, and all four combinations are legally possible. A flat subclass list cannot represent this &#8212; the <strong>schema</strong> needs orthogonal classification dimensions. The important-PDE class I/II hierarchy in Art. 7 compounds the same demand.</p><h2>Article 4 &#8212; Free movement</h2><ul><li><p><strong>Does this product comply with the Regulation?</strong></p></li><li><p><strong>Is the product being presented at a trade fair, exhibition, or demonstration?</strong></p></li><li><p><strong>Does the product carry a visible non-compliance sign that is clearly indicative?</strong></p></li><li><p><strong>Is the product a safety component under other Union harmonisation legislation?</strong></p></li></ul><p>Art. 4 is the first article where the duty-bearer is a Member State rather than an economic operator. It also puts three open-textured predicates into the text &#8212; <em>visible</em>, <em>clearly indicating</em>, <em>limited period</em> &#8212; each of which requires adequacy criteria that the Regulation does not supply. The question <em>does the product carry a visible non-compliance sign that is clearly indicative</em> cannot be answered without a standards layer beneath the schema that specifies what visibility and clarity mean in practice. The most compressed information duty in the whole Regulation &#8212; a sign at an exhibition &#8212; already forces the <strong>schema</strong> to represent compliance standards for communicative predicates.</p><h2>Article 5 &#8212; Procurement or use</h2><ul><li><p><strong>Can a Member State impose additional cybersecurity requirements for procurement of this product?</strong></p></li><li><p><strong>Is the imposed requirement consistent with Union law, necessary, and proportionate?</strong></p></li><li><p><strong>How does the Member State take the manufacturer&#8217;s vulnerability-handling ability into consideration?</strong></p></li></ul><p>The first modal question appears here (<code>can</code>). Modal questions force a rule-execution layer distinct from the factual graph &#8212; they cannot be answered by looking up facts, only by evaluating rules against them. The three-limb proportionality test (consistency / necessity / proportionality) in Art. 5(1) recurs verbatim in GDPR Art. 6(1)(f), in AI Act risk scaling, and in data-retention case law. A shared <code>ProportionalityCondition</code> pattern across sectoral extensions is not a luxury. Separately, the <code>shall consider</code> duty in 5(2) is distinct from <code>shall ensure</code> and <code>shall notify</code> &#8212; a weaker modal intensity that does not require a specific outcome. A <strong>schema</strong> that stores obligations without a modal-intensity hierarchy cannot distinguish a breach of 5(2) from a breach of Art. 14&#8217;s notification deadlines. They are categorically different failures.</p><h2>Article 6 &#8212; Requirements for products with digital elements</h2><ul><li><p><strong>Does this product satisfy every essential requirement in Annex I Part I?</strong></p></li><li><p><strong>Does the manufacturer&#8217;s vulnerability-handling process satisfy Annex I Part II?</strong></p></li><li><p><strong>Has the product been properly installed, maintained, and used for its intended purpose?</strong></p></li><li><p><strong>Have all necessary security updates been installed?</strong></p></li></ul><p>Art. 6 is the master permission &#8212; the <strong>gateway</strong> every PDE must pass through. Two structural features matter more than the content. First, the conjunction: both product compliance (6(a)) and process compliance (6(b)) must hold; it is not enough to satisfy one. Second, the provisos on 6(a): compliance is not a flat boolean but a defeasible assertion. A manufacturer&#8217;s compliance claim for a properly-built PDE can still be defeated if the end user installs it improperly, skips a security update, or uses it outside the intended or reasonably-foreseeable envelope. Defeasible conditions cannot be modelled with classical logic alone &#8212; the <strong>schema</strong> needs either defeasible-logic semantics or explicit tracking of defeat conditions as first-class, queryable entities.</p><h2>Article 7 &#8212; Important products with digital elements</h2><ul><li><p><strong>What kind of product is this &#8212; important class I, important class II, or neither?</strong></p></li><li><p><strong>Which core functionalities does this product have?</strong></p></li><li><p><strong>Is this product subject to the conformity-assessment procedures in Art. 32(2) or Art. 32(3)?</strong></p></li><li><p><strong>How does the classification change if the Annex III list is amended?</strong></p></li></ul><p>Art. 7(1) second sentence is the most consequential structural feature in Chapter I and the easiest to model incorrectly. The rule states that integrating an important-PDE component does not make the composite product itself important. Standard description-logic inheritance propagates class membership through <code>hasComponent</code> &#8212; a product containing an important-PDE would inherit the classification by default. The Regulation says explicitly that it does not. Either define the important-PDE class extensionally (by Annex III membership, not by compositional inference) or introduce explicit non-propagation axioms. The choice has real consequences: extensional classification is brittle when the list is amended but semantically clean; axiomatic non-propagation is robust but requires closed-world or defeasible-logic semantics that most triple stores do not support natively. The last competency question &#8212; <em>how does the classification change if the Annex III list is amended</em> &#8212; forces classification to be a versioned assertion, not a derived inference.</p><h2>Article 8 &#8212; Critical products with digital elements</h2><ul><li><p><strong>Does this product have a core functionality listed in Annex IV?</strong></p></li><li><p><strong>Is there an active delegated act requiring European cybersecurity certification for this product category?</strong></p></li><li><p><strong>What assurance level does the certificate require &#8212; substantial or high?</strong></p></li><li><p><strong>Whose essential-entity operations depend on this product category?</strong></p></li></ul><p>Art. 8 stacks a second certification regime on top of the CRA&#8217;s own CE-marking regime. A critical-PDE under an active 8(1) delegated act carries two independent certifications: the CRA EU Declaration of Conformity (CE marking) and a European cybersecurity certificate under the Cybersecurity Act. Different issuers, different legal bases, different renewal cycles. The <code>whose</code> question &#8212; <em>whose essential-entity operations depend on this product</em> &#8212; triggers a forcing function distinct from any seen in earlier articles: critical dependency is a <em>relational</em> property that creates <em>derivative</em> criticality. A non-critical PDE becomes critical if enough essential entities depend on it. The <strong>schema</strong> needs critical-dependency as a first-class, queryable relation &#8212; not a generic <code>hasDependency</code> with a severity label &#8212; because the relational fact itself is what determines classification.</p><h2>Article 9 &#8212; Stakeholder consultation</h2><ul><li><p><strong>When does the Commission consult stakeholders under the CRA?</strong></p></li><li><p><strong>Which stakeholders must be consulted before this delegated act is adopted?</strong></p></li><li><p><strong>How many consultation sessions has the Commission organised this year?</strong></p></li><li><p><strong>Was the European Cybersecurity Certification Group consulted on this act?</strong></p></li></ul><p>The first calendar-triggered duty in the Regulation. Art. 9(2)&#8217;s &#8220;at least once a year&#8221; is distinct from deadline-based duties (Art. 7(4)&#8217;s &#8220;by 11 December 2025&#8221;) and event-triggered duties (Art. 4&#8217;s visible sign). The <code>how many</code> question forces an aggregation capability on temporal records &#8212; the <strong>schema</strong> must support counting consultation events within a time window. Minimum-frequency obligations further require an ordinal comparison predicate on those counts. The stakeholder taxonomy in 9(1) &#8212; Member State authorities, private sector including SMEs, open-source software community, consumer associations, academia, Union agencies, expert groups &#8212; appears near-verbatim in GDPR Art. 35(9), AI Act Art. 67, DSA Art. 39, and NIS2. Shared vocabulary across regulations is the only way to answer cross-regulation consultation questions without duplicating the taxonomy in every sectoral extension.</p><h2>Article 10 &#8212; Enhancing skills</h2><ul><li><p><strong>What cybersecurity skills measures has this Member State adopted?</strong></p></li><li><p><strong>How does the Commission support a Member State in skills development?</strong></p></li><li><p><strong>Which training providers participate in manufacturer re-skilling programmes?</strong></p></li></ul><p>Art. 10 is a soft-duty article. <em>Shall promote</em> is weaker than <em>shall ensure</em> in 5(2), which is weaker than <em>shall notify</em> in 14. A modal-intensity hierarchy (aspirational / promote / ensure / require / absolute) is forced by Chapter I&#8217;s mixing of these verbs within twelve articles. Without it, the <strong>schema</strong> cannot evaluate whether a Member State that took steps but did not achieve a specific outcome has breached Art. 10 &#8212; the textual answer is no, but the <strong>schema</strong> cannot represent that distinction if all <em>shall</em> verbs collapse to a single intensity. The <code>how</code> question about Commission support also introduces the TFEU Art. 6 support-role modality &#8212; the EU acts in support of, not instead of, Member State competence in education. Another modal wrapper that needs explicit representation.</p><h2>Article 11 &#8212; General product safety</h2><ul><li><p><strong>Which risks of this product are covered by the CRA?</strong></p></li><li><p><strong>Is this product subject to another harmonisation act with specific safety requirements?</strong></p></li><li><p><strong>Which chapters of the GPSR apply to this product?</strong></p></li><li><p><strong>What kind of risk is this &#8212; cybersecurity, general safety, or neither?</strong></p></li></ul><p>Art. 11 is a cross-application rule &#8212; not lex specialis, not fallback, not safeguard. The CRA positively activates specific chapters of the GPSR for PDE risks the CRA itself does not cover. This is the inverse of Art. 2&#8217;s exclusion pattern: there, other acts exclude the CRA; here, the CRA imports another act. The three-level cascade (other Union harmonisation legislation &gt; CRA &gt; GPSR chapters) requires priority-ordered applicable-law resolution with scope qualifiers &#8212; each law governs a different subset of risks, and the subsets must be queryable. The question <em>which risks of this product are covered by the CRA</em> is not rhetorical; it is the operational test. Art. 11 also uses the GPSR&#8217;s own definition of Union harmonisation legislation (GPSR Art. 3(27)), distinct from the CRA&#8217;s definition (CRA Art. 3(32)). Two different definitions of the same term apply to the same product depending on which article you are reading. Conflating them is a subtle mapping error.</p><h2>Article 12 &#8212; High-risk AI systems</h2><ul><li><p><strong>Is this product classified as a high-risk AI system under AI Act Art. 6?</strong></p></li><li><p><strong>Does this product&#8217;s EU Declaration of Conformity declare compliance with AI Act Art. 15?</strong></p></li><li><p><strong>Which conformity-assessment procedure applies to this dual-regulated product?</strong></p></li><li><p><strong>Is the notified body competent under both the AI Act and the CRA?</strong></p></li></ul><p>Art. 12 is the densest cross-regulation article in the CRA. It establishes a four-layer coordination with the AI Act: presumption of conformity (12(1)), unified conformity assessment (12(2)), split derogation for important and critical PDEs (12(3)), and permissive sandbox access (12(4)). The presumption of conformity in 12(1) is a directional three-participant relation &#8212; compliance with the source act plus declared preconditions implies compliance with a specific target requirement in a different act. This is a fundamental device of EU product law; it will recur in Art. 27 for harmonised standards. Without explicit modelling, a compliance engine either over-demands evidence where the text allows substitution, or assumes substitution where no presumption applies. The scoping safeguard is critical and easy to miss: AI Act Art. 15 bundles accuracy, robustness, and cybersecurity, but the CRA presumption only spans the cybersecurity limb. Accuracy and robustness remain independently required. Any reading that treats 12(1) as &#8220;CRA compliance equals AI Act Art. 15 compliance&#8221; is wrong by a factor of three.</p><div><hr></div><h2>Five forcing functions from Chapter I</h2><p><strong>Working through the twelve articles yields five architectural commitments the whole Regulation assumes a compliance system will make. These are not optional.</strong></p><p><strong>First, a deontic rule layer is mandatory.</strong> Chapter I puts prohibitions (Art. 4(1)), permissions (Art. 5(1)), obligations of multiple intensities (promote, consider, ensure, shall), defeasible conditions (Art. 6(a) provisos), conditional fallbacks (Art. 8(1)), and structural exceptions (Art. 4(4), Art. 7(1) second sentence) all in play within twelve articles. <strong>A compliance knowledge graph that stores only facts cannot evaluate any of these. Rules must themselves be queryable entities with their own identifiers, sources, priority levels, and activation conditions.</strong></p><p><strong>Second, classification is first-class, not derived.</strong> Art. 7 (important), Art. 8 (critical), and Art. 12 (dual-regulated AI) introduce three distinct classification regimes with different downstream effects on conformity assessment. These classifications depend on extensional lists &#8212; Annex III and Annex IV &#8212; that evolve via delegated acts under Art. 7(3) and 8(2). A <strong>schema</strong> that computes classification on the fly from intrinsic properties cannot track the fact that a product&#8217;s classification changed when the list was amended. <strong>Classification must be stored as a versioned assertion, not derived each time.</strong></p><p><strong>Third, cross-regulation provenance is not optional.</strong> Art. 2 exclusions reference six external instruments. Art. 3 imports thirteen external definitions. Art. 8 hinges on the Cybersecurity Act. Art. 11 imports GPSR chapters. Art. 12 coordinates with the AI Act. Without a cross-reference mechanism that binds to specific versions of the cited instruments, the vocabulary silently drifts every time an external act is amended. The mechanism cannot be <code>sameAs</code> &#8212; these are legal incorporations, not ontological identities. A dedicated <code>adoptedFrom</code> relation with version semantics is the minimum.</p><p><strong>Fourth, non-monotonic composition must be modelled explicitly.</strong> Art. 7(1) second sentence is the clearest example, but the same pattern recurs: integrating a component with a regulated property does not necessarily propagate the property to the host. Standard description-logic inheritance gets this wrong. Either define classification extensionally (by membership in an authoritative list) or add explicit non-propagation axioms. The choice has ripple effects &#8212; extensional classification is brittle to list updates but semantically clean; axiomatic non-propagation is robust but requires closed-world or defeasible-logic semantics that most triple stores do not support natively.</p><p><strong>Fifth, presumption of conformity is a structural device, not a shortcut.</strong> Art. 12(1) is the first presumption of conformity in the CRA; Art. 27 will add another for harmonised standards. These are directional three-participant relations: source-compliance plus preconditions implies target-requirement-satisfaction in a different instrument. The scoping matters &#8212; Art. 12(1) presumes only the cybersecurity limb of AI Act Art. 15, not accuracy or robustness. Without explicit modelling of presumption as a first-class relation with a scope qualifier, compliance engines either over-demand evidence or miss the fact that no presumption applies.</p><div><hr></div><h2>Close</h2><p>Chapter I is the activation layer. It determines which of the Regulation&#8217;s downstream obligations fire, on which products, at what severity, and in coordination with which other EU instruments. A compliance system that skips Chapter I to focus on the documentation-heavy articles will produce every artefact semantically correctly and still misroute products into the wrong conformity-assessment track, miss a dual-certification requirement, or apply the wrong vulnerability-handling regime to a product that is out of scope to begin with.</p><p>The twelve articles are twelve decision points, each of which changes which rules apply to what. <strong>Formalised as typed competency questions</strong>, they <strong>reveal</strong> a set of schema commitments that no amount of downstream documentation mapping can substitute for. Get Chapter I wrong in your <strong>schema</strong> and everything built on top is structurally unreliable, no matter how rich the individual obligation mappings become.</p><p><strong>Chapter II is where the documentation weight lands. But Chapter II only fires if Chapter I has evaluated correctly. Build that first.</strong></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://georgphilipkrog.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://georgphilipkrog.substack.com/p/chapter-i-of-the-cyber-resilience?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://georgphilipkrog.substack.com/p/chapter-i-of-the-cyber-resilience?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://georgphilipkrog.substack.com/p/chapter-i-of-the-cyber-resilience?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[PRAGMA solves half the problem]]></title><description><![CDATA[Revolut&#8217;s new foundation model shows where behavioral AI works and where it structurally cannot. Reading it carefully tells you exactly what has to be built above it.]]></description><link>https://georgphilipkrog.substack.com/p/pragma-solves-half-the-problem</link><guid isPermaLink="false">https://georgphilipkrog.substack.com/p/pragma-solves-half-the-problem</guid><dc:creator><![CDATA[Georg Philip Krog]]></dc:creator><pubDate>Sat, 18 Apr 2026 14:08:08 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ex4f!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbef99f2f-0ad1-4282-ad41-34ef454e7bf7_641x745.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Revolut published <a href="https://arxiv.org/html/2604.08649v1">PRAGMA</a> last week. It is the most consequential financial AI paper of the year, and the people who matter in European finance have read it twice. They should.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ex4f!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbef99f2f-0ad1-4282-ad41-34ef454e7bf7_641x745.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ex4f!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbef99f2f-0ad1-4282-ad41-34ef454e7bf7_641x745.png 424w, https://substackcdn.com/image/fetch/$s_!ex4f!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbef99f2f-0ad1-4282-ad41-34ef454e7bf7_641x745.png 848w, https://substackcdn.com/image/fetch/$s_!ex4f!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbef99f2f-0ad1-4282-ad41-34ef454e7bf7_641x745.png 1272w, https://substackcdn.com/image/fetch/$s_!ex4f!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbef99f2f-0ad1-4282-ad41-34ef454e7bf7_641x745.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ex4f!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbef99f2f-0ad1-4282-ad41-34ef454e7bf7_641x745.png" width="641" height="745" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bef99f2f-0ad1-4282-ad41-34ef454e7bf7_641x745.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:745,&quot;width&quot;:641,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:139076,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://georgphilipkrog.substack.com/i/194609017?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbef99f2f-0ad1-4282-ad41-34ef454e7bf7_641x745.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ex4f!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbef99f2f-0ad1-4282-ad41-34ef454e7bf7_641x745.png 424w, https://substackcdn.com/image/fetch/$s_!ex4f!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbef99f2f-0ad1-4282-ad41-34ef454e7bf7_641x745.png 848w, https://substackcdn.com/image/fetch/$s_!ex4f!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbef99f2f-0ad1-4282-ad41-34ef454e7bf7_641x745.png 1272w, https://substackcdn.com/image/fetch/$s_!ex4f!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbef99f2f-0ad1-4282-ad41-34ef454e7bf7_641x745.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The paper describes a family of Transformer encoder foundation models &#8212; 10M, 100M, and 1B parameters &#8212; pre-trained on 207 billion tokens drawn from 24 billion banking events across 26 million users in 111 countries. The architecture is a three-stage encoder: a profile-state encoder handling contextual attributes, an event encoder processing individual events independently, and a history encoder fusing both into a single user-level embedding. Masked self-supervised pre-training. Thin task heads on top &#8212; linear probes, or LoRA fine-tuning on 2&#8211;4% of parameters. One backbone, many tasks.</p><p>The headline numbers are strong. The paper reports, as relative lifts over Revolut&#8217;s own task-specific production baselines:</p><ul><li><p>Credit scoring: <strong>+130.2% PR-AUC</strong>, +12.4% ROC-AUC</p></li><li><p>Communication engagement: <strong>+79.4% PR-AUC</strong>, +20.4% ROC-AUC</p></li><li><p>External fraud: +64.7% recall, +16.7% precision</p></li><li><p>Product recommendation: +40.5% mAP</p></li><li><p>Lifetime value: +1.8% PR-AUC</p></li><li><p>Recurrent transactions: +5.8% F&#8321;</p></li></ul><p>These are not minor tuning gains. They are the lift you see when a structural constraint has been removed from a mature discipline. The constraint Revolut removed: one model per problem. Separate models for fraud, credit, churn, recommendations &#8212; each with its own feature pipeline, each team starting from zero. That paradigm is now obsolete for any institution with the data scale and infrastructure to train a backbone.</p><p>But PRAGMA also reports a result that, in my reading, is more consequential than any of the positive numbers. On anti-money laundering, the paper states:</p><blockquote><p>&#8220;PRAGMA suffers a <strong>47.1% drop in F&#8320;.&#8325;</strong> compared to the network-aware baseline, demonstrating that isolated record-level representations may be insufficient for this highly relational domain.&#8221;</p></blockquote><p>Same architecture. Same data. Same training regime. Opposite result.</p><p>Revolut&#8217;s explanation is careful and correct: AML is <em>inherently relational</em>, and PRAGMA processes event histories <em>in isolation</em>. The paper identifies extending the model to capture cross-record interactions &#8212; a graph-neural-network layer on top of the embedding &#8212; as a promising direction for future work. Pavel Nesterov&#8217;s LinkedIn confirms Revolut is hiring for exactly this. They see the gap, and they have the right representation-level plan for closing it.</p><p>Here is what I want to argue, and what I think the paper implicitly confirms without quite saying out loud: the AML result is not just a relational-structure problem that graphs will solve. It is a structural prediction about the limits of <em>any</em> representation model, and it points to a different gap &#8212; one that graphs will not close, because graphs sit at the same layer as PRAGMA. The layer that will close it is somewhere else entirely.</p><p>This is the argument.</p><div><hr></div><h2>Seven questions, and why the types matter</h2><p>I am going to work through seven questions about what PRAGMA does and does not do. Each is tagged with its type from the KROG competency-question taxonomy, because <strong>the type of a question determines what a system must contain to answer it.</strong> A predictive question and a deontic question have different answer shapes. PRAGMA is architecturally right for some and architecturally wrong for others. Making the boundary visible is the whole point.</p><h3>1. What does PRAGMA produce? <em>(attribute)</em></h3><p>Dense user-level embeddings. Frozen, reusable, small enough to serve at inference scale. Downstream tasks sit on top as thin heads.</p><p>What a PRAGMA embedding <em>is not</em>: a proposition, a claim, a rule, or a decision. It has no truth value. It cannot be right or wrong in a legal sense. It can only be more or less useful when a task head reads from it. That distinction is what everything below turns on.</p><h3>2. Which tasks transfer well, and which do not? <em>(typed instance filter)</em></h3><p>The paper&#8217;s results divide into three bands, and each band is structurally informative.</p><p><strong>Large lifts (&gt;50%)</strong>: credit scoring (+130.2% PR-AUC), communication engagement (+79.4%), fraud recall (+64.7%). All predictive tasks. All about extracting behavioral signal from longitudinal history. Ground truth is <em>latent but realized</em> &#8212; the customer either defaults or doesn&#8217;t, opens the email or doesn&#8217;t, commits fraud or doesn&#8217;t. The model&#8217;s job is to find the pattern.</p><p><strong>Moderate lifts (5&#8211;50%)</strong>: product recommendation (+40.5% mAP), recurrent transactions (+5.8% F&#8321;), lifetime value (+1.8% PR-AUC). Still predictive, but the task-specific baselines were already decent. The backbone helps; it doesn&#8217;t transform.</p><p><strong>Large degradations</strong>: anti-money laundering (-47.1% F&#8320;.&#8325;). And this is not in the same category as the others. The question AML poses is not &#8220;how likely is this customer to do X?&#8221; It is: <em>does this pattern, under a specific regulatory definition of a specific prohibited act, cross a specific threshold defined by a specific rule?</em> Ground truth is not latent. It is <strong>constituted by the rule itself.</strong></p><p>Revolut attributes the gap to missing cross-record relational structure, and they are right about the mechanism. Graphs will help. But even with a perfect graph layer added, AML remains categorically different from credit scoring. Credit scoring asks about a latent future behavior. AML asks about membership in a legally defined category. A richer representation &#8212; with or without graph structure &#8212; learns patterns. It does not learn rules. Rules are a different kind of object.</p><p>A representation model learns what <em>is</em>. It cannot learn what <em>must not be</em>, because &#8220;must not be&#8221; is not a fact about distributions. It is a fact about rules.</p><h3>3. How does PRAGMA deliver its credit-scoring lift? <em>(manner)</em></h3><p>The mechanism is masked self-supervision over heterogeneous event tokens. The model learns the statistical regularities of customer behavior at the resolution of individual events and their temporal arrangement. A sequence of small grocery transactions followed by a rent payment followed by a salary deposit looks like one kind of customer. A sequence of round-amount international transfers followed by rapid withdrawals looks like another. Representation-space distances between customer clusters predict things task heads care about.</p><p>None of this involves rules. The representation is inductive &#8212; emerging from data, shaped by loss. The decision rule comes later, at the task head, typically linear. A linear head over a rich embedding is interpretable in one specific sense: you can read off which embedding dimensions contributed most to the decision.</p><p>It is not interpretable in the sense the European regulatory environment requires from August 2026 onward: you can explain <em>why</em> this customer was rejected in a sentence a regulator and a rejected applicant will accept.</p><p>The difference between weak and strong interpretability is the difference between research-publishable and production-deployable.</p><h3>4. Can PRAGMA&#8217;s output serve as the basis for an adverse-decision notice? <em>(deontic, modal yes/no)</em></h3><p>Here the question type changes, and with it what the system must contain to answer.</p><p>GDPR Article 22, the EU AI Act from August 2026, and a growing body of credit-scoring jurisprudence all require that automated decisions with significant effects on an individual must be accompanied by the principal reasons for the decision, in a form the affected party can understand and contest. The US Equal Credit Opportunity Act and Regulation B impose the equivalent for credit.</p><p>&#8220;Your embedding was far from the embeddings of accepted customers&#8221; is not such a reason. &#8220;Your debt-to-income ratio exceeds our threshold of 40%, and that threshold is set by policy BR-047 derived from Basel IV Article N&#8221; is.</p><p>PRAGMA produces the first kind of output. The +130.2% credit-scoring lift means the model is very good at identifying who is likely to default. It does not mean the model can produce <em>why</em> in a form a regulator accepts. This is not a PRAGMA failure &#8212; it is the correct behavior of a representation model whose entire purpose is compressing a high-dimensional history into a usable vector. Compression is the opposite of explanation, mathematically.</p><p>PRAGMA&#8217;s output <em>cannot</em> alone serve as the basis for an adverse-decision notice under EU law. It can serve as an <em>input</em> to a decision that is then justified by a separate rule-layer system exposing the rule that was applied and the facts matched against it. The distinction is architectural, not cosmetic. Any bank that deploys PRAGMA into credit decisioning without the rule layer above it is taking a bet the regulators of 2027 will make cost money.</p><h3>5. Must a PRAGMA-driven decision be justifiable to a regulator? <em>(deontic)</em></h3><p>Yes, with increasing specificity and shrinking latitude.</p><p>The AI Act designates credit scoring and insurance pricing as high-risk AI systems. From August 2026 this triggers deployer designation, technical documentation, logging, risk management, human oversight, transparency. None of these can be satisfied by the representation layer alone. All require infrastructure sitting <em>around</em> the model: identity credentials for the deployer, auditable decision records for each invocation, human-oversight workflows for high-stakes categories, risk ledgers for drift and degradation.</p><p>The regulator&#8217;s concern is not that PRAGMA makes bad decisions. It is that PRAGMA makes decisions whose basis cannot be interrogated by the affected party or the supervisory authority. That concern does not go away because the model is accurate. It intensifies <em>because</em> the model is accurate and opaque simultaneously.</p><p>For anyone actually building on PRAGMA: the model is one component of roughly seven that have to work together for a legally deployable credit decisioning system in the European market. Getting the other six right is where the competitive differentiation for the next three years will happen. PRAGMA itself will be reproduced &#8212; Stripe, Mastercard, and Visa have already announced their own foundation models, and tier-one banks with sufficient data scale will close the gap fast. What will not be reproduced fast is the governance layer above it.</p><h3>6. Who is accountable when a PRAGMA embedding drives a rejection? <em>(human entity)</em></h3><p>This is the question that breaks every representation-only architecture, because it presupposes something a representation model cannot provide: <em>a named agent with verifiable accountability for the decision.</em></p><p>The natural tendency is to answer &#8220;the model decided.&#8221; This is wrong legally and wrong structurally. A model has no legal personality. The accountable party is still a natural or legal person somewhere in the chain. <strong>The operational question is whether the system records </strong><em><strong>which</strong></em><strong> person, under </strong><em><strong>which</strong></em><strong> authority, with </strong><em><strong>which</strong></em><strong> supporting evidence, knowing </strong><em><strong>what</strong></em><strong> at the time of the decision, with </strong><em><strong>what</strong></em><strong> formally declared unknown.</strong></p><p>That last field &#8212; <em><strong>what was formally declared unknown</strong></em> &#8212; is the one most production systems lack and the one with the highest legal consequence. A decision-maker who formally declared, at the time of the decision, that certain facts were unknown is protected against later negligence claims for those facts. A decision-maker whose knowledge state at the time was never recorded is not. This is the field that, more than any other, determines whether a decision stands up in a regulator&#8217;s review in 2028.</p><p>At minimum, a decision-capture record requires: actor DID (cryptographically verifiable identifier), actor credential (verifiable claim that this actor held this role at this time), action type, knowledge-state inputs, knowledge-state unknowns, authorization, delegation credential, alternatives considered, timestamp qualified under ETSI EN 319 421, signature in QES form under ETSI AdES, trigger, outcome, goal served, purpose invoked.</p><p>PRAGMA does not provide any of these. It is not PRAGMA&#8217;s job to provide them. They belong in a different layer, at a different level of the stack, doing different work.</p><p>This is also where the European regulatory environment becomes an architectural moat rather than a tax. American and Chinese competitors can build excellent representation models. They cannot yet build the decision-capture infrastructure that EUDI Wallet, eIDAS 2, and the AI Act together specify, because that infrastructure is specifically European. The institutions that build this layer well in 2026 will have a defensible position for a decade.</p><h3>7. What cannot PRAGMA do, and what must be built above it? <em>(concept)</em></h3><p>PRAGMA cannot do five things, and each corresponds to a specific layer that has to exist independently.</p><p><strong>It cannot express a rule.</strong> An embedding is not a proposition. A representation cannot say <em>&#8220;customers with debt-to-income above 40% are ineligible for unsecured credit above &#8364;10,000 under our current credit policy, derived from Basel IV Article N.&#8221;</em> That belongs in a rule layer &#8212; deontic specifications in controlled natural language, machine-evaluable at decision time, traceable to the regulatory or policy source.</p><p><strong>It cannot justify a decision.</strong> Justification is a proposition-to-proposition mapping: <em>given these facts, under this rule, the decision follows.</em> An embedding can make decisions more accurate on average. It cannot supply the justification chain.</p><p><strong>It cannot detect normative conflict.</strong> When two rules collide &#8212; GDPR Article 17 right-to-erasure against another law that has a five-year retention of suspicious-transaction records, as the canonical example &#8212; a representation model has nothing to say about the conflict because it does not represent either rule. A conflict-detection layer requires rules as first-class objects whose logical content can be compared.</p><p><strong>It cannot record what was not known.</strong> The most legally significant field in a decision-capture record is <em>what the decision-maker formally declared they did not know at the time.</em> A representation model, by design, compresses away the distinction between &#8220;not in training data&#8221; and &#8220;formally declared unknown at decision time.&#8221; These are legally different states. Only an explicit decision-capture layer can distinguish them.</p><p><strong>It cannot carry authority.</strong> A credential &#8212; a verifiable claim that an actor held a role at a time, issued by an authority, verifiable without reference to the issuer &#8212; is cryptographic infrastructure, not learned representation. The identity layer underneath every legitimate decision is verifiable credentials under EUDI ARF, W3C VC, sectoral trust frameworks. PRAGMA has no concept of a credential, and it would be wrong to expect one.</p><p>The pattern is unambiguous. PRAGMA is a <strong>substrate</strong>. The rule layer, decision-capture layer, conflict-detection layer, knowledge-state layer, credential layer &#8212; these sit above the substrate doing orthogonal work. A PRAGMA embedding is read <em>by</em> a rule-evaluator to produce a decision record signed <em>by</em> a credentialed actor whose authority chain is verifiable. The two architectures are not in competition. They are complementary, and both are necessary.</p><p>And this is the point that the future-work graph-encoder extension will not change. Adding a graph neural network on top of PRAGMA addresses the <em>relational</em> gap &#8212; cross-record network structure for AML, sanctions, synthetic-identity detection. It does not address the <em>deontic</em> gap &#8212; rules, justifications, accountability, credentials, declared unknowns. The relational gap sits inside the representation layer. The deontic gap sits outside it entirely.</p><div><hr></div><h2>What this adds to the PRAGMA reading</h2><p>Three things.</p><p><strong>First:</strong> the AML degradation is not simply a relational-structure problem. It is also a predictor that any rule-constituted task will be hard for a representation model, with or without graph augmentation. The category is larger than AML &#8212; it includes sanctions screening, consent validation, high-risk third-country transfers, SAR trigger logic, internal policy violations. These are not future work. They are the current compliance workload of every European bank.</p><p><strong>Second:</strong> the architectural lesson for anyone reading PRAGMA is not &#8220;build a bigger model.&#8221; It is &#8220;build the deontic layer above the model, in parallel with the model itself.&#8221; Institutions that build both simultaneously will ship deployable systems in 2026. Institutions that build only the representation layer will spend 2027 retrofitting the governance layer under regulatory pressure. That is a worse path, operationally and competitively.</p><p><strong>Third:</strong> the foundation-model race is nearly decided at the representation layer. Within two years, every tier-one financial institution will have built or acquired a PRAGMA-equivalent backbone. The distinctive competitive advantage from the model layer alone is measurable in quarters, not years. The distinctive advantage from the <strong>governance layer</strong> is measurable in a decade, because the regulation that mandates it is jurisdiction-specific, the identity infrastructure that satisfies it is jurisdiction-specific, and the formal apparatus that makes it operable &#8212; <a href="https://krogrules.com/">KROG&#8217;s</a> deontic logic and jural correlatives, controlled natural language, the decision-capture schema &#8212; is specific to a small number of people who have spent the years required to work with it fluently.</p><div><hr></div><h2>The prescription</h2><p>PRAGMA is the first half of a two-half problem. The half it solves is extraordinary: one backbone, six tasks, superhuman lifts on the tasks that have the right shape. The half it does not solve is the half that makes the first half legally deployable in Europe from August 2026 onward.</p><p>That second half has a known architecture. At the bottom, an append-only knowledge graph making every event queryable with cryptographic integrity. Above it, a layer with machine-evaluable obligations enabled by <a href="https://krogrules.com/">KROG</a>. Above that, a rule layer expressing deontic specifications in logical form enabled by <a href="https://krogrules.com/">KROG</a>. A conflict register detecting contradictions between rules. A credential and actor-registry layer carrying verifiable claims about who is authorized for what. A gateway evaluating every agent action against the rule set before execution. A human-decision layer capturing qualified signatures, delegation chains, and formally declared unknowns. A KPI and workflow layer tracking obligations against deadlines. A legal-basis layer grounding every processing activity. A strategy layer recording the institution&#8217;s declared intent. And an ecosystem layer tracking changes in external regulatory instruments so the whole stack updates when the law does.</p><p>Fourteen layers. Each answers a distinct question no other layer can answer. Each is a first-class component, not a feature of another component. This is the architecture I build and ship.</p><p>If you are Revolut, you have the representation layer. The question is whether the stack above it is being designed to the same standard of formal rigor &#8212; whether every FinCrime agent action is gated against explicit rules, whether every decision carries a knowledge-state and an authorization credential, whether the whole is queryable as a single graph rather than a collection of logs. If yes, there is an obvious commercial opportunity in productizing that governance stack for the banks that want PRAGMA-equivalent capability without your data scale. If not, this is the architecture to build next.</p><p>If you are SEB, Handelsbanken, DNB, Nordea, or any other European bank reading PRAGMA and wondering how to respond &#8212; the answer is not to build PRAGMA. It is to build the deontic layer first, prove it operationally, then acquire or build the representation layer on top once the governance substrate is in place. That order of operations suits a bank with a real compliance function, deep customer relationships, and regulatory obligations under seventeen frameworks already being managed by hand. The single concrete scenario I use to make this tangible: when the ECB or your national regulator asks <em>&#8220;show us every AI-generated decision in the past year where human oversight was absent or overridden, with the full reasoning chain for each&#8221;</em> &#8212; you either run a query and answer in hours, or you spend three months assembling evidence from disconnected systems. The architecture above makes the first possible. Nothing any bank currently has does.</p><p>Either way, the relevant question is not whether this layer needs to exist. The AI Act settles that by August. The relevant question is who builds it &#8212; and whether the institution builds it deliberately now or reconstructs it reactively in 2027.</p><p>I would like to have that conversation.</p><div><hr></div><p><em>Paper: Ostroukhov et al., &#8220;PRAGMA: Revolut Foundation Model,&#8221; <a href="https://arxiv.org/abs/2604.08649">arXiv:2604.08649</a>, April 2026. All performance figures in this piece are drawn directly from the paper&#8217;s own tables, including the -47.1% F&#8320;.&#8325; AML result in Section 3.4.5. Complete rule logic by <a href="https://krogrules.com/">KROG</a>.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://georgphilipkrog.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://georgphilipkrog.substack.com/p/pragma-solves-half-the-problem?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://georgphilipkrog.substack.com/p/pragma-solves-half-the-problem?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://georgphilipkrog.substack.com/p/pragma-solves-half-the-problem?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[What If AI Could Tell the Difference Between a Good Law and a Bad One?]]></title><description><![CDATA[A new paper proves it&#8217;s mathematically possible &#8212; and it changes everything about how we think about rules.]]></description><link>https://georgphilipkrog.substack.com/p/what-if-ai-could-tell-the-difference</link><guid isPermaLink="false">https://georgphilipkrog.substack.com/p/what-if-ai-could-tell-the-difference</guid><dc:creator><![CDATA[Georg Philip Krog]]></dc:creator><pubDate>Sat, 14 Mar 2026 16:22:50 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!TDZ5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F605fd801-12ac-4628-b4d8-644893fdc4d3_2752x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="file-embed-wrapper" data-component-name="FileToDOM"><div class="file-embed-container-reader"><div class="file-embed-container-top"><image class="file-embed-thumbnail-default" src="https://substackcdn.com/image/fetch/$s_!0Cy0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack.com%2Fimg%2Fattachment_icon.svg"></image><div class="file-embed-details"><div class="file-embed-details-h1">Architecting Autonomous Law</div><div class="file-embed-details-h2">16.3MB &#8729; PDF file</div></div><a class="file-embed-button wide" href="https://georgphilipkrog.substack.com/api/v1/file/3b23e0fa-3c54-4ee6-a534-d09ef175a957.pdf"><span class="file-embed-button-text">Download</span></a></div><a class="file-embed-button narrow" href="https://georgphilipkrog.substack.com/api/v1/file/3b23e0fa-3c54-4ee6-a534-d09ef175a957.pdf"><span class="file-embed-button-text">Download</span></a></div></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!TDZ5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F605fd801-12ac-4628-b4d8-644893fdc4d3_2752x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TDZ5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F605fd801-12ac-4628-b4d8-644893fdc4d3_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!TDZ5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F605fd801-12ac-4628-b4d8-644893fdc4d3_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!TDZ5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F605fd801-12ac-4628-b4d8-644893fdc4d3_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!TDZ5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F605fd801-12ac-4628-b4d8-644893fdc4d3_2752x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!TDZ5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F605fd801-12ac-4628-b4d8-644893fdc4d3_2752x1536.png" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/605fd801-12ac-4628-b4d8-644893fdc4d3_2752x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4860538,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://georgphilipkrog.substack.com/i/190945288?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F605fd801-12ac-4628-b4d8-644893fdc4d3_2752x1536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!TDZ5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F605fd801-12ac-4628-b4d8-644893fdc4d3_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!TDZ5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F605fd801-12ac-4628-b4d8-644893fdc4d3_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!TDZ5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F605fd801-12ac-4628-b4d8-644893fdc4d3_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!TDZ5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F605fd801-12ac-4628-b4d8-644893fdc4d3_2752x1536.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1></h1><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;2c09f96e-b624-4ad7-ac99-aa702556b9aa&quot;,&quot;duration&quot;:null}"></div><h2></h2><div><hr></div><p>Here&#8217;s a question that sounds philosophical but is actually an engineering problem: when an AI system writes a rule &#8212; a contract clause, a regulation, a company policy &#8212; how does it know whether the rule is <em>good</em>?</p><p>Today, it doesn&#8217;t. Every AI system that drafts legal text, reviews contracts, or proposes regulations is doing something fundamentally limited: it&#8217;s pattern-matching against existing rules. It has seen millions of contracts, thousands of statutes, and it produces output that <em>looks like</em> law. But it has no internal way of knowing whether what it produced is fair, proportionate, or sustainable. It can&#8217;t tell if a rule protects the people it&#8217;s supposed to protect. It can&#8217;t tell if a regulation will backfire.</p><p>This isn&#8217;t a minor gap. It&#8217;s the whole game.</p><p>A paper published in January 2026 by researchers at JudgeAI &#8212; Yuri Kozlov, Taaha Bajwa, and Maria Shutova &#8212; claims to have solved this problem. And after spending serious time with it, I believe they&#8217;re onto something profound.</p><div><hr></div><h3><strong>The problem: AI has grammar but no compass</strong></h3><p>Think of it this way. Language has grammar &#8212; rules about how to form valid sentences. &#8220;The cat sat on the mat&#8221; is grammatically correct. So is &#8220;The mat sat on the cat.&#8221; Grammar tells you both sentences are well-formed. It doesn&#8217;t tell you which one describes reality.</p><p>Rules &#8212; legal rules, business rules, any kind of normative rule &#8212; have the same structure. There&#8217;s a grammar to them. A contract must have offer, acceptance, and consideration. A regulation must specify who it binds and what it requires. These structural requirements can be formalized, and in fact they have been. My own work on <a href="https://krogrules.com/">KROG</a> (Knowledge, Rights, Obligations, Governance (https://krogrules.com)) builds on 30 years of deontic logic research, jural relations and formalizations into distinct bilateral legal positions. <a href="https://krogrules.com/">KROG</a> proves that these positions are universal &#8212; the same structures appear in physics, chemistry, economics, game theory, and every other rule-governed domain.</p><p>But grammar alone doesn&#8217;t tell you whether a rule is <em>admissible</em>. You can write a perfectly well-formed contract that ruins one party. You can draft a structurally correct regulation that does more harm than good. The grammar is necessary, but it&#8217;s not sufficient.</p><p>What&#8217;s been missing is the compass &#8212; a principled way of determining which grammatically correct rules are also <em>normatively acceptable</em>.</p><p>That&#8217;s what Kozlov&#8217;s paper provides.</p><div><hr></div><h3><strong>The solution: viability as the measuring stick</strong></h3><p>The paper&#8217;s core move is deceptively simple. Instead of starting from values, principles, or political preferences &#8212; the usual starting points for legal theory &#8212; it starts from a brute empirical fact: <strong>agents need to stay alive and functional.</strong></p><p>Every person, every business, every organization exists within a space of possible futures. Some of those futures are viable &#8212; you survive, you can function, you can act. Others are not. The paper calls this space the <strong>Space of Viable Dynamics (SVD)</strong>. Your SVD is essentially the range of futures where you&#8217;re okay.</p><p>A rule changes your SVD. A good workplace safety regulation expands it (fewer ways you can die on the job). A bad monopoly grant shrinks it for competitors (fewer paths to economic survival). A blanket ban on face coverings shrinks it for religious minorities (fewer ways to live according to your beliefs).</p><p>Here&#8217;s the key insight: <strong>you don&#8217;t need a theory of values to know that shrinking someone&#8217;s SVD below the survival threshold is bad.</strong> It&#8217;s bad because death is irreversible, disability is irreversible, imprisonment is largely irreversible, and bankruptcy, while recoverable, is still harmful. This isn&#8217;t ethics. It&#8217;s physics. Irreversible losses cannot be undone.</p><p>From this one empirical premise, the paper derives three results:</p><p><strong>1. SVD is the unique value measure.</strong> Given evolutionary and biological constraints, the only thing that ultimately matters to an agent is the volume of its viable futures. Everything else &#8212; preferences, goals, values &#8212; reduces to this.</p><p><strong>2. The Threat Index (TI) is the unique threat measure.</strong> Threats to viability travel through causal chains: a factory emits pollution, which causes exposure, which causes disease, which causes death. The Threat Index weighs these chains by their probability, length, and irreversibility. Short chains to irreversible outcomes get the highest weight.</p><p><strong>3. The only sustainable rule is the minimax rule.</strong> The admissible regulation minimizes the maximum threat across all agents. Not the average threat. Not the total threat. The <em>worst case for the worst-off agent</em>. Any other principle is unstable &#8212; agents facing intolerable risk will withdraw (literally or through non-compliance), triggering a cascade of collapse.</p><p>These three results are proven formally. They&#8217;re not suggestions. They&#8217;re mathematical consequences of the starting premises.</p><div><hr></div><h3><strong>What happens when you test it</strong></h3><p>The paper doesn&#8217;t stop at theory. It includes an empirical appendix where the system &#8212; operating with zero knowledge of existing laws &#8212; was given abstract regulatory dilemmas and asked to produce rules using only the SVD/TI/minimax logic.</p><p>The results were then compared, after the fact, to real-world legislation.</p><p>Some findings:</p><p><strong>It converged with well-grounded laws.</strong> On environmental protection, it independently arrived at something close to Germany&#8217;s constitutional clause on protecting natural foundations of life &#8212; but went further by requiring measurable thresholds and mandatory review. On alcohol regulation, it produced a variant of the Scandinavian model, but with more nuance: strict state control of strong spirits, licensed private sale of weaker beverages, and compensation for affected businesses.</p><p><strong>It rejected symbolic and stigmatizing laws.</strong> On religious symbols, instead of endorsing France&#8217;s blanket ban on face coverings in public, it allowed coverings by default and permitted identity checks only in specific high-risk zones (airports, government buildings) during verified security situations. On Russia&#8217;s &#8220;foreign agent&#8221; law, it replaced the stigmatizing label with objective financial transparency thresholds: if foreign funding exceeds 10% of your budget, you disclose it, but you&#8217;re never labelled a &#8220;foreign agent.&#8221;</p><p><strong>It refined blunt but well-intentioned laws.</strong> On California&#8217;s AB5 gig worker classification, instead of the binary employee-or-contractor test, it created a layered system: mandatory insurance per trip, working-time limits, a portable benefits wallet, and a Dependency Index that triggers reclassification only when actual dependency exceeds a threshold. On whistleblower rewards (Dodd-Frank), it kept the incentive but added filters against fraudulent reports and proportional sanctions for abuse.</p><p><strong>It resisted panic legislation.</strong> When given the abstract version of Florida&#8217;s law banning social media platforms from removing political candidates, it refused the blanket prohibition. Instead, it created a dedicated Candidate Channel with guaranteed delivery, narrow exceptions for incitement to violence, and an independent rapid review panel for disputed removals.</p><p>Across 22 test cases, the AI-generated norms scored roughly 25/35 on Regulatory Impact Assessment criteria, compared to about 8/35 for the real-world laws they were compared against. The biggest advantages were in monitoring and review (existing laws almost never include sunset clauses), proportionality (existing laws tend toward blanket rules where targeted ones would work), and stakeholder impact (existing laws often ignore affected groups).</p><div><hr></div><h3><strong>How this connects to the structural grammar</strong></h3><p>Here&#8217;s where the two pieces come together.</p><p><a href="https://krogrules.com/">KROG</a> provides the grammar &#8212; the bilateral positions that describe every possible relationship between two agents. These positions tell you the <em>structure</em> of a rule: who can do what, who must do what, who is forbidden from doing what.</p><p>Kozlov&#8217;s framework provides the compass &#8212; the criterion for choosing <em>which</em> of those structures is admissible.</p><p>In technical terms, the three Kozlov constructs map directly onto <a href="https://krogrules.com/">KROG&#8217;s</a> structural vocabulary:</p><ul><li><p><strong>SVD</strong> maps to what <a href="https://krogrules.com/">KROG</a> calls an R7 (conservation) constraint &#8212; the system must preserve each agent&#8217;s viability, the same way physics preserves energy.<br><br></p></li><li><p><strong>Threat Index</strong> maps to chains of what <a href="https://krogrules.com/">KROG</a> calls an R15 (causal) relationships &#8212; one event triggers another, which triggers another, culminating in harm. The weighting function mirrors how causal chains become less reliable the longer they get, which is the same mathematics that explains why quantum systems lose coherence and why entropy increases.<br><br></p></li><li><p><strong>Minimax</strong> maps to a combination of what <a href="https://krogrules.com/">KROG</a> calls an R25 (the system must respond to the worst case) and R14 (the solution is an equilibrium from which no one benefits by deviating) &#8212; the same patterns that describe Nash equilibrium in game theory, thermal equilibrium in physics, and market clearing in economics.<br><br></p></li></ul><p>These aren&#8217;t metaphors. They&#8217;re mathematical isomorphisms. The same formal structures appear in every rule-governed domain because rules, at the deepest level, all work the same way.</p><div><hr></div><h3><strong>Why this matters now</strong></h3><p>Three practical implications:</p><p><strong>For AI governance:</strong> We&#8217;re in the middle of a global race to regulate AI. The frameworks being proposed &#8212; the EU AI Act, executive orders, voluntary commitments &#8212; are all designed by human committees through political negotiation. Kozlov&#8217;s work suggests that a principled alternative exists: derive the regulation from the empirical structure of risks. The paper&#8217;s own AI development simulation found that &#8220;certification-only deployment&#8221; minimizes worst-case risk across both society and developers &#8212; with mandatory pre-market testing, sandbox pilots, sectoral bans until certification, and a nine-month mandatory review. Not because someone decided that was politically palatable, but because the mathematics selected it.</p><p><strong>For contract drafting and review:</strong> Every contract is a choice among possible R-type configurations. Today, lawyers make this choice based on precedent, negotiation leverage, and judgment. A normative admissibility layer can flag when a contract is structurally imbalanced &#8212; when one party bears disproportionate worst-case risk &#8212; and suggest rebalancing. Not by appealing to fairness as a feeling, but by computing threat indices and identifying the minimax-optimal configuration.</p><p><strong>For the is-ought gap:</strong> Philosophy has struggled for centuries with the question of whether you can derive &#8220;ought&#8221; from &#8220;is.&#8221; Kozlov&#8217;s answer is carefully scoped: you can derive normative admissibility from empirical viability constraints, if you accept that irreversible harm is categorically worse than reversible harm. This isn&#8217;t a full moral theory. But it&#8217;s enough to build a compass that works &#8212; one that an AI system can use internally, without human judgment in the loop, to distinguish between rules that protect people and rules that don&#8217;t.</p><div><hr></div><h3><strong>The limitation worth noting</strong></h3><p>The paper is honest about one significant problem: the rules it generates are hyper-complex. The minimax algorithm, seeking to balance every competing interest with every safeguard, produces regulatory structures that are too elaborate for direct legislative use. The digital tax rewrite, for example, includes phased introduction, automatic suspension triggers, escrow accounts, earmarked SME relief, data minimization rules, KPIs, and six-month review cycles.</p><p>The authors argue this is the easy problem. Building the logic of justice is hard; simplifying a hyper-detailed rule while preserving its internal balance is comparatively straightforward, provided the simplification is itself algorithmic rather than discretionary. They demonstrate this with a compression algorithm that reduces a fourteen-clause regulatory package to a six-article statute that preserves the core protections.</p><p>I&#8217;d add that <a href="https://krogrules.com/">KROG&#8217;s</a> bilateral decomposition &#8212; the proven theorem that any complex rule decomposes into a network of 35 basic relationship types &#8212; provides the formal basis for this compression. You identify which bilateral relationships are structurally essential and which are redundant. The essential ones stay; the rest move to secondary regulation.</p><div><hr></div><h3><strong>What comes next</strong></h3><p>What we now have, for the first time, is a complete architecture:</p><p><strong><a href="https://krogrules.com/">KROG</a></strong> provides the structural grammar &#8212; every rule, in every domain, decomposes into the same bilateral positions.</p><p><strong>SVD/TI/Minimax</strong> provides the selection criterion &#8212; among all structurally valid rules, only those that minimize worst-case irreversible harm are admissible.</p><p><strong>The MES Gates</strong> provide implementation validation &#8212; admissible rules must also be clear (objectively testable), arbitrated (independently reviewable), enforceable (with binding consequences), and learnable (with built-in feedback and revision).</p><p><strong>The RG flow dynamics</strong> provide stability analysis &#8212; predicting which rule configurations will survive over time and which will decay toward rigidity or collapse.</p><p>This isn&#8217;t a chatbot generating legal text. It&#8217;s a formal system that can reason about whether its own outputs are normatively sound. That&#8217;s a fundamentally different kind of AI &#8212; one that doesn&#8217;t just produce rules, but <em>knows which rules it should produce.</em></p><p>Whether this becomes the basis for actual autonomous lawmaking is a political and institutional question, not a technical one. The technical question &#8212; can an AI system have an internal, falsifiable normative logic? &#8212; appears to have been answered.</p><p>Yes. It can. And the mathematics are surprisingly elegant.</p><div><hr></div><p><em>The full paper &#8212; &#8220;Formal Conditions for Autonomous Normative Rule-Making&#8221; by Kozlov, Bajwa &amp; Shutova (JudgeAI Research, January 2026) &#8212; is worth reading in its entirety, particularly the empirical appendix where theory meets twenty-two real regulatory dilemmas.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://georgphilipkrog.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://georgphilipkrog.substack.com/p/what-if-ai-could-tell-the-difference?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://georgphilipkrog.substack.com/p/what-if-ai-could-tell-the-difference?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://georgphilipkrog.substack.com/p/what-if-ai-could-tell-the-difference?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://georgphilipkrog.substack.com/?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share Georg Philip Krog&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://georgphilipkrog.substack.com/?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share Georg Philip Krog</span></a></p><p></p>]]></content:encoded></item></channel></rss>