我在推断可传递对象属性时遇到了问题。我有类似于B的个体A和类似于C的个体B。我想在OWL API中使用Pellet或者使用Jena来获得个体组A,B,C,但是我无法找到在OWL API中进行推理的代码。
我已经在OWL API中加载了本体,有没有一个示例代码来推断一组具有相同可传递属性的个体?
这是伊格纳齐奥·帕米萨诺指示的回答:
如果没有来自pellet的当前解决方案,我们可以自己写。
(同时拥有set和list的原因是能够在添加元素的同时以可预测的方式迭代,并保留快速的包含检查--代价是占用一点内存)
OWLDataFactory factory = manager.getOWLDataFactory();
Set<OWLNamedIndividual> found= new HashSet<>();
List<OWLNamedIndividual> list= new ArrayList<>();
List<OWLNamedIndividual> SeaIcelist= new ArrayList<>();
PrefixManager pm = new DefaultPrefixManager("http://www.semanticweb.org/SeaIceOntology#");
OWLNamedIndividual root = factory.getOWLNamedIndividual(":thickness", pm);
OWLObjectProperty p = factory.getOWLObjectProperty(IRI
.create("http://www.semanticweb.org/SeaIceOntology#similarTo"));
OWLReasoner r= new StructuralReasonerFactory().createNonBufferingReasoner(loadMODIS);
found.add(root);
list.add(root);
while(i < list.size()){
for(Node<OWLNamedIndividual> ind:r.getObjectPropertyValues
(list.get(i), (OWLObjectPropertyExpression)p)){
for(OWLNamedIndividual nind:ind){
if(found.add(nind)){
list.add(nind);
/* select specific individuals to the SeaIcelist */
for(OWLClassExpression ex : nind.getTypes(loadMODIS)) {
while(ex.asOWLClass().getSuperClasses(loadMODIS).iterator().hasNext()){
for(OWLClassExpression cl:ex.asOWLClass().getSuperClasses(loadMODIS)) {
if (cl.equals(factory.getOWLClass
(IRI.create("http://www.semanticweb.org/SeaIceOntology#EarthScienceProperty"))) ){
SeaIcelist.add(nind);
break;
}
}
ex = ex.asOWLClass().getSuperClasses(loadMODIS).iterator().next();
}
}
/* select specific individuals to the SeaIcelist */
}
}
}
i ++;
}
for (int j = 1; j < i; j ++){
System.out.println("These are all the terms which has similar meanings." + list.get(j).toStringID());
}
int size = SeaIcelist.size();
for (int j = 0; j < size; j ++){
System.out.println("These are all the standard terms which has similar meanings." + SeaIcelist.get(j).toStringID());
}
Reason 使你可以在利用 JavaScript 和 OCaml 生态系统的同时编写简单,快速和高质量的类型安全代码。 具有以下特点: 可以快速掌握 强大的自动源代码格式化 采用 JavaScript / C 互操作增量 没有语言级 VM 快速开发和共享项目
我正在使用一个本体(OWL,Protege4)。我有3个人:、和。以及两个对象属性:和。 关系应该是下一个: null 我想要得到的结果是设置关系,并从reasoner获取作为派生属性。 我很感激你事先的帮助!
我是SoapUI的新手,遇到了一个我不明白的问题。目标:我想在不同的测试步骤中将结果从一个Groovy脚本传递到另一个Groovy脚本。 第1步:我有一个生成GUID的Groovy脚本: 步骤2:我有一个属性转移步骤,它接受上述脚本的结果,并将其传递到HTTP请求步骤(正在工作) 步骤3:我有第二个Groovy脚本,它运行curl命令,其中需要包含相同的GUID。 第3步是问题开始的地方。如何从第
英文原文:http://emberjs.com/guides/components/passing-properties-to-a-component/ 默认情况下,组件不能访问模板作用域下的属性。 例如,假设有一个用于显示一篇博客的blog-post组件: 1 2 3 4 <script type="text/x-handlebars" id="components/blog-post">
问题内容: 方法的合同规定了以下4个属性:自反,对称,传递和一致。虽然我了解不遵循自反,对称和一致的危险,并且可以肯定同意遵循和物的优点,但我想知道如果违反和物性会给它带来什么危害? 具体来说,哪个Java库(或各种第三方库)需要依赖才能传递以正常工作?以我的理解,如果其他3个属性实现得当,Collections框架将起作用。 问题答案: 假设三个对象a,b,c与 (伪代码,代表)。 现在,让我们
编译源代码只是整个过程的一个方面,更重要的是,你要把你的软件发布到生产环境中来产生商业价值,所以,你要运行测试,构建分布、分析代码质量、甚至为不同目标环境提供不同版本,然后部署。整个过程进行自动化操作是很有必要的。 整个过程可以参考下图: 整个过程可以分成以下几个步骤: 编译源代码 运行单元测试和集成测试 执行静态代码分析、生成分析报告 创建发布版本 部署到目标环境 部署传递过程 执行冒烟测试和自