因为项目要用到Protege中构建的本体,这些本体又在Protege中编辑,所以存储结构是使用其内部的结构。要想使用Jena推理机,必须要将Protege中的KnowledgeBase导出为Jena内兼容的结构。庆幸的是,ProtegeAPI提供的转换接口。
(1)从本地项目中导出Jena Model,并打印所有的Triple,程序如下:
public static void getLocalModel() {
Collection errors = new ArrayList();
Project p = new Project("d:\\human.pprj", errors);
OWLModel owlmodel = (OWLModel) p.getKnowledgeBase();
Iterator<TripleStore> listtriplestore = owlmodel.getTripleStoreModel()
.listUserTripleStores();
while (listtriplestore.hasNext()) {
TripleStore ts = listtriplestore.next();
System.out.println(ts.getName().toString());
Iterator<Triple> itriple = ts.listTriples();
while (itriple.hasNext()) {
Triple triple = itriple.next();
System.out.println("triple:" + triple.getSubject() + ","
+ triple.getPredicate() + "," + triple.getObject());
}
}
owlmodel.getOntModel().write(System.out);
}
(2)从数据库导出Jena Model,并且进行推理,程序如下:
/**
* 从Protege本体数据库中导出Jena本体,并且进行推理
*/
public static void connectTest() {
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://IPaddress:3306/protege?useUnicode=true&characterEncoding=UTF-8";
String table = "test";
String user = "root";
String password = "root";
OWLDatabaseKnowledgeBaseFactory factory = new OWLDatabaseKnowledgeBaseFactory();
Collection errors = new ArrayList();
Project prj = Project.createBuildProject(factory, errors);
try {
OWLDatabaseKnowledgeBaseFactory.setSources(prj.getSources(),
driver, url, table, user, password);
prj.createDomainKnowledgeBase(factory, errors, true);
OWLModel owlmodel = (OWLModel) prj.getKnowledgeBase();
Model ont = owlmodel.getOntModel();
ont.write(new FileOutputStream("onto/human_pro.rdf"));
List<Rule> rule = Rule.rulesFromURL("rules/humantest.rules");
Reasoner reasoner = new GenericRuleReasoner(rule);
InfModel inf = ModelFactory.createInfModel(reasoner, ont);
inf.difference(ont).write(
new FileOutputStream("onto/human_infer_pro.rdf"));
} catch (Exception e) {
e.printStackTrace();
} finally {
prj.dispose();
}
}
分享到:
相关推荐
**Protege 4.1 本体库详解** Protege是一款强大的本体建模工具,被广泛用于知识表示、语义网和人工智能领域。它是一个基于Java开发的开源平台,提供了用户友好的界面,使得非技术背景的专家也能参与到本体构建过程...
**Protege本体建模工具** Protege是一款开源的、广泛用于知识表示和本体建模的工具,由斯坦福大学的人工智能实验室开发。它为用户提供了一个直观的图形用户界面,使得非程序员也能构建复杂的本体结构。本体在信息...
在“使用Protege创建本体进行推理-入门实例”中,我们将探讨如何通过Protege 5.2构建一个简单的生物分类本体,并利用内置的HermiT推理机进行推理。 首先,我们需要理解本体的基本构成。在这个实例中,我们有两类...
Protégé软件是斯坦福大学基于Java语言开发的本体编辑和知识获取软件,或者说是本体开发工具,也是基于知识的编辑器,属于开放源代码软件。这个软件主要用于语义网中本体的构建,是语义网中本体构建的核心开发工具...
在使用Protege进行本体构建的过程中,我们首先需要确保用户对本体的基本概念有一定的理解基础,并且对Protege这款工具本身也有一定的认识。本篇文章不会涉及Protege的安装步骤与基本使用方法,而是聚焦于实际操作...
protege构建本体教程 Protege是一款功能强大的本体编辑器,它提供了两种主要的本体建模方式:Protégé-Frames和Protégé-OWL编辑器。在这里,我们使用Protégé-OWL编辑器来构建本体。 什么是本体? -----------...
利用本体编辑工具protege5.2版本,建立一个中文人物关系的本体例子,有助于本体学习。
标题中的"protege本体编辑工具"指的是利用Protege进行本体的创建、编辑和管理。通过Protege,用户能够构建清晰、规范的本体模型,这在知识表示、数据集成、信息检索等领域具有重要作用。 描述中提到的"可以建立资源...
在这个"protege本体建模例子"中,我们有两个具体的示例:动植物例子和三国人物例子,它们将帮助初学者了解如何使用Protege来创建和操作本体。 1. **动植物例子**: 在这个例子中,我们可以预见到一个关于生物分类...
这个教程将指导用户如何使用Protege4.0来构建本体,包括如何选择合适的OWL语言、如何创建本体、如何使用Protege4.0中的各种功能等。 OWL语言是一种基于描述逻辑的语言,用于描述本体之间的关系。OWL语言分为三个子...
protege本体:pizza案例(owl格式)
### Protege构建本体知识点详解 #### 一、概述 Protege是一款广泛使用的开源本体编辑工具,它能够帮助用户构建、管理和编辑基于OWL(Web Ontology Language)的本体。通过Protege,我们可以定义实体之间的关系,...
通过以上步骤,你已经成功地在Protege中创建了一个简单的本体,包含了类的层级关系、属性的定义以及类的互斥性和传递性。这只是一个基础的示例,实际的本体构建可能会更复杂,包括更多的类、属性和约束,但这个过程...
我写了一个入门教程: protege本体推理(规则推理)实战练习题(附owl源文件) 这是它的配套资源
如果要改变 Protege 的默认编码,可以在 protege.lax 文件中添加一行:protege.file.encoding=GBK。这将使 Protege 使用 GBK 编码。 2. Protege 中文支持 Protege 对中文的支持是没问题的,因为 UTF-8 支持中文。...
3. **实例管理**:Protege允许用户创建和管理本体中的实例,即具体的数据对象。例如,可以创建一个“李白”的实例,指定其属于“人”类,并赋予“姓名”、“出生地”等属性值。 4. **可视化展示**:Protege提供了...
### Protege4.1本体建模知识点详解 #### 一、Protege4.1简介及安装 **Protege4.1**是一款强大的开源本体编辑工具,由斯坦福大学开发,广泛应用于知识管理和语义网领域。它支持多种本体语言,包括OWL、RDFS等,为...
使用protege本体构建工具创建的一个本体,练习使用protege工具的人可以以此为练习,并熟练掌握protege工具!
标题中的"protege4.3 本体开发"指的是使用Protege 4.3版本进行本体建模的过程。Protege是一款开源的、广泛使用的本体编辑器,它为知识工程和语义网提供了强大的支持。4.3版本是在其早期版本3.0的基础上进行了更新和...
这是本体构建的专门工具的安装程序,最新版本的,不需要单独安装java,可以直接安装使用,非常好用