Skip to content

About

FPSOT data models specification

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

FPSOT data models specification

Rules for how FPSOT projects define and publish the data models of their entities. Each model has one LinkML source, and tools generate its JSON Schema, SQL, OWL and SHACL forms, with a check that fails on any drift. The first subject area is Party: persons, organizations, roles, relationships, contact mechanisms, identifications and classifications. The models follow the universal data model patterns as Apache OFBiz implements them, adapted to the other FPSOT specifications. Version 0.1 is a draft.

Implement this spec

Read the normative text in spec/en/ or spec/fr/. Each requirement has an ID from DMO-001 to DMO-073.

  • Write each model as a LinkML schema under model/, which imports the FPSOT data types model.

  • Generate the other forms into model/generated/, and run model/test-model.sh in the continuous integration, so that drift fails the build. In this repository, the model job of .github/workflows/ci.yml runs it, and it is a required check of the main branch (DMO-015).

  • Keep jurisdiction fields in the extensions object, defined by a separate profile schema.

Every part of a model is optional. A system can implement a part, or take it from its own Party records, Apache OFBiz or another system, embedded or as a remote service. It conforms when the data it exchanges for that part takes the form of the model.

Adopt this spec

Read the guide in docs/modules/en/pages/index.adoc or docs/modules/fr/pages/index.adoc. It builds a small Party example, with a Québec extension, and checks it with the LinkML validator. The comparison data in jurisdictions/ shows how the rules of Canada and Québec differ.

To check the model locally:

python3 -m venv .venv
.venv/bin/pip install -r model/requirements.txt
PATH="$PWD/.venv/bin:$PATH" bash model/test-model.sh

Layout

Folder Content

spec/

Normative text, in English and French. book.adoc joins the pages into one book, published as PDF with each release.

docs/

Guides, in the Antora folder layout.

model/

The LinkML Party model, a copy of the data types model in imports/, the generated files in generated/, and examples with a Québec profile in examples/. requirements.txt pins the tools. Run model/test-model.sh after a change.

skill/

The agent skill: a short summary that cites requirement IDs.

rules/

Machine-checkable rules. The model checks are in model/.

diagrams/

PlantUML sources and their rendered SVG files, such as the class diagram of the Party subject area in English and French.

jurisdictions/

Comparison data: how each government handles the same topics.

License

The specification is under the Community Specification License 1.0. Source code is under the Apache License 2.0. See LICENSE.md and NOTICE.

About

FPSOT data models specification

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages