First pass for generic DSM

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

First pass for generic DSM

jannik laval
Hi all,

I am trying to make DSM generic.
In the last version of DSM, we can make a DSM based on nodes and edges.

Only the basic DSM works on it (dsm with colors). And I have to debug the interaction of the visualization.

In the package DSMCore, I made a class DSMExample with, for now, 2 examples.

Here is an example:
====

dSMMatrix := DSMMatrix withNodes: #(#1 #2 #3) edges: #(#(#1 #2) #(#2 #1) #(#3 #1)).

view := MOViewRenderer new.
DSMVisualization new
                open: dSMMatrix
                on: view.
view open
====

We make a DSM with nodes and a collection of edges. An edge is a collection of two elements: the source and the target.
I think I will do a third element to add informations for other DSM.

You can try it, and make comments.
I will pay attention to your idea to have a better generic DSM.

Cheers
---
Jannik Laval


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: First pass for generic DSM

Stéphane Ducasse
good!

On Apr 21, 2010, at 12:38 PM, Laval Jannik wrote:

> Hi all,
>
> I am trying to make DSM generic.
> In the last version of DSM, we can make a DSM based on nodes and edges.
>
> Only the basic DSM works on it (dsm with colors). And I have to debug the interaction of the visualization.
>
> In the package DSMCore, I made a class DSMExample with, for now, 2 examples.
>
> Here is an example:
> ====
>
> dSMMatrix := DSMMatrix withNodes: #(#1 #2 #3) edges: #(#(#1 #2) #(#2 #1) #(#3 #1)).
>
> view := MOViewRenderer new.
> DSMVisualization new
> open: dSMMatrix
> on: view.
> view open
> ====
>
> We make a DSM with nodes and a collection of edges. An edge is a collection of two elements: the source and the target.
> I think I will do a third element to add informations for other DSM.
>
> You can try it, and make comments.
> I will pay attention to your idea to have a better generic DSM.
>
> Cheers
> ---
> Jannik Laval
>
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: First pass for generic DSM

Alexandre Bergel
In reply to this post by jannik laval
Cool! It works for me.

> dSMMatrix := DSMMatrix withNodes: #(#1 #2 #3) edges: #(#(#1 #2) #(#2  
> #1) #(#3 #1)).

I was wondering why not to use the Mondrian convention for specifying  
edges.
In mondrian you can specify edges with:
        view edges: nodes from: #selector1 to: #selector2.

For each node contained in nodes, it creates an edge going from 'node  
selector1' to 'node selector2'. This is quite convenient, because I do  
not have to specify how each edge is defined within the script. The  
domain I wish to represent is in charge of defining the edges.

If you still wish to explicitly defining edges, you can always do:

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
view shape rectangle size: 30; withText.
view nodes: (1 to: 3).
view shape arrowedLine.
view edges: {1 -> 2. 2 -> 1 . 3 ->1} from: #key to: #value.
view treeLayout
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Also, maybe it would be nice to have a DSMShape in Mondrian, that draw  
a DSM for a particular node (e.g., a group of packages). But maybe  
this could be quite some work to adapt your implementation.

Cheers,
Alexandre

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.





_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: First pass for generic DSM

Simon Denier-3

On 21 avr. 2010, at 15:41, Alexandre Bergel wrote:

Cool! It works for me.

dSMMatrix := DSMMatrix withNodes: #(#1 #2 #3) edges: #(#(#1 #2) #(#2 #1) #(#3 #1)).

I was wondering why not to use the Mondrian convention for specifying edges.
In mondrian you can specify edges with:
view edges: nodes from: #selector1 to: #selector2.


Indeed, this API is also reused by MooseAlgos Graph. Maybe we could define a trait.



Also, maybe it would be nice to have a DSMShape in Mondrian, that draw a DSM for a particular node (e.g., a group of packages). But maybe this could be quite some work to adapt your implementation.

I am not sure I understand what you mean.

The generic DSM could/should be customizable in three ways:
- input model
- a DSMCellShape, which takes as input the row, the column, and the dsm model
- interactions (but this comes with the CellShape normally, except for a few global interactions)

--
 Simon




_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: First pass for generic DSM

Tudor Girba
In reply to this post by Alexandre Bergel
Hi,

That is great indeed. Jannik, thanks for spending the time to make it  
generic. It will be very useful.

I agree with the suggestion of Alex regarding the API. Perhaps you can  
build a DSMBuilder that just provides the API to populate your  
internal model.

Cheers,
Doru


On 21 Apr 2010, at 15:41, Alexandre Bergel wrote:

