Python 如何为以下结果编写Sparql查询?

Python 如何为以下结果编写Sparql查询?,python,sparql,rdflib,sparqlwrapper,Python,Sparql,Rdflib,Sparqlwrapper,[![SPARQL查询详细信息][2][2] 我应该如何编写SPARQL查询以从node2获取详细信息:node2的URI在两个图中是相同的,而Node1的URI是不同的。先谢谢你 因此,我需要以下详细信息 node2 def hasID ghi hasvertex jkl hasLastname mno 要获取所有三元组,请写入选择?node2?p?o WHERE{?node2?p?o} 现在,要将结果限制为图1(由node1的URI定义),需要添加hasName?node2 一起: SEL

[![SPARQL查询详细信息][2][2]

我应该如何编写SPARQL查询以从node2获取详细信息:node2的URI在两个图中是相同的,而Node1的URI是不同的。先谢谢你

因此,我需要以下详细信息

node2 def
hasID ghi
hasvertex jkl
hasLastname mno

要获取所有三元组,请写入
选择?node2?p?o WHERE{?node2?p?o}

现在,要将结果限制为图1(由node1的URI定义),需要添加
hasName?node2

一起:

SELECT ?node2 ?p ?o WHERE{
  <http://ex/abc> hasName ?node2 .
  ?node2 ?p ?o
}
选择节点2?p?o何处{
hasName?node2。
?节点2?p?o
}

要让所有三元组写入
请选择?node2?p?o其中{?node2?p?o}

现在,要将结果限制为图1(由node1的URI定义),需要添加
hasName?node2

一起:

SELECT ?node2 ?p ?o WHERE{
  <http://ex/abc> hasName ?node2 .
  ?node2 ?p ?o
}
选择节点2?p?o何处{
hasName?node2。
?节点2?p?o
}

只需稍微修改SPARQL,将真实URI用于属性:

SELECT ?node2 ?p ?o
WHERE {
  <http://ex/node1> <http://ex/hasName> ?node2 .
  ?node2 ?p ?o .
}
SELECT?node2?p?o
在哪里{
?节点2。
?节点2?p?o。
}

只需稍微修改SPARQL,将真实URI用于属性:

SELECT ?node2 ?p ?o
WHERE {
  <http://ex/node1> <http://ex/hasName> ?node2 .
  ?node2 ?p ?o .
}
SELECT?node2?p?o
在哪里{
?节点2。
?节点2?p?o。
}

任何教程都会回答您的问题。。。只需在图形中的每条边上使用三重模式,对于任何您不想指定的内容,请使用Aviable。然后选择您需要的变量。简而言之,这就是基本SPARQL的全部内容<代码>选择?p?o,其中{?p?o}是的,我得到了……但是如果我有两个相似的图,其中只有node1的URI不同,而node2的URI在这两个图中是相同的。我想在这种情况下进行查询。您能告诉我在特殊情况下如何准确地穿越吗。谢谢。我不知道你现在在问什么,这与你在问题中展示的图像不匹配。您要求提供“node2的所有详细信息”,这正是我的查询所做的。那么现在的问题是什么?如果有多个节点具有到节点2的边,请使用
DISTINCT
操作符:
选择DISTINCT?p?o where{?p?o}
我编辑了图像并使其更加清晰。请给我一个关于预期结果的问题。那真的很有帮助。多谢各位@任何教程都会回答您的问题。。。只需在图形中的每条边上使用三重模式,对于任何您不想指定的内容,请使用Aviable。然后选择您需要的变量。简而言之,这就是基本SPARQL的全部内容<代码>选择?p?o,其中{?p?o}是的,我得到了……但是如果我有两个相似的图,其中只有node1的URI不同,而node2的URI在这两个图中是相同的。我想在这种情况下进行查询。您能告诉我在特殊情况下如何准确地穿越吗。谢谢。我不知道你现在在问什么,这与你在问题中展示的图像不匹配。您要求提供“node2的所有详细信息”,这正是我的查询所做的。那么现在的问题是什么?如果有多个节点具有到节点2的边,请使用
DISTINCT
操作符:
选择DISTINCT?p?o where{?p?o}
我编辑了图像并使其更加清晰。请给我一个关于预期结果的问题。那真的很有帮助。多谢各位@不知情者