OWL API简单入门与使用
2013-11-10 16:57
459 查看
OWL即网络本体语言,用于对本体进行语义描述。本体即Ontology,可以理解为某一个领域词汇的汇集,即词汇表。OWL的最新版本为2,具体OWL语法知识这里不赘述。本篇博客主要针对OWL API的简单使用进行说明,通过一些例子说明OWL API中核心类的构建与使用。
首先需要说明的是OWL API是用JAVA实现的,因此需要掌握相关的JAVA语言开发基础知识才能使用,这里一个相关的开源项目是jena,有兴趣的可以去了解一下。owl api提供了RDF/XML、OWL/XML解析器,并且提供了推理机功能,例如Pallet和FaCT++。使用OWL api时最核心的一个类是OWLOntologyManager,用于载入、创建和访问本体。下面提供一下api
documentation的网络地址,阅读起来还是比较费劲的。
http://owlapi.sourceforge.net/javadoc/index.html
另外,下面所有的代码均使用JUnit进行调试。为简化复杂度,所有的异常均抛Exception。
第一个例子用于演示对OWL文档的加载,需要说明的是这里载入的是本地OWL文档,当然也可以直接通过IRI载入OWL文档。
这里用到三个类(详细使用方式和类中的方法请阅读owl api,这也是最方便的方式)
OWLOntologyManager 用于管理ontology的集合,也是载入、创建、访问ontologies的核心类。
OWLOntology 表示一个符合OWL2规范的ontology
IRI 获取OWL文档的IRI
第二例子用于演示如何使用指定格式保存OWL文档,默认情况下保存的是载入文档的相同格式。当然保存时可以自己指定路径和保存格式,如RDF/XML或OWL/XML等。
第三个例子用于演示和merge两个owl文件,操作过程与上面的类似,说使用的类也非常的类似。
需要说明的是,这里载入的是两个本地owl文档,分别我们自己创建的owl文档,以及另一从falcons search中检索来的相似文档。当然,这里你也可以直接使用IRI来指定owl文档。
合并两个文档,OWL API提供了 OWLOntologyMerger 这个核心类,用于实现两个文档的合并。具体的使用方法可以阅读 owl api 。我在这里的实现思路是直接使用foreach遍历两个本体的内容,然后统一输出到一个文档。最后使用第二例子的保存操作进行文件的保存。
本例只是一个示范操作,仅仅用于示范如何使用owl api,仅供参考。
原文地址:/article/10616368.html 欢迎新浪 @晓风well 交流学习。
首先需要说明的是OWL API是用JAVA实现的,因此需要掌握相关的JAVA语言开发基础知识才能使用,这里一个相关的开源项目是jena,有兴趣的可以去了解一下。owl api提供了RDF/XML、OWL/XML解析器,并且提供了推理机功能,例如Pallet和FaCT++。使用OWL api时最核心的一个类是OWLOntologyManager,用于载入、创建和访问本体。下面提供一下api
documentation的网络地址,阅读起来还是比较费劲的。
http://owlapi.sourceforge.net/javadoc/index.html
另外,下面所有的代码均使用JUnit进行调试。为简化复杂度,所有的异常均抛Exception。
第一个例子用于演示对OWL文档的加载,需要说明的是这里载入的是本地OWL文档,当然也可以直接通过IRI载入OWL文档。
@Test public void shouldLoad() throws Exception{ // Get hold of an ontology manager OWLOntologyManager manager = OWLManager.createOWLOntologyManager(); // we can load a local ontology file File file = new File("ontology/academic.owl"); // Now load the local copy OWLOntology localAcademic = manager.loadOntologyFromOntologyDocument(file); // We can always obtain the location where an ontology was loaded from IRI documentIRI = manager.getOntologyDocumentIRI(localAcademic); System.out.println(" from:"+documentIRI ); }
这里用到三个类(详细使用方式和类中的方法请阅读owl api,这也是最方便的方式)
OWLOntologyManager 用于管理ontology的集合,也是载入、创建、访问ontologies的核心类。
OWLOntology 表示一个符合OWL2规范的ontology
IRI 获取OWL文档的IRI
第二例子用于演示如何使用指定格式保存OWL文档,默认情况下保存的是载入文档的相同格式。当然保存时可以自己指定路径和保存格式,如RDF/XML或OWL/XML等。
@Test public void shouldSaveOntologies() throws Exception{ OWLOntologyManager manager = OWLManager.createOWLOntologyManager(); File file = new File("ontology/academic.owl"); OWLOntology localAcademic = manager.loadOntologyFromOntologyDocument(file); System.out.println("loaded ontology: "+ localAcademic); File outFile = file.createTempFile("owlapiexamples", "saving"); manager.saveOntology(localAcademic, IRI.create(file.toURI())); }
第三个例子用于演示和merge两个owl文件,操作过程与上面的类似,说使用的类也非常的类似。
@Test public void mergeOntologies() throws Exception{ OWLOntologyManager man = OWLManager.createOWLOntologyManager(); OWLOntology owl1 = man.loadOntologyFromOntologyDocument(new File("ontology/academic.owl")); OWLOntology owl2 = man.loadOntologyFromOntologyDocument(new File("ontology/downFromWeb.owl")); OWLOntologyMerger merger = new OWLOntologyMerger(man); IRI mergedOntologyIRI = IRI.create("http://www.semanticweb.com/mymergedont"); OWLOntology merged = merger.createMergedOntology(man, mergedOntologyIRI); for (OWLAxiom ax : merged.getAxioms()) { System.out.println(ax); } man.saveOntology(merged, new RDFXMLOntologyFormat(),IRI.create("file:/mymergedoc.owl")); }
需要说明的是,这里载入的是两个本地owl文档,分别我们自己创建的owl文档,以及另一从falcons search中检索来的相似文档。当然,这里你也可以直接使用IRI来指定owl文档。
合并两个文档,OWL API提供了 OWLOntologyMerger 这个核心类,用于实现两个文档的合并。具体的使用方法可以阅读 owl api 。我在这里的实现思路是直接使用foreach遍历两个本体的内容,然后统一输出到一个文档。最后使用第二例子的保存操作进行文件的保存。
本例只是一个示范操作,仅仅用于示范如何使用owl api,仅供参考。
原文地址:/article/10616368.html 欢迎新浪 @晓风well 交流学习。
相关文章推荐
- Java Json API:Gson使用简单入门
- Java Json API:Gson使用简单入门
- spring整合mybatis(入门级简单教程5)--使用mybatis的API
- Java Json API:Gson使用简单入门
- docker入门安装与简单使用
- 使用nRF51822/nRF51422创建一个简单的BLE应用 ---入门实例手册(中文)之五
- 机器学习入门笔记(三)----Octave简单使用
- GitHub简单使用入门
- Android零基础入门第24节:自定义View简单使用
- Ibatis入门--简单使用
- redis 入门 使用方法简单介绍
- Thrift使用入门(2) - 用Thrift实现一个简单的Server/Client应用程序
- RuleEngine -- 一款使用简单,入门方便的数据库规则引擎
- 使用java excel api 简单读写excel文件
- [专家讲座] ArcGIS API for Silverlight开发入门(7):使用非AGS数据源的图层(转)
- Spark SQL 编程API入门系列之Spark SQL的作用与使用方式
- Docker remote API简单配置使用
- WebSocket入门教程(二)-- WebSocket简单的API介绍
- c#使用API进行模拟鼠标点击 底层操作同样简单
- 使用Google Search API的简单步骤(主要参考自API文档)