> Cool! It works for me.
>
>> dSMMatrix := DSMMatrix withNodes: #(#1 #2 #3) edges: #(#(#1 #2)  
>> #(#2 #1) #(#3 #1)).
>
> I was wondering why not to use the Mondrian convention for  
> specifying edges.
> In mondrian you can specify edges with:
> view edges: nodes from: #selector1 to: #selector2.
>
> For each node contained in nodes, it creates an edge going from  
> 'node selector1' to 'node selector2'. This is quite convenient,  
> because I do not have to specify how each edge is defined within the  
> script. The domain I wish to represent is in charge of defining the  
> edges.
>
> If you still wish to explicitly defining edges, you can always do:
>
> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> view shape rectangle size: 30; withText.
> view nodes: (1 to: 3).
> view shape arrowedLine.
> view edges: {1 -> 2. 2 -> 1 . 3 ->1} from: #key to: #value.
> view treeLayout
> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
>
> Also, maybe it would be nice to have a DSMShape in Mondrian, that  
> draw a DSM for a particular node (e.g., a group of packages). But  
> maybe this could be quite some work to adapt your implementation.
>
> Cheers,
> Alexandre
>
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev

--
www.tudorgirba.com

"What is more important: To be happy, or to make happy?"

_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: First pass for generic DSM

Simon Denier-3

On 21 avr. 2010, at 16:19, Tudor Girba wrote:

> Hi,
>
> That is great indeed. Jannik, thanks for spending the time to make it generic. It will be very useful.
>
> I agree with the suggestion of Alex regarding the API. Perhaps you can build a DSMBuilder that just provides the API to populate your internal model.


