Protégé Core API 学习
英文文档链接:(http://protege.stanford.edu/doc/dev.html#api )
Protégé提供了接口供其他应用程序访问知识库。这些应用程序不需要使用Protégé的用户界面,这些应用接口主要在protege.jar包的edu.stanford.smi.protege.model.Project类中的getKnowledgeBase()方法可以获取知识库的内容。
使用Protege项目中的本体
Protege支持两种标准,一个是较早的Frame,另一个是OWL。由于我们的项目使用的是OWL标准,所以主要对OWL标准的支持部分学习。
Protege提供了KnowledgeBase类,主要描述所有的知识。而OWLModel正是继承自这个类,所以可以搭建从项目数据到本体的桥梁。如何获取Protege中的本体呢,我使用了两种方式。
一种是:读取本地项目中的本体。代码如下:
package test;
import java.util.*;
import com.hp.hpl.jena.ontology.OntModel;
import edu.stanford.smi.protege.exception.OntologyLoadException;
import edu.stanford.smi.protege.model.*;
import edu.stanford.smi.protegex.owl.jena.JenaOWLModel;
public class KnowledgeBasePrinter {
private static final String PROJECT_FILE_NAME = "d:\\human.pprj";
public static void main(String[] args ) throws OntologyLoadException{
Collection errors = new ArrayList();
Project project = new Project(PROJECT_FILE_NAME, errors);
if (errors.size() == 0) {
JenaOWLModel kb = (JenaOWLModel)project.getKnowledgeBase();
OntModel ontModel = kb.getOntModel();
ontModel.write(System.out);
} else {
displayErrors(errors);
}
waitForContinue();
}
private static void displayErrors(Collection errors) {
Iterator i = errors.iterator();
while (i.hasNext()) {
System.out.println("Error: " + i.next());
}
}
private static void waitForContinue() {
System.out.println("Press <Enter> to continue");
try {
System.in.read();
} catch (Exception e) {}
}
}
这个类描述了从本地项目中读取知识库中的内容,打印出这个本体。由于我的应用程序中需要将Protege中的owl本体和JenaAPI中的本体进行互操作,Protege支持这种转换。所以,上面的程序中我将本体转换为OntModel,然后进行打印操作。
第二种:调用远程项目中的本体。主要改动部分代码,如下有两种方式。
RemoteProjectManager rpm = RemoteProjectManager.getInstance();
Project p = rpm.getProject("ip+端口号", "用户名", "密码", "项目名称", true);
KnowledgeBase kb = p.getKnowledgeBase();
或者
Project p = null;
try {
RemoteServer server = (RemoteServer) Naming.lookup("//localhost/" + Server.getBoundName());
if (server != null) {
RemoteSession session = server.openSession("Timothy Redmond",
SystemUtilities.getMachineIpAddress(),
"troglodyte");
if (session != null) {
RemoteServerProject serverProject = server.openProject("Newspaper", session);
if (serverProject != null) {
p = RemoteClientProject.createProject(server, serverProject, session, true);
}
}
}
} catch (Exception e) {
Log.getLogger().severe(Log.toString(e));
}
这样,就可以在自己的应用程序中使用Protege项目中的本体了。目前测试的情况是,使用远程的本体时会丢失部分数据,暂时还没有解决,还要继续探索。
分享到:
相关推荐
已编译的api帮助文档,官方api的javadoc
从其他地方搞来的,上传到这里赚点积分,欢迎下载! 由斯坦福大学医学院基于Java语言开发的... 使用提示: ①先安装java JDK 7.0及以上版本 ②解压Protégé软件包,双击run.bat,稍等片刻便可启动Protégé客户端
Protégé教程讲解如何使用( Protégé教程,浅显易懂)
摘要:使用Protégé作为知识建模工具开发汽车制造领域本体,以Jena为开发平台运用基于本体的语义检索技术和规则推理实现订单的自动生成,开发了一套基于本体的汽车零部件采购订单自动生成系统。由于本体是共享概念模型...
2020年6月20日从官网下载的安装包,因为官网下载速度比较慢,而且一旦断了就得从头下载,并且极易失败,提供给有需要的小伙伴
这是一个利用Protégé5.1.0手工构建的本体(ontology),该本体大概描述了大学、学位、学位课程、教师、学生等class之间的关系,而且经过reasoner检测无错误,且能在此基础之上利用SWRL语言书写规则进行推理查询
请注意,ProtégéVOWL具有一些已知的错误,并且未实现VOWL规范中定义的所有可视元素。 Web应用程序[WebVOWL]( )提供了更完整的VOWL实现。 有关ProtégéVOWL和WebVOWL的更多信息,请参见 。开发人员设定要求Prot...
利用本体编辑工具protege5.2版本,建立一个中文人物关系的本体例子,有助于本体学习。
PDF文章,非常好的Protégé环境介绍资料,详细介绍了protege的使用
由斯坦福大学医学院基于Java语言开发的本体编辑和知识获取软件,它是一个开源软件。... 使用提示: ①先安装java JDK 7.0及以上版本 ②解压Protégé软件包,双击run.bat,稍等片刻便可启动Protégé客户端
A manual to set Up Fuseki with Jena--‐owl reasoning over an ontology created in Protégé and querying it via YASGUI
Protégé软件是斯坦福大学医学院生物信息研究中心基于Java语言开发的本体编辑和知识获取软件,或者说是本体开发工具,也是基于知识的编辑器,属于开放源代码软件。 Protégé Desktop is a feature rich ontology ...
Protégé 是最流行的本体可视化工具之一。... 这项工作的目的是研究这四种方法在不同种类的protégé可视化工具的开发中的应用,并对它们的特点和特征进行分类,以帮助方法选择并促进本体可视化领域的进一步研究。 .
https://blog.csdn.net/m0_38139250/article/details/121877883 中医与人工智能-基于Protégé构建知识图谱 配套资源
OntoComP是Protégé4插件,用于完成OWL本体。 它使用户可以检查OWL本体是否包含有关应用程序域的“所有相关信息”,如果不是,则适当地扩展本体。 它通过向用户询问“类别C1和C2的实例是否也是类别C3的实例?”形式...
实践篇(一):数据准备和本体建模 https://zhuanlan.zhihu.com/p/32389370 实践篇(二):关系数据库到RDF https://zhuanlan.zhihu.com/p/32552993 实践篇(三):D2RQ SPARQL endpoint与两种交互方式 ...
该存储库包含Protégé5 Desktop本体编辑器的基于SWRLAPI的SWRLTab插件。 该插件包含用于处理SWRL规则和SQWRL查询的SWRLTab和SQWRLTab组件。 插件文档可以在找到。 可在找到SWRLAPI的文档。 请注意,该插件仅在...
Protégé软件是斯坦福大学医学院生物信息研究中心基于Java语言开发的本体编辑和知识获取软件,或者说是本体开发工具,也是基于知识的编辑器,属于开放源代码软件。这个软件主要用于语义网中本体的构建,是语义网中...
protege本体建模工具
Protege-5.0.0-beta-23官网更新日期2016-2-17,此次官网更新包括多个版本,这个资源里包括独立平台(Protege-5.0.0-beta-23-platform-independent)、SWRL插件、DL Query插件,另外官网还有Protege-5.0.0-beta-23-...