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

Re: (FC-Devel) [Re: Concept Oriented Design ] + results of tool evaluation



Hi

Dr. Thomas Fricke wrote:

> > I don't mean diagrams in the graphical sense but more as a model for
> > concept definition
> >
> I do not insist on Corba, however I strongly recommend an architecture
> consisting of different layers. Our requirements here need a
> distributed repository, which could reside in a free distributed DB.

I agree to the different layers, but I think our system should be able to run
also without Corba.

> > > in my humble opinion it could look like
> > >
> > > collectionOfConceptualGraphs{
> > >         conceptualGraphs(class1, class2, role1, role2)
> > >
> > > }
> >
> > In my humble opinion conceptual graphs should be talking about concepts. so
> > "class1","class2","role1","role2" are actuallyconcepts.
> > I would prefer something like:
> > CG {
> >     addConceptualConnection(Concept c1,Concept c2,Concept role1,Concept
> > role2)
> > }
> >
>
> You are right. The abused the class term. A class is an instance of
> several
> roles (subclass, superclass) in the inheritance concept.
>
> > This gives the possibility to use role1 as a concept in another connection
> > and creating complex design patterns.
> > For example:
> >
> >    cg.addConceptualConnection(myModel,myView,Model,View)
> >    cg.addConceptualConnection(Model,usageCount,subClass,superClass)
> >

I have one more thought about the interface:Until now we have captured the idea
of a connection which has two roles. but if we want to be general
we have to think of connection with more than two roles.
For example: Model,View Controler is a Design Pattern which connects three
concepts.
So, we have, at least, two alternatives:
1. Add interface like cg.addConceptualConnection(list<Concept> concepts,
list<Concept> roles)
2. Regard the connection as a concept of its own. every Concept will have a list
of ports that other concepts
    can attach to them. every port some specific role.
    For example: inheritance will be a concept. it will have two ports : one is
subClass and the other is superClass.
    now the interface will be : cg.connect(Concept c1,Concept c2,Concept p) -->
connect c1 to c2 though port p.
    and cg.definePort(Concept c, Concept p) --> define port p for concept c.
     example : cg.definePort(inheritance,subClass);
cg.definePort(inheritance,superClass);
                         cg.connect(Integer,inheritance,subClass);
cg.connect(Number,inheritance,superClass);
                          (this is equivalent to your exmaple)
I hope you understand what I mean.

I think that alternative 2 is more clean.

> No I would like to read more about this approach. Do you have some
> refererences
> for the beginner?

I am not sure to which approach do you refer.

> I would like to hear the opinion of all people who would like to
> participate,
> otherwise I get the impression of being alone with Chen Ofek.

I agree.

bye
chen