我很希望能得到一些关于一个我认为非常简单的场景的帮助;但是由于我是OWL和GraphDB的新手,可能犯了一些基本错误。
我有一个非常简单的Turtle-specified OWL示例,如下所示:
@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 .
实际上,我有一个名为Gender的类,并且确定存在两个不同的成员Male和Female。
然后我定义了另一个名为Person的类,它具有一个函数属性hasGender,其范围为Gender。
最后,我断言Person的一个实例,并且也断言它既是Male又是Female。
现在我理解这是一种矛盾;我已经断言hasGender属性是功能性的,因此对于给定的Person,应该只有一个性别。我还断言Male和Female是不同的,因此当我将其导入GraphDB时,我原本以为它会失败。
但是GraphDB很高兴加载这两个断言。我错过了什么吗?