sparql - 如何在 SPARQL 中将字符串与变量绑定
问题描述
以下查询
PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX edm: <http://www.europeana.eu/schemas/edm/>
PREFIX ore: <http://www.openarchives.org/ore/terms/>
SELECT *
{
SERVICE <http://sparql.europeana.eu> {
?CHO ore:proxyIn ?proxy;
dc:title ?title ;
dc:creator ?creator ;
dc:date ?date .
FILTER REGEX(str(?creator),"corelli","i").
?proxy edm:isShownBy ?mediaURL .
}
}
"corelli"
从 Europeana 知识库中的一些作品中计算出一些标题。但是,当我尝试将变量?surname
与字符串绑定时,"corelli"
它什么也不返回。
例如
SELECT *
{
values ?surname { "corelli" }
SERVICE <http://sparql.europeana.eu> {
?CHO ore:proxyIn ?proxy;
dc:title ?title ;
dc:creator ?creator ;
dc:date ?date .
FILTER REGEX(str(?creator),?surname,"i").
?proxy edm:isShownBy ?mediaURL .
}
}
该FILTER REGEX
表达式似乎在那里不起作用(我正在使用 Blazegraph 实例来计算此查询)。如果我使用str(?surname)
而不是?surname
.
为什么会这样?
任何人都知道可以做些什么来设置 ?surname 一些字符串值(我可能想从另一个端点收集)并让查询找到数据?
解决方案
您很可能看不到结果,因为查询超时。对于您正在使用的公共端点来说,它太重了。实际上,这两个查询都太繁重了,如果您尝试使用不同的字符串值进行几次尝试,您可能会注意到有时第一个查询也会超时,有时第二个查询会返回一些结果。
推荐阅读
- python - 对象成员函数被覆盖
- authentication - 如何在基于 PKI 的智能卡小程序中更改容器的大小?
- math - 从多边形点计算近似轮廓
- javascript - 同一域的不同选项卡使用单独的本地存储
- javascript - 如何使用 openLayers 将自定义 SRS 设置为图层?
- sql-server - 更新行后,日期时间中的 SSIS 时间重置为 0
- java - 如何在 Java servlet 中处理多个请求
- javascript - 应用了文本区域的完美滚动条,但滚动条不可见
- maven - 重置 JFrog Jenkins 构建的管理员密码后失败
- elasticsearch - ElasticSearch:权威指南仍然适用吗?