/lowkey

A low-level and transparent framework for collaborative modeling.

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

A low-level and transparent framework for collaborative modeling.

License Unit tests Quality Gate Status

Recent publication

I. David and E. Syriani. "Real-time Collaborative Multi-Level Modeling by Conflict-Free Replicated Data Types". In: Soft. Syst. Model. 2022. 10.1007/s10270-022-01054-5

Repository structure

Setup guide

  • Clone this repository.
  • Install requirements via pip install -r requirements.txt.
  • Install the framework as an editable local package via pip install -e [path_to_the_project]. (Use pip uninstall lowkey if not needed anymore.)

References

Metamodeling

Source: Van Mierlo, Barroca, Vangheluwe, Syriani, Kühne. Multi-Level Modelling in the Modelverse. Proceedings of MULTI 2014.

CRDT specifications

Shapiro M, Preguiça N, Baquero C, Zawirski M. A comprehensive study of convergent and commutative replicated data types (Doctoral dissertation, Inria–Centre Paris-Rocquencourt; INRIA)

Network architecture and patterns

Source: ZMQ: Reliable Pub-Sub with Update republishing

Further pointers:

Command language

  • CREATE -name {name} -typedBy {type} [-attributeName {value}]*
  • LINK -from {fromClabject}.{associationName} -to {toClabject} [-attributeName {value}]*
  • UPDATE (-name {name} | -id {id}) [-attributeName {newValue}]*
  • DELETE (-name {name} | -id {id})