23 个版本
0.2.17 | 2024 年 6 月 28 日 |
---|---|
0.2.16 | 2024 年 6 月 28 日 |
0.2.15 | 2024 年 2 月 21 日 |
0.2.9 | 2024 年 1 月 31 日 |
0.1.6 | 2023 年 7 月 28 日 |
#74 在 #modeling
195 每月下载
在 3 crates 中使用
590KB
12K SLoC
#+TITLE: 软件包 sdml-core #+AUTHOR: Simon Johnston #+EMAIL: [email protected] #+LANGUAGE: en #+STARTUP: overview hidestars inlineimages entitiespretty #+OPTIONS: author:nil created:nil creator:nil date:nil email:nil num:3 toc:nil
Rust 的 Simple Domain Modeling Language (SDML) 内存模型。
[https://crates.io/crates/sdml_core] [https://docs.rs/sdml_core]
此软件包是 Rust SDML 项目的组成部分,特别定义了 SDML 模块的内存模型。项目目标是提供一个符合 Rust 习惯的内存模型、解析器、生成器和 CLI 工具的实现。
以下图展示了此软件包在更广泛的项目背景中的位置。
#+CAPTION: 软件包组织 #+BEGIN_EXAMPLE ╭───────╮ │ CLI │ ╔══ │ crate │ ══╗ ║ ╰───────╯ ║ ┌╌╌╌╌╌╌╌╌┐ V V ┆ ┆ ╭───────╮ ╭──────────╮ Formatted Source ┆ source ┆ ══> │ parse │ ══> │ generate │ ══> RDF Representation ┆ file ┆ ╭───│ crate │───────│ crate │───╮ Documentation ┆ ┆ │ ╰───────╯ ╰──────────╯ │ Diagrams └╌╌╌╌╌╌╌╌┘ │ core/errors crate │ ╰──────────────────────────────────╯ ┌───────┐ ⋀ │ other │ ║ │ tools │ ════════════════╝ └───────┘ #+END_EXAMPLE
请注意,其他工具可以使用 =sdml_core= API 来创建或操作模型。
- 变更记录
版本 0.2.17
- 特性:反转了确定定义是否不完整的逻辑。
- 重命名:将 trait =MaybeInvalid= 重命名为 =MaybeIncomplete=。
- 特性:为 trait =ModuleLoader= 添加了 =has_source= 方法。
- 特性:为 =QualifiedReference= 和 =IdentifierReference= 添加了 =FromStr= 实现。
- 构建:提高 =sdml-errors= 的版本号。
版本 0.2.16
- 修复:[[https://github.com/sdm-lang/rust-sdml/issues/11][sdml:srcLabel lacks surrounding quotation in Turtle serialization]] (#11)。
版本 0.2.15
- 修复:=Identifier::from_str= 应该允许类型名称。
版本 0.2.14
- 特性:添加了新的 =ModuleStore= trait,由 =ModuleCache= 实现。
虽然目前没有优势,但它反映了 =ModuleLoader= 和 =ModuleResolver= 中 trait 和实现的分离,这种分离效果良好。
版本 0.2.13
- 特性:添加了新的 =IdentifierNotPreferredCase= 验证,以强制执行大小写约定。
版本 0.2.12
- 特性:更多的术语验证,主要是为了减少 =todo!()= 崩溃的数量。
版本 0.2.11
- 重构:将错误和诊断移动到新的 crate =sdml_error=。
- 特性:开始进行诊断和验证,正在进行中但尚未完成。
- 新增:=已弃用= 术语验证。
版本 0.2.10
- 特性:添加新的 stdlib 模块 =iso_3166= 用于国家代码,以及 =iso_4217= 用于货币代码。
- 样式:缩短 stdlib 常量名称以提高可读性。
- 修复:纠正标识符的正则表达式,现在与语法同步。
版本 0.2.9
- 修复:基数解析器设置了不正确的默认值。
- 更新:将 =with_= 构造函数在 =Cardinality= 中更新以接受选项类型。
版本 0.2.8
- 特性:根据 RDF 生成器需要,向 SDML 标准库模块添加更多内容。
版本 0.2.7
清洁发布。
- 新增新的 =import!= 宏以用于 stdlib 模块。
- 删除调试 =println!= 调用。
- 修复编译器警告和 fmt 问题。
版本 0.2.6
- 特性:向 =sdml= stdlib 模块添加更多内容。
- 特性:向 =AnnotationProperty= 添加帮助函数 =is_stdlib_property= 和 =is_datatype_facet=。
- 特性:添加新的 =AnnotationBuilder= 特性和大多数定义的 impls,以允许轻松添加注释属性。
- 特性:向 =ModuleCache= 添加帮助方法,使其更像集合。
版本 0.2.5
- 特性:实现了核心标准库模块。
- =dc=(元素)-- 完成。
- =dc_terms= -- 未开始。
- =dc_am= -- 未开始。
- =dc_type= -- 未开始。
- =owl= -- 完成。
- =rdf= -- 完成。
- =rdfs= -- 完成。
- =sdml= -- 大部分完成。
- =skos= -- 完成。
- =xsd=(第二部分)-- 完成。
此更改还影响了 =ModuleCache=,其 =with_stdlib= 构造函数将包含所有库模块及其定义。这可以通过命令行工具进行检查,以绘制标准库模块的图表或将它们转换为 s-表达式等。
版本 0.2.4
- 特性:添加具有标准布局的新 stdlib 模块。
- 特性:缓存和加载器的轻微重构。
版本 0.2.3
- 特性:更新到最新的语法,用于版本 URI 和 RDF 定义。
版本 0.2.2
- 特性:添加对版本化模块的初始支持。
- 删除 =base= 关键字。
- 在模块 URI 后添加新的可选 =version= 关键字,后跟
- 可选版本字符串,成为 =owl:versionInfo=。
- 版本 URI,成为 =owl:verionIRI=。
- 特性:添加新的 RDF 结构/属性定义。
- 添加新的关键字 =rdf=,后跟 =structure= 或 =property=,带有名称和注释体。
- 扩展 =SimpleModuleWalker= 以支持 RDF 类/属性定义。
版本 0.2.1
- 特性:删除成员组。
版本 0.2.0
- 特性:更新到最新的语法。
- 删除值变体数值。
- 更新正式约束。
- 添加类型类。
版本 0.1.11
- 特性:更新 =Cardinality::to_uml_string= 以输出约束。
- 修复:映射类型和值中缺少的功能。
版本 0.1.10
- 特性:添加对 =mapping_type= 和 =mapping_value= 规则的支持。
版本 0.1.9
- 样式:运行 Cargo 格式和 clippy。
版本 0.1.8
- 特性:使约束名称变为必需,而不是 =Option=。
- 样式:从模型中删除大多数宏。
版本 0.1.7
- 修复:一些小修复。
版本 0.1.6
- 构建:更新解析器以包含 =tree-sitter-sdml= 版本 =0.1.29= 中的语法更改。
版本 0.1.6
- 构建:更新解析器以包含 =tree-sitter-sdml= 版本 =0.1.26= 中的语法更改。
版本 0.1.5
- 创建了一个 =stdlib= 模块,并将所有 SDML 和相关 RDF 文件移入其中。
- 更新模型以与 =tree-sitter-sdml= 版本 =0.1.21= 相同。
- 更新 =tree-sitter-sdml= 依赖项,以包含更新的约束。
- 将 =TypeDefinition= 重命名为 =Definition=,以解决属性定义不是类型的事实。
- 已将 =EnumVariant= 重命名为 =ValueVariant=,以与联合上的 =TypeVariant= 保持一致。这需要对walker方法进行更改。
版本 0.1.4
以前是单个crate的一部分 [[https://crates.io/crates/sdml][sdml]]。
依赖项
~12–22MB
~313K SLoC