`
lcf11824
  • 浏览: 87982 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

从Protege本体中获取JenaModel

阅读更多

因为项目要用到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();
		}
	}
 
分享到:
评论

相关推荐

    protege4.1本体库

    **Protege 4.1 本体库详解** Protege是一款强大的本体建模工具,被广泛用于知识表示、语义网和人工智能领域。它是一个基于Java开发的开源平台,提供了用户友好的界面,使得非技术背景的专家也能参与到本体构建过程...

    protege本体建模工具

    **Protege本体建模工具** Protege是一款开源的、广泛用于知识表示和本体建模的工具,由斯坦福大学的人工智能实验室开发。它为用户提供了一个直观的图形用户界面,使得非程序员也能构建复杂的本体结构。本体在信息...

    使用Protege创建本体进行推理-入门实例

    在“使用Protege创建本体进行推理-入门实例”中,我们将探讨如何通过Protege 5.2构建一个简单的生物分类本体,并利用内置的HermiT推理机进行推理。 首先,我们需要理解本体的基本构成。在这个实例中,我们有两类...

    protege本体构建工具

    Protégé软件是斯坦福大学基于Java语言开发的本体编辑和知识获取软件,或者说是本体开发工具,也是基于知识的编辑器,属于开放源代码软件。这个软件主要用于语义网中本体的构建,是语义网中本体构建的核心开发工具...

    Protege创建本体实战要点

    在使用Protege进行本体构建的过程中,我们首先需要确保用户对本体的基本概念有一定的理解基础,并且对Protege这款工具本身也有一定的认识。本篇文章不会涉及Protege的安装步骤与基本使用方法,而是聚焦于实际操作...

    protege构建本体教程

    protege构建本体教程 Protege是一款功能强大的本体编辑器,它提供了两种主要的本体建模方式:Protégé-Frames和Protégé-OWL编辑器。在这里,我们使用Protégé-OWL编辑器来构建本体。 什么是本体? -----------...

    protege建立中文人物关系的本体示例

    利用本体编辑工具protege5.2版本,建立一个中文人物关系的本体例子,有助于本体学习。

    protege本体编辑工具

    标题中的"protege本体编辑工具"指的是利用Protege进行本体的创建、编辑和管理。通过Protege,用户能够构建清晰、规范的本体模型,这在知识表示、数据集成、信息检索等领域具有重要作用。 描述中提到的"可以建立资源...

    protege本体建模例子

    在这个"protege本体建模例子"中,我们有两个具体的示例:动植物例子和三国人物例子,它们将帮助初学者了解如何使用Protege来创建和操作本体。 1. **动植物例子**: 在这个例子中,我们可以预见到一个关于生物分类...

    本体Protege4

    这个教程将指导用户如何使用Protege4.0来构建本体,包括如何选择合适的OWL语言、如何创建本体、如何使用Protege4.0中的各种功能等。 OWL语言是一种基于描述逻辑的语言,用于描述本体之间的关系。OWL语言分为三个子...

    protege本体:pizza案例(owl格式)

    protege本体:pizza案例(owl格式)

    Protege构建本体笔记

    ### Protege构建本体知识点详解 #### 一、概述 Protege是一款广泛使用的开源本体编辑工具,它能够帮助用户构建、管理和编辑基于OWL(Web Ontology Language)的本体。通过Protege,我们可以定义实体之间的关系,...

    protege本体建立手册.docx

    通过以上步骤,你已经成功地在Protege中创建了一个简单的本体,包含了类的层级关系、属性的定义以及类的互斥性和传递性。这只是一个基础的示例,实际的本体构建可能会更复杂,包括更多的类、属性和约束,但这个过程...

    protege本体推理(规则推理)实战练习题owl源文件

    我写了一个入门教程: protege本体推理(规则推理)实战练习题(附owl源文件) 这是它的配套资源

    Protege中文问题的解决方案

    如果要改变 Protege 的默认编码,可以在 protege.lax 文件中添加一行:protege.file.encoding=GBK。这将使 Protege 使用 GBK 编码。 2. Protege 中文支持 Protege 对中文的支持是没问题的,因为 UTF-8 支持中文。...

    知识图谱构建工具Protege

    3. **实例管理**:Protege允许用户创建和管理本体中的实例,即具体的数据对象。例如,可以创建一个“李白”的实例,指定其属于“人”类,并赋予“姓名”、“出生地”等属性值。 4. **可视化展示**:Protege提供了...

    protege4.1本体建模

    ### Protege4.1本体建模知识点详解 #### 一、Protege4.1简介及安装 **Protege4.1**是一款强大的开源本体编辑工具,由斯坦福大学开发,广泛应用于知识管理和语义网领域。它支持多种本体语言,包括OWL、RDFS等,为...

    使用Protege构建的一个Pizza本体

    使用protege本体构建工具创建的一个本体,练习使用protege工具的人可以以此为练习,并熟练掌握protege工具!

    protege4.3 本体开发

    标题中的"protege4.3 本体开发"指的是使用Protege 4.3版本进行本体建模的过程。Protege是一款开源的、广泛使用的本体编辑器,它为知识工程和语义网提供了强大的支持。4.3版本是在其早期版本3.0的基础上进行了更新和...

    本体构建工具protege

    这是本体构建的专门工具的安装程序,最新版本的,不需要单独安装java,可以直接安装使用,非常好用

Global site tag (gtag.js) - Google Analytics