While we are on it, I just want to put forward that the Graph library already comes with a generic graph builder just for this purpose (it's used for example in layer table and other places, to build graph structure with more or less arbitrary classes).

The following is the sample expression to create a basic graph.

MOGraphStructure new
        nodeClass: MOGraphNode;
        edgeClass: MOGraphEdge;
        nodes: #(1 2 3);
        edges: #((1 2) (2 1) (3 1)) from: #first to: #second.


>
> Cheers,
> Doru
>
>
> On 21 Apr 2010, at 15:41, Alexandre Bergel wrote:
>
>> Cool! It works for me.
>>
>>> dSMMatrix := DSMMatrix withNodes: #(#1 #2 #3) edges: #(#(#1 #2) #(#2 #1) #(#3 #1)).
>>
>> I was wondering why not to use the Mondrian convention for specifying edges.
>> In mondrian you can specify edges with:
>> view edges: nodes from: #selector1 to: #selector2.
>>
>> For each node contained in nodes, it creates an edge going from 'node selector1' to 'node selector2'. This is quite convenient, because I do not have to specify how each edge is defined within the script. The domain I wish to represent is in charge of defining the edges.
>>
>> If you still wish to explicitly defining edges, you can always do:
>>
>> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
>> view shape rectangle size: 30; withText.
>> view nodes: (1 to: 3).
>> view shape arrowedLine.
>> view edges: {1 -> 2. 2 -> 1 . 3 ->1} from: #key to: #value.
>> view treeLayout
>> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
>>
>> Also, maybe it would be nice to have a DSMShape in Mondrian, that draw a DSM for a particular node (e.g., a group of packages). But maybe this could be quite some work to adapt your implementation.
>>
>> Cheers,
>> Alexandre
>>
>> --
>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>> Alexandre Bergel  http://www.bergel.eu
>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>
>>
>>
>>
>>
>> _______________________________________________
>> Moose-dev mailing list
>> [hidden email]
>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
> --
> www.tudorgirba.com
>
> "What is more important: To be happy, or to make happy?"
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev

--
 Simon




_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: First pass for generic DSM

Alexandre Bergel
> The following is the sample expression to create a basic graph.
>
> MOGraphStructure new
> nodeClass: MOGraphNode;
> edgeClass: MOGraphEdge;
> nodes: #(1 2 3);
> edges: #((1 2) (2 1) (3 1)) from: #first to: #second.

Oh, this is cool!!! I wasn't aware of this.

Alexandre

>
>
>>
>> Cheers,
>> Doru
>>
>>
>> On 21 Apr 2010, at 15:41, Alexandre Bergel wrote:
>>
>>> Cool! It works for me.
>>>
>>>> dSMMatrix := DSMMatrix withNodes: #(#1 #2 #3) edges: #(#(#1 #2)  
>>>> #(#2 #1) #(#3 #1)).
>>>
>>> I was wondering why not to use the Mondrian convention for  
>>> specifying edges.
>>> In mondrian you can specify edges with:
>>> view edges: nodes from: #selector1 to: #selector2.
>>>
>>> For each node contained in nodes, it creates an edge going from  
>>> 'node selector1' to 'node selector2'. This is quite convenient,  
>>> because I do not have to specify how each edge is defined within  
>>> the script. The domain I wish to represent is in charge of  
>>> defining the edges.
>>>
>>> If you still wish to explicitly defining edges, you can always do:
>>>
>>> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
>>> view shape rectangle size: 30; withText.
>>> view nodes: (1 to: 3).
>>> view shape arrowedLine.
>>> view edges: {1 -> 2. 2 -> 1 . 3 ->1} from: #key to: #value.
>>> view treeLayout
>>> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
>>>
>>> Also, maybe it would be nice to have a DSMShape in Mondrian, that  
>>> draw a DSM for a particular node (e.g., a group of packages). But  
>>> maybe this could be quite some work to adapt your implementation.
>>>
>>> Cheers,
>>> Alexandre
>>>
>>> --
>>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>> Alexandre Bergel  http://www.bergel.eu
>>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Moose-dev mailing list
>>> [hidden email]
>>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>
>> --
>> www.tudorgirba.com
>>
>> "What is more important: To be happy, or to make happy?"
>>
>> _______________________________________________
>> Moose-dev mailing list
>> [hidden email]
>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
> --
> Simon
>
>
>
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.





_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: First pass for generic DSM

jannik laval
In reply to this post by Simon Denier-3
Hi,

I made it. Now, there are two ways to build a DSM. First, with the DSMBuilder, seond by a small script.

Example of the first method:
=====
DSMBuilder buildWithNodes: #(1 2 3 4 5 6) edges: #((1 2) (2 1) (3 1) (2 3) (4 5) (5 4) (6 4)) from: #first to: #second
=====

Example of the second one:
=====
|DSMAlgo dSMMatrix view|
view := MOViewRenderer new.
dSMMatrix := DSMMatrix withNodes: #(1 2 3 4 5 6) edges: #((1 2) (2 1) (3 1) (2 3) (4 5) (5 4) (6 4)) from:#first to:#second.

DSMVisualization new
                open: dSMMatrix
                on: view.
view open
=====

Cheers,
Jannik

On Apr 21, 2010, at 16:50 , Simon Denier wrote:

>
> On 21 avr. 2010, at 16:19, Tudor Girba wrote:
>
>> Hi,
>>
>> That is great indeed. Jannik, thanks for spending the time to make it generic. It will be very useful.
>>
>> I agree with the suggestion of Alex regarding the API. Perhaps you can build a DSMBuilder that just provides the API to populate your internal model.
>
>
> While we are on it, I just want to put forward that the Graph library already comes with a generic graph builder just for this purpose (it's used for example in layer table and other places, to build graph structure with more or less arbitrary classes).
>
> The following is the sample expression to create a basic graph.
>
> MOGraphStructure new
> nodeClass: MOGraphNode;
> edgeClass: MOGraphEdge;
> nodes: #(1 2 3);
> edges: #((1 2) (2 1) (3 1)) from: #first to: #second.
>
>
>>
>> Cheers,
>> Doru
>>
>>
>> On 21 Apr 2010, at 15:41, Alexandre Bergel wrote:
>>
>>> Cool! It works for me.
>>>
>>>> dSMMatrix := DSMMatrix withNodes: #(#1 #2 #3) edges: #(#(#1 #2) #(#2 #1) #(#3 #1)).
>>>
>>> I was wondering why not to use the Mondrian convention for specifying edges.
>>> In mondrian you can specify edges with:
>>> view edges: nodes from: #selector1 to: #selector2.
>>>
>>> For each node contained in nodes, it creates an edge going from 'node selector1' to 'node selector2'. This is quite convenient, because I do not have to specify how each edge is defined within the script. The domain I wish to represent is in charge of defining the edges.
>>>
>>> If you still wish to explicitly defining edges, you can always do:
>>>
>>> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
>>> view shape rectangle size: 30; withText.
>>> view nodes: (1 to: 3).
>>> view shape arrowedLine.
>>> view edges: {1 -> 2. 2 -> 1 . 3 ->1} from: #key to: #value.
>>> view treeLayout
>>> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
>>>
>>> Also, maybe it would be nice to have a DSMShape in Mondrian, that draw a DSM for a particular node (e.g., a group of packages). But maybe this could be quite some work to adapt your implementation.
>>>
>>> Cheers,
>>> Alexandre
>>>
>>> --
>>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>> Alexandre Bergel  http://www.bergel.eu
>>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Moose-dev mailing list
>>> [hidden email]
>>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>
>> --
>> www.tudorgirba.com
>>
>> "What is more important: To be happy, or to make happy?"
>>
>> _______________________________________________
>> Moose-dev mailing list
>> [hidden email]
>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
> --
> Simon
>
>
>
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev

---
Jannik Laval


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: First pass for generic DSM

Tudor Girba
This is really great!

Doru

On 24 Apr 2010, at 14:47, Laval Jannik wrote:

> Hi,
>
> I made it. Now, there are two ways to build a DSM. First, with the  
> DSMBuilder, seond by a small script.
>
> Example of the first method:
> =====
> DSMBuilder buildWithNodes: #(1 2 3 4 5 6) edges: #((1 2) (2 1) (3 1)  
> (2 3) (4 5) (5 4) (6 4)) from: #first to: #second
> =====
>
> Example of the second one:
> =====
> |DSMAlgo dSMMatrix view|
> view := MOViewRenderer new.
> dSMMatrix := DSMMatrix withNodes: #(1 2 3 4 5 6) edges: #((1 2) (2  
> 1) (3 1) (2 3) (4 5) (5 4) (6 4)) from:#first to:#second.
>
> DSMVisualization new
> open: dSMMatrix
> on: view.
> view open
> =====
>
> Cheers,
> Jannik
>
> On Apr 21, 2010, at 16:50 , Simon Denier wrote:
>
>>
>> On 21 avr. 2010, at 16:19, Tudor Girba wrote:
>>
>>> Hi,
>>>
>>> That is great indeed. Jannik, thanks for spending the time to make  
>>> it generic. It will be very useful.
>>>
>>> I agree with the suggestion of Alex regarding the API. Perhaps you  
>>> can build a DSMBuilder that just provides the API to populate your  
>>> internal model.
>>
>>
>> While we are on it, I just want to put forward that the Graph  
>> library already comes with a generic graph builder just for this  
>> purpose (it's used for example in layer table and other places, to  
>> build graph structure with more or less arbitrary classes).
>>
>> The following is the sample expression to create a basic graph.
>>
>> MOGraphStructure new
>> nodeClass: MOGraphNode;
>> edgeClass: MOGraphEdge;
>> nodes: #(1 2 3);
>> edges: #((1 2) (2 1) (3 1)) from: #first to: #second.
>>
>>
>>>
>>> Cheers,
>>> Doru
>>>
>>>
>>> On 21 Apr 2010, at 15:41, Alexandre Bergel wrote:
>>>
>>>> Cool! It works for me.
>>>>
>>>>> dSMMatrix := DSMMatrix withNodes: #(#1 #2 #3) edges: #(#(#1 #2)  
>>>>> #(#2 #1) #(#3 #1)).
>>>>
>>>> I was wondering why not to use the Mondrian convention for  
>>>> specifying edges.
>>>> In mondrian you can specify edges with:
>>>> view edges: nodes from: #selector1 to: #selector2.
>>>>
>>>> For each node contained in nodes, it creates an edge going from  
>>>> 'node selector1' to 'node selector2'. This is quite convenient,  
>>>> because I do not have to specify how each edge is defined within  
>>>> the script. The domain I wish to represent is in charge of  
>>>> defining the edges.
>>>>
>>>> If you still wish to explicitly defining edges, you can always do:
>>>>
>>>> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
>>>> view shape rectangle size: 30; withText.
>>>> view nodes: (1 to: 3).
>>>> view shape arrowedLine.
>>>> view edges: {1 -> 2. 2 -> 1 . 3 ->1} from: #key to: #value.
>>>> view treeLayout
>>>> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
>>>>
>>>> Also, maybe it would be nice to have a DSMShape in Mondrian, that  
>>>> draw a DSM for a particular node (e.g., a group of packages). But  
>>>> maybe this could be quite some work to adapt your implementation.
>>>>
>>>> Cheers,
>>>> Alexandre
>>>>
>>>> --
>>>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>>> Alexandre Bergel  http://www.bergel.eu
>>>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Moose-dev mailing list
>>>> [hidden email]
>>>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>>
>>> --
>>> www.tudorgirba.com
>>>
>>> "What is more important: To be happy, or to make happy?"
>>>
>>> _______________________________________________
>>> Moose-dev mailing list
>>> [hidden email]
>>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>
>> --
>> Simon
>>
>>
>>
>>
>> _______________________________________________
>> Moose-dev mailing list
>> [hidden email]
>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
> ---
> Jannik Laval
>
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev

