roriholm

roriholm

Paradigm - A metamodeling framework for MBSE tooling

Hi! I just wanted to share my public release of something I’ve been working on. The Paradigm library provides some core utilities for a data modeling framework. As an example, there might be 3 different things that you want to reason about:

  1. the idea of a Thrift model
  2. some particular Thrift model
  3. data conforming to that particular model

Paradigm lets you set this up formally. You can also have different information co-existing at each level allowing you to set up, say, Thrift<->Protobuf schema conversions or data-level integrations.

The core is still subject to major changes. I am working on several other libraries using it as a dependency. In particular

  • Interoperability with metamodels for Thrift/Protobuf/Avro
  • Codegen with compile-time validity checks
  • BaseX XQuery graph adapters for document database

Thank you for your time and feel free to get in touch.

Most Liked

Asd

Asd

I’ve read the doc and examples and I still don’t understand what this library does and what problems it solves. Plus, documentation has a lot of jargon specific for MBSE (I had to google what MBSE means too). Perhaps it would make sense to do one of these two things:

  • Mark that the library is intended for users who have prior MBSE knowledge of some level and link some resources which would provide this knowledge
  • Make the documentation and examples accessible for average Elixir developer with simple examples, real-world use-case examples, guides, cheatsheets, maybe even youtube videos with demonstrations

PS. Personally, I find comments in the example very funny

Get the metamodel paradigm, embed it into a graph for manipulation, validate that the embedded graph conforms to the metamodel, extract back to a paradigm struct

Even though comments are in plain English, it all sounds like I joined maths course in the middle of it, and now nothing makes sense to me

roriholm

roriholm

Hey all, just wanted to bump this thread as the library and docs have been extensively worked-over, and I also have some demos running at https://paradigmpro.live/. I will be back soon with a technical paper. Cheers

Where Next?

Popular in Announcing Top

hauleth
PhoenixBakery is library for Phoenix 1.6 (and later) that provides modules implementing Phoenix.Digester.Compressor. There are currently ...
New
yotor_coder
:glowing_star: Looking for Contributors to Join PyraUI Hey everyone :waving_hand: I’ve been working on PyraUI — a modern UI component li...
New
sonic182
Hi everyone, at Doofinder we have been building llm_composer for some new apps, and we thought it could be useful to share it with the co...
New
zteln
Hello Elixir community, I’ve written a small embedded key-value database in Elixir called Goblin. It’s based on the Log-Structured Merge...
New
mikehostetler
Hey everyone! I’m excited to share ReqLLM - a new approach to LLM interactions in Elixir that I’ve been working on. After building agent...
New
lostbean
Hello Elixir community! :wave: I’m excited to announce the first release of ReqCassette, a VCR-style record-and-replay library specifica...
New
victor23k
LiveViewPortal is a small library that allows third-party sites to embed LiveView apps. The library is distributed as an NPM package. On...
New
fuelen
Hey folks! Want to present a toolkit for writing command-line user interfaces. It provides a convenient interface for colorizing text...
New
rkallos
Peep is a new TelemetryMetrics reporter that supports both StatsD (and Dogstatsd) and Prometheus. While load testing a new Websocket-bas...
New
rodloboz
Sifter is a a query filtering library for Ecto. It lets frontend apps send human-readable query strings like: "elixir phoenix status:pu...
New

Other popular topics Top

peerreynders
Manning 2016 Halloween weekend sale via Deal of the Day Friday, October 28 - Half off all MEAPs - code WM102816LT Saturday, October 29 ...
326 29600 154
New
dotdotdotPaul
Okay, I'm having a heck of a time trying to figure out how to best handle the validation of belongs_to associations in Ecto. I'm sure I'...
New
grych
Hi folks, Few months ago I have announced the proof-of-concept of the library to manipulate the browsers DOM objects directly from Elixi...
639 49522 488
New
jononomo
I am trying to figure out how Mix knows whether the environment is test, dev, or prod -- where is this set? Thanks.
New
minhajuddin
I have seen a lot of code which picks the first element from a list using Enum.at(0) instead of List.first. Is there a reason why people ...
New
alice
Hey, Just curious what are the main benefits of Elixir compared to Clojure? When is Elixir more useful than Clojure and vice versa? Th...
New
qwerescape
Is there a way to get the call stack or stack trace at any point in the code? Not from exceptions, but an expression that returns how the...
New
msaraiva
Surface is an experimental library built on top of Phoenix LiveView and its new LiveComponent API that aims to provide a more declarative...
564 42633 214
New
chrisalley
ExUnit now has describe blocks which is a welcome addition coming from RSpec. In the docs, it states that nested hierarchies of describe ...
New
TunkShif
This post is an instruction guide to help you setup your Neovim for Elixir development from scratch. It includes general information on h...
273 38985 115
New

We're in Beta

About us Mission Statement