Josue Portal:I'm using the NORMA metamodel
Not many people other than those building or extending NORMA have actually used the metamodel implied by the XML saved by NORMA to a .orn file... but I have. I would caution you; it is very much an implementation model, not a conceptual one, and it isn't remotely normalized. As well as cross-referencing everything in both directions, it also contains many implicit objects that are only required to support NORMA's internal processing.
I built ActiveFacts around a purely conceptual metamodel that's derived from NORMA and which is defined in ORM2 diagrams created in NORMA. In some cases I use terminology from SBVR, or incorporate ideas for extensions to the model (such as units). This metamodel has been thoroughly validated as conforming to all aspects of ORM2 as expressed in NORMA - the proof being that any ORM2 model in NORMA may be processed into a constellation of metamodel fact instances, and from there, generated into various artefacts including CQL, normalised SQL, and object-oriented code. The emitted CQL may be re-compiled into the same metamodel instances and generated again into the same SQL and code. The only restriction is some additional constraints on the content of fact type readings, necessarily imposed because CQL is plain text, and there is no ability to quote words to remove their normal meaning. One or two corner facets of the language are incompletely implemented, but are still correctly covered by the metamodel.
The ActiveFacts metamodel is published at http://dataconstellation.com/ActiveFacts/examples. This metamodel, authored in NORMA, is generated to CQL. The CQL is generated to Ruby (an object-oriented scripting language) and the generated Ruby code is used to represent the intermediate result of processing models in ORM and CQL - that is, the CQL compiler is self-bootstrapped.
Certain elements of my model are being changed right now, in particular the Feature type was there to support synonyms (now removed) and will be removed when I introduce the objectified fact type Term, which is where a "Vocabulary applies a Name to a Concept". This replaces the need for explicit synonyms and makes the Concept independent of the Names used to refer to it. In my opinion, ORM2 confounds the Concept and the Term into ObjectType, an error that SBVR corrects.
Regardless, I'd like to commend my metamodel for your consideration and I look forward to any suggestions for improvement.
For that matter, I'd like to see more folk here actually using ActiveFacts Constellation Query Language to construct models, and giving me feedback. The SQL generation I support is on a par with that generated by NORMA, though there are some differences. The Ruby code is adequate for the internal use in the (very demanding!) compiler but is not yet hooked up to function as database runtime code; that's what I'm working on at present. Following that I'll implement the Query part of CQL, which is capable of expressing queries that cannot be written in SQL, yet still read as plain language.