对于我认为是非常简单的场景,我会很感激您的帮助;但是作为OWL和GraphDB的新手,我可能犯了一些基本的错误。
我有一个非常简单的海龟指定的猫头鹰示例如下:
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix demo: <urn:demo> .
demo:Gender a owl:Class .
demo:Male a demo:Gender .
demo:Female a demo:Gender .
demo:Male owl:differentFrom demo:Female .
demo:Person a owl:Class .
demo:hasGender a owl:ObjectProperty, owl:FunctionalProperty;
rdfs:domain demo:Person;
rdfs:range demo:Gender .
demo:Per1 a demo:Person;
demo:hasGender demo:Male;
demo:hasGender demo:Female .本质上,我有一个名为性别的类,并断言有两个不同的成员--男性和女性。
然后,我定义了另一个具有functional property hasGender的类人,其范围是性别。
最后,我断言一个人的例子,也有两个独立的断言,即它是男性和女性。
据我所知,这有点矛盾;我断言hasGender属性是功能性的,因此对于给定的人来说,应该只有一个性别。我还断言,男性和女性是不同的,所以当我将它导入GraphDB时,我希望它会因此而失败。
但是GraphDB很乐意加载这两个断言。我错过了什么吗?
发布于 2018-02-25 21:42:46
当创建存储库
如果您试图导入数据,GraphDB将不得不说:
无法导入数据;com.ontotext.trree.consistency.ConsistencyException:一致性检查eq_diff1_1失败: urn:demoMale owl:不同点:demoMale urn:demoMale owl:sameAs urn:demoMale
或者,取消选中复选框,导入数据,然后执行:
PREFIX sys: <http://www.ontotext.com/owlim/system#>
INSERT DATA { [] sys:consistencyCheckAgainstRuleset "owl2-rl" }另一种建模方法是将Male和Female创建为Person的不相交子类。
与owl:FunctionalProperty不同,owl:AllDisjointClasses是由OWL 2 QL覆盖的。
https://stackoverflow.com/questions/48953802
复制相似问题