--
www.tudorgirba.com

"When people care, great things can happen."



_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: First pass for generic DSM

Alexandre Bergel
In reply to this post by jannik laval
Excellent!

Alexandre


On 24 Apr 2010, at 08:47, Laval Jannik wrote:

> Hi,
>
> I made it. Now, there are two ways to build a DSM. First, with the  
> DSMBuilder, seond by a small script.
>
> Example of the first method:
> =====
> DSMBuilder buildWithNodes: #(1 2 3 4 5 6) edges: #((1 2) (2 1) (3 1)  
> (2 3) (4 5) (5 4) (6 4)) from: #first to: #second
> =====
>
> Example of the second one:
> =====
> |DSMAlgo dSMMatrix view|
> view := MOViewRenderer new.
> dSMMatrix := DSMMatrix withNodes: #(1 2 3 4 5 6) edges: #((1 2) (2  
> 1) (3 1) (2 3) (4 5) (5 4) (6 4)) from:#first to:#second.
>
> DSMVisualization new
> open: dSMMatrix
> on: view.
> view open
> =====
>
> Cheers,
> Jannik
>
> On Apr 21, 2010, at 16:50 , Simon Denier wrote:
>
>>
>> On 21 avr. 2010, at 16:19, Tudor Girba wrote:
>>
>>> Hi,
>>>
>>> That is great indeed. Jannik, thanks for spending the time to make  
>>> it generic. It will be very useful.
>>>
>>> I agree with the suggestion of Alex regarding the API. Perhaps you  
>>> can build a DSMBuilder that just provides the API to populate your  
>>> internal model.
>>
>>
>> While we are on it, I just want to put forward that the Graph  
>> library already comes with a generic graph builder just for this  
>> purpose (it's used for example in layer table and other places, to  
>> build graph structure with more or less arbitrary classes).
>>
>> The following is the sample expression to create a basic graph.
>>
>> MOGraphStructure new
>> nodeClass: MOGraphNode;
>> edgeClass: MOGraphEdge;
>> nodes: #(1 2 3);
>> edges: #((1 2) (2 1) (3 1)) from: #first to: #second.
>>
>>
>>>
>>> Cheers,
>>> Doru
>>>
>>>
>>> On 21 Apr 2010, at 15:41, Alexandre Bergel wrote:
>>>
>>>> Cool! It works for me.
>>>>
>>>>> dSMMatrix := DSMMatrix withNodes: #(#1 #2 #3) edges: #(#(#1 #2)  
>>>>> #(#2 #1) #(#3 #1)).
>>>>
>>>> I was wondering why not to use the Mondrian convention for  
>>>> specifying edges.
>>>> In mondrian you can specify edges with:
>>>> view edges: nodes from: #selector1 to: #selector2.
>>>>
>>>> For each node contained in nodes, it creates an edge going from  
>>>> 'node selector1' to 'node selector2'. This is quite convenient,  
>>>> because I do not have to specify how each edge is defined within  
>>>> the script. The domain I wish to represent is in charge of  
>>>> defining the edges.
>>>>
>>>> If you still wish to explicitly defining edges, you can always do:
>>>>
>>>> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
>>>> view shape rectangle size: 30; withText.
>>>> view nodes: (1 to: 3).
>>>> view shape arrowedLine.
>>>> view edges: {1 -> 2. 2 -> 1 . 3 ->1} from: #key to: #value.
>>>> view treeLayout
>>>> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
>>>>
>>>> Also, maybe it would be nice to have a DSMShape in Mondrian, that  
>>>> draw a DSM for a particular node (e.g., a group of packages). But  
>>>> maybe this could be quite some work to adapt your implementation.
>>>>
>>>> Cheers,
>>>> Alexandre
>>>>
>>>> --
>>>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>>> Alexandre Bergel  http://www.bergel.eu
>>>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Moose-dev mailing list
>>>> [hidden email]
>>>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>>
>>> --
>>> www.tudorgirba.com
>>>
>>> "What is more important: To be happy, or to make happy?"
>>>
>>> _______________________________________________
>>> Moose-dev mailing list
>>> [hidden email]
>>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>
>> --
>> Simon
>>
>>
>>
>>
>> _______________________________________________
>> Moose-dev mailing list
>> [hidden email]
>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
> ---
> Jannik Laval
>
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.





_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev