On Sat, Jul 5, 2008 at 2:38 AM, Ralf Hemmecke wrote:
> ...
>>
>>> then I would (roughly) say that
>>>
>>>  Type = Category + Domain + {Type}
>>>
>>> i.e. Type comprises all categories, all domains and itself. The constant
>>> 'Category' (which is a keyword) is on the same level as 'Type' but with
>>> less inhabitants than 'Type'.
>>>

What do you mean by "'Category' which is a keyword"? Do you mean that
it is built-in? In that case I would not agree. In Aldor for example:

%1 >> #include "aldor"
                                           Comp: 60 msec, Interp: 0 msec
%2 >> #include "aldorinterp"
                                           Comp: 20 msec, Interp: 0 msec
%3 >> Category
  () @
 with
    ==  add ()

                                           Comp: 0 msec, Interp: 0 msec
%4 >> Type
  () @
 with
    ==  add ()

                                           Comp: 0 msec, Interp: 0 msec
%5 >> X:Category == with {};
                                           Comp: 0 msec, Interp: 0 msec
%6 >> Y:Category := X;
  () @ Category
                                           Comp: 0 msec, Interp: 0 msec
%7 >> x:X == add {};
Defined x @
X with
    ==  add ()

                                           Comp: 0 msec, Interp: 0 msec
%8 >> x has Y
T @ Boolean
                                           Comp: 0 msec, Interp: 0 msec
%9 >> y:Type := x;
 @ Type
                                           Comp: 0 msec, Interp: 0 msec
%10 >> z:Type := X;
 @ Type
                                           Comp: 0 msec, Interp: 10 msec
%11 >> y has Y
T @ Boolean
                                           Comp: 0 msec, Interp: 0 msec
%12 >> z has Y
T @ Boolean
                                           Comp: 0 msec, Interp: 0 msec


By "inhabitants" do you mean objects? E.g. the value of Y above?

> Bill Page wrote:
>> I don't like this much since it seems to conflict with the actual
>> usage of these terms in both Axiom and Aldor.
>
> Why do you see a conflict here? Is, what I say, not what Doye
> says in Section 2.5 of
> http://axiom-portal.newsynthesis.org/refs/articles/doye-aldor-phd.pdf/?searchterm=doye
> ?
>
> items \in Domains \in Categories \in Category
>

Perhaps it is almost ok if you include Doye's notation Obj(...) but
this ignores the concept of Categories as subtypes of Type. If 'x has
X' implies 'x has Y' for all x in Type then X is a subcategory of Y.

Between Axiom and Aldor the terminology is such a mess that it is hard
to say anything in a simple manner without defining everything from
basic principles.

For example, in Aldor 'Type' and 'Category' are domains. Objects are
related to domains by a membership relation. The objects of the domain
Type are themselves domains (of which Type is one and Category is
another). Categories are subtypes (subdomains) of Type arranged in a
lattice by the inclusion relation. The objects of the domain Category
are these subtypes of Type (categories). So it seems clear to me that
all values in Aldor are objects in some domain, i.e. there are no
"category-valued" objects at such but there are run-time objects of
the domain Category and the domain Type. Still, these objects are
treated as category values and domain values in the appropriate
context.

In Axiom (all flavors so far) Type is a category. The Axiom
interpreter automatically creates references to some types such as
'Domain', and 'SubDomain Domain' but these were not originally
included as built-in domains or domains in the Axiom library so values
of this kind could be implemented only in very limited ways.

OpenAxiom introduced Domain as a Domain consisting of all domains
(like Type in Aldor).  OpenAxiom also adds 'Category' as an
alternative to 'SubDomain Domain'. I believe that the intention of
OpenAxiom is that Category is a domain however it is not always
treated that way in the current revision.

> where in my notation above "Domain" should just be considered the top
> of the category hierarchy. (Actually, the top is "with", I just named it
> "Domain").
>

Names are significant for named categories. Categories reference other
categories by name. 'Category' is the domain of all categories. It's
objects are categories.

> Is OpenAxiom going to somehow blur the distinction between categories and
> domains?
>

If Aldor treats categories and domains as first order doesn't this
already blur the distinction? Although domains are never objects of
Category, both categories and domains are objects of Type.

> I understand that it would be nice to really use categories as first class
> objects, but that does not mean that they must be considered as domains.
> Or does it?
>

Yes, I think it does.

> Does http://axiom-portal.newsynthesis.org/refs/articles/define.pdf have
> something to do with your discussion?
>

Yes I think so, at least as far as it concerns Aldor. Kennedy's
description seems fairly complete but I think some of the comments
about Aldor may be a little out of date. I haven't checked everything
in detail but I think some of the issues raised by Kennedy may now be
resolved in the current release of Aldor. Perhaps OpenAxiom will also
be able to resolve these in the near future - perhaps in a somewhat
different way.

Regards,
Bill Page.

-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08
_______________________________________________
open-axiom-devel mailing list
open-axiom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open-axiom-devel

Reply via email to