acdh-oeaw / arche-schema
ACDH存储库本体
v5.1.0
2024-09-18 07:35 UTC
Requires (Dev)
- dev-master
- 5.x-dev
- v5.1.0
- v5.0.0
- v4.x-dev
- 4.4.0
- v4.3.x-dev
- v4.3.0
- v4.2.0
- v4.1.1
- v4.1.0
- v4.0.0
- v3.1.2
- v3.1.1
- v3.1.0
- v3.0.2
- v3.0.1
- v3.0.0
- v2.0.10
- v2.0.9
- v2.0.6
- v2.0.5
- v2.0.4
- v2.0.3
- 2.0.2
- v2.0.1
- v2.0.0
- 1.11.2
- 1.11.1
- 1.11
- 1.10
- 1.9
- 1.8
- 1.7.1
- 1.7.0
- 1.6.3
- 1.6
- 1.5.0
- v1.4.1
- v1.4
- v1.3
- v1.2
- v1.1
- v1.0
- dev-vocabsAsRanges
- dev-langTag
- dev-exampleValue
- dev-hasLiteralIdentifier_range
- dev-21-create-human-readable-documentation
- dev-ontology-v3.1
- dev-ordering-tech-props
- dev-versioningdescr
- dev-ontology-v3
- dev-bellerophons-pegasus-patch-2
- dev-ontologyV2.0
- dev-rdbms
This package is auto-updated.
Last update: 2024-09-18 08:29:17 UTC
README
这是ACDH本体存储库。本体将被用来描述acdh-repo中的资源。
- 要查看当前本体的交互式网络可视化,请访问这里(感谢https://github.com/VisualDataWeb/WebVOWL)
- 要查看更静态的概述,请访问这里
- 要查看表格视图,请点击这里或这里
发布周期
发布新的本体版本需要非常小心。这是因为本体决定了关键ARCHE组件(最显著的是门卫和GUI)的行为,并且我们必须能够确保现有的元数据与当前本体保持一致。
为了确保新的本体发布不会引起任何问题,发布过程应按以下步骤进行
- 创建一个新的git分支(
git checkout -b branchName
,其中branchName可以是下一个本体版本号)。 - 在新分支中做出更改,提交它并推送到GitHub(
git push origin branchName
)。 - 创建一个pull请求
- 访问https://github.com/acdh-oeaw/arche-schema/compare
- 在
compare:
下拉列表中选择您的分支 - 提供您更改的描述
- 点击创建pull请求按钮
- 等待Martina,Mateusz和Norbert的批准。
检查清单- 本体检查脚本没有报告错误
- arche-lib-schema通过新的本体测试
- arche-doorkeeper通过新的本体测试
- 动态根表正确显示新的本体
- 我们有更新旧元数据的脚本来确保它们与新的本体保持一致
- 合并pull请求并创建新版本。
约定
版本号
- 主版本号的变化由以下任何一项构成:
- 调整或添加基数限制
- 删除类、属性或注释属性
- 删除注释属性
- 次版本号的变化由以下任何一项构成:
- 添加新的类属性或注释属性
- 调整类继承
- 调整属性继承、范围或域
- 调整驱动门卫或GUI行为的注释属性的值
- 修订版本号的变化由以下构成:
- 对门卫和GUI没有影响的变化(例如描述或翻译更改)
类
- 如通常一样,类名必须以大写字母开头
- 使用驼峰式命名
- 如果需要类的并集,使用辅助类
- 辅助类是acdh:Helper的所有子类
属性
- 如通常一样,属性名必须以下划线字母开头
- 使用驼峰式命名
- 属性的方向应在属性名中说明。
- 错误
acdh:title
- 正确
acdh:hasTitle
- 错误
acdh:isMember
- 正确
acdh:isMemberOf
- 错误
- 请记住数据类型和对象属性之间的区别
- 什么是什么是如何影响GUI的?
- 数据类型属性有一个字面值(在ttl中,它的值写在
"
之间,例如_:someRes acdh:someProperty "literal value"
)- 它仍然可以是URL/URI,只是它将作为字符串存储,并且不会创建单独的存储库资源(在GUI中,它将显示为可点击的链接,在新标签页中打开URL)
- 对象属性有一个URI值(在ttl中,它的值写在
<
和>
之间,或使用简写语法,例如_:someRes acdh:someProperty <https://some/url>
或_:someRes acdh:someProperty acdhi:otherResource
)- 对象属性值会创建新的存储库资源
- 数据类型属性有一个字面值(在ttl中,它的值写在
- 在owl中不能做什么(在owl中)
- 数据类型属性不能从对象属性继承(反之亦然)
- 数据类型属性和对象属性不能等价
- 什么是什么是如何影响GUI的?
- 属性的意义不得依赖于类上下文。如果你觉得属性的意义(即使是稍微)对不同类不同,请创建两个(或更多)属性。
- 不要创建属性及其反向版本,这会带来很多麻烦,并且不会使提供数据更容易
范围
- 明智地选择数据类型属性的范围,因为它们会影响门卫和GUI
- 使用
xsd:
类型除xsd:string
和xsd:anyURI
以外的xsd:
类型的属性将由门卫转换(例如,如果范围是xsd:date
并且摄入值是2018
,门卫将其转换为2018-01-01
) - 具有范围
xsd:anyURI
的属性将在GUI中以可点击链接的形式显示,在新标签页中打开,而所有其他数据类型属性值将在GUI中按原样显示
- 使用
限制
- 不要使用有资格的基数限制——范围已经由属性定义,不应该在限制中重新定义(或更改)(在Protege术语中意味着将数据类型属性的rdfs:Literal和对象属性的owl:Thing设置为范围)
- 尽量避免在共同父类的所有子类上重复相同的限制——在父类上定义限制(你不会失去任何东西,因为Protege仍然显示这样的继承限制,并且它将允许保持本体更小、更简单)
- 模拟实际存储库行为(考虑到存储库中的不是本本体中定义的所有ACDH类的资源,但某些规则仍然适用于它们,例如,所有都必须有一个标题和一个标识符)
- 使用
owl:Thing
表示存储库中的任何资源
- 使用
注释属性
- 仔细遵循注释属性描述