问题标签 [federated-queries]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 在联合查询上构建 RDF 图?
我是 SPARQL 和 RDF 的新手。基本上,我必须设计基于 Wikidata 和 Dbpedia 的联合 SPARQL 1.1 查询。
这是我的简单查询。这将选择由莱昂纳多迪卡普里奥主演的电影。
我必须在上面构建一个图表。任何人都可以帮助我进行此类查询吗?我正在 Apache Jena 上对其进行测试。
sparql - 如何使用 SPARQL 从 DBpedia 中提取数据
我正在尝试使用SERVICE
SPARQL 的功能从 dbpedia 中提取一些数据。
事实上,我想提取所有纽约剧院的名称、纬度和地段。要检查一个实例是否是一个剧院,我可以使用http://dbpedia.org/class/yago/Theater104417809</a>。剧院的一个示例可以是http://dbpedia.org/resource/Grand_Theatre_(New_York_City)。
如何使用service
函数在 SPARQL 中获取我需要的内容?
**编辑**
我正在尝试的查询是以下查询,但没有返回任何值。
sparql - 比较联合查询中的标签
我有一个正在运行的 Wikibase 实例。我能够成功地使用 Wikidata 运行联合查询。我有一些比较这样的标签的查询:
但是,以上内容可以通过标签进行匹配和匹配:
1)我最初filter(contains(?wditemlabel, ?itemLabel))
在 SERVICE 子句中,它没有返回任何结果。但是,如果我对其中一个变量(例如filter(contains("test string", ?itemLabel))
)使用静态字符串,它似乎可以工作。为什么比较变量和字符串而不是两个变量时会起作用?
2)我希望查询在最后没有“分组依据”的情况下工作。但看起来没有它,会发生某种交叉连接/笛卡尔积,并且每个匹配的项目都会重复总次数(n * n)。查询的哪一部分导致了这种情况?
sparql - Blazegraph bigdata.war 2.1.5 允许来自“外部”的 SPARQL SERVICE
我在 OSX 系统上的 tomcat 上运行 bigdata 2.1.5。这给出了一个 /bigdata/ URI,它显示了 Blazegraph 的正在运行的 html 控制台。这个大数据实例“DBPedia”正在使用内部带有 DBPedia 三元组的日志。DBPedia 显示在控制台上,三元组是可查询的。
当我使用来自 - 比如说 - https://query.wikidata.org/ - URI server/bigdata/namespace/DBPedia/sparql 的那个大数据实例时 - 不使用那个 URI,分别。调用 SPARQL 引擎会引发找不到服务的异常。
Blazegraph 有一个页面 - https://wiki.blazegraph.com/wiki/index.php/FederatedQuery - 它以某种方式描述了为了运行联合查询而要做的事情(尽管我只想调用我的大数据实例从外部 - 这也是一个联邦)......你应该在 bigdata 的 web.xml 中更改(取消注释)一个参数化块,比如
我改变了那个块但没有成功。可能只是为了能够从该大数据实例调用另一个其 URI 必须被列入白名单的服务。所以我被困在弄清楚如何从 - 比如说 wikidata - SPARQL 引擎调用我的大数据实例......
任何人的想法?
sparql - 如何在 SPARQL 中将字符串与变量绑定
以下查询
"corelli"
从 Europeana 知识库中的一些作品中计算出一些标题。但是,当我尝试将变量?surname
与字符串绑定时,"corelli"
它什么也不返回。
例如
该FILTER REGEX
表达式似乎在那里不起作用(我正在使用 Blazegraph 实例来计算此查询)。如果我使用str(?surname)
而不是?surname
.
为什么会这样?
任何人都知道可以做些什么来设置 ?surname 一些字符串值(我可能想从另一个端点收集)并让查询找到数据?
sparql - 在联合查询中使用 Wikidata 标签服务
我想知道是否可以在联合查询中使用 Wikidata 标签服务。例如,以下查询
返回空?itemLabel
s。我怎样才能在我的结果集中获得?itemLabel
s ?
sparql - 如何从 SPARQL 联合查询(服务关键字)返回特定变量?
我正在使用联合查询从远程服务器检索一些信息,但我不想检索我在联合查询中处理的所有变量(选择 *),我只想返回计数变量. 我怎样才能做到这一点?
代码:
如果不是联合查询,我会这样做:
但是在联合查询中我无法选择变量,那么有没有办法做我想做的事?
** 编辑 1 **
在@TallTed 回复之后,我注意到我可能跳过了一些细节以使问题变得简单,但事实证明细节很重要,所以我将描述整个情况。
我有一个本地数据集,其中包含有关生物过程和基因的三元组。我必须计算与每个生物过程相关的基因数量,并将该数字除以 Uniprot 中确定的关于相同生物过程(及其“子代”)的蛋白质总数。
为此,我首先查询我的本地数据集,计算每个生物过程的基因,然后运行联合查询来计算 Uniprot 中每个生物过程(及其“子代”)中所有已识别的蛋白质。
完整的 SPARQL 代码:
当我使用 Jena ARQ(一个查询引擎)运行这个查询时,变量?bp_iri
在 HTTP 请求的时刻被一个特定的生物过程 IRI(每个生物过程一个 HTTP 请求)替换,如下图所示:
请注意,在explain
图像中,联合查询正在选择所有内容 (*),但问题是我不想检索我在联合查询中处理的所有这些关系,我只想检索计数但计数是一个聚合函数,只允许放在SELECT
关键字前面。(我不想检索所有的关系,因为这些查询返回了很多三元组(数万,有时是数百万),并且没有必要将它们放在我的计算机中只是为了计数。)
为了解决这个问题,我尝试在联合查询中创建一个子查询,以仅选择计数 ( ?bp_total
) 而不是所有三元组。使用的代码:
再次运行explain
,我注意到当我在联邦查询中放置一个子查询时,变量?bp_iri
并没有被生物过程 IRI 替换,如下图所示:
考虑到这一点,我怎样才能只从联合查询中检索计数?
对不起,很长的帖子。
sparql - 在联合查询中正确使用 VALUES
注意:可能的 GrapbDB 错误(见评论)
我在 GraphDB 中有这个知识库:
我试过这个联合查询
我从 Wikidata(即 Musashi 的 Marble 成员)得到了预期的结果。
如果我像这样切换模式的顺序:
我得到了许多误报结果(即,属于 Musashi 的其他猫的数据,而我只想得到 Marble。我猜是本地模式和远程模式之间的一种交叉产品)。
在SPARQL 1.1的官方文档中,他们说:
联合查询可以使用 VALUES 子句来约束从远程端点接收到的结果,该结果基于解决方案绑定来评估查询的其他部分。
(摘录内容丰富。感谢@TallTed 指出这一点)
那么,在联合时,VALUES
只能作为最终过滤器使用吗?到底是怎么回事?
编辑:
- 使用 GraphDB 执行查询
- 这似乎是 GraphDB 查询优化器的一个错误(感谢:Stanislav Kralin)
tomcat - 具有受保护端点的 SPARQL SERVICE
我需要使用受保护的端点在 SPARQL 中制定联合查询,例如:
不幸的是,在 SERVICE 规范中没有提示如何做到这一点。https://mysqparlendpoint/sparql应该是 tomcat 上的 blazegraph,其访问是基本安全的。
如何制定此 SPARQL 查询访问使用凭据打开它的端点?
提前非常感谢!
sparql - dbpedia 和 wikidata 中的联合 SPARQL 查询:几个问题
我有以下查询:
我的问题是:
如何更改查询以使用http://lod.openlinksw.com/sparql而不是http://dbpedia.org/sparql以获得更多结果?
即使我使用了 DISTINCT 和 GROUP BY,仍有人在结果列表中出现不止一次(即“Anton Newcombe”)。为什么?
在 dbpedia 中,一个资源可以有多个 URI,其中一些重定向到另一个。即
dbp:Psychedelic_Rock
附加了资源,但重定向到dbp:Psychedelic_rock
,这实际上似乎是应该使用的 URI。如何在查询中解决此问题,而无需先手动查找DESCRIBE dbp:Psychedelic_Rock
?大概有什么dbo:wikiPageRedirects
?