axiom-developer
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Axiom-developer] Re: organization


From: David MENTRE
Subject: [Axiom-developer] Re: organization
Date: Mon, 05 Jan 2004 21:11:10 +0100
User-agent: Gnus/5.1002 (Gnus v5.10.2) Emacs/21.2 (gnu/linux)

Hello Tim,

Your email is quite interesting.  Please find below my questions on your
approach:

root <address@hidden> writes:

> For each domain contruct an "index card" that contains various fields
> (the index card is the structural equivalent of a "concept"). Given a
> set of these index cards each field has at least one default ordering
> and a default search mechanism. 
>
> The data for the fields in the index card can be constructed by 
> automated programs, for example, the compiler.

> Of course each of the parts contains subparts (the individual list of
> functions) and references to other index cards (Cat with sigs), etc.
> So in general there is a lot of implied structure given on each index
> card.

How would you define the structure of each card? Using Common Lisp data
type? Specifically defined data types? With a Card Definition Language?
Using standardized tools as W3C RDF or OWL? Using ACL2 common lisp
subset? 

> Having created this pile of index cards we can look at the implied
> structures and other interesting organizations.
>
> Now if we look at a given FIELD in the set of index cards we can create
> a program which connects the cards together. So we could classify
> the cards into many networks, at least one per field. For instance, 
> we could create the inheritance lattice based on the way that one 
> domain uses another. 

Building new structures _dynamically_ is important there. I would like
to build a structure, examining it and find it misses something, build a
new one and finally save it as a card because I find it interesting.

> There can be many kinds of index cards created by many kinds of parsers
> (e.g. an index card that parses a pamphlet file into component parts
> like title, list of chunk names, list of section names, etc). 

How would you store the cards? On disk? As Common Lisp data structure?
On a web server?

> The general picture emerges of a very rich set of objects (the various
> index cards) that are classified into dozens of different relationships. 
> You can construct predicates that walk many different paths to answer a
> question. For example, find the function that will be called to
> multiply a matrix of complex numbers by a vector of polynomials over
> the integers and tell me what file contains it. We could compute the
> coercion from one domain to another per Nicolas's thesis.
>
> This approach breaks the problem into three parts, 
> writing parsers to automatically construct the index cards, 
> constructing the relations, 
> constructing the queries.

I would add:

 define a common repository for card structures (with attached semantics
 for each field, or reference to other card structures)


> (The generalization which I'm exploring but not explaining is that the
> index card itself is just another network. The whole thing eventually
> dissolves into a very large, structured network but it's too complex
> to explain that way).
>
> I'm essentially constructing the index cards for the algebra (by hand
> at the moment) to experiement with this idea. I'll post the reduced
> form of these once I've completed the first pass.

I would be interested to write index cards starting from the source
file.

For example, considering the simplest card:

Source file : file-name-type
Subsystem   : choice-in(boot database spad-compiler spad-interpreter ???)
Explanation : english-text

source file                   subsystem explanation
-----------                   --------- -----------
src/boot/Makefile.pamphlet      boot    building of the boot parser sub-system
src/boot/boothdr.lisp.pamphlet  boot    header for boottran lisp package
src/boot/bootload.lisp.pamphlet boot    loading of various lisp files 
constituing the boot subsystem
src/boot/btincl2.boot.pamphlet  boot    parsing of included lines in boot 
sources
src/boot/btpile2.boot.pamphlet  boot    handling of piles (source indentation) 
in boot
src/boot/btscan2.boot.pamphlet  boot    parsing of boot syntax
src/boot/ccl-bootsys.lsp.pamphlet       boot    loading of several lisp files 
constituing the boot subsystem
src/boot/ccl-depsys.lsp.pamphlet        boot    lisp file used to build depsys 
on top of CCL
src/boot/exports.lisp.pamphlet  boot    set of lisp symbols exported by the 
boottran package
src/boot/npextras.lisp.pamphlet boot    definition in lisp of various boot 
variables and elementary functions
src/boot/ptyout.boot.pamphlet   boot    set of lisp functions to translate boot 
into common lisp
src/boot/tyextra.boot.pamphlet  boot    ?? Handling of boot data structures ??
src/boot/typars.boot.pamphlet   boot    ?? Handling of boot syntax ??
src/boot/typrops.boot.pamphlet  boot    Parsing of boot keywords (tokens?)
src/boot/tytree1.boot.pamphlet  boot    transformation of boot into common lisp
src/doc/msgs/co-eng.msgs        database        list of error messages
src/doc/msgs/s2-us.msgs database        list of Axiom error messages

After that, I would like to dig into each file and build new cards, for
example describing the internal structure of s2-us.msgs. I would like to
build cards indexing each boot or lisp function, using internal
information from the compiler.

Now, two last but probably most traitorous questions:

 - do you thing we could be quickly a tool to navigate in cards? I think
   a computerized tool is of most importance to attack Axiom
   complexity. I can imaging throwing some common lisp data structure
   and functions, however it might become rapidly unusable. Have you any
   idea of a (free software) tool that we might reused?

 - don't you think attacking this issue now could delay too much the
   release of a _stable_ Axiom (with a documentation, which is probably
   the most lacking currently)? What about people that have submited bug
   reports?


In short, I like your approach and I'm eager to apply it (however not on
the algebra ;-). However, I fear it would delay more important tasks.

Yours,
d.
-- 
David MENTRE <address@hidden> -- http://www.nongnu.org/axiom/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]