在基本sparql查询中应用基于regex的过滤器不会返回任何结果

时间:2017-11-21 22:22:40

标签: sparql opendata

以下查询:

PREFIX qb: <http://purl.org/linked-data/cube#>
SELECT DISTINCT ?subject
WHERE 
{
  ?x qb:component ?subject .
}

通过此公开端点部署:http://statistics.gov.scot/sparql-beta生成可用主题列表:

http://statistics.gov.scot/def/component-specification/pupil-attainment/refArea
http://statistics.gov.scot/def/component-specification/pupil-attainment/refPeriod
http://statistics.gov.scot/def/component-specification/pupil-attainment/measureType
http://statistics.gov.scot/def/component-specification/pupil-attainment/count
http://statistics.gov.scot/def/component-specification/pupil-attainment/pupils
http://statistics.gov.scot/def/component-specification/pupil-attainment/ratio

问题

我想使用正则表达式过滤可用结果,类似于linked example

PREFIX vcard: <http://www.w3.org/2001/vcard-rdf/3.0#>

SELECT ?g
WHERE
{ ?y vcard:Given ?g .
  FILTER regex(?g, "r", "i") }

尝试时:

PREFIX qb: <http://purl.org/linked-data/cube#>
SELECT DISTINCT ?subject
WHERE 
{
  ?a qb:component ?subject .
  FILTER regex(?subject, "p", "i")
}

查询返回没有行的表。有没有办法可以过滤获得的值?

1 个答案:

答案 0 :(得分:3)

我认为您应该在df.T.plot() 上调用str函数,它不是字符串而是URI,所以首先必须将其转换为字符串。

这应该有效:

?subject