<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: Noumenal Null</title>
	<atom:link href="http://apocalisp.wordpress.com/2008/05/03/null-vs-pure-reason/feed/" rel="self" type="application/rss+xml" />
	<link>http://apocalisp.wordpress.com/2008/05/03/null-vs-pure-reason/</link>
	<description>The end of programming as you know it</description>
	<lastBuildDate>Fri, 06 Nov 2009 19:54:51 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: grumpylittleted</title>
		<link>http://apocalisp.wordpress.com/2008/05/03/null-vs-pure-reason/#comment-575</link>
		<dc:creator>grumpylittleted</dc:creator>
		<pubDate>Tue, 09 Jun 2009 17:04:08 +0000</pubDate>
		<guid isPermaLink="false">http://apocalisp.wordpress.com/?p=9#comment-575</guid>
		<description>Great post, but there are a few, well, misconceptions.

See &lt;a href=&quot;http://andthroughthewire.wordpress.com/2009/06/09/embrace-the-unknown-dealing-with-nulls-in-sql-and-rdbmss/&quot; rel=&quot;nofollow&quot;&gt;Embrace the unknown: Dealing with nulls in SQL and RDBMSs&lt;/a&gt;</description>
		<content:encoded><![CDATA[<p>Great post, but there are a few, well, misconceptions.</p>
<p>See <a href="http://andthroughthewire.wordpress.com/2009/06/09/embrace-the-unknown-dealing-with-nulls-in-sql-and-rdbmss/" rel="nofollow">Embrace the unknown: Dealing with nulls in SQL and RDBMSs</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: apocalisp</title>
		<link>http://apocalisp.wordpress.com/2008/05/03/null-vs-pure-reason/#comment-518</link>
		<dc:creator>apocalisp</dc:creator>
		<pubDate>Tue, 02 Jun 2009 03:15:01 +0000</pubDate>
		<guid isPermaLink="false">http://apocalisp.wordpress.com/?p=9#comment-518</guid>
		<description>Evan,

I was specifically talking about equivalence and identity of data values and programs. These are abstract mathematical entities, not physical existents like bananas. Physical things have distinct identity, as their measurable attributes differ (your bananas will differ in shape, colour, location, etc). But it&#039;s totally meaningless to speak of a difference in the &quot;fiveness&quot; of five bananas and five cars. The number 5 is equal and identical with itself.

That said, it&#039;s important, when speaking in the abstract, of establishing context for identity. We often talk of things being identical &quot;up to&quot; or &quot;modulo&quot; some equivalence relation. For example, while there&#039;s no sense in which the list [one, two, three] is not identical to the list [one, two, three], we can say that the list [three, two, one] is identical to the list [two, one, three] &quot;up to list order&quot;. That is, we&#039;re making clear that the relevant concept, that establishes identity, omits the measurable attribute of order in this context.</description>
		<content:encoded><![CDATA[<p>Evan,</p>
<p>I was specifically talking about equivalence and identity of data values and programs. These are abstract mathematical entities, not physical existents like bananas. Physical things have distinct identity, as their measurable attributes differ (your bananas will differ in shape, colour, location, etc). But it&#8217;s totally meaningless to speak of a difference in the &#8220;fiveness&#8221; of five bananas and five cars. The number 5 is equal and identical with itself.</p>
<p>That said, it&#8217;s important, when speaking in the abstract, of establishing context for identity. We often talk of things being identical &#8220;up to&#8221; or &#8220;modulo&#8221; some equivalence relation. For example, while there&#8217;s no sense in which the list [one, two, three] is not identical to the list [one, two, three], we can say that the list [three, two, one] is identical to the list [two, one, three] &#8220;up to list order&#8221;. That is, we&#8217;re making clear that the relevant concept, that establishes identity, omits the measurable attribute of order in this context.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Evan Moran</title>
		<link>http://apocalisp.wordpress.com/2008/05/03/null-vs-pure-reason/#comment-517</link>
		<dc:creator>Evan Moran</dc:creator>
		<pubDate>Tue, 02 Jun 2009 01:12:51 +0000</pubDate>
		<guid isPermaLink="false">http://apocalisp.wordpress.com/?p=9#comment-517</guid>
		<description>What I don&#039;t see is why identity and equivalence need to be combined.  I agree that if all operations involving both can be simplified to only needing one, then they _should_ be combined.  But that doesn&#039;t seem the case here.

For example, if I have two bananas (literally, here in my hands), then it is useful to express they are equivalent but not identical.  In contrast both are owned by me, banana1.owner is identical to banana2.owner, but the objects themselves are distinct in a physical sense.  

This leads to the important result that the instantiation of a thing is different from the idea of that thing.  The conceptual number 5 is different from me writing &#039;5&#039; on a whiteboard, or tattooing it on my arm.  5=5 is true as an idea, but &quot;five&quot; = &quot;FIVE&quot; is less clear.  Just as in math it is helpful to compare things so too must we compare instances of things, and now it is clear that identity isn&#039;t enough, something like equivalence must exist to help us express these truths.  

Now I completely agree that equivalence is an uglier concept then identity.  I&#039;d even say that equivalence is less elegant, less powerful, and more prone to programming errors (it&#039;s meaning can change after all).  But that still doesn&#039;t mean it isn&#039;t useful or necessary to express some truths about the world.

Where do you come down on this?  Is there is there a place for equivalence in logical reasoning?  In functional programming?  

Thank you for the thought provoking post!</description>
		<content:encoded><![CDATA[<p>What I don&#8217;t see is why identity and equivalence need to be combined.  I agree that if all operations involving both can be simplified to only needing one, then they _should_ be combined.  But that doesn&#8217;t seem the case here.</p>
<p>For example, if I have two bananas (literally, here in my hands), then it is useful to express they are equivalent but not identical.  In contrast both are owned by me, banana1.owner is identical to banana2.owner, but the objects themselves are distinct in a physical sense.  </p>
<p>This leads to the important result that the instantiation of a thing is different from the idea of that thing.  The conceptual number 5 is different from me writing &#8216;5&#8242; on a whiteboard, or tattooing it on my arm.  5=5 is true as an idea, but &#8220;five&#8221; = &#8220;FIVE&#8221; is less clear.  Just as in math it is helpful to compare things so too must we compare instances of things, and now it is clear that identity isn&#8217;t enough, something like equivalence must exist to help us express these truths.  </p>
<p>Now I completely agree that equivalence is an uglier concept then identity.  I&#8217;d even say that equivalence is less elegant, less powerful, and more prone to programming errors (it&#8217;s meaning can change after all).  But that still doesn&#8217;t mean it isn&#8217;t useful or necessary to express some truths about the world.</p>
<p>Where do you come down on this?  Is there is there a place for equivalence in logical reasoning?  In functional programming?  </p>
<p>Thank you for the thought provoking post!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: apocalisp</title>
		<link>http://apocalisp.wordpress.com/2008/05/03/null-vs-pure-reason/#comment-339</link>
		<dc:creator>apocalisp</dc:creator>
		<pubDate>Wed, 22 Apr 2009 14:31:14 +0000</pubDate>
		<guid isPermaLink="false">http://apocalisp.wordpress.com/?p=9#comment-339</guid>
		<description>Julian,

I highly recommend &quot;Databases, Types, and the Relational Model&quot; by Chris Date and Hugh Darwen.</description>
		<content:encoded><![CDATA[<p>Julian,</p>
<p>I highly recommend &#8220;Databases, Types, and the Relational Model&#8221; by Chris Date and Hugh Darwen.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: julian</title>
		<link>http://apocalisp.wordpress.com/2008/05/03/null-vs-pure-reason/#comment-338</link>
		<dc:creator>julian</dc:creator>
		<pubDate>Wed, 22 Apr 2009 08:00:27 +0000</pubDate>
		<guid isPermaLink="false">http://apocalisp.wordpress.com/?p=9#comment-338</guid>
		<description>hello,

Great article that articulates how null can take on different meanings that ought properly to be  distinguished and then captured in the types. Conversely, it should be possible to indicate that a tuple field can be restricted to only take non-null values [This type of thing is normally supported in relational dbs but only as a field attribute - it is not first class]. Is there any merit in elaborating this line of reasoning to consider whether the concept of discriminated sums [of which haskell&#039;s Maybe type is an example] in algebraic data-types have general application to the relational model and to relational products such as rdbms, xquery or linq ? 

An example I can immediately think of is the postgres-sql GIS extensions that supports sum type geographic representations (point, line, polygon etc). I also know that I have considered this issue many times when trying to work out a db design myself, and that things could have been much easier if I could have a field that could hold elements of a closed set of possible types. I am never sure if it is my own incomplete understanding of the relational model and the implications of normalization, or whether such a thing would be useful in general. Are you aware of any research or practical work in this direction or is my understanding incomplete ?</description>
		<content:encoded><![CDATA[<p>hello,</p>
<p>Great article that articulates how null can take on different meanings that ought properly to be  distinguished and then captured in the types. Conversely, it should be possible to indicate that a tuple field can be restricted to only take non-null values [This type of thing is normally supported in relational dbs but only as a field attribute - it is not first class]. Is there any merit in elaborating this line of reasoning to consider whether the concept of discriminated sums [of which haskell's Maybe type is an example] in algebraic data-types have general application to the relational model and to relational products such as rdbms, xquery or linq ? </p>
<p>An example I can immediately think of is the postgres-sql GIS extensions that supports sum type geographic representations (point, line, polygon etc). I also know that I have considered this issue many times when trying to work out a db design myself, and that things could have been much easier if I could have a field that could hold elements of a closed set of possible types. I am never sure if it is my own incomplete understanding of the relational model and the implications of normalization, or whether such a thing would be useful in general. Are you aware of any research or practical work in this direction or is my understanding incomplete ?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Raoul Duke</title>
		<link>http://apocalisp.wordpress.com/2008/05/03/null-vs-pure-reason/#comment-312</link>
		<dc:creator>Raoul Duke</dc:creator>
		<pubDate>Wed, 21 Jan 2009 22:44:20 +0000</pubDate>
		<guid isPermaLink="false">http://apocalisp.wordpress.com/?p=9#comment-312</guid>
		<description>Awesome!

http://catless.ncl.ac.uk/Risks/25.51.html#subj9.1</description>
		<content:encoded><![CDATA[<p>Awesome!</p>
<p><a href="http://catless.ncl.ac.uk/Risks/25.51.html#subj9.1" rel="nofollow">http://catless.ncl.ac.uk/Risks/25.51.html#subj9.1</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Raoul Duke</title>
		<link>http://apocalisp.wordpress.com/2008/05/03/null-vs-pure-reason/#comment-306</link>
		<dc:creator>Raoul Duke</dc:creator>
		<pubDate>Thu, 15 Jan 2009 23:54:43 +0000</pubDate>
		<guid isPermaLink="false">http://apocalisp.wordpress.com/?p=9#comment-306</guid>
		<description>http://cs-www.cs.yale.edu/homes/dvm/nil.html</description>
		<content:encoded><![CDATA[<p><a href="http://cs-www.cs.yale.edu/homes/dvm/nil.html" rel="nofollow">http://cs-www.cs.yale.edu/homes/dvm/nil.html</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: apocalisp</title>
		<link>http://apocalisp.wordpress.com/2008/05/03/null-vs-pure-reason/#comment-41</link>
		<dc:creator>apocalisp</dc:creator>
		<pubDate>Sat, 10 May 2008 22:50:29 +0000</pubDate>
		<guid isPermaLink="false">http://apocalisp.wordpress.com/?p=9#comment-41</guid>
		<description>If anyone thinks that the issue of Null is limited to databases, or that it is a closed issue, they are sorely mistaken. Here is a link to an ongoing thread about the issue of Null in a general-purpose programming language that is quickly becoming mainstream.

http://thread.gmane.org/gmane.comp.lang.scala.debate/1232/focus=1233</description>
		<content:encoded><![CDATA[<p>If anyone thinks that the issue of Null is limited to databases, or that it is a closed issue, they are sorely mistaken. Here is a link to an ongoing thread about the issue of Null in a general-purpose programming language that is quickly becoming mainstream.</p>
<p><a href="http://thread.gmane.org/gmane.comp.lang.scala.debate/1232/focus=1233" rel="nofollow">http://thread.gmane.org/gmane.comp.lang.scala.debate/1232/focus=1233</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: apocalisp</title>
		<link>http://apocalisp.wordpress.com/2008/05/03/null-vs-pure-reason/#comment-40</link>
		<dc:creator>apocalisp</dc:creator>
		<pubDate>Sat, 10 May 2008 22:29:09 +0000</pubDate>
		<guid isPermaLink="false">http://apocalisp.wordpress.com/?p=9#comment-40</guid>
		<description>&gt; Thank you for this condemnation of SQL’s NULL. 

No, thank you, Hugh, for shedding light on this for me in the first place. In fact, &quot;the observation that in SQL’s corruption of logic the law of identity is not a tautology&quot; is your observation which I lifted from part 4 of your &quot;Setting The Record Straight&quot; series in response to a certain git.

I absolutely agree that mentioning Null in an introductory course on relational theory would be a mistake. Nay, a crime. I&#039;m glad you were able to keep it out of that course, and I&#039;m certain that it&#039;s better for it. Null is an anti-concept, and as such it corrupts not only databases, but minds.</description>
		<content:encoded><![CDATA[<p>&gt; Thank you for this condemnation of SQL’s NULL. </p>
<p>No, thank you, Hugh, for shedding light on this for me in the first place. In fact, &#8220;the observation that in SQL’s corruption of logic the law of identity is not a tautology&#8221; is your observation which I lifted from part 4 of your &#8220;Setting The Record Straight&#8221; series in response to a certain git.</p>
<p>I absolutely agree that mentioning Null in an introductory course on relational theory would be a mistake. Nay, a crime. I&#8217;m glad you were able to keep it out of that course, and I&#8217;m certain that it&#8217;s better for it. Null is an anti-concept, and as such it corrupts not only databases, but minds.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Hugh Darwen</title>
		<link>http://apocalisp.wordpress.com/2008/05/03/null-vs-pure-reason/#comment-39</link>
		<dc:creator>Hugh Darwen</dc:creator>
		<pubDate>Sat, 10 May 2008 17:17:07 +0000</pubDate>
		<guid isPermaLink="false">http://apocalisp.wordpress.com/?p=9#comment-39</guid>
		<description>Thank you for this condemnation of SQL&#039;s NULL.  I particularly like the observation that in SQL&#039;s corruption of logic the law of identity is not a tautology.  Only yesterday I had been thinking of making that very same observation in response to somebody who was complaining that NULL isn&#039;t taught in the relational theory part of a certain university&#039;s database course.  (I had been a consultant to the team that developed that course--as a revision of a previous course on the same subject--and had urged them not to mention NULL until the part of the course that teaches SQL.)

Hugh Darwen</description>
		<content:encoded><![CDATA[<p>Thank you for this condemnation of SQL&#8217;s NULL.  I particularly like the observation that in SQL&#8217;s corruption of logic the law of identity is not a tautology.  Only yesterday I had been thinking of making that very same observation in response to somebody who was complaining that NULL isn&#8217;t taught in the relational theory part of a certain university&#8217;s database course.  (I had been a consultant to the team that developed that course&#8211;as a revision of a previous course on the same subject&#8211;and had urged them not to mention NULL until the part of the course that teaches SQL.)</p>
<p>Hugh Darwen</p>
]]></content:encoded>
	</item>
</channel>
</rss>
