问题标签 [owl-api]

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 投票
1 回答
694 浏览

owl - 为什么 Protege 将 DatatypeProperty 复制为 ObjectProperty

我注意到 Protege 创建了我创建为 DatatypeProperty 的“副本”属性,并将它们标记为 ObjectProperty。这反过来又使它们同时成为数据类型和对象属性。我试图在 OWL 文件中手动修复它。将“xsd:string”分配为范围。没有什么帮助。

Protege 读取 OWL 文件并显示我刚刚在两个列表中修复的属性。如果我修改任何内容并将本体保存回 OWL 文件,将创建两个条目。

更“有趣”的是我的 Range 规范(到 xsd:string)设置为 ObjectProperty 条目,而不是原始数据类型。

有任何想法吗?

这是一个例子。

“原来的”

Protege 添加的副本(注意 rdfs:range 已移动到副本中)

更新:这是最小的本体,在 protege 中打开后会导致上面显示的问题:

并将其保存回文件后:

0 投票
1 回答
2320 浏览

owl - 将文本文件中的个体导入 OWL 本体 (Protege)

我基本上在 .txt 的新行中有一个包含数千个名称的大文件。我正在使用 Protege 构建我的本体,我想要一种更快的方法将这些名称作为个体插入到我的本体中的“人”概念中。无论如何,这可以使用 Protege 或 OWL API 来完成,因为单击 protege 中的添加按钮并键入/复制每个名称,然后将其添加到“人”概念中需要一些时间。

感谢您的任何建议。

0 投票
1 回答
91 浏览

java - 处理大猫头鹰文件

我正在做一个项目,我的计划是获取主题名称(树中的层次结构给定一个单词)例如:给定堆栈我需要获取数据结构,给定化学疗法应该是 gettig 像化学等的东西......,我用过一些非常大的本体上的 DL 查询选项卡,我找不到特定的本体 .owl 文件,我可以在其中获得更高级别的主题名称。我编写了 DL 查询选项卡程序,该程序在给定查询的情况下耗尽了堆空间。问题是

  • 我拥有的本体包含很多单词,但我无法检索层次结构(超类,子类),

  • 本体要求曼彻斯特语法,而我有一个简单的单词-我如何将单词映射到本体中的类

  • 有没有一种方法可以找到主题名称,例如使用某些猫头鹰本体给定一组单词的示例

0 投票
2 回答
1440 浏览

owl - 带有 OWL API + DB 的在线本体编辑器?

我正在开发一个 Web 本体管理系统 (OMS)。应用程序应该能够创建本体,在编辑器(OMS 的一部分)中开发/编辑它们,当然一切都将在浏览器中在线运行。编辑器应该提供运行推理器(推断关系、检测不一致)和评估 SPARQL 查询的可能性。

我的想法是在编辑器中使用 OWL API 来处理本体(添加/编辑/删除类/属性/个体等),以调用推理器。到目前为止,一切都很好。但随之而来的问题是:如何以及在何处存储本体。我查找了一些我想要存储本体的图形数据库(例如 Noe4j、Stardog)。但后来我卡住了。

我不知道如何将本体从图形数据库获取到 OWL API。

目前我什至不确定,我使用 OWL API 和图形数据库的整个概念是否正确或可能。我的印象是我错过了整个画面中的一些重要事实。

我应该使用文本文件将序列化的本体保存在服务器上并且不使用图形数据库,还是应该以其他方式从设计中删除 OWL API 并使用其他组件?

我将不胜感激任何帮助或提示!

0 投票
2 回答
613 浏览

java - OWL API:如何将域分配给 OWLObjectProperty 上的范围

事实上,我想创建一个基于概念列表(字符串)和概念之间的关系(映射)的本体。我有两种类型的关系“种类”和“子主题”。所以我尝试通过 owl api 创建这个本体。为了在两个 OWL 类之间创建关系,我使用了 OWLObjectPreportyDomain 和 OWLObjectProprertyRange 并通过 OWLObjectProperty 指定了一个关系。我的问题是当我创建一个具有许多域和许多范围的关系时,我没有找到一种将每个域分配给每个范围的方法。我想为此找到解决方案。有人能给我一个想法吗?

