OWL财产限制与SHACL

时间:2017-06-26 19:23:47

标签: constraints rdf owl semantic-web shacl

如果在OWL Property RestrictionsSHACL之间进行选择,是否有理由再选择OWL方法?

特别是关于基数约束,我想知道SHACL是否被认为是取代OWL。对于我的随意检查,语法看起来很相似。

我可能错过了OWL基数约束的目的。作为本体的一部分,它们应该促进推理(与验证有关的单独问题)。但是,基数约束如何促进推理呢?

4 个答案:

答案 0 :(得分:12)

OWL和SHACL之间的差异如下表所示。

|               OWL                  |              SHACL                |
|------------------------------------|-----------------------------------|
| Based on open world assumption     | Based on closed world assumption  |
|------------------------------------|-----------------------------------|
| Designed for inferencing           | Designed for validation           |
|------------------------------------|-----------------------------------|
| Computationally cheap              | ?                                 |
| (typical problems are decidable)   | ?                                 |
|------------------------------------|-----------------------------------|
| A lot of inferences                | One have to define a lot          |
| almost "out of the box"            | of ad-hoc constraints manually    |
|------------------------------------|-----------------------------------|
| Is useful as documentation for RDF |                                   |

至于OWL中的基数约束,这些约束允许在某些情况下在某些方面关闭世界,以便得到额外的推论。

基数约束的逻辑在OWL和SHACL中是相反的。非正式地:

  • 在SHACL中,

    ex:PersonShape a sh:NodeShape ; sh:targetClass ex:Person ; sh:path ex:parent ; sh:minCount 1 .

    意味着如果某人是某人,那么他/她必须至少有一位父母。

  • 在OWL中,

    ex:Person owl:equivalentClass [ rdf:type owl:Restriction ; owl:onProperty ex:parent ; owl:minCardinality "1" ] .

    意味着如果某人至少有一位父母,那么他/她就是一个人。

来自TopBraid marketing materials

  

SHACL与RDF Schema和OWL有何不同? RDFS和OWL是为“开放世界”而设计的,其中数据可以从语义Web上的许多地方汇编而来。这个设计目标多年来引起了很多挫折,因为它使得甚至无法检查最明显的完整性约束,例如属性是否具有一定数量的值。相比之下,SHACL采用“封闭世界”,符合典型商业用户的期望。此外,OWL已针对某种类型的分类问题进行了优化,但它不能用于进行数据验证所需的常规操作,如数学计算或文本操作。 SHACL更具表现力。此外,它与SPARQL无缝集成,以表达几乎任意的条件。顺便说一下,使用SHACL语句逐步扩展RDFS或OWL模型是完全正确的,支持两个世界。

另请参阅:http://spinrdf.org/shacl-and-owl.html

答案 1 :(得分:7)

根据我的经验,大多数OWL用户并未真正理解或不关心OWL的实际语义(开放世界假设等)。在许多情况下,使用OWL基数限制因为没有其他选择。然而,正如其他地方所指出的,owl:maxCardinality 1的语义是大多数人所期望的:它意味着如果属性有两个值,则假定这些值是相同的(owl:sameAs)。在SHACL中,sh:maxCount 1表示如果属性有两个值,则需要删除其中一个值。

继续使用OWL支持SHACL的主要原因是OWL具有更长的历史(即更多工具,可重用的本体和示例),并且如果您想要使用OWL(DL)推理。但是,如果您需要传统的封闭世界语义,请使用SHACL。请注意,SHACL和OWL可以混合使用,例如在一个文件中定义类和属性,然后在另一个文件中定义OWL限制,在另一个文件中定义SHACL约束。

答案 2 :(得分:1)

以我的经验,很少使用OWL推理,复杂的OWL构造(包括RestrictionunionOf)不是很有用。

即使rdfs:domain/range也是单态的,也会引起重用问题:将它们与多个值一起使用,就会引起麻烦。

因此,在Ontotext,我们最近一直在使用基于示例的模型,非置信schema:domain/rangeIncludes和形状来表示如何将类和道具一起使用。

答案 3 :(得分:1)

我认为OWL完全基于开放世界假设这一事实使其非常独特。在某些用例中,您需要将来自许多不同来源的许多数据集整合在一起,需要此独特功能。对于任何给定的事实,总会有来自不同来源的不同意见。 “数据结构”(或企业知识图)中对“多个版本的真相”的基本支持至关重要,甚至更强大:它是企业范围用例的最重要的推动力。对于EKG,我们需要OWL作为核心。形成所有数据的“无偏见”表示,不强迫任何特定的封闭世界视图,推断所有正确的事实。洋葱圈中有很多翻译语言,例如SHACL(严格的特定于上下文的特定对象的封闭世界形状),SPARQL(图2的表格),R2RML(表2的表格)等等。