sdml-core

Crates.iosdml-core
lib.rssdml-core
version
sourcesrc
created_at2023-07-28 03:00:11.156955+00
updated_at2025-03-10 19:39:55.113404+00
descriptionCore Model for Simple Domain Modeling Language (SDML)
homepage
repositoryhttps://github.com/johnstonskj/rust-sdml.git
max_upload_size
id928100
Cargo.toml error:TOML parse error at line 19, column 1 | 19 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include`
size0
Simon Johnston (johnstonskj)

documentation

README

Package sdml-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.

Package Overview

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

Changes

Version 0.3.2

  • Style: Changed cargo file to use license key instead of license-file.

Version 0.3.1

  • Feature: move use of tree-sitter crate behind a feature.
  • Feature: added iterators to trait ModuleStore.

Version 0.3.0

  • Feature: update for the latest grammar.
    • Updated Member to be a union of MemberDef and IdentifierReference~
    • Updated entity identity to be just a Member.
    • Updated PropertyDef to be a wrapper around MemberDef.
    • Fixed corresponding validation rules.
  • Refactor: simplified the walker/visitor to pass model members rather than de-constructing them.
  • Refactor: renamed and made some changes in the cache (now store) and load modules.

Version 0.2.17

  • Feature: inverted the logic for determining whether a definition is incomplete.
    • Rename: trait MaybeInvalid to MaybeIncomplete.
  • Feature: added method has_source to the trait ModuleLoader.
  • Feature: added implementation of FromStrfor bothQualifiedReferenceandIdentifierReference`.
  • Build: bump version of sdml-errors.

Version 0.2.16

Version 0.2.15

  • Fix: Identifier::from_str should allow type names.

Version 0.2.14

  • Feature: add new ModuleStore trait, implemented by ModuleCache.

While not advantageous immediately, it mirrors the separation of trait and implementation that worked well for ModuleLoader and ModuleResolver.

Version 0.2.13

  • Feature: add new validation for IdentifierNotPreferredCase, to enforce case conventions.

Version 0.2.12

  • Feature: more term validation, mainly to reduce the number of todo! panics.

Version 0.2.11

  • Refactor: moved errors and diagnostics to new crate sdml_error.
  • Feature: started on diagnostics and verification, working but incomplete.
  • Added: deprecated terminology validation.

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 version 0.1.29

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.

Commit count: 314

cargo fmt