问题标签 [named-graphs]
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.
sparql - 命名图和联合 SPARQL 端点
我最近遇到了SPARQL 1.1 联合扩展的工作草案,并想知道这是否已经可以使用命名图(不要减损上述草案的有用性)。
我对命名图的理解有点模糊,除了我从阅读规范中得到的唯一一件事包括关于合并的规则,在查询时与其他图相关的非合并。由于这不能完全满足我的理解,我的问题如下:
给定以下查询:
假设查询处理器/端点可以或应该在命名图的上下文中执行以下操作是否合理:
检查命名图是否在本地存在
如果没有,则执行以下操作(在上述查询的情况下,我将使用第二个命名图)
GET /sparql/?query=EncodedQuery HTTP/1.1 主机:www.autotrader.co.uk 用户代理:my-sparql-client/0.1
其中 EncodedQuery 仅在子句中包含第二个命名图,并且FROM NAMED
子句针对子句进行了WHERE
相应的修改GRAPH
(例如,如果GRAPH <http://www.vw.co.uk/models/used> {...}
正在使用 a)。
只有当它不能执行上述操作时,才执行以下任一操作:
或者
- 返回适当的搜索结果。
OFFSET
显然,围绕's 和LIMIT
's可能还有一些额外的考虑
我还记得很久以前在遥远的星系的某个地方读到,任何 SPARQL 端点的默认图都应该是根据以下约定的命名图:
对于:http://www.vw.co.uk/sparql/应该有一个命名图:http://www.vw.co.uk代表默认图,因此按照上述逻辑,它应该已经可以使用命名图来联合 SPARQL 端点。
我问的原因是我想在上面的例子中开始促进跨域的联合,而不必等待标准,确保我不会做一些不合时宜或与其他东西不兼容的事情未来。
rdf - 芝麻 rdfstore 命名图
- 我正在使用 sesame HTTP api 及其内存 rdf 存储。
- 我在上下文/命名图中加载数据/三元组
- 我使用命名图/上下文进行查询
我有两个问题:
在同一个存储库中,一个图节点可以在不同的命名图之间共享吗?
- 我的用例是我从graph1中过滤数据并将其放入graph2中。那么节点是否共享 b/w graph1 和 graph2?
在 GET 操作期间查找命名图是 O(1) 操作吗?或者使用命名图有性能优势吗?
sparql - 具有大量 UNION 的 SPARQL 查询的替代方案
我有一些命名图存储在 Virtuoso 中,我想从提供的列表中找到与最多术语匹配的图。
我的查询是以编程方式构建的,如下所示:
每个术语成为另一个 UNION 子句。
有一个更好的方法吗?查询变得又长又难看,当术语太多时,Virtuoso 会抱怨。
sparql - 构造成命名图
我正在尝试使用 SPARQL Construct 查询从现有的命名图创建一个新的命名图。我正在查询的数据库包含http://graph.com/old
一个现有的命名图。我使用Jena TDB作为数据库,通过Jena Fuseki端点访问。下面的查询给了我一个错误:
如果我从 CONSTRUCT 块中删除图形语句,查询将完美运行,但我想将三元组放入我指定的命名图形中,而不是默认图形。
据我所知,关于 CONSTRUCT 的 SPARQL 1.1 部分没有说明任何关于构建命名图的内容。有没有办法做到这一点?
sparql - 单四边形 + 最基本的 SPARQL 查询 = Jena 中的 1 个结果,Sesame 中的 2 个结果 - 谁是对的?
仅将这个四边形添加到空商店:
然后执行这个 SPARQL 查询(取自 Bob DuCharme 的书 'Learning SPARQL',所以这必须是标准的 SPARQL 用于检索整个数据集的所有四边形,无论实现如何,对吧!?):
但是耶拿和芝麻的回答不同!!?这是我看到的:
Tomcat 6.0.37 上的 Jena Fuseki 控制台(版本 2.10.0 - 开箱即用,没有配置更改!) - (据我了解的正确答案):
Tomcat 6.0.37 上的 Sesame Workbench(版本 2.7.3 - 开箱即用,无配置更改!):只需使用工作台中的“添加”功能手动添加上述四边形(选择了“N-Quad”在“数据格式”下拉框中),在“输入您要上传的 RDF 数据”编辑框中,然后运行上述查询:
所以这对于开始关注 RDF 的人来说有点可怕——我在这里错过了什么?我认为 Sesame 不可能是“错误的”——所以我想它一定是我的“解释”(或者 Bob 的查询不是“标准 SPARQL”,因此不同的实现可以自由地返回不同的结果)——任何启示都会非常欢迎 :) !
sparql - tbloader vs SPARQL INSERT - 为什么命名图的行为不同?
ARQ、TDB 和 Named Graphs 的命令行工具的连接有一个奇怪的行为。如果在命名图中通过 tdbloader 导入数据,则无法通过 SPARQL SELECT 查询中的 GRAPH 子句进行查询。但是,当使用 SPARQL INSERT 在同一个图中插入数据时,可以进行此查询。
我有以下汇编器描述文件tdb.ttl:
文件data.ttl中有一个数据集:
现在,我使用 tdbloader 插入这些数据,然后使用 SPARQL INSERT 插入另一个三元组,两者都在命名的图形数据中:
现在,可以通过以下方式使用 SPARQL 查询数据:
一切似乎都很完美。但现在我只想查询这个名为 graph data的特定名称:
为什么从 tdbloader 导入的数据丢失了?这个查询有什么问题?如何从两个导入中获取结果?
sparql - Generate Graph with sub-Graphs using sparql
I have the following situation in my RDF-store:
Named Graph: A
Named Graph: B
Named Graph: C
I now want to define a SPARQL Query which finds all Graphs where O1 is in the tripples, and stores those 3 Graphs + the tripples in a new Graph with the name A+B+C
NEW Named Graph: A+B+C
With Construct or insert Into i only found out how to build a graph out of tripples, bzw not how to build a graph which contains graphs?
Is this possible, if yes how?
Tank you
sparql - SPARQL 1.1 蕴含机制和使用 FROM 子句的查询
我目前正在记录/测试有关 SPARQL 1.1 蕴含机制的信息,并且该建议反复指出
范围图与活动图等效
但它没有指定活动图指的是什么:它是查询中使用的数据集吗?商店中所有图表的联合?
作为确定这一点的测试,我<http://www.example.org/>
在 Sesame Memory 存储中使用 RDF Schema 和直接类型推理存储(v2.7.14)将此图 URIed
我一直在尝试以下查询(这意味着使用默认图,因此使用推理引擎)
正如预期的那样,它返回了所有三个实例
而查询:
只返回
在上述情况下,两个结果不应该相同吗?
如果数据和模式在存储中的两个图之间拆分(如<urn:rdfs-schema>
and <urn:data>
,甚至分散在更多图上)并且查询使用两个图(或与模式相关的图的子集) FROM 子句而不是默认图?
这意味着推理应该在整个商店中是全局的还是取决于查询数据集?
或者,该建议是否足够松散以使其成为依赖于实现的问题?
谢谢你的灯,
最大限度。
编辑这个问题被重定向到SPARQL 1.1 蕴含机制并使用 FROM 子句进行查询(后续)
sparql - SPARQL 1.1 蕴含机制和使用 FROM 子句的查询(后续)
这是SPARQL 1.1 蕴涵制度和使用 FROM 子句查询的后续问题
我目前正在记录/测试有关 SPARQL 1.1 蕴含机制的信息,并且该建议反复指出
范围图是图等价于活动图...
因此,推理范围图似乎取决于查询。
问题是:范围图是否源自查询的数据集(FROM/FROM NAMED 子句),还是指正在评估的三重模式的真实当前活动图上下文?
用下面的图
以下查询应该返回什么(例如,在 RDFS-entailment 制度下)并根据建议?
我应该取回所有三个资源:
要不就
因为三重模式上的活动图的范围是 NAMED 图,而推理公理在默认图中“定位”?
感谢您的洞察力,
最大限度。
java - 触发 Stardog 规则的 SPARQL 查询
我正在尝试自定义 Stardog 规则。自定义规则基本上如下所示:
我已经使用以下 java 代码上传了这个 ttl 文件:
由于我想将规则保存在单独的图表中,因此我已在http://url/rules
图表中加载了规则三元组。默认图,tag:stardog:api:context:default
在 Stardog 中表示,包含本体公理。当我使用以下 SPARQL 查询时,Stardog 规则按预期工作:
您可能想知道现在出了什么问题。我想我对 FROM 和 FROM NAMED 子句的理解有误。当我离开FROM <http://url/rules>
查询时,我期望查询没有结果。然而,我仍然得到与原始查询一样的结果。这怎么可能?这就是我对这些条款的看法:
FROM <tag:stardog:api:context:default>
:使用默认图中的本体公理FROM <http://url/rules>
:使用此特定查询中的规则FROM NAMED <http://url/datasource>
:实际需要查询的数据
所以我重复我的问题,为什么当我将第二个 FROM 子句排除在 SPARQL 查询之外时,我会得到正确的结果?仅供参考,我一直在使用推理类型 SL。
在@user1538695 回答后编辑
当我在模式(TBox)中保留规则时,我仍然需要添加FROM <tag:stardog:api:context:default>
我的查询。我只想查询一个命名图并使用模式进行推理。如果不必明确提及默认图(模式),这难道不是可能的吗?这是我当前查询的样子: