问题标签 [ontology]

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 回答
7539 浏览

ontology - 如何在 Protege 4 中使用 OWL DL Query 查询个人?

如何在我的本体中查询个体,这里是我想要做什么的描述(类似于 SQL 查询):

我有三个类(组件、功能和极性)。极性值可以是positive_polarity 或negative_polarity,两者都是极性的子类。

  • a_component hasFeature a_Feature
  • a_Feautre hasPolarity a_Polarity

我想列出所有具有 positive_polarity 值的组件。

如何使用 protege 4 中的 DL Query 选项卡来实现这一点?

0 投票
2 回答
3293 浏览

ontology - 在 Java 中可视化 Jena 本体模型

我想可视化通过 Java 中的 Jena 创建的本体模型。是否有 API 可以帮助我完成这项任务?或者至少有一个关于这个问题的教程?

提前致谢。

0 投票
1 回答
450 浏览

java - 需要软件工程术语的本体

我正在尝试实现一个基于软件工程本体的问答系统。这是一个[班级/大学?]项目;它将使用java语言。

你能帮我找到软件工程本体,即本体[甚至分类法/民间分类法?],其中包括软件工程领域中的单词和概念。

编者注:我冒昧地重写了这个问题。它最初措辞不佳,被误解了。也许它可以重新打开,因为它与编程相关并且某些 SO 贡献者感兴趣。

根据这个骗局发帖人正在寻找 OWL 资源:引用,“我需要软件工程 ontology.owl文件。”

0 投票
5 回答
168 浏览

algorithm - 仅比较已更新列表的高效算法

即使描述这个问题也很难,但我会试一试。我已经为此苦苦挣扎了几天,并决定在这里问。

好的,所以我正在尝试为我所说的“概念”或“事物”建模。只是一般的概念。这与处理逻辑有关。

因此,每个“事物”都是由它与其他事物的关系来定义的。我将其存储为每个关系一组 5 位。一个“东西”可能是这样的:

所以,我对“事物”进行建模。每个关系 5 位。每个位代表一种可能的关系。像这样:1 等于,2 内部,3 外部,4 包含,5 重叠。开启所有 5 位意味着我们完全不知道这种关系是什么。拥有 2 位意味着我们认为这种关系可能是两种可能性之一。关系从“未知”开始(所有 5 位都是真的),随着时间的推移变得更加具体。

所以这就是我如何模拟随着时间的推移不断增加的知识。事物以完全未知的状态开始,可以通过部分已知的状态,并可以达到完全已知的状态。

多一点背景:

我尝试通过使用额外的类来为我的“概念”(事物)建模添加额外的定义。像这样:

我的 Thing 类变成了这样:

不必使用此“ArrayDef”。如果需要,它只是在那里使用。有些“事物”没有数组,有些则有。但所有“事物”都有关系。

我可以处理这个“ArrayDefinition”来弄清楚两件事之间的关系!例如,如果X = [ A B C D E ]Y = [ C D E ],我的代码可以处理这两个数组,并找出“ Y inside X”。

好的,这就是足够的背景。我已经解释了核心问题,避免了包含各种令人分心的细节的真实代码。

这是问题所在:

问题是让它运行起来不会慢得离谱。

想象一下,有 2000 个“东西”。假设其中 1000 个具有数组定义。现在,这使得我们需要相互比较的 500,000(ish)个可能的“数组对”。

我希望我现在终于开始明白了。如何避免将它们全部相互处理?我已经意识到,如果两个“事物”具有完全已知的关系,那么比较它们的“数组定义”是没有意义的,因为这只是用来找出关系的额外细节,但我们有确切的关系,所以毫无意义。

所以......假设这些“带有数组的事物”中只有 500 个具有未知或部分已知的关系。这仍然使 250000(ish) 可能的“数组对”进行比较!

现在......对我来说,最明显的起点是意识到除非用于定义两个数组的关系发生变化(变得更具体),否则处理这个“数组对”是没有意义的。

例如,假设我有这两个数组:

现在,如果我这么说T=R,那就太好了。但这并不影响 X 和 Y 之间的关系。所以仅仅因为 T 与 R 的关系已经被称为“相等”,而在它可能完全未知之前,这并不意味着我需要再次比较 X 和 Y。

另一方面,如果我说“ T outside E”,这是用于定义两个数组的事物之间的关系。所以说“ T outside E”意味着我需要针对 Y 的数组处理 X 的数组。

我真的不想为了处理 1000 个数组上的逻辑而比较 500,000 个“数组对”,而它们之间几乎没有任何变化!

所以......我第一次尝试简化这一点,是保留一个事物用于定义的所有数组的列表。

假设我有 3 个数组:

