问题标签 [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 - 如何将过滤后的三元组从一个图表移动到另一个图表?
我正在使用 jena-fuseki 服务器。例如,假设我的默认图表具有以下三元组。
现在我想将 title hasReleaseyear>2015 的三元组从这个默认图移动到命名图http://example.org/mynamedgraph。
我可以构建我想要移动的三元组
我可以在网上看到的是 MOVE 操作会将“所有”三元组从默认移动到这个命名图。如何在将三元组从默认图移动到命名图之前过滤它们。
jena - 在 Jena Fuseki 的命名图中添加新三元组时的推理
我正在尝试使用 Jena Fuseki 的 API 创建一个FusekiServer
使用 OWL 模型的,包装在Dataset
.
我想在向其中添加新的三元组Dataset
(使用 SPARQL)时进行 OWL 推理,同时仍然能够创建命名图。
在我接下来的两个示例中,模型的打开方式如下:
我试过的:
- 使用以下方法,在加载模型时以及使用 SPARQL 添加新的三元组时执行 OWL 推理。另一方面,不可能创建一个新的命名图(如果我尝试这样做,我会收到一条错误消息,指出不支持此操作:
java.lang.UnsupportedOperationException: DatasetGraphOne.add(named graph)
我从创建的方式中了解到这Dataset
一点。)。
- 使用以下方法,在加载模型时执行 OWL 实现。确实可以在命名图或“基础”图中添加新的三元组。另一方面,正如 OWL 模型所描述和预期的那样,在添加新的三元组时(无论它们是添加到基础图还是命名图中),都不会做出新的推论。
示例中加载的两个文件是简单模型和一些示例个体如下:
test_schema.ttl:
测试数据.ttl
我使用 SPARQL 插入的三元组以测试推理是否完成,它们只是如下内容:
ex:Alice ex:hasParent ex:Bob
为了看看他们是否都被推断出他们是的事实ex:Person
。
我见过用 Fuseki、TDB 和命名图进行推理吗?但问题更多的是关于 Fuseki TDB 和 Fuseki 的“汇编器”接口。我认为这个问题部分相关,但它没有为我的问题提供答案(这似乎更“基本”)。我还在 Jena 邮件列表上看到了线程Persisting named graphs in TDB with jena-fuseki,它部分地谈到了这个问题,但更面向 TDB 中命名图的持久性。
总结一下:如何使用 Jena Fuseki 编程 API 创建 SPARQL 端点,允许使用基本图和命名图概念,同时在添加新三元组时允许在运行时进行 OWL 推理?可能吗 ?我错过了什么吗?
rdf - 清除 GraphDB 免费中的命名图很慢
通过带有 clear(context) 函数的 rdf4j 清除具有多个三元组的命名图很慢。甚至,通过 graphdb 接口 http://localhost:7200/graphs 手动删除命名图也很慢。我尝试根据这些指南使用 JVM 内存。我的服务器有 64GB 内存,我用 40GB JVM 内存调用 graphdb,'graphdb.page.cache.size' 被设置为默认值 '17.8G':
但是清除命名图时没有时间改善。大约需要 40 秒。
有什么建议吗?
neo4j - Neo4j 持久命名图
我来自 RDF 世界,其中命名图是持久的,可以像三元组的集合一样使用。此外,您可以查询单个命名图或整个三元组。我正在 Neo4j 中寻找相同的功能(或实现它们的解决方法)。
Neo4j 的 Graph Catalog 有据可查。据我了解,Neo4j 中的命名图完全存储在内存中(重启后会丢失),其中包含您为分析目的定义的节点子集。
有没有办法在 Neo4j 中创建名为图形的持久性?与数据一起存储在磁盘中并允许快速访问节点子集的图(可以从命名图中添加或删除节点)。
merge - 用于合并 RDF 数据立方体的 SPARQL 查询
我正在从事一个存储 2 个 RDF 数据立方体的项目:
- 气候数据立方体:湿度数据集、降雨数据集、温度数据集
- 行业数据立方体:行业数据集 两个数据立方体都以命名图的形式存储在 GraphDB 数据库中。这些图表的每个数据集都具有相同的维度:时间和年份。现在我需要将这些数据集合并在一起进行数据探索。假设我们以下观测包含河内市 2016-2017 年的气候和工业数据:
图:http ://sda-research.ml/graph/climate
图:http ://sda-research.ml/graph/industry
现在我想合并 2 个输出图表,其中包含 2016-2017 年河内的湿度和行业价值。在 GraphDB SPARQL Endpoint 上,我使用了以下查询:
预期输出:
实际输出:
使用 UNION 时如何删除空值,或者您是否有任何查询可以提供正确的预期结果?
python - 无论如何,是否只能使用 python 从 aws neptune 备份/归档命名图形数据?
Neptune 具有快照功能,但它不会备份单个命名图,而是备份整个集群。无论如何它可以专门获得仅给出图形名称的备份吗?(sparql)
sparql - SELECT FROM DEFAULT 实际上是做什么的?
Sparql 有一个“默认图”的概念,当没有指定图上下文时查询它,并且它(取决于三重存储)可能是存储库中可用的适当图的联合,或者它可能是一个单独的“空图形”; 到目前为止,一切都很好。
但是 sparql 也有一个可以指定的关键字来代替图名,如DEFAULT
这个命令有什么作用?我只能将其解释为一种明确的方式来请求在根本没有 FROM 子句时会发生的相同事情。但这是正确的吗?我找不到有关它的文档。那么在更新查询中使用它,或者使用CLEAR
,COPY
等呢?谁能指出这个关键字的含义和预期用途的文档,或者至少阐明它为什么存在?
sparql - 使用命名图对三元组进行版本控制
我正在管理一个命名图(每个命名图模式有多个资源),并且需要更新命名图以进行版本控制图的任何更改。
首先,我有一个当前版本的命名图。
问题陈述:每当我收到一个 delta turtle 文件(ttl 将只有更改的三元组),必须创建一个名为 graph 的新版本,其中包含 delta 更改(当前版本 + delta)。 命名图版本图
我将命名图 v1 发布到一个新的命名图 V2。尝试 HTTP PUT 和 PATCH 进行更新,但它只是用增量文件替换它(我需要在新命名图中保留未更改的节点)。
是否可以使用我在 SPARQL 1.1 Graph Store HTTP Protocol 中阅读的 HTTP PATCH 来做到这一点:
然而,对于 PATCH,封闭的实体包含一组说明,描述如何修改驻留在源服务器上的 RDF 图内容以生成新版本。
感谢是否有人可以给我一些指示或想法以达到解决方案。谢谢。
sparql - Sparql 查询以在不知道名称的情况下从所有命名图中读取
我正在寻找对任何数据集运行 SPARQL 查询。我们不知道数据集中命名图的名称。
当您知道命名图的名称时,这些是大量文档和从命名图中选择的示例。有显示列出命名图的示例。
我们正在从 Java 运行 Jena,因此可以运行 2 个查询,第一个获取命名图,我们将它们注入第二个。
但是,当您不知道它们的名称时,您肯定可以编写一个从所有命名图读取的单个查询吗?
注意:我们希望避免使用默认图形,因为它们的行为似乎依赖于实现。