- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想从推理机 [HermiT] 中获得推断的公理及其正确的解释。我在 protege 中创建了以下本体。
猫头鹰
<?xml version="1.0"?>
<!DOCTYPE rdf:RDF [
<!ENTITY owl "http://www.w3.org/2002/07/owl#" >
<!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
<!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
<!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
]>
<rdf:RDF xmlns="http://www.semanticweb.org/ontologies/A#"
xml:base="http://www.semanticweb.org/ontologies/A"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
<owl:Ontology rdf:about="http://www.semanticweb.org/ontologies/A"/>
<!--
///////////////////////////////////////////////////////////////////////////////////////
//
// Classes
//
///////////////////////////////////////////////////////////////////////////////////////
-->
<!-- http://www.semanticweb.org/ontologies/A#A -->
<owl:Class rdf:about="http://www.semanticweb.org/ontologies/A#A">
<rdfs:subClassOf rdf:resource="http://www.semanticweb.org/ontologies/A#B"/>
</owl:Class>
<!-- http://www.semanticweb.org/ontologies/A#B -->
<owl:Class rdf:about="http://www.semanticweb.org/ontologies/A#B">
<owl:equivalentClass rdf:resource="http://www.semanticweb.org/ontologies/A#C"/>
</owl:Class>
<!-- http://www.semanticweb.org/ontologies/A#C -->
<owl:Class rdf:about="http://www.semanticweb.org/ontologies/A#C"/>
</rdf:RDF>
<!-- Generated by the OWL API (version 3.5.1) http://owlapi.sourceforge.net -->
以下是我的Java 代码:-
//Some work done to load ontology
ReasonerFactory factory = new ReasonerFactory();
Reasoner reasoner = new Reasoner(reasonerConf, owlOntology);
BlackBoxExplanation explain = new BlackBoxExplanation(owlOntology, factory, reasoner);
HSTExplanationGenerator multiEx = new HSTExplanationGenerator(explain);
InferredSubClassAxiomGenerator gen = new InferredSubClassAxiomGenerator();
Set<OWLSubClassOfAxiom> subClass = gen.createAxioms(dataFactory, reasoner);
SatisfiabilityConverter converter = new SatisfiabilityConverter(dataFactory);
for (OWLSubClassOfAxiom ax : subClass) {
System.out.println("\nAxiom :- " + ax);
System.out.println("Is axiom entailed by reasoner ? :- " + reasoner.isEntailed(ax));
System.out.println("Is axiom contained in ontology ? :- " + owlOntology.containsAxiom(ax));
Set<Set<OWLAxiom>> expl = multiEx.getExplanations(converter.convert(ax));
System.out.println("No. of Explanations :- " + expl.size());
System.out.println("Explanation :- ");
for (Set<OWLAxiom> a : expl) {
System.out.println(a);
}
}
根据我的代码,这里是输出:-
Axiom :- SubClassOf(<http://www.semanticweb.org/ontologies/A#B> owl:Thing)
Is axiom entailed by reasoner ? :- true
Is axiom contained in ontology ? :- false
No. of Explanations :- 1
Explanation :-
[EquivalentClasses(<http://www.semanticweb.org/ontologies/A#B> <http://www.semanticweb.org/ontologies/A#C> )]
Axiom :- SubClassOf(<http://www.semanticweb.org/ontologies/A#C> owl:Thing)
Is axiom entailed by reasoner ? :- true
Is axiom contained in ontology ? :- false
No. of Explanations :- 1
Explanation :-
[EquivalentClasses(<http://www.semanticweb.org/ontologies/A#B> <http://www.semanticweb.org/ontologies/A#C> )]
Axiom :- SubClassOf(<http://www.semanticweb.org/ontologies/A#A> <http://www.semanticweb.org/ontologies/A#B>)
Is axiom entailed by reasoner ? :- true
Is axiom contained in ontology ? :- true
No. of Explanations :- 1
Explanation :-
[SubClassOf(<http://www.semanticweb.org/ontologies/A#A> <http://www.semanticweb.org/ontologies/A#B>)]
Axiom :- SubClassOf(<http://www.semanticweb.org/ontologies/A#A> <http://www.semanticweb.org/ontologies/A#C>)
Is axiom entailed by reasoner ? :- true
Is axiom contained in ontology ? :- false
No. of Explanations :- 1
Explanation :-
[EquivalentClasses(<http://www.semanticweb.org/ontologies/A#B> <http://www.semanticweb.org/ontologies/A#C> ), SubClassOf(<http://www.semanticweb.org/ontologies/A#A> <http://www.semanticweb.org/ontologies/A#B>)]
我有以下问题:
1) 这段代码是否足以获得推断的公理? (就像我可以检查原始本体中是否有新的公理可用,如果没有那么它是一个推断的公理 - [照顾公理说 C SubClassOf owl:Thing
])
2) 如果 reasoner 的 isEntailed()
方法总是给出 true
,它有什么用?
3) 推论公理总有1种解释。这是对的吗 ?对于推断公理 A SubClassOf C
,有 1 个解释,但它的 Set
与 protege 中显示的相反(按顺序)。所以我需要始终以相反的方向显示它?
Protege 图片 :-
最佳答案
1) 是的,这就足够了 - 本体中包含和存在的公理通常称为“断言”。
2) isEntailed() 并不总是返回 true。它适用于您正在使用的公理 - 尝试询问 owl:Thing 是否是 owl:Nothing 的子类。
3) 对一个蕴涵公理至少有一个解释。当公理包含在本体中时,它是微不足道的解释——所有包含的公理都是蕴含的。对于更复杂的情况,可能有多种解释。
关于java - OWLAPI : Want to get inferred axioms from ontology using HermiT reasoner,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38656552/
正如主题所说.. 我如何告诉 GCC 允许我使用 SSE4.1 内在函数但不使用 SSE4.1 进行优化(例如,通过将 SSE4.1 字符串比较)贯穿所有其余代码翻译单元? 最佳答案 您可以使用 Fu
为了简单起见,假设我有表 users 和 interests 用户 id | name --------- 1 | amy 2 | brian 3 | carole 兴趣 uid | inter
我进行了一系列测试来开发一个简单的游戏,并且我已经达到了 Mockito 的 InOrder.verify() 产生错误的程度。 Verification in order failure. Want
哪种方法更好以及为什么。 最佳答案 不要使用是/否问题,而是使用带有自定义按钮的问题: The file blah.txt has been modified. Would you like to s
您好,我想使用以下命令放置多行描述 p4 --field Description="MY CLN Header \\n my CLN complete description in two -thre
我正在使用 jQuery Fancybox 弹出注册表单 here 我希望表单的大小为 450px x 700px,但无论我设置什么高度和宽度,我都会得到滚动条: $(document).r
大家好我在徘徊是否有一种简单的方法可以在没有 android 布局的情况下执行以下操作将图像放在中央顶部放置一个按钮中心中心在左下角放置一个按钮在右下角放置一个按钮 听起来没那么难吧? 好吧,我想不出
我正在尝试为我的 SOAP 请求添加安全性。我想在两个级别允许它:1. 基本 ssl。 2. 带证书的SSL。 我尝试在tomcat中设置Server.xml来使用clientAuth="want",
我有一个在页面中间有一个表格 View 的布局。我希望根据用户设备的屏幕尺寸任意调整表格 View 的大小。在 ascii 中: +-----------+ |some stuff | +------
我面临以下问题,我试图呈现一个 modalViewController 并使其覆盖整个屏幕,例如: [controller setWantsFullScreenLayout:yes]; [myNavC
我正在使用 MMDraweController。它完美地工作。我对 rootViewController 有疑问。当应用程序启动时,它会加载 loginViewController。所以我不想要侧边栏
我搜索了互联网和 SO,但无法找到解决此问题的方法。我正在使用混帐。我有代码,它在计算机 C1 上有一个分支 B1。在另一台计算机 C2 上,我克隆了这个分支并在本地创建了另一个分支 B2。 B2 未
我正在使用以下 CSS 将我的彩色图像转换为灰度图像。 img.desaturate{ filter: grayscale(100%); -webkit-filter: graysca
从 Windows 11 升级后,Select-String cmdlet 停止工作,每次我使用它时,它都会尝试“打开未知文件”,如下图所示: 我在尝试从批处理文件运行我的一个 ps 脚本时发现了它
只是想知道我的浏览器一直询问我是否想在每次点击浏览器链接刷新时停止调试非常烦人,因为这会减慢开发时间。 有没有其他人遇到过这个? 干杯 最佳答案 更新的答案,现在找到根本原因 经过两年看到这个错误时断
在使用 Linux 时,当我们尝试使用命令行安装某些东西时,我们会收到一个提示 "Do you want to continue"[Y/N].. 我想使用 ansible-playbook 自动化它。
我们使用 cruise control .net在我们的 Delphi 2006 应用程序中进行持续集成。我们使用类似于描述的设置 here . 问题: 1) 用于实现构建脚本的最佳脚本工具/语言是什
昨天,Photo 的应用程序在我的 iPhone 上崩溃了。我想知道发生了什么以及导致崩溃的原因。我打开应用程序,它立即崩溃(黑屏然后回到跳板)。 在我打开应用程序之前,iPhone 没有“激活”(
我正在尝试编写一个小守护程序,检查是否有邮件要发送,如果需要则执行工作,然后休眠 X 秒。 我对NodeJS的异步方式不太熟悉。所以我迷路了。 var sleep = require('sleep')
我的文本框中有一个字符串,并且只希望其中一个单词以粗体显示。有没有办法在代码中做到这一点而不附加文本?有点像在 xml/html 中如何完成...下划线也可以吗? 最好不要使用 xml 或 html
我是一名优秀的程序员,十分优秀!