<story><title>Dasel: Select, put and delete data from JSON, TOML, YAML, XML and CSV</title><url>https://github.com/TomWright/dasel</url></story><parent_chain><item><author>0thgen</author><text>I like the idea of using select&amp;#x2F;put&amp;#x2F;delete (sql-style syntax) to query non-rdb data storage. It sort of raises the question of, could there be 1 universal language to query relational databases, text file storage (json, csv, etc), and anything else.&lt;p&gt;Or put another way, is there any data storage format that couldn’t be queried by SQL?</text></item></parent_chain><comment><author>acjohnson55</author><text>That&amp;#x27;s basically SQL. Many SQL systems have lots of built in connectivity to various data sources.&lt;p&gt;DuckDB is a good example of a (literally) serverless SQL-based tool for data processing. It is designed to be able to treat the common data serialization formats as though they are tables in a schema [1], and you can export to many of the same formats. With extensions, you can also connect to relational databases as foreign tables.&lt;p&gt;This connectivity is a big reason it has built a pretty avid following in the data science world.&lt;p&gt;[1] &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;duckdb.org&amp;#x2F;docs&amp;#x2F;data&amp;#x2F;overview&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;duckdb.org&amp;#x2F;docs&amp;#x2F;data&amp;#x2F;overview&lt;/a&gt;&lt;p&gt;[2] &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;duckdb.org&amp;#x2F;docs&amp;#x2F;extensions&amp;#x2F;json#json-importexport&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;duckdb.org&amp;#x2F;docs&amp;#x2F;extensions&amp;#x2F;json#json-importexport&lt;/a&gt;&lt;p&gt;[3] &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;duckdb.org&amp;#x2F;docs&amp;#x2F;extensions&amp;#x2F;postgres&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;duckdb.org&amp;#x2F;docs&amp;#x2F;extensions&amp;#x2F;postgres&lt;/a&gt;</text></comment>
<story><title>Dasel: Select, put and delete data from JSON, TOML, YAML, XML and CSV</title><url>https://github.com/TomWright/dasel</url></story><parent_chain><item><author>0thgen</author><text>I like the idea of using select&amp;#x2F;put&amp;#x2F;delete (sql-style syntax) to query non-rdb data storage. It sort of raises the question of, could there be 1 universal language to query relational databases, text file storage (json, csv, etc), and anything else.&lt;p&gt;Or put another way, is there any data storage format that couldn’t be queried by SQL?</text></item></parent_chain><comment><author>TeMPOraL</author><text>&amp;gt; &lt;i&gt;Or put another way, is there any data storage format that couldn’t be queried by SQL?&lt;/i&gt;&lt;p&gt;Is your SQL Turing-complete? If yes, then it could query anything. Whether or not you&amp;#x27;d like the experience is another thing.&lt;p&gt;Queries are programs. Querying data from a fixed schema, is easy. Hell, you could make an &amp;quot;universal query language&amp;quot; by just concatenating together this dasel, with SQL and Cypher, so you&amp;#x27;d use the relevant facet when querying a specific data source. The real problem starts when your query structure isn&amp;#x27;t fixed - where what data you need depends on what the data says. When you&amp;#x27;re dealing with indirection. Once you start doing joins or conditionals or `foo[bar[&amp;#x27;baz&amp;#x27;]] if bar.hasProperty(&amp;#x27;baz&amp;#x27;) else 42` kind of indirection, you quickly land in the Turing tarpit[0] - whatever your query language is, some shapes of data will be super painful for it to deal with. Painful, but still possible.&lt;p&gt;--&lt;p&gt;[0] - &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;en.wikipedia.org&amp;#x2F;wiki&amp;#x2F;Turing_tarpit&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;en.wikipedia.org&amp;#x2F;wiki&amp;#x2F;Turing_tarpit&lt;/a&gt;</text></comment>