Sparql查询模式与筛选结果匹配

Sparql查询模式与筛选结果匹配,sparql,rdf,semantic-web,dbpedia,Sparql,Rdf,Semantic Web,Dbpedia,我对运行sparql查询还不熟悉,但我不是很有经验。我开发了一个java应用程序,它执行符合用户提供的给定模式的查询。 例如,我合成了模式,以简化的方式进行查询:P?十、 ?,?Y、 问?十、 ?,?Z、 问?YZ 其中P和Q是在第一种情况下结合两个个体的性质?x和y,在第二种情况下结合两个个体的性质?x和z,在第三种情况下结合两个个体的性质?y和z。例如,元查询的一个可能答案是以下isMarriedTo?x,?y,livesIn?x,?y,livesIn?y,?z 我在YAGO上尝试了元查询,

我对运行sparql查询还不熟悉,但我不是很有经验。我开发了一个java应用程序,它执行符合用户提供的给定模式的查询。 例如,我合成了模式,以简化的方式进行查询:P?十、 ?,?Y、 问?十、 ?,?Z、 问?YZ 其中P和Q是在第一种情况下结合两个个体的性质?x和y,在第二种情况下结合两个个体的性质?x和z,在第三种情况下结合两个个体的性质?y和z。例如,元查询的一个可能答案是以下isMarriedTo?x,?y,livesIn?x,?y,livesIn?y,?z 我在YAGO上尝试了元查询,但在DBPEDIA上也尝试了元查询,但结果不是他们想要的。 以下是我提出的问题:

SELECT DISTINCT ?x ?y ?z ?p ?q
WHERE{
GRAPH <http://dbpedia.org> {

     ?x ?p ?y.
     ?x ?q ?z.

  filter ( ?p != ?q )
  filter ( ?x != ?y )
  filter ( ?x != ?z )
  filter ( ?y != ?z )
  }
}LIMIT 20
我的目的是从这个查询中选择所有符合这个模式的实例?十、 ?,?Y和Q?十、 ?,?Z 出于我的目的,我得到了一些不成功的结果,例如,我想避免出现诸如…rdf schemalabel之类的本体论结果。简而言之,我对实际结果很感兴趣。 下面是上面给出的查询结果url

我希望得到的元组是具体的,包括hasGivenName、hasnighborner、wasBornOnDate这样的属性。
例如,这些属性包含在此文件中,为什么不过滤这些属性呢?或者基于URI,例如FilterStrStartStr?p,http://dbpedia.org/ontology/ 或基于属性的类型,例如?PA?p_类型。值?p_type{owl:ObjectProperty owl:DatatypeProperty}或。。。等等等等。你必须定义如何限制可能的属性。顺便说一句,你应该在研究中寻找相关的工作-看起来你正在从事模式检测、规则检测或类似的工作。同时,非常感谢,不幸的是,我有几个问题,因为我刚开始研究查询,我想问的是,如果将结果限制在一个不太高的数字,然后随机排序,我是否能够得到我想要的结果?因为我无法理解如何通过运行一般查询来获得具体结果。因为在我开发的应用程序中,我使用JENA库,我最终可能会收到结果,然后从应用程序本身过滤它们。您是否有关于如何进行一般查询的经验?也许我找到了一种方法,我想处理.ttl yago turtle文件,可以从中找到。我可以与Jena一起查询这个.ttl文件并推断出我需要的信息吗?非常感谢您YAGO架构不包含实例数据。。。那么,您想如何确定元查询中使用的属性呢?为什么不过滤这些属性呢?或者基于URI,例如FilterStrStartStr?p,http://dbpedia.org/ontology/ 或基于属性的类型,例如?PA?p_类型。值?p_type{owl:ObjectProperty owl:DatatypeProperty}或。。。等等等等。你必须定义如何限制可能的属性。顺便说一句,你应该在研究中寻找相关的工作-看起来你正在从事模式检测、规则检测或类似的工作。同时,非常感谢,不幸的是,我有几个问题,因为我刚开始研究查询,我想问的是,如果将结果限制在一个不太高的数字,然后随机排序,我是否能够得到我想要的结果?因为我无法理解如何通过运行一般查询来获得具体结果。因为在我开发的应用程序中,我使用JENA库,我最终可能会收到结果,然后从应用程序本身过滤它们。您是否有关于如何进行一般查询的经验?也许我找到了一种方法,我想处理.ttl yago turtle文件,可以从中找到。我可以与Jena一起查询这个.ttl文件并推断出我需要的信息吗?非常感谢您YAGO架构不包含实例数据。。。那么,您希望如何确定元查询中使用的属性呢?