Crate sdlm_core
Rust in-Memory model of the Simple Domain Modeling Language (SDML).
This package is part of the Rust SDML project and specifically defines the in-memory model of an SDML module. The intent is to provide an idiomatic implementation of the SDML grammar as a part of a set that includes parser, generators, and the CLI tool. The figure below demonstrates this package in context.
┌────────🮢 ╭───────╮ ╭──────────╮ Formatted Source
│ source │ ==> │ parse │ ==> │ generate │ ==> RDF Representation
│ file │ ╭───│ crate │───────│ crate │───╮ Documentation
└────────┘ │ ╰───────╯ ╰──────────╯ │ Diagrams
│ core crate │
╰──────────────────────────────────╯
Changes
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
andis_datatype_facet
toAnnotationProperty
. - 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
- optional version string that becomes
- Remove
- Feature: Add new RDF structure/property definitions.
- Add new keyword
rdf
followed by eitherstructure
orproperty
with name and annotation body. - Extended
SimpleModuleWalker
with support for RDF class/property definitions.
- Add new keyword
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
andmapping_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
version0.1.21
. - Updated
tree-sitter-sdml
dependency with updated constraints.- Renamed
TypeDefinition
toDefinition
to address the fact that property definitions aren't types. - Renamed
EnumVariant
toValueVariant
to align withTypeVariant
on unions. This required change to walker methods.
- Renamed
Version 0.1.4
Previously part of a single crate sdml.