Ossie-Fact-Based Modelling Viewer: independent .NET viewer and two-way FBM/ORM converter — feedback and collaborators welcome #272
FactEngineCommunity
started this conversation in
Show and tell
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Hello Ossie community,
I have built Ossie-FBM, an independent .NET viewer and experimental two-way converter between Apache Ossie (incubating) and Fact-Based Modelling/Object-Role Modeling (FBM/ORM).
For readers unfamiliar with Fact-Based Modelling, Ossie’s ontology representation maps closely to fact-based conceptual models, including Fact Types with ordered Roles, natural-language readings, constraints and derivations.
I am publishing it through FactEngineCommunity as an implementation experience—not as an official Apache Ossie application—and would welcome feedback and collaborators.
Repository: FactEngineCommunity/Ossie-FBM
What is Ossie-FBM?
Ossie-FBM is a Windows desktop application and .NET library for exploring how Ossie models map to a fact-oriented conceptual model.
It currently supports:
.fbm) files;flights.yaml, TPC-DS and a Cinema Bookings model.Why I built it
The aim is to test semantic interoperability through a concrete implementation.
Ossie’s ontology representation has useful correspondences with established FBM/ORM constructs, including:
EntityTypeandValueType(relationships become Fact Types);extends;verbalizes;identify_by;multiplicity;derived_by; andontology_mappings.The preservation of natural-language readings is particularly valuable. It allows an exchanged model to remain understandable to subject-matter experts rather than only to YAML-aware software.
Ossie’s explicit mapping between conceptual elements and physical datasets is another notable strength. It provides a practical bridge between conceptual modelling and deployable semantic models.
What implementation has exposed
Building a working converter has also revealed several useful interoperability questions.
Objectified Fact Types
In FBM/ORM, a Fact Type may itself be treated as an Entity Type and participate in other Fact Types. This is commonly called an Objectified/Nested Fact Type.
For example, the ternary Fact Type:
might be reified/objectified as
StockedItem, which can then participate in additional relationships.The converter can recognise this structure in an FBM model, but I have not yet found a lossless Ossie representation that explicitly preserves:
I have documented a candidate representation (TBA in a future Issue) and would particularly value guidance from the ontology and specification contributors.
Implementation findings: What we learned implementing Ossie
Constraint semantics
Common single-role uniqueness and preferred identifiers map reasonably well. Value Constraints, and richer constraint families—including, mandatory participation, subset, equality, exclusion, ring and frequency constraints—need further investigation.
Ossie’s
requiresexpressions are flexible, but a converter may not always be able to reconstruct the author’s intended conceptual constraint family from an expression alone.A parser for Ossie 'requires' constraints is being developed.
We would be interested to hear whether other implementers have encountered similar objectification or constraint-reconstruction issues, and whether named, machine-recognisable constraint semantics would be useful alongside expressions. Shared parser examples—covering different programming languages or grammar tools—could also be valuable.
Current status
This is an experimental interoperability implementation.
Current limitations include:
.fbmsupport.The original Ossie-FBM source and documentation are Apache-2.0 licensed. The bundled FactEngine dependency permits non-commercial use and redistribution under its accompanying licence, so the complete application is not an Apache-2.0-only distribution. The repository documents this distinction explicitly.
Feedback and collaboration
I would welcome help with:
In particular, I would appreciate the community’s views on:
Where the implementation uncovers a genuine specification or documentation gap, I would be happy to contribute focused examples, tests, documentation or schema proposals upstream.
Thank you—and congratulations to everyone building Apache Ossie. Developing against the format has been a valuable way to understand both its strengths and the remaining interoperability questions.
Project status: Independent FactEngineCommunity implementation
Repository: FactEngineCommunity/Ossie-FBM
Upstream: apache/ossie
Implementation findings: What we learned implementing Ossie
Licence information: Licence
Apache Ossie is an effort undergoing incubation at The Apache Software Foundation. Ossie-FBM is not an official Apache Ossie project and is not endorsed by the Apache Software Foundation.
All reactions