问题标签 [apache-jena]

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.

0 投票
2 回答
1065 浏览

jena - Jena - 按属性和对象类查找语句

我正在寻找如何通过模型的属性和对象的类从模型中获取所有语句的方法。

例如,我有属性:driverOf 和个人类型为 Bus 或 Truck。然后我想获取属性为 :driverOf 且对象为 instanceOf Bus 的所有语句。谢谢。

更新 1

实际上,我需要结果是一组语句(分别是 StmtIterator),因为在我的应用程序中我已经使用了语句对象。我认为最干净的解决方案是拥有 :driverOf 属性的子属性,例如 :driverOfBus 和 :driverOfTruck。但这会使我的应用程序更加复杂,所以我想找到一些简单的解决方法。

0 投票
1 回答
8970 浏览

java - 如何解决 IncompatibleClassChangeError 接口未实现

我知道这个问题已经被问过了,但是在谷歌搜索了大约一个小时后,不知何故我找不到任何令人信服的解决方案。

我正在使用 apache-jena 从 url 加载 RDF 模型。我收到IncompatibleClassChangeError以下消息

有人可以指点我如何解决这个错误。

问候阿山

0 投票
0 回答
65 浏览

jena - 为什么 Jena 不返回已声明的 RDFS 属性?

我使用 Jena 的 OntClass.listDeclaredProperies() 函数。甚至每个类都应该具有所有 RDFS 属性(例如 rdfs:comment),listDeclaredProperies 永远不会返回它们中的任何一个。它们如何与一个类相关联以及如何获取它们?

更新 1

我只是认为所有的本体类也自动声明了 RDFS 属性。在 RDFS 属性的文档中是为注释属性“rdfs:comment 的 rdfs:domain 是 rdfs:Resource”编写的。因为本体类也是 rdfs:Resource 我认为它应该自动具有 rdfs:comment 属性,我应该通过调用 listDeclaredProperies 函数来获取它(连同其他 RDFS 属性)(这个函数也返回超类的属性)可能我错过了一些东西关于 RDFS 属性...

例子

因此,当我在任何类 (anyClass.listDeclaredProperies()) 中调用 listDeclaredProperies 时,我希望将所有 RDFS 属性与其“正常”属性一起列出。为什么它不起作用?我们可以将 RDFS 属性的值添加到任何类或个人(例如标签、评论等)。感谢您的解释。

0 投票
1 回答
64 浏览

jena - Jena:如何从 DBPedia 文章中检索名称

我有一个 dbpedia URL http://dbpedia.org/resource/Chicago_Cubs,想使用 Apache Jena 来解析这个 RDF 并获取页面的标签。应该是Chicago Cubs

我试着做

但是返回的资源不包含任何属性。

我怎么能正确地做到这一点?

0 投票
2 回答
609 浏览

java - 无法解决耶拿课程

我单击file->project structure->libraries并添加了apache-jena-3.0.0/lib,/libsrcjavadoc-core.

然后我将src-example文件夹中的教程复制到我的intellij项目的src文件中,然后

然后它说无法解析hp,MODEl,Resource。有谁知道为什么?

在此处输入图像描述

0 投票
2 回答
780 浏览

java - 如何使用 jena querybuilder 构建 SPARQL 列表输入?

我有一堆使用 Apache Jena querybuilder API(SelectBuilder类)的代码。我正在尝试将这样的术语添加到我现有的 SPARQL 查询中:

我已验证此查询在 TopBraid 中有效,但我不知道如何(?a, ?b, ?c)在 Jena API 中表示。我需要做什么才能将此 Vars 列表转换为有效的 Jena 资源节点?

我愿意探索替代的 SPARQL 构建框架,如果它们对类型文字、IRI 和过滤器以及这个列表结构有强大的支持。我浏览了其他几个用于构建 SPARQL 查询的框架,但它们似乎都没有列表结构。

编辑

我的查询构建代码(在 Groovy 中)看起来像这样:

