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

(FC-Devel) core design + project steps

Hi all

I have build a tiny exmple that tries to implement Conceptual Graphs in
C++. (the code is attached to this article in tar.gz format)
This code was written before I knew about CG so I called CG
StaticDiagram, the concepts in CG I called StaticConcept (I hope it
won't confuse anybody).
I used the interface of : definePort+connect for connecting concepts.
I wrote some Console views to be able to debug and play a little with
these ideas.

I also introduced a global Concept Map (it is an STL map that you can
find a pointer to concept given its name).
The idea is that if a concept is used in two different diagrams it
refers to the same concept and the code for the concept will have to
consider both (or more) diagrams.
But now I have a problem of all concepts have the same scope, so I need
something like name space. which is not implemented.
I think that every diagram will add its share to the definition of the
concept (not only CG).
For example : Use Case diagrams can enhance (Automatically) the
concept's interface. I didn't understand if argo (or UML) has such a
feature. (i.e. if I define the same name for two classes in different
diagrams do I get different code for every instance or does the program
knows how to integrate the two definitions?)

now, about project steps:
I saw in the mailing list archives some discussion about argo/UML and it
looks like you have decided to use it as the first step.
I have run argo and it looks very nice as a beginning, although it takes
a lot of memory and CPU, I assume because java is an interpreter.
But the question is what is the add-on of this project. If we want to do
UML tool I think that a better way would be to join the argo project and
not to split forces.
I think that as a seperate project we can work on the idea of generating
code with Conceptual Graphs and try to write such clever algorithms as
were discussed earlier (transformation from Domain to Domain,
Generalization and Specifying algorithms).
btw: in that case I think we should change our project's name to "COD -
concept oriented design"

The most urgent tasks I think are :
- agree about the general design (interface to the Conceptual graphs and
the question of global concept map)
- use GEF (the graph editor framework from uci) to implement conceptual
- implement code generation (either in argo/UML or directly from
Conceptual Graphs) so that we can bootstrap our project (as I suggested

Tell me what do you think (I hope I was clear about all my points).