Skip to content

Commit

Permalink
docs: add README notices
Browse files Browse the repository at this point in the history
  • Loading branch information
DerYeger committed Nov 4, 2024
1 parent 997f4e0 commit a6f819d
Show file tree
Hide file tree
Showing 22 changed files with 53 additions and 62 deletions.
3 changes: 3 additions & 0 deletions packages/encoder/bag-of-paths-encoder/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
# @cm2ml/bag-of-paths-encoder

This package provides a Bag-of-Paths encoder with configurable textual representations of paths.
Based on the work of [Ali and Bork](https://link.springer.com/chapter/10.1007/978-3-031-61057-8_7).
2 changes: 2 additions & 0 deletions packages/encoder/feature-encoder/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
# @cm2ml/feature-encoder

This package provides both a standalone and a composable feature encoder.
3 changes: 3 additions & 0 deletions packages/encoder/graph-encoder/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
# @cm2ml/graph-encoder

This plugin provides a raw graph encoder that supports feature encoding and both adjacency lists and matrices.
Based on the work of [López et al.](https://dl.acm.org/doi/10.1145/3550355.3552461)
3 changes: 3 additions & 0 deletions packages/encoder/pattern-miner/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
# @cm2ml/pattern-miner

This package provides a pattern miner for the CM2ML framework.
Based on the work of [Fumagalli et al.](https://link.springer.com/chapter/10.1007/978-3-031-17995-2_4)
3 changes: 3 additions & 0 deletions packages/encoder/tree-encoder/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
# @cm2ml/tree-encoder

This plugins provides a tree-bases encoder that supports feature encoding, and different tree formats.
Based on the work of [Burgueño et al.](https://link.springer.com/article/10.1007/s10270-021-00893-y) and [Weyssow et al.](https://arxiv.org/abs/2104.01642)
2 changes: 2 additions & 0 deletions packages/framework/builtin/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
# @cm2ml/builtin

This package provides all built-in parsers and encoders of the CM2ML framework.
2 changes: 2 additions & 0 deletions packages/framework/cli-adapter/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
# @cm2ml/cli-adapter

This package provides a CLI adapter for the CM2ML framework.
3 changes: 3 additions & 0 deletions packages/framework/cli/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
# @cm2ml/cli

This package provides a command `cm2ml` that can be used to run the CM2ML framework from the command line.
This CLI has all built-in parsers and encoders applied.
2 changes: 2 additions & 0 deletions packages/framework/cm2ml/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
# @cm2ml/cm2ml

This package provides all built-in parsers and encoders of the CM2ML framework, as well as a CLI and REST server.
2 changes: 2 additions & 0 deletions packages/framework/deduplicate/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
# @cm2ml/deduplicate

This package provides a plugin for deduplicating data.
3 changes: 3 additions & 0 deletions packages/framework/ir-post-processor/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
# @cm2ml/ir-post-processor

This package provides a post-processor plugin for the intermediate representation (IR) of the CM2ML framework.
It may be used to enrich and validate the IR after it has been generated by the parser.
2 changes: 2 additions & 0 deletions packages/framework/ir/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
# @cm2ml/ir

This package provides the intermediate representation (IR) of the CM2ML framework.
2 changes: 2 additions & 0 deletions packages/framework/metamodel-refiner/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
# @cm2ml/metamodel-refiner

This package provides utilities for refining an IR instance according to a metamodel.
2 changes: 2 additions & 0 deletions packages/framework/metamodel/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
# @cm2ml/metamodel

This package provides utilities for enriching an IR instance with metamodel information.
3 changes: 3 additions & 0 deletions packages/framework/plugin-adapter/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
# @cm2ml/plugin-adapter

This package provides an abstract plugin adapter for the CM2ML framework.
It may be used to implement plugin adapters for specific environments, such as CLIs and HTTP servers.
25 changes: 3 additions & 22 deletions packages/framework/plugin/README.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,5 @@
# @cm2ml/plugin

## Data propagation

Plugins propagate data via two mechanisms as described below.

### Push-forward mechanism - Input - Output

The first and more important mechanism is the `input` parameter and the return value of the `invoke` method.
These form a "push-forward" mechanism, where the plugin receives data from the previous plugin and returns data to the next plugin.

### Pull-forward mechanism - Batch Metadata

In contrast to this approach, there is batch metadata.
Batch metadata is created by a plugin via the optional `batchMetadataCollector` method.
This methods receives the entire batch of input data (if the execution is non-batched, the batch will contain only one element, i.e, the plugins own input) as well as (possibly `undefined`) batch metadata of the previous plugin and returns the new batch metadata that is received by the same plugin's `invoke` method.

This is also referred to as a "pull-forward" mechanism, as the `batchMetadataCollector` is able to pull batch metadata from the previous plugin if required.

The use case for the batch metadata are plugins that need information about the entire batch.
Examples include feature vector creation, where the plugin needs to know the number of features in the entire batch to create a consistent feature vector.

> Note: The `batchMetadataCollector` is only executed once per batch, right before the `invoke` method is called for every item of the batch.
> As such, it is suitable for calculating batch-wide metadata, but not for per-item calculations.
Plugins are building blocks will typed input and output, as well as declarative parameters.
A schema for validating parameter input is generated for each plugin.
Plugins may be composed or modified through a number of operators.
2 changes: 2 additions & 0 deletions packages/framework/rest-adapter/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
# @cm2ml/rest-adapter

This package provides a REST adapter for the CM2ML framework.
3 changes: 3 additions & 0 deletions packages/framework/rest/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
# @cm2ml/rest

This package provides a command `cm2ml-server` that can be used to start a REST server that runs the CM2ML framework.
This server has all built-in parsers and encoders applied.
4 changes: 4 additions & 0 deletions packages/framework/xml-parser/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,5 @@
# @cm2ml/xml-parser

This package provides an XML parser that parses XML files into a preliminary IR model.
The parser does handle attributes, but will not instantiate any edges.
It must be configured with a metamodel configuration.
2 changes: 1 addition & 1 deletion packages/kernighan-lin/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ npm install kernighan-lin
```ts
import { type Options, kernighanLin, recursiveKernighanLin } from 'kernighan-lin'

// Bring-your-own-model, as long as vertices are hashable to support Set<Vertex> and Map<Vertex, ...>.
// Bring-your-own-model, as long as vertices are unique to support Set<Vertex> and Map<Vertex, ...>.
type Vertex = string

const vertices: Set<Vertex> = new Set(['a', 'b', 'c', 'd', 'e', 'f'])
Expand Down
40 changes: 1 addition & 39 deletions packages/languages/uml/README.md
Original file line number Diff line number Diff line change
@@ -1,41 +1,3 @@
# @cm2ml/uml

## Limitations

Since the complexity of the UML metamodel is high, only the following metamodel elements (and their generalizations) of the `Classes` diagram type will be implemented in their entirety:

- [x] BehavioredClassifier
- [x] Class
- [x] Classifier
- [x] EncapsulatedClassifier
- [x] Extension
- [x] Property
- [x] Operation
- [x] Reception

### Transitive

- [x] Association
- [x] BehavioralFeature
- [x] ConnectableElement
- [ ] DeploymentTarget
- addEdge_deployedElement
- [x] Element
- [x] Feature
- [x] MultiplicityElement
- [x] NamedElement
- [x] Namespace
- [x] PackageableElement
- [x] ParameterableElement
- [ ] RedefinableElement
- addEdge_redefinedElement
- addEdge_redefinitionContext
- [x] Relationship
- [x] StructuralFeature
- [ ] StructuredClassifier
- addEdge_role
- [x] TemplateableElement
- [x] Type
- [x] TypedElement

For a detailed description of the diagram type reference section 11.4 of the UML spec v2.5.1.
This package provides a UML parser that supports classes of all UML diagram types, except those found in Annex B of the UML spec v2.5.1.
2 changes: 2 additions & 0 deletions packages/visualizer/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
# @cm2ml/visualizer

This package contains the visualizer of the CM2ML framework.

0 comments on commit a6f819d

Please sign in to comment.