我花了几个小时尝试使用 RDFList 类,但我还没有弄清楚。我会继续努力,看看我能不能摸到它。与此同时,任何帮助将不胜感激。:)

编辑

以下是使用 RDFList 的不成功尝试:

0 投票
1 回答
750 浏览

java - 使用外部库将项目部署到 glassfish 后出现 NoClassDefFoundError

将正确的 java 库添加到我的 Java EE 项目中可能会遇到一些麻烦。我正在使用 intellij idea IDE。

我想在我的项目(apache jena)中使用一个外部库,并且我使用以下过程添加了该库:项目结构>模块>依赖项>添加 JAR 或目录>选择 apache jena lib dir(里面有一些 .jar 文件,像核心..)。

在项目中,一切似乎都正常 - 导入,对象定义..但是在本地 glassfish 服务器上部署并访问索引页面后,我得到了 NoClassDefFoundError (exactly java.lang.NoClassDefFoundError: org/apache/jena/rdf/model /模型工厂)。

那么有人可以告诉我如何解决它吗?谢谢!

0 投票
1 回答
646 浏览

jena - 如何使用 Jena 获取财产价值

我正在使用 Apache Jena 查询 DBpedia 以获取特定主题的 Wikipedia URL。

所以我使用加载模型

然后我想访问isPrimaryTopicOf属性,但不知道如何在这个新模型上运行另一个 SPARQL 查询。

一个示例页面是http://dbpedia.org/page/Chicago_Cubs

0 投票
2 回答
546 浏览

rdf - 试图理解耶拿类层次结构

我正在尝试重现在 Protege 中显示给我的 OWL 本体 (owl.ttl) 的类层次结构,您可以在标准 URI 位置http://www.w3.org/2002/07/owl#找到它以供下载.

我正在尝试使用 Jena 的 API 来执行此操作,方法是加载到 OntModel 中,然后获取层次结构根类。然后我想向下递归来构建层次结构。

我遇到的问题是,当我调用获取层次结构根类时,返回的结果为零。所以我没有根类可以从中递归并构建层次结构。

============================================

当我将http://www.w3.org/2002/07/owl#上的 OWL 本体加载到 Protege 中时,我得到了一个非常好的类层次结构。然而,当我在 Jena 中加载到一个合理或不合理的模型时,我没有得到像这样的层次结构类:

对合理或不合理模型的调用都返回零结果。

===============================================

现在我尝试别的东西。我知道 rdfs:Resource 始终是任何 RDFS/OWL 模型的顶级类。所以,当我这样做时:

从这里递归,我得到了一个完整的类层次结构,包括推断的关系,因为我选择了一个推理模型。

我的问题是,后一种方法是正确的方法吗?难道我不能让 Jena 告诉我模型的根级别类是什么,而不是让我告诉 Jena 它是 rdfs:Resource 吗?

=========================================

更新:要解析本体,即 OWL2 本体,我必须关闭严格模式,因为 Jena 目前与 OWL2 本体不兼容(我使用的是 2.7.4 版)。

当我使用 OWL_MEM 或 RDFS_MEM 调用 .listHierarchyRootClasses() 时,我得到零根类返回。如果我调用 .listClasses() 并找到所有没有超类的类来查找根,则在 RDFS_MEM 中我得到以下层次结构:

在 OWL_MEM 我得到以下信息:

同样,它们都没有反映我在加载到 Protege 时看到的相同层次结构。

我不清楚我在这里做错了什么,可能是因为我正在解析 OWL 本体,而这本身就让 Jena 感到困惑(无论是将其视为 RDFS 本​​体还是 OWL 本体)?

0 投票
1 回答
214 浏览

sparql - 在apache jena fuseki服务器中同时加载多个rdf作为单独的实例

我正在使用命令以 ttl 格式加载 rdf 数据

每次有新请求到来时,这将替换 ttl 文件。如何使其同时使用单独的 ttl 文件为多个用户工作。

代码中的默认参数是什么?我有一些配置可以使这项工作。我也不能使用 s-post 命令,因为它会附加到现有数据。但我需要为每个用户同时加载一个新数据