问题标签 [blazegraph]
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.
import - 使用批量数据加载器将三元组加载到 Blazegraph
我正在尝试使用 Blazegraph 在 ConceptNet 上运行图形算法,但首先我必须导入数据。数据将是Write Once, Read Many,所以我不需要任何增量写入。
我从它的 .deb 文件安装了 Blazegraph 2.1.1。我还下载blazegraph.jar
了,以便我可以按照涉及在 blazegraph.jar 上运行命令的说明进行操作。
该文件assoc.nt
采用 N-Triples 格式,包含大约 2500 万条边。以下是一些从一开始的:
我fastload.properties
从GitHub 上的 Blazegraph 示例中获得,但后来改变了结尾:
我补充说
com.bigdata.journal.AbstractJournal.file=blazegraph.jnl
,否则它会告诉我财产丢失了。我将
bufferMode
from更改DiskRW
为Disk
,因为某人的属性文件表明这会给我 Write-Once-Read-Many 语义,这正是我想要的。
这是我的决赛fastload.properties
:
我运行了命令:
它使 CPU 旋转了几分钟,但最终似乎什么也没增加。这是我得到的输出:
sparql - 如何将 4 列 N-Quad 四元组导入和查询到 Blazegraph?
我对 RDF/SPARQL 比较陌生,我正在尝试将一些 N-Quad、4 列/四重数据导入并查询到Blazegraph(参见schemaOrgEvent.sample.txt)。
当我导入 Quads 数据(Web 控制台)时,我只剩下基于三元组的 3 列元组数据,即 Blazegraph 只允许 SPARQL 查询 SELECTing {?s ?p ?o},但四元组选择 {?s ? p ?o ?c},不要。我究竟做错了什么???
Blazegraph 可以本地存储 4 列 Quad 数据,还是我误解了 RDF/Triple/Quad 存储的本质?
- 我的Blazegraph模式/知识数据库(要导入)是为 QUAD 配置的:
com.bigdata.rdf.store.AbstractTripleStore.quads=true
- 我已经使用基于 Web 的 UPDATE 控制台 @ http://127.0.0.1:9999/bigdata/#update将Quads 文件导入Blazegraph。我还没有尝试直接批量上传。
此外,导入的四元组数据以及变成三元组(归一化???)似乎将第 1 列转换为另一个 Blazegraph 提供的(?)标识符,原始(四元组)数据格式为(4 列)
导入后(3 列):
谁的查询是:
't1702' 值是某种“外键”,可用于链接到其他三元组(即在导入日期内重复)。
export - 如何将 Blazegraph 中的所有结果导出到文件中?
我想将我的 SPARQL 查询结果从 Blazegraph 导出到一个文件中。但是,它只导出结果的第一页。当我尝试显示所有结果时,我的浏览器崩溃了。
我怎样才能解决这个问题?
我在本地集群上运行 Blazegraph 2.1.2。
sparql - SPARQL BIND(COUNT(...) AS ...) 不工作
我正在尝试将计数分配给一个变量以供以后在查询(SPARQL)中使用。
我什至无法使以下工作:
这里我的语法或语义有问题,因为我只是得到一个重复多次的空结果?resultsCount
,而不是简单的例如 86(结果数)。
但是,当我执行以下操作时,我会得到结果数(例如 86):
有什么办法可以像第一个例子中那样BIND
工作吗?COUNT
如果没有,是否有不同的正确方法来获得相同的功能?
我正在使用 Blazegraph 2.1.2。这可能是一个错误吗?
java - 使用 Blazegraph 的“NanoSparqlServer”,如何清除测试之间的图表?
我正在使用 Blazegraph 的 Bigdata DB 的 1.5.3 版本(现在更名为 Blazegraph)。我有一个充当网关的服务,实现了一堆持久层方法。现在我正在为这些方法编写单元测试。我正在使用带有 Jetty 的嵌入式设置。我的设置代码如下:
我正在使用jetty.xml
com.bigdata 1.5.3 jar 中的默认配置:
...而且我正在使用同一个 jar 中的默认 RWStore.properties:
使用这些配置,服务器可以正常启动,我可以访问 Web 控制台、进行查询并通过BigdataGraphClient
Java 中的 API 进行交互。现在我只是想弄清楚如何清除图表以避免单元测试之间的数据泄漏。我尝试了以下方法:
使用
BigdataGraphClient
Java API 删除所有边和顶点。由于我不知道的原因,将其中一些边和顶点留在原处。graph.getEdges.forEach(Edge::remove) graph.getVertices.forEach(Vertex::remove)
停止并销毁服务器。保留日志文件。
sparqlServer.stop(); sparqlServer.destroy();
com.bigdata.journal.AbstractJournal.createTempFile=true
通过设置和注释掉使用临时日志文件com.bigdata.journal.AbstractJournal.file=bigdata.jnl
。这会清除日志文件,但DatasetNotFoundException
在第一次测试后会抛出一个。将日志文件放在临时目录中,
/tmp/bigdata-test/bigdata.jnl
并在测试之间删除/重新创建该目录。这与#2具有相同的问题。试图创建我自己的
Journal
对象并将其作为方法的IndexManager
参数传递NanoSparqlServer.newInstance
。由于旧 Lucene 依赖项的已知问题,此操作失败。我不能在我的项目中包含这些,因为我依赖于与这个冲突的新版本的 Lucene。引发的错误与引用的 Jira 票证中记录的错误相同。
有人知道清除测试之间图表的干净、可靠的方法(在tearDown
每次测试后运行的方法中)吗?
rdf - 如何在 Blazegraph 中创建具有 NOT EXISTS 约束的规则?
这个问题与 Blazegraph Java 示例有关。我想创建一个带有 SPARQLNOT EXISTS
子句的规则。此 Blazegraph 规则示例提供了一个约束子句,用于检查IsLiteral()
. 我想实现一个提供以下功能的规则:
我在以下位置检查了合适的类:com.bigdata.rdf.internal.constraints
,但找不到BOp
支持EXIST
(和MINUS
)的类。我找到了一个NOT
接线员NotBOp()
。
这是我想用虚构ExistsBOp
函数创建的约束:
是否有另一种方法来实现约束?
neo4j - 如何使用图数据库进行声誉扩散?
我有一个似乎很适合图形数据库的问题,但我不确定应用它的最佳方法。
首先,有一组对象可以有定向链接(几千万个,典型的链接输入/输出数是每个对象几千个)。然后,每个对象都可以从潜在的非常多的用户(也有数千万)那里积累声誉(想想赞成票、业力等)。
棘手的部分是,每当用户调整对象的声誉时,我想根据一些相当复杂的规则更新其所有链接对象的声誉(可能超过一级)。
在 SQL 中,这看起来像这样:
由于这是处理图形,图形数据库似乎很合适,但是通过快速阅读 Neo4j / OrientDB / Blazegraph / Tinkerpop API,我无法弄清楚如何将这个问题映射到他们可以解决的问题上做。
以 Tinkerpop 为例,对象是顶点,对象之间的链接是边(到目前为止一切都很好),声誉是......?可能是 VertexPropetries,但我不确定每个顶点的属性可能与用户数量一样多,事情将如何扩展。或者,声誉可能是来自用户顶点的加权边缘......这似乎有不同类型的性能问题。
您能否将此类问题简单翻译成流行的图形数据库之一?
java - Gremlin:Blazegraph 遥控器
我正在尝试使用以下设置启动并运行管道:
- Blazegraph 2.1.1(远程)
- Tinkerpop 2(bigdata-blueprints 2.0.0、BlazeGraph-Gremlin 1.0.0、bigdata-core 2.0.0)
- 语言:Java
我已经能够使用 Blueprints API 来创建和删除顶点和边。对于所有图形操作,我想尽可能坚持使用 Tinkerpop。我无法找到以下 API:
- 通过 线程化事务
ThreadedTransactionalGraph
。 - 遍历使用
GremlinPipeline
.
我有以下问题:
- Blazegraph 远程版本的 TP3 何时可用有时间表吗?
在不久的将来是否有计划支持以下内容?
一个。蓝图
ThreadedTransactionalGraph
湾。
GremlinPipeline
API2a 和 2b 的建议替代方案是什么?
我已经尝试了getFeatures
图表提供的功能,它得到了以下列表:
我在这里主要担心的是,GremlinPipeline
在使用远程查询 Blazegraph 时不允许我使用。
我有一个在 OrientDB 上运行的现有 API,我想迁移到 Blazegraph。我是否必须更改所有已阅读的内容(Gremlin 查询)才能使用 Blazegraph,还是有办法同时使用 Tinkerpop 2 GremlinPipeline
?
graph - 图数据库中的“嵌入式模式”和“单服务器模式”是什么意思?
许多关于图数据库的书籍和文章都谈到了“嵌入式模式”和“单服务器模式”。
例如,关于图形数据库的 Wikipedia 文章提到以下内容:
Blazegraph 支持高可用性 (HA) 模式、嵌入式模式、单服务器模式。
“嵌入式模式”和“单服务器模式”是什么意思?