ontolog-forum
[Top] [All Lists]

[ontolog-forum] Hierarchy of Types in the Fortress language

To: "[ontolog-forum]" <ontolog-forum@xxxxxxxxxxxxxxxx>
From: "John F. Sowa" <sowa@xxxxxxxxxxx>
Date: Sun, 18 May 2008 14:17:29 -0400
Message-id: <483072B9.2000600@xxxxxxxxxxx>
A while ago we had some discussion about single inheritance
and multiple inheritance.  Some people noted that many
programming languages avoid multiple inheritance because
undisciplined programming practices can create inconsistent
definitions.    (01)

But I claimed that such problems can *always* be avoided
by having a good methodology for defining the type hierarchy.
As an example of a good methodology, I cited the FCA method
(Formal Concept Analysis).    (02)

A bright shiny new programming language, which supports such
an approach, is Sun's newly released language called Fortress.
Like the lattices defined by FCA, Fortress supports multiple
inheritance.  Also like FCA, Fortress does *not* require or
even allow the programmer to specify the type hierarchy.
Instead, Fortress automatically *derives* a type hierarchy
that is guaranteed to be consistent.  And that type hierarchy
supports multiple inheritance.    (03)

Instead of specifying supertypes and subtypes, a programmer
who uses Fortress defines a type by specifying one or more
*traits*.  Each trait is a collection of methods.  Then the
system derives the hierarchy by a procedure similar to FCA.    (04)

Such a derivation would not only guarantee a consistent
partial ordering of types, it would produce a lattice.
The top of the Fortress lattice is named Any, and the
bottom is named Bottom.  Two types whose only common
subtype is Bottom are incompatible (i.e., it is not
possible to coerce a value of one type to the other).    (05)

All of this sounds very lattice-like, but I searched the
262-page specification of Fortress for the word 'lattice'
and didn't find it.  That means either (1) the derived
partial ordering is not a full lattice, (2) the derivation
isn't guaranteed to find all possible paths of a lattice,
or (3) the authors didn't want to scare people who don't
know the word 'lattice'.    (06)

In any case, following is the Sun web site for more info:    (07)

    http://projectfortress.sun.com/Projects/Community/
    Project Fortress Community    (08)

And following is the 262-page specification of version 1.0:    (09)

    http://research.sun.com/projects/plrg/fortress0618.pdf    (010)

Bottom line:  If good programming practices can support
full multiple inheritance, there is no justification for
an ontology that does not support multiple inheritance.    (011)

John Sowa    (012)


_________________________________________________________________
Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/  
Subscribe/Config: http://ontolog.cim3.net/mailman/listinfo/ontolog-forum/  
Unsubscribe: mailto:ontolog-forum-leave@xxxxxxxxxxxxxxxx
Shared Files: http://ontolog.cim3.net/file/
Community Wiki: http://ontolog.cim3.net/wiki/ 
To Post: mailto:ontolog-forum@xxxxxxxxxxxxxxxx    (013)

<Prev in Thread] Current Thread [Next in Thread>