例如,我有这个 Map :Map<String, String> relation = new HashMap<String, String>;它包含两个概念和彼此之间的关系。 LinkedList<Map<String, String>> listRelation = new LikedList<Map<String,String>>; 此列表包含概念之间的关系列表。 relation("concept1")="AUTHETICATION"; realtion("relation")="kind of"; relation("concept2")="VALIDATION"; listRelation.add(relation); relation = new HashMap<String, String>; relation("concept1")="ENCRYPTION"; realtion("relation")="kind of"; relation("concept2")="CRYPTHOGRAPHY"; listRelation.add(relation); 我创建了另一个地图,其中包含概念和他的实例,例如: Map<String,String> inst; inst("concept")="authentication"; inst("instance")="topNet"; 我怎么能在 OWL 中创建它。概念是 OWLClass 或 OWLNamedIndividual。如果它们是 OWLNamedIndividual 那么实例就是什么。此外,如果概念是 OWLClass 如何声明它们之间的关系?

0 投票
1 回答
463 浏览

jsp - 使用 sparql-dl 和 owlapi 进行语义搜索

我有一个基于 jsp 的 web 应用程序,它使用 tomcat 作为 j2ee 服务器,请告诉我实现语义搜索的必要步骤?

我在下面添加了代码。

上面的代码片段显示了该方法为执行的查询返回一个字符串值并且它被正确返回。但是当尝试在 java servlet 中检索该值时会导致错误。

上面的代码在 servlet 中使用。我该如何解决这个问题?提前致谢

这是我得到的错误屏幕的屏幕截图。http://tinypic.com/r/2cnxj87/8

0 投票
1 回答
481 浏览

parsing - 使用 owlapi 解析包含奇数类的 owl 文件

我在以下位置运行示例 owlapi 示例:https ://github.com/owlcs/owlapi/tree/master/contract/src/test/java/org/coode/owlapi/example 检索具有奇数字符的类的子类。我的 owl 文件包含具有奇数字符的类,例如 /, ( 但解析器似乎在奇数字符之前截断它们并最终引发错误。我已经窥视了 ManchesterOWLSyntaxTokenizer,看起来它认为这些奇数字符是分隔符。其他人这个观察?解决方法是什么?顺便说一句,我尝试了 HermiT 推理器,结果相似。此外,在 Protege 中,如果您尝试将具有奇数字符的新 OWLClass 名称添加到层次结构中,它会在类名周围添加单引号.要在“DL Query”视图中检索其子类,我必须在类名周围添加单引号来运行它。protege 在内部是否使用我可以使用的不同语法标记器,而不是截断类名的 ManchesterOWLSyntaxTokenizer?

0 投票
1 回答
428 浏览

java - 使用 OWL API 发出 SWRL 请求

我正在处理使用 Protégé 生成的 OWL 文件。我在我的 Java 代码中使用 OWL API。我有一组定义的类,例如:

SpeciesA ⊑ Species ⊓ ∃hasPart.Fruit ⊓ =hasShape.round SpeciesA
是子类 Species,hasPart 一些 Fruit,hasShape 值为 Round。

这一切都在 Protégé 中定义,然后导出到 OWL,然后加载到我的 Java 本体中。如果我创建一个物种的个体 x 并且我拥有这些属性

  • hasPart(x,FruitA)
  • 有形状(x,圆形)

我检索我的个人所属的每个类(在这种情况下,这应该包括 SpeciesA)。

我完全不确定我应该使用什么:我可以使用 SWRL Species(?x)^hasPart(?x,Fruit)^hasShape(?x,"$Round$") 还是应该使用 Reasoner ?

我真的对Protégé“等同于”和个人财产感到困惑。

0 投票
2 回答
2526 浏览

owl - OWL api 查找类的属性

我有一个本体文件,我可以获得其中的所有类(我正在使用 OWL-API)。好吧,我应该检索文件 .owl 中存在的每个类、数据属性和对象属性,有什么方法可以使用 OWL-API 获取它们?

0 投票
0 回答
675 浏览

java - OWL-API 获取推断个体

我在单例类“本体”中加载了一个现有的本体。

我想有相应的推断本体。

这是我的实际代码:

这应该在我的本体中添加所有推断的公理,对吗?好吧,它没有。我有一个类 SpeciesA :

所以我创建了一个物种个体,我将属性 hasPart 添加到另一个水果个体。在 Protégé 中执行此操作并生成推断的本体将告诉我我的个体属于 SubClass SpeciesA。但是使用提供的代码在 Java 中执行此操作不起作用。

我用它来输出个人的子类:

它实际上只输出“Species”的IRI,而不是“SpeciesA”。提前致谢。