Visualizer: https://cm2ml.vercel.app
CM2ML is a framework for encoding the structure and semantics of conceptual models. It decouples concrete modeling languages from encoder implementations through an intermediate representation.
The entire CM2ML framework is available via the @cm2ml/cm2ml package.
This includes all modules, as well as the CLI and REST adapters.
npm install @cm2ml/cm2mlThe @cm2ml/builtin package may be used in the browser, as it does not include the CLI and REST server.
Parser and encoder authors may also install @cm2ml/plugin, @cm2ml/ir.
Authors of adapters may install @cm2ml/plugin-adapter.
npm install @cm2ml/builtin @cm2ml/plugin @cm2ml/plugin-adapter @cm2ml/irnpm install -g @cm2ml/cli
cm2ml -hnpm install -g @cm2ml/server
cm2ml-serverDetailed usage documentation is available in docs/USAGE.md.
It covers:
- CLI usage for single and batch processing
- REST API endpoints and request format
- Library usage in Node.js/TypeScript
- Visualization usage
- Parser parameter reference (UML, ArchiMate, Ecore)
- Links to encoder-specific documentation
- @cm2ml/bag-of-paths-encoder
- @cm2ml/bag-of-words-encoder
- @cm2ml/embeddings-encoder
- @cm2ml/feature-encoder
- @cm2ml/graph-encoder
- @cm2ml/tf-encoder
- @cm2ml/tree-encoder
- @cm2ml/triples-encoder
- @cm2ml/builtin
- @cm2ml/cli
- @cm2ml/cli-adapter
- @cm2ml/cm2ml
- @cm2ml/deduplicate
- @cm2ml/ir
- @cm2ml/ir-post-processor
- @cm2ml/metamodel
- @cm2ml/metamodel-refiner
- @cm2ml/plugin
- @cm2ml/plugin-adapter
- @cm2ml/rest
- @cm2ml/rest-adapter
- @cm2ml/xml-parser
Enable corepack with corepack enable to automate the installation and selection of the correct package manager.
Dependencies may be installed via pnpm install.
This monorepo uses Turborepo to orchestrate task execution.
The build, test, lint, and typecheck tasks are available in all packages.
The turbo package script may be used to execute tasks as required.
The ci and ci:full package scripts execute all tasks, with the latter including E2E tests.
The locally built CLI and REST server may be started via the cm2ml and server package scripts.
To create a release, run the changeset package script.
This will guide you through the process of creating a changeset.
Next, commit the changeset and push to the main branch.
The CI will create a pull request for the release that must be merged to publish the packages.