所以我的任务是将描述本体的 JSON 模式转换为 SHACL。
JSON-Schema 具有uniqueItems
结构,顾名思义,它强制数组中的所有元素都是唯一的。出于我的目的,仅考虑 String 类型的元素。
SHACL 中是否有类似的构造?sh:disjoint
需要明确的唯一路径,因此它不适用。我正在考虑创建一个 SPARQL 约束,但由于我的实例都是匿名节点,我还不能让它工作。
编辑:添加示例
有效的 JSON:
{
"name": "Robert Lewandowski",
"mbox": "robert@bayern.de",
"contributor_id": {
"identifier": "https://orcid.org/TEST",
"type": "orcid"
},
"role": [
"ContactPerson",
"DataManager"
]
}
无效的 JSON:
{
"name": "Robert Lewandowski",
"mbox": "robert@bayern.de",
"contributor_id": {
"identifier": "https://orcid.org/TEST",
"type": "orcid"
},
"role": [
"ContactPerson",
"ContactPerson"
]
}
有效 TTL:
madmp:contributor [ foaf:mbox "robert@bayern.de" ;
foaf:name "Robert Lewandowski" ;
madmp:contributor_id [ terms:identifier "https://orcid.org/TEST" ;
madmp:identifier_type "orcid"
] ;
madmp:role ( "ContactPerson" "DataManager")
] ;
无效的 TTL:
madmp:contributor [ foaf:mbox "robert@bayern.de" ;
foaf:name "Robert Lewandowski" ;
madmp:contributor_id [ terms:identifier "https://orcid.org/TEST" ;
madmp:identifier_type "orcid"
] ;
madmp:role ( "ContactPerson" "ContactPerson")