<story><title>In Defense of OpenStreetMap&apos;s Data Model</title><url>https://stevecoast.substack.com/p/in-defense-of-openstreetmaps-data</url></story><parent_chain><item><author>TuringTest</author><text>But you don&amp;#x27;t need to complicate the storage format to fix a problem like that. You can build validation tools that will check whether the stored data conforms to the correct specified geometry, and only emit valid polygons to later tools in the pipeline when they do.&lt;p&gt;&amp;quot;Be liberal in what you accept and strict in what you send&amp;quot; is still a good principle. The problem with rejecting invalid structures at the data storage format instead of a later validation step is that it hurts flexibility and extensibility. If later on you need a different type of polygon that would be rejected by the specification, you&amp;#x27;ll need to create a new version of the file format and update all tools reading it even if they won&amp;#x27;t handle the new type, instead of just having old tools silently ignoring the new format that they don&amp;#x27;t understand.</text></item><item><author>RicoElectrico</author><text>The proposed improvements would obsolete a bunch of problems such as broken polygons [1] which happen regularly. They would also make processing OSM more accessible without needing to randomly seek over GBs of node locations just to assemble geometries which takes a significant runtime percentage of osm2pgsql.&lt;p&gt;For me Steve Coast lost his credibility when he joined the closed and proprietary what3words.&lt;p&gt;[1] &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;wiki.openstreetmap.org&amp;#x2F;wiki&amp;#x2F;OSM_Inspector&amp;#x2F;Views&amp;#x2F;Multipolygons&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;wiki.openstreetmap.org&amp;#x2F;wiki&amp;#x2F;OSM_Inspector&amp;#x2F;Views&amp;#x2F;Mult...&lt;/a&gt;</text></item></parent_chain><comment><author>seoaeu</author><text>&amp;gt; &amp;quot;Be liberal in what you accept and strict in what you send&amp;quot; is still a good principle.&lt;p&gt;No, it is a terrible principle which produces brittle software and impossible to implement standards. The problem is that no one actually follows the “be strict in what you send” part, and just goes with whatever cobbled together mess the other existing software seems to accept. Before long, a spec compliant implementation can’t actually understand any of the messages that are being sent&lt;p&gt;&amp;gt; just having old tools silently ignoring the new format that they don&amp;#x27;t understand.&lt;p&gt;This sounds like another headache. I don’t want my tools silently breaking.</text></comment>
<story><title>In Defense of OpenStreetMap&apos;s Data Model</title><url>https://stevecoast.substack.com/p/in-defense-of-openstreetmaps-data</url></story><parent_chain><item><author>TuringTest</author><text>But you don&amp;#x27;t need to complicate the storage format to fix a problem like that. You can build validation tools that will check whether the stored data conforms to the correct specified geometry, and only emit valid polygons to later tools in the pipeline when they do.&lt;p&gt;&amp;quot;Be liberal in what you accept and strict in what you send&amp;quot; is still a good principle. The problem with rejecting invalid structures at the data storage format instead of a later validation step is that it hurts flexibility and extensibility. If later on you need a different type of polygon that would be rejected by the specification, you&amp;#x27;ll need to create a new version of the file format and update all tools reading it even if they won&amp;#x27;t handle the new type, instead of just having old tools silently ignoring the new format that they don&amp;#x27;t understand.</text></item><item><author>RicoElectrico</author><text>The proposed improvements would obsolete a bunch of problems such as broken polygons [1] which happen regularly. They would also make processing OSM more accessible without needing to randomly seek over GBs of node locations just to assemble geometries which takes a significant runtime percentage of osm2pgsql.&lt;p&gt;For me Steve Coast lost his credibility when he joined the closed and proprietary what3words.&lt;p&gt;[1] &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;wiki.openstreetmap.org&amp;#x2F;wiki&amp;#x2F;OSM_Inspector&amp;#x2F;Views&amp;#x2F;Multipolygons&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;wiki.openstreetmap.org&amp;#x2F;wiki&amp;#x2F;OSM_Inspector&amp;#x2F;Views&amp;#x2F;Mult...&lt;/a&gt;</text></item></parent_chain><comment><author>maxerickson</author><text>The &amp;quot;expression&amp;quot; layer of the data model has had 20 years to evolve and has largely been static for a decade.&lt;p&gt;Making everything slower and harder to retain flexibility you don&amp;#x27;t need isn&amp;#x27;t a great tradeoff.</text></comment>