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
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel
http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.