Re: AtomList infinite or cyclic in all models

On Feb 16, 2007, at 1:38 PM, Drew McDermott wrote:

>> [Bijan Parsia]
>>
>> [...]
>> However, another way to deal with your specific issue is to make #nil
>> related by first and rest to itself. Indeed, nothing prevents cyclic
>> models, as you said. In some Lisps, for example, ...
>
> Yikes!  This is just a (notorious) hack,

I am aware of the tendentiousness of this solution in the Lisp  
community.

> and doesn't solve, or even
> address, the problem.

What *is* the problem? Infinite models? If so, it solves the problem.  
Cyclic models? If so, it clearly doesn't :)

> The idea of letting the 'car' and 'cdr' of nil
> be nil is a "convenience," and not true to the semantics of nil qua
> empty list at all.

Is this about modeling lists? If so, we're going to have plenty of  
other problems too trying to do that in OWL (or FOL).

> It can't be literally true that the empty list is
> equal to the "list" with itself as head and tail,

I don't see why not. I guess it depends on whatyou mean "literally".  
And "empty list". After all, lists aren't *literally* full or empty  
(e.g., physically). Is the empty list a member of itself? I can see  
arguments yes and arguments no depending on how you want to use it or  
conceive of it and how you define membership.

I guess I don't have strong prior intuitions about the nature of  
empty lists. Well, I guess I do, but then they don't involve pair/ 
cons structures *at all*.

> and if it were then
> testing whether a list was empty would be a nightmare.

Er if the first and rest of a list is #nil, then the list is #nil.

Since #nil has a specific identity in OWL, there's no worries about  
distinct "equivalent" #nils.

So I have no nightmares. Perhaps I'm missing something?

I tried to get a problem out of list membership vs. list termination,  
e.g., '(#nil . (a . #nil)) but i don't see it. Yes, the car is #nil,  
but the cdr isn't, so the list isn't #nil. Hrm. You couldn't have a  
list of nothing but #nils, e.g., '(#nil . (#nil . #nil) that was  
distinct from #nil. Somehow, I'm not too worked up over that, though  
I guess I can imagine circumstances where it'd be annoying.

Cheers,
Bijan.

Received on Friday, 16 February 2007 14:01:20 UTC