I'm trying to use Moose as a framework for data analysis - i.e. beyond code analysis. It happens to be for system development, in particular project schedules.
Sounds great! I often analyze data that are not directly source code, such as software process specification or user profiles. What you need are essentially: - a description of your metamodel, Pharo classes, subclass of MooseEntity - a parser: I usually use XML files or simple-to-parse file input
I have downloaded Pharo 2.0, and added Moose 2.8 (http://www.moosetechnology.org/download/4.8).
I've created an FM3 model (based on the pattern for the library meta-model described in http://scg.unibe.ch/wiki/projects/fame/mse) to create a new FM3 package called Kleio. This meta-model is specific to my data domain, and is defined in terms of FM3.Class, FM3.Property, etc.
How do I import this meta-model into Moose?
The meta-model is defined in terms of subclasses of MooseEntity.
One possible entry point is the Moose Panel MSE Model Import, but this fails as the FM3 classes are not in the model - i.e. this function imports models, not meta-models.
Another possible entry point is the Moose Meta Browser - but unlike say the PetitParser Browser, the Meta Browser does not include an "add" interface function.
I am not expert in FM3 specification, but I guess that to be able to load the code example in http://scg.unibe.ch/wiki/projects/fame/mse you need some classes:
MooseEntity subclass: #MyLibrary instanceVariablesNames: 'librarian books'.
MyLibrary class>>annotation <MSEClass: #Library super: #Object> <package: #LIB> ^ self
MooseEntity subclass: #MyBook instanceVariablesNames: 'title authors'.
MyBook class>>annotation <MSEClass: #Book super: #Object> <package: #LIB> ^ self
...
I guess you also need to meta-describe the instance variables. Have a look at the class FAMIXClass to have an example
Cheers, Alexandre