SPARQL如何接收不是空的?选择?s?p?o WHERE {<http:subject.url =“”>?p?o}

时间:2015-11-02 21:04:14

标签: sparql

所以,当我在WHERE子句中指定让我们说主题的值时,我不会因此而得到它。但我需要它,怎么做?

例如,当我有一个查询时:

SELECT ?s ?p ?o
WHERE{
  <http://subject.url/title> ?p ?o .
 }

结果我只有?p和?o的列,但是空?如果我希望整个三联回来,并在列中添加http://subject.url/title怎么办?

2 个答案:

答案 0 :(得分:1)

SELECT ?s ?p ?o
WHERE {
  BIND (<http://subject.url/title> as ?s)
  ?s ?p ?o .
}

来源:http://www.w3.org/TR/sparql11-query/#bind

答案 1 :(得分:1)

这是一个使用https://msdn.microsoft.com/en-us/library/windows/apps/windows.phone.devices.notification.vibrationdevice.vibrate的好地方。 允许您指定一个(或多个)变量以及这些变量应绑定到的任意数量的值。虽然您可以使用 bind 来处理只有一个值的简单情况,但(在我看来)更好,因为:(i)它的输入较少; (ii)如果你以后想要一些的值,它更容易扩展。

select ?s ?p ?o {
  values ?s { <http://subject.url/title> }
  ?s ?p ?o
}

如果您以后想要了解这两个值的相关信息,可以轻松完成:

select ?s ?p ?o {
  values ?s { <http://subject.url/title1>
              <http://subject.url/title2> }
  ?s ?p ?o
}