好吧,X 用在 3 个数组中。因此,X 可以保留它在其中使用的所有数组的列表。

因此,如果我说"X inside Y",这可能会显示 Y 用于定义的所有数组的列表,以及 X 用于定义的所有数组。假设 X 用于 3 个数组,Y 用于 1 个数组。由此,我们可以算出需要比较 2 个“数组对”(A vs B,以及 A vs C)。

我们可以通过检查任何数组对是否已经具有完全已知的关系来进一步修剪这个列表。

我遇到的问题是它仍然看起来过分。

假设 X 是一个非常常见的“事物”。它用于 10,000 个阵列。而 Y 是一个很常见的东西,用在 10,000 个数组中。

我最终还是要比较 100,000,000 个数组对。好的,假设我不需要全部比较它们,实际上,其中只有 50 个部分已知或完全未知。

但是...我仍然需要遍历 100,000,000 个数组对的列表,才能确定其中哪些是部分已知的。所以它仍然是低效的。

我真的想知道是否没有有效的方法来做到这一点。如果真的我能做的就是制定一些有效的“启发式”策略。我还没有太多运气想出好的策略。

我意识到这个问题是高度专业化的。而且我意识到阅读这篇长篇文章可能需要很长时间。我只是不确定如何缩小帖子长度或用更常见的问题来描述这一点。

如果它有帮助......我最好的尝试用通用术语表达这一点,是“如何仅比较已更新的列表”。

有人有什么想法吗?那很好啊。如果不是……也许只有我写出来可能有助于我的思考过程。

问题是,我只是忍不住觉得有一些算法或方法可以让这个问题运行得快速高效。我只是不知道那个算法是什么。

谢谢大家

0 投票
5 回答
2184 浏览

rdf - 用于教育目的的最简单的 SPARQL 实现?

我想了解更多关于 RDF/SPARQL 实现内部结构的信息,但是大多数框架(必然)由于现实世界的性能和实现方面的考虑而有些复杂。我很好奇是否有适合作为低级教学工具的“参考”实现?从代码的角度来看,最小/最干净的 RDF/SPARQL 实现是什么?

0 投票
1 回答
275 浏览

xml - ruleML - 好处/坏点?

我目前正在研究 ruleML,我想知道是否有人可以给我一份关于它的优点和缺点的简短列表?

谢谢

0 投票
3 回答
2603 浏览

math - 评估者间协议(Fleiss 的 Kappa、Krippendorff 的 Alpha 等)Java API?

我正在建立一个问题分类/回答语料库作为我硕士论文的一部分。我正在考虑评估与评估者间协议/可靠性有关的预期答案类型分类法,我想知道:有人知道可以做到这一点的任何体面的(最好是免费的)Java API吗?

我有理由确定此时我只需要 Fleiss 的 Kappa 和 Krippendorff 的 Alpha。

Weka 在它的评估包中提供了一个 kappa 统计,但我认为它只能评估一个分类器,我还没有到那个阶段(因为我还在构建数据集和类)。

谢谢。

0 投票
2 回答
1406 浏览

java - 为本体休眠?

有没有人知道能够为 OWL 本体做的工具就像 Hibernate 为关系数据库所做的那样,也就是说,从我的角度来看,抽象出手动编写 SQL 查询以从/向关系数据库读取/写入 Java 对象和管理的需要内存对象的一致性及其在数据库上的序列化形式。

在 OWL 本体的情况下,这样的工具可以生成 SPARQL 查询以从 RDF 存储(如 Jena)读取(和写入?)数据并创建相应的 Java 对象。

非常感谢 :-)

0 投票
2 回答
758 浏览

rdf - 一种用于旅游的 RDF 本体

我正在建立一个旅游网站,并希望在其中使用语义网。我也对使用 RDF 本体感兴趣。

所以,我想知道是否有人可以告诉我,如果有任何关于此的内容,如“这家酒店位于 Foo”或“这家餐厅在 Foo 社区有 3 分评级”或“此行程为期三天,并且建议周末出游”...

我知道都柏林核心涵盖了很多与在线内容等数字信息相关的内容,但是,有什么可以完全涵盖网络上的此类信息吗?

0 投票
1 回答
395 浏览

keyword - 如何根据关键字内容对网站进行分类

我正在编写一个 webrobot,它根据关键字/元/链接将网站分类到预定义的类别列表中。

我一直在研究各种本体方法,并研究了 Wordnet(对于上位词/下位词)、 ResearchCyc 、 WebKb,并且想知道这是否像我想的那样是一个难题,或者以前在其他地方已经解决了。

本质上,我有大量已排序的关键字值,并希望使用它们来匹配类别名称。我目前的想法是检查某种本体层次结构中的类别名称。

有没有其他人处理过这样的基于本体的问题?

干杯!