this is a nice analysis.
Now I think that if different lib are needed for people then starting to build some of them is important.
I know that Jannik also implemented and optimize tarjan and other graph algorithms for moose so
cedric it would be probably a good start to check that and probably to make the moose graph algo lib a separate entity. We (the moose people) also need a good graph lib.
Stef
> 1. Scalability
> 2. Data structures
> 3. Algorithms
> 4. Performance
> 5. Visualization
>
> I think you need to at least consider all the above when creating a library.
> In fact, you probably should break it up as many libraries do into several
> components:
>
> 1. Common, useful data structures (Vertex, Edge, Adjacency List, Adjaceny
> Matrix, etc.) that are optimized for your language - hopefully smalltalk
>
> 2. Computations / Measurements
>
> 3. Algorithms - layout, common graph problems, etc.
>
> 4. Persistence - database or otherwise, likely several supporting libs
> specific to the persistence mechanism or implementing some kind of pattern
> to be agnostic. The data structures should at least be designed in such a
> way that they are persistence friendly to put in something like Gemstone,
> Magma, Image, etc. See for example InfiniteGraph which has a Java interface
> built on Objectivity.
>
> 5. Visualization - desktop, web, and static output.
>
> The problem here is that creating a graph library is a huge undertaking. It
> might not sound like it, but they can grow to epic proportions. From my
> comments, you can see that it is really not the fault of any particular lib,
> but rather the subject matter. You could spend a lifetime packing in
> features. The real key is just to create a series of libs that work well
> together and not constantly reinvent the wheel with node classes in each
> library.
>
> A secondary problem is doing graph analysis and even drawing graphs can take
> a lot of horse power. Parallelism is a tough issue with graph libraries and
> there's a multitude of approaches from pure threads to map/reduce to random
> walking and stream processing. This is further compounded by persistence
> where you need to start doing things like graph healing, partitioning, and
> sharding to scale to massive levels and maintain performance.
>
> I just want to mention to others that graphs are hugely useful in general to
> solve a variety of problems from recommendations to meta programming. It's
> not just pretty pictures and experiments with molecules. There's a lot of
> potential in Smalltalk to do something since generally I feel Smalltalkers
> aren't bound by or afraid of new approaches to old problems. Graph databases
> in many cases could replace relational DBs for example and let your app do
> all kinds of stuff you might never have thought of otherwise.
>
> I could go on and on, but I'll stop myself here. Comments or thoughts?
>
>
>
>
>
>
> Stéphane Ducasse wrote:
>>
>>>
>>> I've started looking at the exemples YossiDM gave to me and in particular
>>> Lemon which was according to him his best experience. I found the model
>>> quite clear and covering all what I expect for a generic graph lib
>>> (directed, undirected, mapping concept, iterators, and algorithms of
>>> course). Moreover and contrary to Boost, it's still developed in 2010.
>>>
>>> To be more precise, here's what I expect for a generic graph lib in
>>> smalltalk (note all in Lemon except visualization):
>>>
>>> - data structure: directed graphs, undirected graphs, possible loop and
>>> parallel edged, ..., trees (?)
>>> - mapping: easily map objects, informations on nodes and/or edges (here,
>>> don't know if I'd like subclassing nodes/eges instead...)
>>> - iterators: efficient way to iterate over nodes and edges
>>> - algorithms: basic algorithms implementation (bfs, dfs, ..., shortest
>>> paths, ...), and plug-ability for specific ones...
>>> - visualization: having an interactive graph visualization web/SVG and
>>> eventually morphic (... graphviz, mondrian, .......)
>>>
>>> then, I could use this for my research work...
>>> - I need "belief" nodes with associated conditional beliefs tables
>>> - I need to implement algorithms to propagate an information change
>>> (change of a node state) in any nodes...
>>> ****mainly, I'd like to get junction trees from a graph [1] which are
>>> rely useful for several domains in machine learning field ***
>>>
>>> Actually, I don't know if I really need a graph lib as a simple
>>> implementation directed to bayesian should be enough but it's the second
>>> time I need graphs (last time was for planification) and I think that
>>> would be great to have a nice and clean basic implementation.
>>>
>>> Couldn't we start developing something similar to Lemon (regarding "API",
>>> enitites, etc...) that would work for small scale project project in
>>> smalltalk ?
>>
>> It would be excellent.
>> Because now that you have a full time permanent position you can invest a
>> bit and in 2 years you can get something really sexy....
>> This is what we are doing all the time around pharo.
>>
>>> Yossi, what were the limitations you found with Lemon ?
>>>
>>> Cheers,
>>>
>>> Cédrick
>>>
>>
>>
>>
>>
>
> --
> View this message in context: http://forum.world.st/Graph-library-in-Smalltalk-Need-for-advices-tp3092747…
> Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
>
Hi all,
I am looking at Merlin to build an import wizard for AspectMaps (current solution works but could be improved). Merlin looks cool but I have trouble understanding how everything works, and what is possible, from the examples. Please forgive me if the question below is an obvious thing / FAQ.
The setup is as follows: From a first pane I get a filename, I need to parse that file to extract a list of N items. In the second pane I want the list of N items, each as a checkbox, ie N checkboxes. Then the next panes are 'generated' for each selected checkbox. These panes repeat the item, ask for a filename and a selection from radio button. Then a pane that is optional, depending on the radio button state of all the previous panes (+ internal state of the app). At the end an 'you have successfully imported blah' pane would be cool but is not required (I can use a dialog box for that).
Now I have the first pane up and running, but the second panes and beyond I have no idea on how to do this. I dont find in the examples how to dynamically build a group of radio buttons, nor to dynamically build agroup of panes / select which is the next pane to show. Can anybody help me out here?
Thanks in advance!
--
Johan Fabry
jfabry(a)dcc.uchile.cl - http://dcc.uchile.cl/~jfabry
PLEIAD Lab - Computer Science Department (DCC) - University of Chile
Hi,
I am using my PetitJava parser to extract some facts from Java code.
Currently, I limit myself to extract the location of classes (so that I can
see the source code), their name, and information about the package
in which they reside.
By parsing a system with both PetitJava and inFusion
(using VisualWorks 7.7.1 and MSE 2.1),
I found that some classes are not present in the model generated by inFusion.
I attach here the name of the classes found by PetitJava
and by inFusion (using the command allModelClasses on the MooseModel).
(Here I do not consider interfaces).
The analyzed source code can be found here:
www.inf.usi.ch/phd/bacchelli/research/2002-05-10-argoUML_0.10.tar.bz2
For example, you can consider the files (and classes):
Project.java
GoalsDialog.java
SuperclassGen.java
...
I also tried to find them by querying the main MooseModel
(e.g. model detect: [:e | e name = #Project]), but these
classes are not in the model.
Am I doing something wrong?
Cheers,
Alberto
Hi,
I would like to ask the experts out there: Can Moose/Pharo/Squeak help to
build a database which contains some indexes on texts?
I might need Moose to analyze the raw texts first before indexing them.
Can someone show me the light if this project or method workable?
Thanks.
Regards,
Zhe-Xi
--
View this message in context: http://forum.world.st/Database-Building-tp3092712p3092712.html
Sent from the Moose mailing list archive at Nabble.com.
On Dec 16, 2010, at 5:26 PM, Tudor Girba wrote:
> Great news!
>
> I already updated the Moose build to be based on the current 1.2:
> http://hudson.moosetechnology.org/job/moose-latest-dev-on-pharo-1.2/lastSuc…
>
>
> Maybe one suggestion: it would be good to name the image as pharo-1.2-dev, rather than just dev1.2.
Ok, I will do that. In addition, it would be nice if the zip would contain inside some version number or date or something.
Marcus
--
Marcus Denker -- http://www.marcusdenker.de
INRIA Lille -- Nord Europe. Team RMoD.
Hi!
Just a word to say that Eduardo is a student at the DCC working on exporting Mondrian views in SVG and TikZ (library for latex).
As a goal, I would like to have classblueprint and system complexity exportable. Do you have a visualization you want to see exported?
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hi Doru, all,
in AM I have a Glamour pane that is an actionList where I do 5 populate:on:entitled:with: so that the pane has 5 buttons. Now what happens is that the pane also has a dropdown menu, with the same actions as the buttons. This is a bit silly (see screenshot). Is there a way to have the actionList not have this popup menu?
Thanks in advance!
--
Johan Fabry
jfabry(a)dcc.uchile.cl - http://dcc.uchile.cl/~jfabry
PLEIAD Lab - Computer Science Department (DCC) - University of Chile
Thanks, Andy. It's fixed now.
Cheers,
Doru
On 15 Dec 2010, at 12:49, Andy Kellens wrote:
> Hello,
>
> On the page http://www.moosetechnology.org/tools/famix2importer the Gopher script to load the Famix 2 importer is:
> Gofer new
> squeaksource: 'Famix2Importer';
> package: 'Famix2Impoter';
> load.
>
> But it should be:
> Gofer new
> squeaksource: 'Famix2Importer';
> package: 'Famix2Importer';
> load.
>
> Kind regards,
>
> Andy
--
www.tudorgirba.com
"Relationships are of two kinds: those we choose and those that happen. They both matter."