2017-06-14 39 views
1

我创建两个类BookPerson参与OWL限制类和对象属性hasAuthor获取比如通过SPARQL 1.1

  • Person有子类ManWomen
  • Book具有子类Hard_bounded_bookSoft_bounded_book

我使用的是OWL限制如下创建的Book另一个子为Book_With_Atleast_One_Male_Author

:Book_With_Atleast_One_Male_Author rdfs:subClassOf [ 
    rdf:type owl:Class ; 
    owl:intersectionOf (
         :Book 
         [ a owl:Restriction ; 
         owl:onProperty bf:hasAuthor ; 
         owl:someValuesFrom :Male ] 
        ) 
] . 

现在我创建和PersonBook一些实例和关系:

:Hard_bounded_book1 rdf:type :Hard_bounded_book . 
:Hard_bounded_book2 rdf:type :Hard_bounded_book . 
:Soft_bounded_book1 rdf:type :Soft_bounded_book . 
:Soft_bounded_book2 rdf:type :Soft_bounded_book . 
:Male1 rdf:type :Male . 
:Male2 rdf:type :Male . 
:Female1 rdf:type :Female . 
:Female2 rdf:type :Female . 
:Hard_bounded_book1 :hasAuthor :Male1 
:Hard_bounded_book1 :hasAuthor :Male2 
:Hard_bounded_book1 :hasAuthor :Female1 
:Hard_bounded_book1 :hasAuthor :Female2 
:Soft_bounded_book1 :hasAuthor :Male1 
:Soft_bounded_book2 :hasAuthor :Female1 

当我写了一个SPARQL查询来获取类Book_With_Atleast_One_Male_Author的实例,我什么也没得到。 如果您对发生的事情有任何了解,请让我知道吗?

谢谢。

+0

你使用哪种API使用推理与SPARQL? – AKSW

+0

我使用OQL2-QL规则集在GraphDB软件中加载它。 – Sidd

+0

我希望你的意思是'OWL2-QL'。正如下面的答案正确地指出的那样,你必须使用等价公理而不是简单的包含,它只在一个方向上进行推断。 – AKSW

回答

1

当然你不会得到!您将:Book_With_Atleast_One_Male_Author定义为Bookrestriction之间交点的subClassOf

subClassOf语义:

Sub subClassOf Super 

意味着Sub每个实例的Super一个实例。

这意味着:Book_With_Atleast_One_Male_Author的实例必须遵循您定义的这个restriction,但这并不意味着遵循此限制的任意个人是Book_With_Atleast_One_Male_Author的实例。

您可以做的是将:Book_With_Atleast_One_Male_Author定义为Book与您创建的restriction的匿名类之间的交集的等价类。因此,每个既是Book又符合restriction的个人将(推理者运行)归类为:Book_With_Atleast_One_Male_Author

这里是你如何能做到这:

:Book_With_Atleast_One_Male_Author rdf:type owl:Class ; 
           owl:equivalentClass [ owl:intersectionOf ( :Book :EquivalentToBookAndHasMaleAuthor) ;rdf:type owl:Class ] . 

:EquivalentToBookAndHasMaleAuthor rdf:type owl:Class ; 
           owl:equivalentClass [ rdf:type owl:Restriction; owl:onProperty :hasAuthor ; owl:someValuesFrom :Male] . 
+0

我刚刚使用OWL2-QL规则集加载了graphDB软件,但没有奏效。我有一个文件,但我不知道如何与你分享文件。 – Sidd

+0

你加载到GraphDB中的是什么?那是什么文件?你能否更具体一些? –

+0

@Sidd你必须改变你的本体论像MedianHilal建议UND载荷到您的GraphDB数据集以及 – AKSW