<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/stylesheet.xsl" type="text/xsl"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:podcast="https://podcastindex.org/namespace/1.0">
  <channel>
    <atom:link rel="self" type="application/atom+xml" href="https://feeds.transistor.fm/the-search-space" title="MP3 Audio"/>
    <atom:link rel="hub" href="https://pubsubhubbub.appspot.com/"/>
    <podcast:podping usesPodping="true"/>
    <title>The Search Space</title>
    <generator>Transistor (https://transistor.fm)</generator>
    <itunes:new-feed-url>https://feeds.transistor.fm/the-search-space</itunes:new-feed-url>
    <description>The Logic Programming podcast. About the history, future, and wider landscape of Logic Programming.</description>
    <copyright>© Holmgren Interstellar, 2024</copyright>
    <podcast:guid>1c6a7fb1-e5d1-5fca-937b-af4e66ade3ac</podcast:guid>
    <podcast:locked owner="felix@thesearch.space">no</podcast:locked>
    <podcast:funding url="https://ko-fi.com/searchspace">Support this podcast</podcast:funding>
    <podcast:trailer pubdate="Wed, 04 Mar 2020 06:00:00 -0800" url="https://media.transistor.fm/a051adf3/6fe059d2.mp3" length="2904529" type="audio/mpeg">Trailer</podcast:trailer>
    <language>en</language>
    <pubDate>Wed, 23 Jul 2025 07:37:12 -0700</pubDate>
    <lastBuildDate>Tue, 02 Dec 2025 12:55:51 -0800</lastBuildDate>
    <link>http://thesearch.space</link>
    <image>
      <url>https://img.transistor.fm/JM9SJOSV26WmJzIGsw1La6nN-GN7wQZy1mZrrHL8D3U/rs:fill:0:0:1/w:1400/h:1400/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9zaG93/Lzc5MDMvMTU4Nzcx/OTIxNi1hcnR3b3Jr/LmpwZw.jpg</url>
      <title>The Search Space</title>
      <link>http://thesearch.space</link>
    </image>
    <itunes:category text="Technology"/>
    <itunes:category text="Society &amp; Culture">
      <itunes:category text="Philosophy"/>
    </itunes:category>
    <itunes:type>episodic</itunes:type>
    <itunes:author>Felix Holmgren</itunes:author>
    <itunes:image href="https://img.transistor.fm/JM9SJOSV26WmJzIGsw1La6nN-GN7wQZy1mZrrHL8D3U/rs:fill:0:0:1/w:1400/h:1400/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9zaG93/Lzc5MDMvMTU4Nzcx/OTIxNi1hcnR3b3Jr/LmpwZw.jpg"/>
    <itunes:summary>The Logic Programming podcast. About the history, future, and wider landscape of Logic Programming.</itunes:summary>
    <itunes:subtitle>The Logic Programming podcast.</itunes:subtitle>
    <itunes:keywords>logic programming, logic, programming, prolog, philosophy, natural language understanding, NLP, artificial intelligence</itunes:keywords>
    <itunes:owner>
      <itunes:name>Felix Holmgren</itunes:name>
    </itunes:owner>
    <itunes:complete>No</itunes:complete>
    <itunes:explicit>No</itunes:explicit>
    <item>
      <title>#6 - Adam Smith on Answer Set Programming</title>
      <itunes:episode>6</itunes:episode>
      <podcast:episode>6</podcast:episode>
      <itunes:title>#6 - Adam Smith on Answer Set Programming</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">2220486f-f30e-49ae-9418-b376d0aae7f1</guid>
      <link>https://share.transistor.fm/s/50769725</link>
      <description>
        <![CDATA[<p>Adam Smith talks about Answer Set Programming, and how he's used it in game design and other areas.</p><p>Visit the show's web page: thesearch.space</p><p><strong>Show notes</strong></p><p>| <a href="https://www.cs.uni-potsdam.de/~torsten/">Torsten Schaub at Potsdam University</a></p><p>Several of his presentations contain the formula</p><p>ASP = DB + LP + KR + SMT^n</p><p>ASP: Answer Set Programming<br>DB: Database<br>LP: Logic Programming<br>KR: Knowledge Representation<br>SMT: <a href="https://en.wikipedia.org/wiki/Satisfiability_modulo_theories">SAT Modulo Theories</a></p><p>SAT solver: <a href="https://en.wikipedia.org/wiki/SAT_solver">Boolean Satisfiability</a></p><p>| this refraction game that I had made a puzzle generator for</p><p>Described in <a href="https://adamsmith.as/dissertation/">Adam's dissertation</a>.</p><p>| the Potassco tools from University of Potsdam.</p><p><a href="https://potassco.org/">potassco.org</a></p><p>| A book called Procedural Content Generation in Games</p><p><a href="https://www.pcgbook.com/">www.pcgbook.com</a></p><p>| There's this idea due to Kate Compton ... of the 10 000 bowls of oatmeal problem </p><p>http://www.galaxykate.com/blog/generator.html</p><p>| We modeled a design space of information visualizations, line plots and scatter plots and bar charts</p><p><a href="https://adamsmith.as/papers/08440847.pdf">"Formalizing Visualization Design Knowledge as Constraints: Actionable and Extensible Models in Draco"<br></a><br>| a Python library called Clorm .. so that you can define your problem instances with Python objects</p><p><a href="https://github.com/potassco/clorm">github.com/potassco/clorm</a></p><p>| the concept of <strong>elaboration tolerance </strong>that when someone gives you some clarification about how your domain works, can you incorporate that change by just adding more code to add more choices or more constraints?</p><p>John McCarthy's <a href="http://jmc.stanford.edu/articles/elaboration.html">paper on elaboration tolerance</a></p><p>| a paper from Google DeepMind ... describing a system called the Apperception Engine</p><p><a href="https://arxiv.org/abs/1910.02227">"Making sense of sensory input"</a>, Evans et al</p><p>| taught a class called <strong>Applied ASP </strong>a few years ago </p><p>Lecture slides, programming assignments, reading assignments here: <a href="https://canvas.ucsc.edu/courses/1338">canvas.ucsc.edu/courses/1338</a></p><p>| Once you want to write a program that's more than 30 lines long, how do you profile it? How do you test it? How do you deploy it?</p><p>Slides from a talk about Adam's test automation framework: <a href="https://docs.google.com/presentation/d/1iJr9ieR9ad9hRetFi0vjFe6Uw8-6WxTgernaguI_QtY">Unit Test Automation for ASP with Ansunit</a></p><p>Try ASP from your browser: <a href="https://potassco.org/clingo/run/">https://potassco.org/clingo/run/</a></p>
<strong>
  <a href="https://ko-fi.com/searchspace" rel="payment" title="★ Support this podcast ★">★ Support this podcast ★</a>
</strong>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Adam Smith talks about Answer Set Programming, and how he's used it in game design and other areas.</p><p>Visit the show's web page: thesearch.space</p><p><strong>Show notes</strong></p><p>| <a href="https://www.cs.uni-potsdam.de/~torsten/">Torsten Schaub at Potsdam University</a></p><p>Several of his presentations contain the formula</p><p>ASP = DB + LP + KR + SMT^n</p><p>ASP: Answer Set Programming<br>DB: Database<br>LP: Logic Programming<br>KR: Knowledge Representation<br>SMT: <a href="https://en.wikipedia.org/wiki/Satisfiability_modulo_theories">SAT Modulo Theories</a></p><p>SAT solver: <a href="https://en.wikipedia.org/wiki/SAT_solver">Boolean Satisfiability</a></p><p>| this refraction game that I had made a puzzle generator for</p><p>Described in <a href="https://adamsmith.as/dissertation/">Adam's dissertation</a>.</p><p>| the Potassco tools from University of Potsdam.</p><p><a href="https://potassco.org/">potassco.org</a></p><p>| A book called Procedural Content Generation in Games</p><p><a href="https://www.pcgbook.com/">www.pcgbook.com</a></p><p>| There's this idea due to Kate Compton ... of the 10 000 bowls of oatmeal problem </p><p>http://www.galaxykate.com/blog/generator.html</p><p>| We modeled a design space of information visualizations, line plots and scatter plots and bar charts</p><p><a href="https://adamsmith.as/papers/08440847.pdf">"Formalizing Visualization Design Knowledge as Constraints: Actionable and Extensible Models in Draco"<br></a><br>| a Python library called Clorm .. so that you can define your problem instances with Python objects</p><p><a href="https://github.com/potassco/clorm">github.com/potassco/clorm</a></p><p>| the concept of <strong>elaboration tolerance </strong>that when someone gives you some clarification about how your domain works, can you incorporate that change by just adding more code to add more choices or more constraints?</p><p>John McCarthy's <a href="http://jmc.stanford.edu/articles/elaboration.html">paper on elaboration tolerance</a></p><p>| a paper from Google DeepMind ... describing a system called the Apperception Engine</p><p><a href="https://arxiv.org/abs/1910.02227">"Making sense of sensory input"</a>, Evans et al</p><p>| taught a class called <strong>Applied ASP </strong>a few years ago </p><p>Lecture slides, programming assignments, reading assignments here: <a href="https://canvas.ucsc.edu/courses/1338">canvas.ucsc.edu/courses/1338</a></p><p>| Once you want to write a program that's more than 30 lines long, how do you profile it? How do you test it? How do you deploy it?</p><p>Slides from a talk about Adam's test automation framework: <a href="https://docs.google.com/presentation/d/1iJr9ieR9ad9hRetFi0vjFe6Uw8-6WxTgernaguI_QtY">Unit Test Automation for ASP with Ansunit</a></p><p>Try ASP from your browser: <a href="https://potassco.org/clingo/run/">https://potassco.org/clingo/run/</a></p>
<strong>
  <a href="https://ko-fi.com/searchspace" rel="payment" title="★ Support this podcast ★">★ Support this podcast ★</a>
</strong>]]>
      </content:encoded>
      <pubDate>Wed, 14 Feb 2024 18:09:59 -0800</pubDate>
      <author>Felix Holmgren</author>
      <enclosure url="https://media.transistor.fm/50769725/ec2f732b.mp3" length="70583580" type="audio/mpeg"/>
      <itunes:author>Felix Holmgren</itunes:author>
      <itunes:duration>4408</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Adam Smith talks about Answer Set Programming, and how he's used it in game design and other areas.</p><p>Visit the show's web page: thesearch.space</p><p><strong>Show notes</strong></p><p>| <a href="https://www.cs.uni-potsdam.de/~torsten/">Torsten Schaub at Potsdam University</a></p><p>Several of his presentations contain the formula</p><p>ASP = DB + LP + KR + SMT^n</p><p>ASP: Answer Set Programming<br>DB: Database<br>LP: Logic Programming<br>KR: Knowledge Representation<br>SMT: <a href="https://en.wikipedia.org/wiki/Satisfiability_modulo_theories">SAT Modulo Theories</a></p><p>SAT solver: <a href="https://en.wikipedia.org/wiki/SAT_solver">Boolean Satisfiability</a></p><p>| this refraction game that I had made a puzzle generator for</p><p>Described in <a href="https://adamsmith.as/dissertation/">Adam's dissertation</a>.</p><p>| the Potassco tools from University of Potsdam.</p><p><a href="https://potassco.org/">potassco.org</a></p><p>| A book called Procedural Content Generation in Games</p><p><a href="https://www.pcgbook.com/">www.pcgbook.com</a></p><p>| There's this idea due to Kate Compton ... of the 10 000 bowls of oatmeal problem </p><p>http://www.galaxykate.com/blog/generator.html</p><p>| We modeled a design space of information visualizations, line plots and scatter plots and bar charts</p><p><a href="https://adamsmith.as/papers/08440847.pdf">"Formalizing Visualization Design Knowledge as Constraints: Actionable and Extensible Models in Draco"<br></a><br>| a Python library called Clorm .. so that you can define your problem instances with Python objects</p><p><a href="https://github.com/potassco/clorm">github.com/potassco/clorm</a></p><p>| the concept of <strong>elaboration tolerance </strong>that when someone gives you some clarification about how your domain works, can you incorporate that change by just adding more code to add more choices or more constraints?</p><p>John McCarthy's <a href="http://jmc.stanford.edu/articles/elaboration.html">paper on elaboration tolerance</a></p><p>| a paper from Google DeepMind ... describing a system called the Apperception Engine</p><p><a href="https://arxiv.org/abs/1910.02227">"Making sense of sensory input"</a>, Evans et al</p><p>| taught a class called <strong>Applied ASP </strong>a few years ago </p><p>Lecture slides, programming assignments, reading assignments here: <a href="https://canvas.ucsc.edu/courses/1338">canvas.ucsc.edu/courses/1338</a></p><p>| Once you want to write a program that's more than 30 lines long, how do you profile it? How do you test it? How do you deploy it?</p><p>Slides from a talk about Adam's test automation framework: <a href="https://docs.google.com/presentation/d/1iJr9ieR9ad9hRetFi0vjFe6Uw8-6WxTgernaguI_QtY">Unit Test Automation for ASP with Ansunit</a></p><p>Try ASP from your browser: <a href="https://potassco.org/clingo/run/">https://potassco.org/clingo/run/</a></p>
<strong>
  <a href="https://ko-fi.com/searchspace" rel="payment" title="★ Support this podcast ★">★ Support this podcast ★</a>
</strong>]]>
      </itunes:summary>
      <itunes:keywords>logic programming, answer set programming, constraint programming, game design</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
    </item>
    <item>
      <title>#5 - Kevin Feeney on TerminusDb and the Semantic Web</title>
      <itunes:episode>5</itunes:episode>
      <podcast:episode>5</podcast:episode>
      <itunes:title>#5 - Kevin Feeney on TerminusDb and the Semantic Web</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">2d6afc37-8eb6-42c2-8a0e-63585453185a</guid>
      <link>https://share.transistor.fm/s/0a6f8c20</link>
      <description>
        <![CDATA[<p>Visit the show's web page: <a href="https://thesearch.space/">thesearch.space</a></p><p><strong>Show notes<br></strong><br></p>I first became aware of Kevin through a series of blog posts that explain the similarities and differences between these different kinds of databases<p><a href="https://terminusdb.com/blog/graph-fundamentals-part-1-rdf-db/">Graph Fundamentals — Part 1: RDF<br></a><br></p><p><a href="https://terminusdb.com/blog/graph-fundamentals-part-2-labeled-property-graphs/">Graph Fundamentals — Part 2: Labelled Property Graphs<br></a><br></p><p><a href="https://terminusdb.com/blog/graph-fundamentals-part-3-graph-schema-languages/">Graph Fundamentals — Part 3: Graph Schema Languages<br></a><br></p><p><a href="https://terminusdb.com/blog/graph-fundamentals-part-4-linked-data/">Graph Fundamentals Part 4: Linked Data<br></a><br></p>Then I found out about TerminusDb<p><a href="https://terminusdb.com/">https://terminusdb.com/<br></a><br></p><p>"a bunch of Swedish hackers with a bunch of JSON blobs"</p><p><a href="https://neo4j.com/">https://neo4j.com/<br></a><br></p><p>Full quote:</p>[...] there have been many more incoherent standards and initiatives that have come out of the W3C’s standards bodies — almost all of which have  launched like lead balloons into a world that cares not a jot.  Nevertheless, it is important to recognise that, hidden in all the  nonsense, there are some exceptionally good ideas — triples, URL  identifiers and OWL itself are all tremendously good ideas in essence  and nothing else out there comes close. It is a sad testament to the  suffocating nature of design by standards committee which has consumed  countless hours of many thousands of smart and genuine researchers, that ultimately the entire community ended up getting it’s ass kicked by a  bunch of Swedish hackers with a bunch of json blobs — the Neo4j property graph guys have had a greater impact upon the real world than the whole academic edifice of semantic web research.<p><br></p><a href="https://en.wikipedia.org/wiki/Semantic_Web">The Semantic Web </a>as a movement came out of Tim Berners-Lee<p>One of the seminal articles:</p><p><a href="https://web.archive.org/web/20171010210556/https://pdfs.semanticscholar.org/566c/1c6bd366b4c9e07fc37eb372771690d5ba31.pdf">https://web.archive.org/web/20171010210556/https://pdfs.semanticscholar.org/566c/1c6bd366b4c9e07fc37eb372771690d5ba31.pdf<br></a><br></p>The Semantic Web is not a separate Web but an extension of the current one, in which information is given well-defined meaning, better enabling computers and people to work in cooperation. ... Adding logic to the Web—the means to use rules to make inferences, choose courses of action and answer questions—is the task before the Semantic Web community at the moment.<p>      — May 17, 2001, <em>The Semantic Web - A new form of Web content that is meaningful to computers will unleash a revolution of new possibilities, </em>Tim Berners-Lee, James Hendler and Ora Lassila </p>The standardization of <a href="https://en.wikipedia.org/wiki/Resource_Description_Framework">RDF</a>, the standardization of <a href="https://en.wikipedia.org/wiki/Web_Ontology_Language">OWL</a><p><br></p>the big, big gap in a lot of the standards of the semantic web was some type of <a href="https://en.wikipedia.org/wiki/Closed-world_assumption">closed world</a> reasoning regime<p><br></p>I was one of the developers of software that ran a thing called <a href="https://en.wikipedia.org/wiki/Independent_Media_Center">Indymedia</a> back in the early two-thousands.<p><br></p>most of the impetus for OWL came out of the <a href="https://en.wikipedia.org/wiki/Description_logic">description logic</a> community<p>...there's a number of very well-known and very accomplished description logic people [...] like <a href="https://www.parc.com/about-parc/our-people/peter-patel-schneider/">Peter Patel-Schneider</a> and <a href="https://www.cs.ox.ac.uk/people/ian.horrocks/">[Ian] Horrocks</a> in Oxford.</p><p><br></p>...they were using predicates to point out that two things, two data structures are the same thing. But the standard didn't ... mean for that to be used for things that just happened to be the same real world thing...<p>Kevin discusses this misuse of <strong>owl:sameAs</strong> and <strong>owl:equivalentClass</strong> in the the fourth of his blog posts linked to above.</p>I was talking to some of the guys in <a href="https://www.semanticarts.com/">Semantic Arts</a>, who are very busy and active consultants in the area.<p><br></p>And then there is this thing called <a href="https://en.wikipedia.org/wiki/Triplestore">RDF stores</a>...<p><br></p>[RDF stores] are based around this concept of a <a href="https://en.wikipedia.org/wiki/Semantic_triple">triple - predicate subject object</a><p><br></p>Just like Google do actually on their front page now for their <strong>knowledge graph</strong><p>The Google Knowledge Graph was introduced in 2012 with the great slogan <a href="https://blog.google/products/search/introducing-knowledge-graph-things-not/">"things, not strings"<br></a><br></p>...the other thing that triples have ... is it makes revision controlled databases possible. <p>From <a href="https://terminusdb.com/blog/terminusdb-a-technical-history/">TerminusDB: A Technical History</a>:</p>...we adopted a delta encoding approach to updates as is used in source control systems such as git. This provides transaction processing and  updates using immutable database data structures, recovering standard  database management features while also providing the whole suite of  revision control features: branch, merge, squash, rollback, blame, and  time-travel...<p><br></p>I've actually seen that very thing being described as a benefit of property graphs that each relation has its own ID and it can have [a] whole data structure associated with it<p>See for example neo4j's blog post <a href="https://neo4j.com/blog/rdf-triple-store-vs-labeled-property-graph-difference/">RDF Triple Stores vs. Labeled Property Graphs: What’s the Difference?</a>, in the section "<strong>Difference #1: RDF Does Not Uniquely Identify Instances of Relationships of the Same Type</strong>".</p>You can do it in SQL these days, but it's sort of a later addition... the WITH syntax, Common Table Expressions they are called... you can actually do recursive queries. <p>I once showed up at a neo4j meetup with <a href="https://gist.github.com/felixyz/fcc90efc53c81d0b4b9c">some examples</a> of doing graphy queries in PostgreSQL using Common Table Expressions. (The presentation would have been more impressive if I had but some indexes on those tables...) A way better introduction is the excellent page on <a href="https://www.sqlite.org/lang_with.html">The WITH Clause</a> in the SQLite documentation.</p>People beat up on <a href="https://en.wikipedia.org/wiki/Database_normalization">normal-form modeling</a> and SQL way more than they should.<p>A good recent blog post on this topic: <a href="https://www.cargocultcode.com/normalization-is-not-a-process/">Normalization is not a process</a>.</p>Even when I'm modelling graph stuff, I start off with basically <a href="https://en.wikipedia.org/wiki/Entity%E2%80%93relationship_m..."></a>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Visit the show's web page: <a href="https://thesearch.space/">thesearch.space</a></p><p><strong>Show notes<br></strong><br></p>I first became aware of Kevin through a series of blog posts that explain the similarities and differences between these different kinds of databases<p><a href="https://terminusdb.com/blog/graph-fundamentals-part-1-rdf-db/">Graph Fundamentals — Part 1: RDF<br></a><br></p><p><a href="https://terminusdb.com/blog/graph-fundamentals-part-2-labeled-property-graphs/">Graph Fundamentals — Part 2: Labelled Property Graphs<br></a><br></p><p><a href="https://terminusdb.com/blog/graph-fundamentals-part-3-graph-schema-languages/">Graph Fundamentals — Part 3: Graph Schema Languages<br></a><br></p><p><a href="https://terminusdb.com/blog/graph-fundamentals-part-4-linked-data/">Graph Fundamentals Part 4: Linked Data<br></a><br></p>Then I found out about TerminusDb<p><a href="https://terminusdb.com/">https://terminusdb.com/<br></a><br></p><p>"a bunch of Swedish hackers with a bunch of JSON blobs"</p><p><a href="https://neo4j.com/">https://neo4j.com/<br></a><br></p><p>Full quote:</p>[...] there have been many more incoherent standards and initiatives that have come out of the W3C’s standards bodies — almost all of which have  launched like lead balloons into a world that cares not a jot.  Nevertheless, it is important to recognise that, hidden in all the  nonsense, there are some exceptionally good ideas — triples, URL  identifiers and OWL itself are all tremendously good ideas in essence  and nothing else out there comes close. It is a sad testament to the  suffocating nature of design by standards committee which has consumed  countless hours of many thousands of smart and genuine researchers, that ultimately the entire community ended up getting it’s ass kicked by a  bunch of Swedish hackers with a bunch of json blobs — the Neo4j property graph guys have had a greater impact upon the real world than the whole academic edifice of semantic web research.<p><br></p><a href="https://en.wikipedia.org/wiki/Semantic_Web">The Semantic Web </a>as a movement came out of Tim Berners-Lee<p>One of the seminal articles:</p><p><a href="https://web.archive.org/web/20171010210556/https://pdfs.semanticscholar.org/566c/1c6bd366b4c9e07fc37eb372771690d5ba31.pdf">https://web.archive.org/web/20171010210556/https://pdfs.semanticscholar.org/566c/1c6bd366b4c9e07fc37eb372771690d5ba31.pdf<br></a><br></p>The Semantic Web is not a separate Web but an extension of the current one, in which information is given well-defined meaning, better enabling computers and people to work in cooperation. ... Adding logic to the Web—the means to use rules to make inferences, choose courses of action and answer questions—is the task before the Semantic Web community at the moment.<p>      — May 17, 2001, <em>The Semantic Web - A new form of Web content that is meaningful to computers will unleash a revolution of new possibilities, </em>Tim Berners-Lee, James Hendler and Ora Lassila </p>The standardization of <a href="https://en.wikipedia.org/wiki/Resource_Description_Framework">RDF</a>, the standardization of <a href="https://en.wikipedia.org/wiki/Web_Ontology_Language">OWL</a><p><br></p>the big, big gap in a lot of the standards of the semantic web was some type of <a href="https://en.wikipedia.org/wiki/Closed-world_assumption">closed world</a> reasoning regime<p><br></p>I was one of the developers of software that ran a thing called <a href="https://en.wikipedia.org/wiki/Independent_Media_Center">Indymedia</a> back in the early two-thousands.<p><br></p>most of the impetus for OWL came out of the <a href="https://en.wikipedia.org/wiki/Description_logic">description logic</a> community<p>...there's a number of very well-known and very accomplished description logic people [...] like <a href="https://www.parc.com/about-parc/our-people/peter-patel-schneider/">Peter Patel-Schneider</a> and <a href="https://www.cs.ox.ac.uk/people/ian.horrocks/">[Ian] Horrocks</a> in Oxford.</p><p><br></p>...they were using predicates to point out that two things, two data structures are the same thing. But the standard didn't ... mean for that to be used for things that just happened to be the same real world thing...<p>Kevin discusses this misuse of <strong>owl:sameAs</strong> and <strong>owl:equivalentClass</strong> in the the fourth of his blog posts linked to above.</p>I was talking to some of the guys in <a href="https://www.semanticarts.com/">Semantic Arts</a>, who are very busy and active consultants in the area.<p><br></p>And then there is this thing called <a href="https://en.wikipedia.org/wiki/Triplestore">RDF stores</a>...<p><br></p>[RDF stores] are based around this concept of a <a href="https://en.wikipedia.org/wiki/Semantic_triple">triple - predicate subject object</a><p><br></p>Just like Google do actually on their front page now for their <strong>knowledge graph</strong><p>The Google Knowledge Graph was introduced in 2012 with the great slogan <a href="https://blog.google/products/search/introducing-knowledge-graph-things-not/">"things, not strings"<br></a><br></p>...the other thing that triples have ... is it makes revision controlled databases possible. <p>From <a href="https://terminusdb.com/blog/terminusdb-a-technical-history/">TerminusDB: A Technical History</a>:</p>...we adopted a delta encoding approach to updates as is used in source control systems such as git. This provides transaction processing and  updates using immutable database data structures, recovering standard  database management features while also providing the whole suite of  revision control features: branch, merge, squash, rollback, blame, and  time-travel...<p><br></p>I've actually seen that very thing being described as a benefit of property graphs that each relation has its own ID and it can have [a] whole data structure associated with it<p>See for example neo4j's blog post <a href="https://neo4j.com/blog/rdf-triple-store-vs-labeled-property-graph-difference/">RDF Triple Stores vs. Labeled Property Graphs: What’s the Difference?</a>, in the section "<strong>Difference #1: RDF Does Not Uniquely Identify Instances of Relationships of the Same Type</strong>".</p>You can do it in SQL these days, but it's sort of a later addition... the WITH syntax, Common Table Expressions they are called... you can actually do recursive queries. <p>I once showed up at a neo4j meetup with <a href="https://gist.github.com/felixyz/fcc90efc53c81d0b4b9c">some examples</a> of doing graphy queries in PostgreSQL using Common Table Expressions. (The presentation would have been more impressive if I had but some indexes on those tables...) A way better introduction is the excellent page on <a href="https://www.sqlite.org/lang_with.html">The WITH Clause</a> in the SQLite documentation.</p>People beat up on <a href="https://en.wikipedia.org/wiki/Database_normalization">normal-form modeling</a> and SQL way more than they should.<p>A good recent blog post on this topic: <a href="https://www.cargocultcode.com/normalization-is-not-a-process/">Normalization is not a process</a>.</p>Even when I'm modelling graph stuff, I start off with basically <a href="https://en.wikipedia.org/wiki/Entity%E2%80%93relationship_m..."></a>]]>
      </content:encoded>
      <pubDate>Sun, 20 Mar 2022 16:10:51 -0700</pubDate>
      <author>Felix Holmgren</author>
      <enclosure url="https://media.transistor.fm/0a6f8c20/10edd6d4.mp3" length="83701803" type="audio/mpeg"/>
      <itunes:author>Felix Holmgren</itunes:author>
      <itunes:duration>5227</itunes:duration>
      <itunes:summary>Kevin Feeney talks about different kinds of graph databases, the role of logic in the Semantic Web vision, the shortcomings the technologies created to fulfill that vision, and how TerminusDb, the database project Kevin co-founded, is seeking to finally make good on the promise of the Semantic Web.</itunes:summary>
      <itunes:subtitle>Kevin Feeney talks about different kinds of graph databases, the role of logic in the Semantic Web vision, the shortcomings the technologies created to fulfill that vision, and how TerminusDb, the database project Kevin co-founded, is seeking to finally m</itunes:subtitle>
      <itunes:keywords>logic programming, logic, semantic web, terminusdb, databases, semantic technologies</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
    </item>
    <item>
      <title>#4 - Markus Triska on constraints and the power of Prolog</title>
      <itunes:episode>4</itunes:episode>
      <podcast:episode>4</podcast:episode>
      <itunes:title>#4 - Markus Triska on constraints and the power of Prolog</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">1749fda8-ac5c-4525-8286-7309ae8b5529</guid>
      <link>https://share.transistor.fm/s/29428c9f</link>
      <description>
        <![CDATA[<p>Visit the show's web page: <a href="https://thesearch.space/">thesearch.space</a></p><p><strong>Show notes</strong></p><p><a href="https://www.metalevel.at/prolog"><strong>The Power of Prolog</strong></a>, Markus' ongoing book project</p>"It says, 'Find your way from darkness to light,' which is one of the quotes that occurs in <a href="https://en.wikipedia.org/wiki/Knight_of_Cups_(film)"><strong><em>The Knight of Cups</em></strong></a>, which is a recent movie by Terrence Malick."<p><br></p>"I was introduced to Prolog by <a href="%20https://www.complang.tuwien.ac.at/ulrich/"><strong>Ulrich Neumerkel</strong></a> at the Vienna University of Technology."<p><br></p> "the convener of the <a href="%20https://www.complang.tuwien.ac.at/ulrich/iso-prolog/"><strong>Prolog ISO standard</strong> </a>group."<p><br></p>"He has developed <a href="%20https://www.complang.tuwien.ac.at/ulrich/gupu/"><strong>his own teaching environment called GUPU</strong></a>, which means <em>talk-assisted programming environment </em>[<em>Gesprächsunterstützende Programmierübungsumgebung</em>]."<p><br></p><p><a href="https://www.complang.tuwien.ac.at/ulrich/papers/PDF/gupu-wlpe2002.pdf"><strong>Declarative program development in Prolog with GUPU</strong></a> (paper)<br></p>"one fellow student came to me and asked for a solution to [what] you may now know as the <a href="https://en.wikipedia.org/wiki/Verbal_arithmetic"><strong>SEND MORE MONEY task</strong></a>."<p>SEND + MORE = MONEY</p>"People have ... in different languages, explored <a href="https://en.wikipedia.org/wiki/Multiple_dispatch%20"><strong>multi-dispatch</strong></a>, multi-methods, and <a href="https://wiki.c2.com/?PredicateDispatching"><strong>all kinds of stuff</strong></a>."<p><br></p>"... the notion that an algorithm can be decomposed into a logic aspect and a control aspect. So this is written as '<a href="%20https://www.doc.ic.ac.uk/~rak/papers/algorithm%20=%20logic%20+%20control.pdf"><strong>algorithm is logic plus control</strong></a>.'"<p><br></p>"...let's look at <a href="%20https://www.swi-prolog.org/pldoc/man?section=httpserver"><strong>the HTTP framework</strong></a> of SWI-Prolog"<p><br></p>"...the first use case that Prolog should solve was translating weather reports between French and English. It was <a href="https://en.wikipedia.org/wiki/METEO_System"><strong>the METEO system</strong></a>..."<p><br></p> "For this purpose ... <a href="https://www.metalevel.at/prolog/dcg"><strong>DCGs were invented</strong></a>. So this is a sub-formalism in Prolog that lets us describe lists in a very natural way."<p><br></p>"...you have kind of a special syntax with the keyword <strong>is</strong>, and many of the normal, nice properties of Prolog start breaking down."<p><strong>(is)/2</strong>  is not actually a keyword or a special syntax. Markus describes the issues involved very well here:</p><p><a href="https://github.com/triska/clpz#an-impure-alternative-low-level-integer-arithmetic">https://github.com/triska/clpz#an-impure-alternative-low-level-integer-arithmetic</a></p><p>and here:</p><p><a href="https://www.metalevel.at/prolog/clpz">https://www.metalevel.at/prolog/clpz</a></p> "It is abbreviated as <a href="https://en.wikipedia.org/wiki/Constraint_satisfaction_problem"><strong>CSP: Constraint Satisfaction Problem</strong></a>."<p><br></p>"You have variables, you have associated domains, which in plain Prolog are always <a href="https://en.wikipedia.org/wiki/Herbrand_structure"><strong>Herbrand terms</strong></a>, named after <a href="%20https://en.wikipedia.org/wiki/Jacques_Herbrand"><strong>Jaques Herbrand</strong></a>."<p><br></p>"In the literature, this has even been mentioned as <strong>the Holy Grail of computer science</strong>. This property [or] at least the idea that users or application programmers specify a task and the system solves it."<p><br>Eugene  C  Freuder.  <em>“In  pursuit  of  the  holy  grail”</em>.  In:Constraints 2.1 (1997), pp. 57–61. (not freely available)</p><p>There is an ongoing series of workshops following up on the ideas in the original paper:</p><p><a href="https://freuder.wordpress.com/pthg-20-the-fourth-workshop-on-progress-towards-the-holy-grail/">https://freuder.wordpress.com/pthg-20-the-fourth-workshop-on-progress-towards-the-holy-grail/<br></a><br></p>"For comparison, [...] the constraint solver for <a href="https://sicstus.sics.se/"><strong>SICStus Prolog</strong></a> is hundreds of times faster than for example what I've implemented."<p><br>&gt; "rusty-wam, implemented in Rust"<br>(hence renamed <a href="https://github.com/mthom/scryer-prolog"><strong>Scryer Prolog</strong></a>, with Markus being an active contributor)</p><p>&gt; "There is <a href="http://eisl.kan-be.com/library/oprolog1.html"><strong>O-Prolog</strong>,</a> which is implemented by Kenichi Sasagawa from Japan."</p><p>&gt; "..in the case of <a href="http://tau-prolog.org/"><strong>Tau Prolog</strong></a>, it's implemented in JavaScript and they can embed Prolog in a web browser"</p><p><br>The Power of Prolog <a href="https://www.youtube.com/channel/UCFFeNyzCEQDS4KCecugmotg"><strong>YouTube channel</strong></a></p>
<strong>
  <a href="https://ko-fi.com/searchspace" rel="payment" title="★ Support this podcast ★">★ Support this podcast ★</a>
</strong>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Visit the show's web page: <a href="https://thesearch.space/">thesearch.space</a></p><p><strong>Show notes</strong></p><p><a href="https://www.metalevel.at/prolog"><strong>The Power of Prolog</strong></a>, Markus' ongoing book project</p>"It says, 'Find your way from darkness to light,' which is one of the quotes that occurs in <a href="https://en.wikipedia.org/wiki/Knight_of_Cups_(film)"><strong><em>The Knight of Cups</em></strong></a>, which is a recent movie by Terrence Malick."<p><br></p>"I was introduced to Prolog by <a href="%20https://www.complang.tuwien.ac.at/ulrich/"><strong>Ulrich Neumerkel</strong></a> at the Vienna University of Technology."<p><br></p> "the convener of the <a href="%20https://www.complang.tuwien.ac.at/ulrich/iso-prolog/"><strong>Prolog ISO standard</strong> </a>group."<p><br></p>"He has developed <a href="%20https://www.complang.tuwien.ac.at/ulrich/gupu/"><strong>his own teaching environment called GUPU</strong></a>, which means <em>talk-assisted programming environment </em>[<em>Gesprächsunterstützende Programmierübungsumgebung</em>]."<p><br></p><p><a href="https://www.complang.tuwien.ac.at/ulrich/papers/PDF/gupu-wlpe2002.pdf"><strong>Declarative program development in Prolog with GUPU</strong></a> (paper)<br></p>"one fellow student came to me and asked for a solution to [what] you may now know as the <a href="https://en.wikipedia.org/wiki/Verbal_arithmetic"><strong>SEND MORE MONEY task</strong></a>."<p>SEND + MORE = MONEY</p>"People have ... in different languages, explored <a href="https://en.wikipedia.org/wiki/Multiple_dispatch%20"><strong>multi-dispatch</strong></a>, multi-methods, and <a href="https://wiki.c2.com/?PredicateDispatching"><strong>all kinds of stuff</strong></a>."<p><br></p>"... the notion that an algorithm can be decomposed into a logic aspect and a control aspect. So this is written as '<a href="%20https://www.doc.ic.ac.uk/~rak/papers/algorithm%20=%20logic%20+%20control.pdf"><strong>algorithm is logic plus control</strong></a>.'"<p><br></p>"...let's look at <a href="%20https://www.swi-prolog.org/pldoc/man?section=httpserver"><strong>the HTTP framework</strong></a> of SWI-Prolog"<p><br></p>"...the first use case that Prolog should solve was translating weather reports between French and English. It was <a href="https://en.wikipedia.org/wiki/METEO_System"><strong>the METEO system</strong></a>..."<p><br></p> "For this purpose ... <a href="https://www.metalevel.at/prolog/dcg"><strong>DCGs were invented</strong></a>. So this is a sub-formalism in Prolog that lets us describe lists in a very natural way."<p><br></p>"...you have kind of a special syntax with the keyword <strong>is</strong>, and many of the normal, nice properties of Prolog start breaking down."<p><strong>(is)/2</strong>  is not actually a keyword or a special syntax. Markus describes the issues involved very well here:</p><p><a href="https://github.com/triska/clpz#an-impure-alternative-low-level-integer-arithmetic">https://github.com/triska/clpz#an-impure-alternative-low-level-integer-arithmetic</a></p><p>and here:</p><p><a href="https://www.metalevel.at/prolog/clpz">https://www.metalevel.at/prolog/clpz</a></p> "It is abbreviated as <a href="https://en.wikipedia.org/wiki/Constraint_satisfaction_problem"><strong>CSP: Constraint Satisfaction Problem</strong></a>."<p><br></p>"You have variables, you have associated domains, which in plain Prolog are always <a href="https://en.wikipedia.org/wiki/Herbrand_structure"><strong>Herbrand terms</strong></a>, named after <a href="%20https://en.wikipedia.org/wiki/Jacques_Herbrand"><strong>Jaques Herbrand</strong></a>."<p><br></p>"In the literature, this has even been mentioned as <strong>the Holy Grail of computer science</strong>. This property [or] at least the idea that users or application programmers specify a task and the system solves it."<p><br>Eugene  C  Freuder.  <em>“In  pursuit  of  the  holy  grail”</em>.  In:Constraints 2.1 (1997), pp. 57–61. (not freely available)</p><p>There is an ongoing series of workshops following up on the ideas in the original paper:</p><p><a href="https://freuder.wordpress.com/pthg-20-the-fourth-workshop-on-progress-towards-the-holy-grail/">https://freuder.wordpress.com/pthg-20-the-fourth-workshop-on-progress-towards-the-holy-grail/<br></a><br></p>"For comparison, [...] the constraint solver for <a href="https://sicstus.sics.se/"><strong>SICStus Prolog</strong></a> is hundreds of times faster than for example what I've implemented."<p><br>&gt; "rusty-wam, implemented in Rust"<br>(hence renamed <a href="https://github.com/mthom/scryer-prolog"><strong>Scryer Prolog</strong></a>, with Markus being an active contributor)</p><p>&gt; "There is <a href="http://eisl.kan-be.com/library/oprolog1.html"><strong>O-Prolog</strong>,</a> which is implemented by Kenichi Sasagawa from Japan."</p><p>&gt; "..in the case of <a href="http://tau-prolog.org/"><strong>Tau Prolog</strong></a>, it's implemented in JavaScript and they can embed Prolog in a web browser"</p><p><br>The Power of Prolog <a href="https://www.youtube.com/channel/UCFFeNyzCEQDS4KCecugmotg"><strong>YouTube channel</strong></a></p>
<strong>
  <a href="https://ko-fi.com/searchspace" rel="payment" title="★ Support this podcast ★">★ Support this podcast ★</a>
</strong>]]>
      </content:encoded>
      <pubDate>Sun, 03 Jan 2021 16:41:40 -0800</pubDate>
      <author>Felix Holmgren</author>
      <enclosure url="https://media.transistor.fm/29428c9f/e2ad92f8.mp3" length="63369130" type="audio/mpeg"/>
      <itunes:author>Felix Holmgren</itunes:author>
      <itunes:duration>3956</itunes:duration>
      <itunes:summary>Markus Triska talks about his work on Constraint Logic Programming packages, writing robust software, modern features of Prolog systems, and the future of logic programming.</itunes:summary>
      <itunes:subtitle>Markus Triska talks about his work on Constraint Logic Programming packages, writing robust software, modern features of Prolog systems, and the future of logic programming.</itunes:subtitle>
      <itunes:keywords>logic programming, constraint programming, constraint logic programming, Prolog, logic</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
    </item>
    <item>
      <title>#3 - Chris Martens on narrative generation</title>
      <itunes:episode>3</itunes:episode>
      <podcast:episode>3</podcast:episode>
      <itunes:title>#3 - Chris Martens on narrative generation</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">2ba6704e-719c-4bbb-bf73-10acc3eda10e</guid>
      <link>https://share.transistor.fm/s/8cede1e9</link>
      <description>
        <![CDATA[<p>Visit the show's web page: <a href="https://thesearch.space/">thesearch.space</a></p><p><strong>Show notes</strong></p><p>Chris Martens' academic website<br><a href="https://www.csc.ncsu.edu/people/crmarten">https://www.csc.ncsu.edu/people/crmarten</a><br><strong><br>04:30</strong><br><a href="https://www.cs.cmu.edu/~cmartens/thesis/">"Programming Interactive Worlds with Linear Logic"</a>, Chris' Ph.D. thesis</p><p><strong>06:10</strong><br>James Meehan’s, Tale-Spin thesis<br><a href="https://archive.org/details/DTIC_ADA031625/page/n111/mode/2up">"The Metanovel: Writing Stories by Computer"</a></p><p>A great post about the story of Tale-Spin's creation:<br><a href="https://grandtextauto.soe.ucsc.edu/2006/09/13/the-story-of-meehans-tale-spin/">https://grandtextauto.soe.ucsc.edu/2006/09/13/the-story-of-meehans-tale-spin/</a></p><p><strong>18:40</strong><br><a href="http://twelf.org/wiki/Main_Page">The Twelf Project</a></p>"a language used to specify, implement, and prove properties of deductive systems such as programming languages and logics"<p><a href="http://twelf.org/wiki/LF">The dependently typed logif LF</a></p><p><br><strong>20:50</strong><br><a href="https://en.wikipedia.org/wiki/Linear_logic">Linear logic</a></p><p><a href="https://girard.perso.math.cnrs.fr/Accueil.html">Jean-Yves Girard</a></p><p><a href="https://girard.perso.math.cnrs.fr/linear.pdf">The original paper</a><br>(The first sentence begins: "Linear logic is a logic behind logic...")</p><p><strong>22:00</strong><br>"A form of logical implication pronounced A lolly B" ... I wish I had a screen to draw on"<br>Looks like this:  A -o B  (a modified arrow from A to B)<br><strong><br>25:10</strong><br><a href="https://plato.stanford.edu/entries/frame-problem/">The frame problem</a></p><p><strong>25:20</strong><br><a href="https://en.wikipedia.org/wiki/Temporal_logic">Temporal logic</a><br><a href="https://en.wikipedia.org/wiki/Event_calculus">Event calculus</a></p><p><strong>26:50</strong><br><a href="https://www.leacock.com/pandemic">Pandemic board game</a></p>"5% of my design royalty for Pandemic products is donated directly to Doctors Without Borders"<p><a href="%20https://www.leacock.com/about">https://www.leacock.com/about</a></p><p><strong>44:40</strong><br><a href="https://en.wikipedia.org/wiki/Interactive_fiction">Interactive fiction</a></p>"software simulating environments in which players use text commands to control characters and influence the environment"<p><a href="https://www.ifarchive.org/">https://www.ifarchive.org/</a></p><p><strong>47:30</strong><br><a href="https://en.wikipedia.org/wiki/Behavior_tree">Behavior trees</a></p><p><strong>56:00</strong><br><a href="https://liquidnarrative.csc.ncsu.edu/rmy/">R. Michael Young</a></p>"His research focuses on the development of computational models of interactive narrative with applications to computer games, educational and training systems and virtual environments."<p><br><strong>57:30</strong><br><a href="https://twitter.com/chrisamaphone">https://twitter.com/chrisamaphone</a><br><a href="https://github.com/chrisamaphone">github.com/chrisamaphone</a></p>
<strong>
  <a href="https://ko-fi.com/searchspace" rel="payment" title="★ Support this podcast ★">★ Support this podcast ★</a>
</strong>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Visit the show's web page: <a href="https://thesearch.space/">thesearch.space</a></p><p><strong>Show notes</strong></p><p>Chris Martens' academic website<br><a href="https://www.csc.ncsu.edu/people/crmarten">https://www.csc.ncsu.edu/people/crmarten</a><br><strong><br>04:30</strong><br><a href="https://www.cs.cmu.edu/~cmartens/thesis/">"Programming Interactive Worlds with Linear Logic"</a>, Chris' Ph.D. thesis</p><p><strong>06:10</strong><br>James Meehan’s, Tale-Spin thesis<br><a href="https://archive.org/details/DTIC_ADA031625/page/n111/mode/2up">"The Metanovel: Writing Stories by Computer"</a></p><p>A great post about the story of Tale-Spin's creation:<br><a href="https://grandtextauto.soe.ucsc.edu/2006/09/13/the-story-of-meehans-tale-spin/">https://grandtextauto.soe.ucsc.edu/2006/09/13/the-story-of-meehans-tale-spin/</a></p><p><strong>18:40</strong><br><a href="http://twelf.org/wiki/Main_Page">The Twelf Project</a></p>"a language used to specify, implement, and prove properties of deductive systems such as programming languages and logics"<p><a href="http://twelf.org/wiki/LF">The dependently typed logif LF</a></p><p><br><strong>20:50</strong><br><a href="https://en.wikipedia.org/wiki/Linear_logic">Linear logic</a></p><p><a href="https://girard.perso.math.cnrs.fr/Accueil.html">Jean-Yves Girard</a></p><p><a href="https://girard.perso.math.cnrs.fr/linear.pdf">The original paper</a><br>(The first sentence begins: "Linear logic is a logic behind logic...")</p><p><strong>22:00</strong><br>"A form of logical implication pronounced A lolly B" ... I wish I had a screen to draw on"<br>Looks like this:  A -o B  (a modified arrow from A to B)<br><strong><br>25:10</strong><br><a href="https://plato.stanford.edu/entries/frame-problem/">The frame problem</a></p><p><strong>25:20</strong><br><a href="https://en.wikipedia.org/wiki/Temporal_logic">Temporal logic</a><br><a href="https://en.wikipedia.org/wiki/Event_calculus">Event calculus</a></p><p><strong>26:50</strong><br><a href="https://www.leacock.com/pandemic">Pandemic board game</a></p>"5% of my design royalty for Pandemic products is donated directly to Doctors Without Borders"<p><a href="%20https://www.leacock.com/about">https://www.leacock.com/about</a></p><p><strong>44:40</strong><br><a href="https://en.wikipedia.org/wiki/Interactive_fiction">Interactive fiction</a></p>"software simulating environments in which players use text commands to control characters and influence the environment"<p><a href="https://www.ifarchive.org/">https://www.ifarchive.org/</a></p><p><strong>47:30</strong><br><a href="https://en.wikipedia.org/wiki/Behavior_tree">Behavior trees</a></p><p><strong>56:00</strong><br><a href="https://liquidnarrative.csc.ncsu.edu/rmy/">R. Michael Young</a></p>"His research focuses on the development of computational models of interactive narrative with applications to computer games, educational and training systems and virtual environments."<p><br><strong>57:30</strong><br><a href="https://twitter.com/chrisamaphone">https://twitter.com/chrisamaphone</a><br><a href="https://github.com/chrisamaphone">github.com/chrisamaphone</a></p>
<strong>
  <a href="https://ko-fi.com/searchspace" rel="payment" title="★ Support this podcast ★">★ Support this podcast ★</a>
</strong>]]>
      </content:encoded>
      <pubDate>Sun, 23 Aug 2020 02:19:44 -0700</pubDate>
      <author>Felix Holmgren</author>
      <enclosure url="https://media.transistor.fm/8cede1e9/7ef76acf.mp3" length="87288069" type="audio/mpeg"/>
      <itunes:author>Felix Holmgren</itunes:author>
      <itunes:duration>3634</itunes:duration>
      <itunes:summary>Chris Martens talks about using linear logic programming to generate interactive narratives, and various ways to apply logic to games and digital arts.</itunes:summary>
      <itunes:subtitle>Chris Martens talks about using linear logic programming to generate interactive narratives, and various ways to apply logic to games and digital arts.</itunes:subtitle>
      <itunes:keywords>logic programming, logic, interactive fiction, linear logic, prolog, programming</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
    </item>
    <item>
      <title>#2 - Ryan Brush on retaking rules for developers</title>
      <itunes:episode>2</itunes:episode>
      <podcast:episode>2</podcast:episode>
      <itunes:title>#2 - Ryan Brush on retaking rules for developers</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">86e7b7dc-a149-43d3-aa6d-3b3b4b9ca1c5</guid>
      <link>https://share.transistor.fm/s/cbda60a4</link>
      <description>
        <![CDATA[<p><strong>Show notes (full notes coming up, please check back soon)</strong></p><p>Ryan's talk about Clara at Strange Loop (2014)<br><a href="https://www.youtube.com/watch?v=Z6oVuYmRgkk">https://www.youtube.com/watch?v=Z6oVuYmRgkk</a></p><p><br><a href="https://github.com/quoll/naga">https://github.com/quoll/naga<br></a><a href="https://github.com/ulfurinn/wongi-engine">https://github.com/ulfurinn/wongi-engine</a><br><a href="https://github.com/jruizgit/rules">https://github.com/jruizgit/rules<br></a><br></p>
<strong>
  <a href="https://ko-fi.com/searchspace" rel="payment" title="★ Support this podcast ★">★ Support this podcast ★</a>
</strong>]]>
      </description>
      <content:encoded>
        <![CDATA[<p><strong>Show notes (full notes coming up, please check back soon)</strong></p><p>Ryan's talk about Clara at Strange Loop (2014)<br><a href="https://www.youtube.com/watch?v=Z6oVuYmRgkk">https://www.youtube.com/watch?v=Z6oVuYmRgkk</a></p><p><br><a href="https://github.com/quoll/naga">https://github.com/quoll/naga<br></a><a href="https://github.com/ulfurinn/wongi-engine">https://github.com/ulfurinn/wongi-engine</a><br><a href="https://github.com/jruizgit/rules">https://github.com/jruizgit/rules<br></a><br></p>
<strong>
  <a href="https://ko-fi.com/searchspace" rel="payment" title="★ Support this podcast ★">★ Support this podcast ★</a>
</strong>]]>
      </content:encoded>
      <pubDate>Mon, 08 Jun 2020 05:00:00 -0700</pubDate>
      <author>Felix Holmgren</author>
      <enclosure url="https://media.transistor.fm/cbda60a4/d5f5396d.mp3" length="47543856" type="audio/mpeg"/>
      <itunes:author>Felix Holmgren</itunes:author>
      <itunes:duration>2967</itunes:duration>
      <itunes:summary>Ryan Brush talks about Clara, a rules engine written in Clojure, and how to close the semantic gap between specification and implementation.</itunes:summary>
      <itunes:subtitle>Ryan Brush talks about Clara, a rules engine written in Clojure, and how to close the semantic gap between specification and implementation.</itunes:subtitle>
      <itunes:keywords>logic programming, logic, rule engine, rules engine, clojure, production rules</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
    </item>
    <item>
      <title>#1 - The Poet of Logic Programming</title>
      <itunes:episode>1</itunes:episode>
      <podcast:episode>1</podcast:episode>
      <itunes:title>#1 - The Poet of Logic Programming</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">d79dab25-9856-480a-be7a-1b9034f18d87</guid>
      <link>https://share.transistor.fm/s/0882fff6</link>
      <description>
        <![CDATA[<p><strong>Show notes</strong></p><p><strong>08:10<br></strong>John Alan Robinson<br>https://en.wikipedia.org/wiki/John_Alan_Robinson</p><p><em>Computational Logic: Memories of the Past and Challenges for the Future<br></em>http://www.computational-logic.org/iccl/downloads/Robinson-CL2000.pdf</p><p>Maarten van Emden has great material about Robinson, including two interviews:</p><ul><li>https://vanemden.wordpress.com/2016/09/16/alan-robinson/</li><li>https://vanemden.wordpress.com/2010/06/08/interview-with-alan-robinson-inventor-of-resolution-logic/</li><li>http://aarinc.org/Newsletters/089-2010-10.html#robinson</li></ul><p><br><strong>08:55<br></strong><em>The Early Years of Logic Programming</em> (Kowalski)<br>https://www.doc.ic.ac.uk/~rak/papers/the%20early%20years.pdf</p><p><strong>12:05</strong><br><em>The British Nationality Act as a Logic Program<br></em>https://www.doc.ic.ac.uk/~rak/papers/British%20Nationality%20Act.pdf</p><p><strong>12:45</strong><br>Horn clause logic<br>https://en.wikipedia.org/wiki/Horn_clause</p><p><strong>14:32</strong><br>Dual process theory<br>https://en.wikipedia.org/wiki/Dual_process_theory<br>https://en.wikipedia.org/wiki/Thinking,_Fast_and_Slow</p><p><strong>16:30</strong><br>Alternatives to logic representations of knowledge</p><ul><li>https://en.wikipedia.org/wiki/Semantic_network</li><li>https://en.wikipedia.org/wiki/And%E2%80%93or_tree</li><li>https://www.doc.ic.ac.uk/~rak/papers/History.pdf</li></ul><p><br><strong>17:10<br></strong>Minsky’s frames<br>https://en.wikipedia.org/wiki/Frame_(artificial_intelligence)</p><p><strong>17:30<br></strong>Non-monotonic logic<br>https://en.wikipedia.org/wiki/Non-monotonic_logic</p><p><strong>18:10<br></strong>First-order logic<br>https://en.wikipedia.org/wiki/First-order_logic</p><p><strong>20:45<br></strong>List concatenation (the append/3 predicate)<br>http://www.learnprolognow.org/lpnpage.php?pagetype=html&amp;pageid=lpn-htmlse24</p><p><strong>23:55<br></strong>Datalog<br>https://en.wikipedia.org/wiki/Datalog</p><p>Answer Set Programming<br>https://en.wikipedia.org/wiki/Answer_set_programming</p><p><strong>25:50<br></strong>Cordell Green<br>https://en.wikipedia.org/wiki/Cordell_Green</p><p><strong>26:50<br></strong>"it was Cordell who was interested in knowledge representation"</p><p><em>STANFORD ARTIFICIAL INTELLIGENCE PROJECT, MEMO Al-96<br>The Application of Theorem Proving to Question-Answering Systems</em><br>https://www.kestrel.edu/home/people/green/publications/green-thesis.pdf</p><p><em>Theorem-Proving by Resolution as a Basis for Question-Answering Systems<br></em>https://www.kestrel.edu/home/people/green/publications/theorem-proving.pdf</p><p><strong>29:50<br></strong>Planner, Hewitt, Winograd<br>https://en.wikipedia.org/wiki/Planner_(programming_language)<br>https://en.wikipedia.org/wiki/Terry_Winograd</p><p><strong>35:00<br></strong>Monads<br>https://en.wikipedia.org/wiki/Monad_(functional_programming)</p><p><strong>40:10<br></strong>Alain Colmerauer<br>https://en.wikipedia.org/wiki/Alain_Colmerauer</p><p><em>Un Systeme de Communication Homme-Machine en Francais</em><br>http://alain.colmerauer.free.fr/alcol/ArchivesPublications/HommeMachineFr/HoMa.pdf</p><p><strong>42:00<br></strong>Pat Hayes<br>https://en.wikipedia.org/wiki/Pat_Hayes<br>https://www.ihmc.us/groups/phayes/</p><p><strong>43:15<br></strong><em>The Birth of Prolog</em> (Alain Colmerauer and Philippe Roussel)<br>http://alain.colmerauer.free.fr/alcol/ArchivesPublications/PrologHistory/19november92.pdf</p><p><strong>46:00<br></strong><em>Computational Logic and Human Thinking: How to be Artificially Intelligent<br></em>https://www.doc.ic.ac.uk/~rak/papers/newbook.pdf</p><p><strong>49:00<br></strong><em>The Pyramid Principle: Logic in Writing and Thinking</em> (Barbara Minto)<br>https://www.goodreads.com/book/show/1990595.The_Pyramid_Principle</p><p><strong>51:00<br></strong>Unification<br>https://en.wikipedia.org/wiki/Unification_(computer_science)</p><p><strong>52:20<br></strong>Backtracking<br>https://en.wikipedia.org/wiki/Backtracking</p><p><strong>56:10<br></strong>Production rules<br>https://en.wikipedia.org/wiki/Production_system_(computer_science)</p><p><strong>57:10<br></strong>Expert systems<br>https://en.wikipedia.org/wiki/Expert_systems</p><p><strong>01:08:30<br></strong>The Fifth Generation Computer Systems project<br>https://en.wikipedia.org/wiki/Fifth_generation_computer</p><p><strong>1:09:50<br></strong>MapReduce<br>https://en.wikipedia.org/wiki/MapReduce</p><p><strong>1:17:00<br></strong>Event calculus<br>https://en.wikipedia.org/wiki/Event_calculus</p><p><strong>1:18:20<br></strong>Logic Production Systems<br>http://lps.doc.ic.ac.uk/</p><p><strong>1:19:40<br></strong>Logical Contracts (company)<br>http://logicalcontracts.com/</p><p><strong>1:29:45<br></strong>Minsky's attack on the perceptron<br>https://en.wikipedia.org/wiki/Perceptron</p>
<strong>
  <a href="https://ko-fi.com/searchspace" rel="payment" title="★ Support this podcast ★">★ Support this podcast ★</a>
</strong>]]>
      </description>
      <content:encoded>
        <![CDATA[<p><strong>Show notes</strong></p><p><strong>08:10<br></strong>John Alan Robinson<br>https://en.wikipedia.org/wiki/John_Alan_Robinson</p><p><em>Computational Logic: Memories of the Past and Challenges for the Future<br></em>http://www.computational-logic.org/iccl/downloads/Robinson-CL2000.pdf</p><p>Maarten van Emden has great material about Robinson, including two interviews:</p><ul><li>https://vanemden.wordpress.com/2016/09/16/alan-robinson/</li><li>https://vanemden.wordpress.com/2010/06/08/interview-with-alan-robinson-inventor-of-resolution-logic/</li><li>http://aarinc.org/Newsletters/089-2010-10.html#robinson</li></ul><p><br><strong>08:55<br></strong><em>The Early Years of Logic Programming</em> (Kowalski)<br>https://www.doc.ic.ac.uk/~rak/papers/the%20early%20years.pdf</p><p><strong>12:05</strong><br><em>The British Nationality Act as a Logic Program<br></em>https://www.doc.ic.ac.uk/~rak/papers/British%20Nationality%20Act.pdf</p><p><strong>12:45</strong><br>Horn clause logic<br>https://en.wikipedia.org/wiki/Horn_clause</p><p><strong>14:32</strong><br>Dual process theory<br>https://en.wikipedia.org/wiki/Dual_process_theory<br>https://en.wikipedia.org/wiki/Thinking,_Fast_and_Slow</p><p><strong>16:30</strong><br>Alternatives to logic representations of knowledge</p><ul><li>https://en.wikipedia.org/wiki/Semantic_network</li><li>https://en.wikipedia.org/wiki/And%E2%80%93or_tree</li><li>https://www.doc.ic.ac.uk/~rak/papers/History.pdf</li></ul><p><br><strong>17:10<br></strong>Minsky’s frames<br>https://en.wikipedia.org/wiki/Frame_(artificial_intelligence)</p><p><strong>17:30<br></strong>Non-monotonic logic<br>https://en.wikipedia.org/wiki/Non-monotonic_logic</p><p><strong>18:10<br></strong>First-order logic<br>https://en.wikipedia.org/wiki/First-order_logic</p><p><strong>20:45<br></strong>List concatenation (the append/3 predicate)<br>http://www.learnprolognow.org/lpnpage.php?pagetype=html&amp;pageid=lpn-htmlse24</p><p><strong>23:55<br></strong>Datalog<br>https://en.wikipedia.org/wiki/Datalog</p><p>Answer Set Programming<br>https://en.wikipedia.org/wiki/Answer_set_programming</p><p><strong>25:50<br></strong>Cordell Green<br>https://en.wikipedia.org/wiki/Cordell_Green</p><p><strong>26:50<br></strong>"it was Cordell who was interested in knowledge representation"</p><p><em>STANFORD ARTIFICIAL INTELLIGENCE PROJECT, MEMO Al-96<br>The Application of Theorem Proving to Question-Answering Systems</em><br>https://www.kestrel.edu/home/people/green/publications/green-thesis.pdf</p><p><em>Theorem-Proving by Resolution as a Basis for Question-Answering Systems<br></em>https://www.kestrel.edu/home/people/green/publications/theorem-proving.pdf</p><p><strong>29:50<br></strong>Planner, Hewitt, Winograd<br>https://en.wikipedia.org/wiki/Planner_(programming_language)<br>https://en.wikipedia.org/wiki/Terry_Winograd</p><p><strong>35:00<br></strong>Monads<br>https://en.wikipedia.org/wiki/Monad_(functional_programming)</p><p><strong>40:10<br></strong>Alain Colmerauer<br>https://en.wikipedia.org/wiki/Alain_Colmerauer</p><p><em>Un Systeme de Communication Homme-Machine en Francais</em><br>http://alain.colmerauer.free.fr/alcol/ArchivesPublications/HommeMachineFr/HoMa.pdf</p><p><strong>42:00<br></strong>Pat Hayes<br>https://en.wikipedia.org/wiki/Pat_Hayes<br>https://www.ihmc.us/groups/phayes/</p><p><strong>43:15<br></strong><em>The Birth of Prolog</em> (Alain Colmerauer and Philippe Roussel)<br>http://alain.colmerauer.free.fr/alcol/ArchivesPublications/PrologHistory/19november92.pdf</p><p><strong>46:00<br></strong><em>Computational Logic and Human Thinking: How to be Artificially Intelligent<br></em>https://www.doc.ic.ac.uk/~rak/papers/newbook.pdf</p><p><strong>49:00<br></strong><em>The Pyramid Principle: Logic in Writing and Thinking</em> (Barbara Minto)<br>https://www.goodreads.com/book/show/1990595.The_Pyramid_Principle</p><p><strong>51:00<br></strong>Unification<br>https://en.wikipedia.org/wiki/Unification_(computer_science)</p><p><strong>52:20<br></strong>Backtracking<br>https://en.wikipedia.org/wiki/Backtracking</p><p><strong>56:10<br></strong>Production rules<br>https://en.wikipedia.org/wiki/Production_system_(computer_science)</p><p><strong>57:10<br></strong>Expert systems<br>https://en.wikipedia.org/wiki/Expert_systems</p><p><strong>01:08:30<br></strong>The Fifth Generation Computer Systems project<br>https://en.wikipedia.org/wiki/Fifth_generation_computer</p><p><strong>1:09:50<br></strong>MapReduce<br>https://en.wikipedia.org/wiki/MapReduce</p><p><strong>1:17:00<br></strong>Event calculus<br>https://en.wikipedia.org/wiki/Event_calculus</p><p><strong>1:18:20<br></strong>Logic Production Systems<br>http://lps.doc.ic.ac.uk/</p><p><strong>1:19:40<br></strong>Logical Contracts (company)<br>http://logicalcontracts.com/</p><p><strong>1:29:45<br></strong>Minsky's attack on the perceptron<br>https://en.wikipedia.org/wiki/Perceptron</p>
<strong>
  <a href="https://ko-fi.com/searchspace" rel="payment" title="★ Support this podcast ★">★ Support this podcast ★</a>
</strong>]]>
      </content:encoded>
      <pubDate>Fri, 24 Apr 2020 02:00:00 -0700</pubDate>
      <author>Felix Holmgren</author>
      <enclosure url="https://media.transistor.fm/0882fff6/c13d2cf9.mp3" length="46105370" type="audio/mpeg"/>
      <itunes:author>Felix Holmgren</itunes:author>
      <itunes:image href="https://img.transistor.fm/-jNTRcutrY5tZ-fuR_aYlJ5NIoY53BVifz7H8CDq560/rs:fill:0:0:1/w:1400/h:1400/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9lcGlz/b2RlLzI0NTE5Ny8x/NTg3NzE4ODEwLWFy/dHdvcmsuanBn.jpg"/>
      <itunes:duration>5753</itunes:duration>
      <itunes:summary>An interview with Robert Kowalski, the co-creator of the field of logic programming and of the language Prolog. The conversation ranges over the history of Prolog, the ill-famed Fifth Generation Computer Systems project, the relation between symbolic AI and connectionist AI including deep learning, why rule engines fail at logic, and the future of logic programming. Find show notes and more on thesearch.space, and follow the show on Twitter: @searchspacepod</itunes:summary>
      <itunes:subtitle>An interview with Robert Kowalski, the co-creator of the field of logic programming and of the language Prolog. The conversation ranges over the history of Prolog, the ill-famed Fifth Generation Computer Systems project, the relation between symbolic AI a</itunes:subtitle>
      <itunes:keywords>logic programming, programming, logic, prolog, robert kowalski, artificial intelligence, symbolic ai, declarative programming</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
    </item>
    <item>
      <title>Trailer</title>
      <itunes:title>Trailer</itunes:title>
      <itunes:episodeType>trailer</itunes:episodeType>
      <guid isPermaLink="false">fb4eea10-ff3a-4cfc-9db0-42cb7a50b491</guid>
      <link>https://share.transistor.fm/s/a051adf3</link>
      <description>
        <![CDATA[<p>Logic Programming, you say? That might sound like either an oxymoron or a tautology to you, depending on who you are. If you <em>have</em> heard about Logic Programming before, you are probably thinking about Prolog - a programming language that is almost 50 years old, and which many find fascinating but also frustratingly limited.</p><p>What is logic? Many people consider it synonymous with dry intellect, humorless bureaucracy, the opposite of creativity. But in my understanding, logic is an attempt to capture the essence of thought, which is to say the essence of what we humans find reasonable, persuasive, and possible. The study of logic goes straight to some of our fundamental intuitions about the world and ourselves, and it's really not clear at all what they are rooted in. People have lots of different opinions about this. Logic looks very clear-cut on the surface, but when you dig you bump into some of the deepest perennial questions in philosophy. And this doesn't change when we arrive at modern, formalized logic, which sort of looks like mathematics - you are still dealing with deep questions about human psychology and cognition, and how we perceive the physical world.</p><p>Now, it turns out formal logic can be used as a programming language. If you are careful about which parts of logic you use, and in which form you write things down, formal logic fits very well with how programming languages are executed. So you can write down some logical formulas, and you get two interpretations: the logical interpretation, and the procedural interpretation which is how you run it on a computer. And these two are, let's say, in sync - you get the deductions you would expect from both interpretations.</p><p>As a programming paradigm, this has some really unusual and fun features, and since logic in the first place is, again, an attempt to capture the essence of human though, Logic Programming is in many respects very intuitive. To me, it's the closest to what I imagined programming would be like when I was 10 and had just started to understand that there was a way to tell computers what to do.</p>
<strong>
  <a href="https://ko-fi.com/searchspace" rel="payment" title="★ Support this podcast ★">★ Support this podcast ★</a>
</strong>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Logic Programming, you say? That might sound like either an oxymoron or a tautology to you, depending on who you are. If you <em>have</em> heard about Logic Programming before, you are probably thinking about Prolog - a programming language that is almost 50 years old, and which many find fascinating but also frustratingly limited.</p><p>What is logic? Many people consider it synonymous with dry intellect, humorless bureaucracy, the opposite of creativity. But in my understanding, logic is an attempt to capture the essence of thought, which is to say the essence of what we humans find reasonable, persuasive, and possible. The study of logic goes straight to some of our fundamental intuitions about the world and ourselves, and it's really not clear at all what they are rooted in. People have lots of different opinions about this. Logic looks very clear-cut on the surface, but when you dig you bump into some of the deepest perennial questions in philosophy. And this doesn't change when we arrive at modern, formalized logic, which sort of looks like mathematics - you are still dealing with deep questions about human psychology and cognition, and how we perceive the physical world.</p><p>Now, it turns out formal logic can be used as a programming language. If you are careful about which parts of logic you use, and in which form you write things down, formal logic fits very well with how programming languages are executed. So you can write down some logical formulas, and you get two interpretations: the logical interpretation, and the procedural interpretation which is how you run it on a computer. And these two are, let's say, in sync - you get the deductions you would expect from both interpretations.</p><p>As a programming paradigm, this has some really unusual and fun features, and since logic in the first place is, again, an attempt to capture the essence of human though, Logic Programming is in many respects very intuitive. To me, it's the closest to what I imagined programming would be like when I was 10 and had just started to understand that there was a way to tell computers what to do.</p>
<strong>
  <a href="https://ko-fi.com/searchspace" rel="payment" title="★ Support this podcast ★">★ Support this podcast ★</a>
</strong>]]>
      </content:encoded>
      <pubDate>Wed, 04 Mar 2020 06:00:00 -0800</pubDate>
      <author>Felix Holmgren</author>
      <enclosure url="https://media.transistor.fm/a051adf3/6fe059d2.mp3" length="2904529" type="audio/mpeg"/>
      <itunes:author>Felix Holmgren</itunes:author>
      <itunes:duration>353</itunes:duration>
      <itunes:summary>Felix introduces the podcast and briefly explains what logic programming is.</itunes:summary>
      <itunes:subtitle>Felix introduces the podcast and briefly explains what logic programming is.</itunes:subtitle>
      <itunes:keywords>logic programming, logic, programming, prolog, philosophy, natural language understanding, NLP, artificial intelligence</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
    </item>
  </channel>
</rss>
