sdml-core 0.2.10

Core Model for Simple Domain Modeling Language (SDML)
Documentation

Crate sdlm_core

Rust in-Memory model of the Simple Domain Modeling Language (SDML).

crates.io docs.rs

This package is part of the Rust SDML project and specifically defines the in-memory model of an SDML module. The project's intent is to provide an idiomatic implementation of the in-memory model, parser, generators, and the CLI tool.

The following figure demonstrates this package in the broader project context.

                         ╭───────╮
                         │  CLI  │
                    ╔══  │ crate │  ══╗
                    ║    ╰───────╯    ║
┌╌╌╌╌╌╌╌╌┐          V                 V
┆        ┆       ╭───────╮       ╭──────────╮       Formatted Source
┆ source ┆  ══>  │ parse │  ══>  │ generate │  ══>  RDF Representation 
┆  file  ┆   ╭───│ crate │───────│   crate  │───╮   Documentation
┆        ┆   │   ╰───────╯       ╰──────────╯   │   Diagrams
└╌╌╌╌╌╌╌╌┘   │           core crate             │
             ╰──────────────────────────────────╯
 ┌───────┐                  ⋀
 │ other │                  ║
 │ tools │  ════════════════╝
 └───────┘

Note that other tools can use the sdml_core API to create or manipulate models.

Changes

Version 0.2.10

  • Feature: Add new stdlib modules iso_3166 for country codes, and iso_4217 for currency codes.
  • Style: Shortened stdlib constant names for readability.
  • Fix: Correct the regex for identifiers, now in sync with the grammar.

Version 0.2.9

  • Fix: Cardinality parser set incorrect default values.
    • Update: the with_ constructors on Cardinality to take option types.

Version 0.2.8

  • Feature: Add more to the SDML standard library module as needed for RDF generator.

Version 0.2.7

Clean-up release.

  • Added new import! macro for stdlib modules.
  • Removed debugging println! calls.
  • Fixed compiler warnings and fmt issues.

Version 0.2.6

  • Feat: Added more to the sdml stdlib module.
  • Feat: Added helpers is_stdlib_property and is_datatype_facet to AnnotationProperty.
  • Feat: Added new AnnotationBuilder trait and impls on most definitions to allow easy adding of annotation properties.
  • Feat: Added helper methods to ModuleCache to make it more collection-like.

Version 0.2.5

  • Feature: Implemented the core standard library modules.
    • dc (elements) -- Complete.
    • dc_terms -- Not started.
    • dc_am -- Not started.
    • dc_type -- Not started.
    • owl -- Complete.
    • rdf -- Complete.
    • rdfs -- Complete.
    • sdml -- Mostly complete.
    • skos -- Complete.
    • xsd (part 2) -- Complete.

This change affects the ModuleCache as well, it's with_stdlib constructor will include all the library modules and their definitions. This can be checked out with the command-line tool to either draw diagrams of the standard library modules or convert into s-expressions, etc.

Version 0.2.4

  • Feature: add new stdlib modules with standard layout.
  • Feature: minor refactor of cache and loader.

Version 0.2.3

  • Feature: Update to latest grammar for version URIs and RDF definitions.

Version 0.2.2

  • Feature: Add initial support for versioned modules.
    • Remove base keyword
    • Add new optional version keyword after module URI with:
      • optional version string that becomes owl:versionInfo
      • version URI that becomes owl:verionIRI
  • Feature: Add new RDF structure/property definitions.
    • Add new keyword rdf followed by either structure or property with name and annotation body.
    • Extended SimpleModuleWalker with support for RDF class/property definitions.

Version 0.2.1

  • Feature: Remove member groups.

Version 0.2.0

  • Feature: Update to latest grammar.
    • Remove Value Variant numeric values
    • Update formal constraints
    • Add type classes

Version 0.1.11

  • Feature: Update Cardinality::to_uml_string to output constraints.
  • Fix: Missing features in mapping types and values.

Version 0.1.10

  • Feature: Added support for mapping_type and mapping_value rules.

Version 0.1.9

  • Style: Run Cargo format and clippy

Version 0.1.8

  • Feature: Made the name for constraints required, not Option.
  • Style: Remove most macros from the model.

Version 0.1.7

  • Fix: Minor fixes

Version 0.1.6

  • Build: Updated parser with grammar changes in tree-sitter-sdml v0.1.29

Version 0.1.6

  • Build: Updated parser with grammar changes in tree-sitter-sdml v0.1.26

Version 0.1.5

  • Created a stdlib module and moved all the SDML and relevant RDF files into it.
  • Updated model to the same level as tree-sitter-sdml version 0.1.21.
  • Updated tree-sitter-sdml dependency with updated constraints.
    • Renamed TypeDefinition to Definition to address the fact that property definitions aren't types.
    • Renamed EnumVariant to ValueVariant to align with TypeVariant on unions. This required change to walker methods.

Version 0.1.4

Previously part of a single crate sdml.