- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Stardog 来存储一堆来自不同来源的三元组。我使用 Jena 收集数据并将其合并到单个 Jena 图中。所有这些三元组都是 ABox 的一部分。
我不确定 Stardog 是否会要求 TBox 也与 ABox 图表合并。我认为是这样,因为否则我无法看到 Stardog 将如何对数据进行推理。我没有看到任何像其他三重商店那样单独存储和使用 TBox 的选项。我是否需要将 TBox 包含在 Jena 图中,或者是否有办法将 TBox 存储在另一个 Stardog 数据库中,以便在查询 ABoxes 数据库时也将其考虑在内?
我正在考虑将 Jena 图(在 1 到 700 万个三元组之间变化)加载到 Stardog 中的选项:
是否有任何优雅的方法可以从耶拿加载整个图表?
编辑
尝试基于发行版中的示例编写代码:
Server aServer = Stardog.buildServer()
.bind(new InetSocketAddress("10.0.0.1", 5820))
.start();
AdminConnection aAdminConnection = AdminConnectionConfiguration.toServer("...").credentials("admin", "admin").connect();
if (aAdminConnection.list().contains("test")) {
aAdminConnection.drop("test");
}
Connection aConn = aAdminConnection.memory("test").create(file).connect();
Model aModel = SDJenaFactory.createModel(aConn);
编辑 2:更正了我的代码的一些部分。
the Stardog documentation 中的附加信息
最佳答案
1) 只要 TBox 位于 Stardog 中,您将 TBox 存储在何处并不重要。默认情况下,Stardog 将在默认图表中查找您的 TBox 并自动提取它。但这可以使用reasoning.schema.graphs
进行配置配置选项as noted in the documentation 。一般来说,您可能会发现有关如何在 Stardog 中实现推理的章节很有用。
2) 不要一一加载三元组,这样效率不高。将数据获取到 Stardog 的最快方法是在创建数据库时加载它;在这种情况下可以使用批量加载器,以实现最佳写入速度。创建数据库后,您可以使用 SNARL API、CLI 或 Jena API 加载文件,这是将数据导入数据库的第二快的方法。如果您使用 Jena API,则必须使用他们的 BulkUpdateHandler
直接,或加载RDF/XML
,其读者似乎在幕后使用批量更新程序。
编辑:
您的代码不正确。您将服务器绑定(bind)到实际的套接字和端口上,然后尝试连接到您未运行的嵌入式服务器。您必须修改服务器启动以使用示例中所示的嵌入式服务器,或者修改 AdminConnectionConfiguration
的初始化。使用 toServer
指定服务器 URL .
此外,不要使用便捷方法createMemory
您可以调用AdminConnection#memory
这将返回 DatabaseBuilder
谁的create
方法获取文件列表以批量加载到新数据库中。
您还应该考虑使用基于磁盘的数据库来存储数百万个三元组。
关于java - Stardog 数据加载和 Jena,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24332922/
我想用前缀来表示这个nt文件: . "a" . "b" . "c" . 我写入一个新的nt文件是: @prefix sp: . . "a" . "b" . "c"
我有一个名为 Modelling.owl 的 OWL 文件,它是使用 Protege 4.2 创建的。但是后来我必须通过使用 Jena 注册一些新的 Individual 和它的属性来修改它。例如我有
我正在尝试使用 Jena 写入本地免费的独立 GraphDB(版本 8.5.0)存储库。 我尝试过的 (1) 耶拿直接使用 我使用了这个 Jena 3.7.0 代码片段: String strInse
我无法在我的 Ontology 中表达以下情况: 假设我有四个人投票,投了四票(所以 vote 和 voter 之间存在一对一的映射)。人们可以投票赞成或反对。如果我知道三个人的投票结果,我应该能够推
我在我的项目中使用 Dbpedia,我想创建一个本地 sparql 端点,因为在线端点不可靠。我下载了数据转储(大型 NT 文件)并决定使用 Jena TDB。使用 NetBeans IDE,我使用输
我用这个java代码在jena中创建了一个模型 Model m = ModelFactory.createDefaultModel(); Resource a1 = m.createR
我有一个猫头鹰本体,我将它读入 Jena OntModel。然后我在运行时更新它。现在我想把它写回一个OWL 本体。我正在使用下面的代码: RDFWriter writer = model.getWr
我将 Jena 和 Fuseki 安装为服务使用 一个可靠的角色 gremid.fuseki . 而且我想自定义监听主机和监听端口。但是,我不知道。 也许我应该编辑$FUSEKI_BASE/confi
我正在对基于本体的上下文管理和基于流程的上下文管理进行性能分析。然而,为了创建与 PCM 案例研究类似的场景,我需要在推理过程中直接从 Jena SWRL 规则触发 Java 方法。我做了很多研究,但
我正在使用 SPARQL 查询查询整数结果: String qString = "SELECT (COUNT(?S) AS ?C) "+ "WHERE
关闭。这个问题是opinion-based .它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题. 8年前关闭。 Improve t
我无法找到一些使用 SWRL 和 Jena 的简单代码示例佩莱,或者至少使用 SWRL?我研究了 Pellet 文档中的一些示例,但没有关于使用 SWRL 的示例。网络上的大多数示例都不完整且令人困惑
我对 RDF 和 Jena 很陌生。我想将一个 .nt (N-TRIPLE) 文件加载到模型中。我试过 read(inputStream, "N-TRIPLE") 但没有帮助。 它抛出 org.apa
我成功地使用 Jena API 和 Eclipse 创建、修改、合并本体。我还在 Eclipse 中成功启动了 OWL 推理器和 Pellet 推理器。 现在我想了解如何使用 Jena API 在 E
我正在尝试使用 Jena 框架来编辑使用 Protoge 4.2 构建的现有本体。即更改属性值或添加个人或类别,然后进行推理。假设在本体中我们有这样的规则:hasAge(?p,?age)^swrlb:
我了解到您可以使用以下代码提取 rdf 文件并初始化为 jena 中的模型: DatasetAccessor accessor = DatasetAccessorFactory.createHTTP(
我目前正在开发一个项目,初始值为 .owl包含我们本体的基本模式的文件。我们使用 Jena API 加载此文件并对其执行不同的操作,例如添加本体类和个体。 我们寻求将系统迁移到三重存储,这意味着,而不
这是我的代码: public class FunctionalityCheckTest1 { InfModel infModel; Model model = ModelFactory
我使用Jena和TDB来存储RDF,我想对其进行一些推断。但是RDF数据很大,Jena的owl reasoner必须将所有数据加载到内存中。 所以我想找到一个可以推理而不将所有数据加载到内存中的推理器
我建立了一个使用SWRL规则进行推理的本体。当我在Protege中执行SQWRL查询时,它工作正常。问题是,当我想将Pellet与Jena一起使用时,Pellet似乎在查询中不包括SWRL规则。我像这
我是一名优秀的程序员,十分优秀!