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

利用Protégé Core API使用Protégé 项目中的本体

阅读更多

 

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项目中的本体了。目前测试的情况是,使用远程的本体时会丢失部分数据,暂时还没有解决,还要继续探索。

 

 

 

0
0
分享到:
评论

相关推荐

    Core Protégé and Protégé-Frames的api帮助文档chm

    已编译的api帮助文档,官方api的javadoc

    亲测可用protege(Protégé5.0.0版).zip

    从其他地方搞来的,上传到这里赚点积分,欢迎下载! 由斯坦福大学医学院基于Java语言开发的... 使用提示: ①先安装java JDK 7.0及以上版本 ②解压Protégé软件包,双击run.bat,稍等片刻便可启动Protégé客户端

    Protégé教程

    Protégé教程讲解如何使用( Protégé教程,浅显易懂)

    使用Protégé作为知识建模工具开发汽车制造领域本体

    摘要:使用Protégé作为知识建模工具开发汽车制造领域本体,以Jena为开发平台运用基于本体的语义检索技术和规则推理实现订单的自动生成,开发了一套基于本体的汽车零部件采购订单自动生成系统。由于本体是共享概念模型...

    Protégé安装包-win-20200620.rar

    2020年6月20日从官网下载的安装包,因为官网下载速度比较慢,而且一旦断了就得从头下载,并且极易失败,提供给有需要的小伙伴

    本体(ontology)(使用Protégé手工构建)

    这是一个利用Protégé5.1.0手工构建的本体(ontology),该本体大概描述了大学、学位、学位课程、教师、学生等class之间的关系,而且经过reasoner检测无错误,且能在此基础之上利用SWRL语言书写规则进行推理查询

    ProtegeVOWL:适用于Protégé的VOWL插件

    请注意,ProtégéVOWL具有一些已知的错误,并且未实现VOWL规范中定义的所有可视元素。 Web应用程序[WebVOWL]( )提供了更完整的VOWL实现。 有关ProtégéVOWL和WebVOWL的更多信息,请参见 。开发人员设定要求Prot...

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

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

    Protégé-2000 User's Guide

    PDF文章,非常好的Protégé环境介绍资料,详细介绍了protege的使用

    protege(Protégé5.0.0版)

    由斯坦福大学医学院基于Java语言开发的本体编辑和知识获取软件,它是一个开源软件。... 使用提示: ①先安装java JDK 7.0及以上版本 ②解压Protégé软件包,双击run.bat,稍等片刻便可启动Protégé客户端

    Protégé + Fuseki + Jena-­‐OWL + YASGUI

    A manual to set Up Fuseki with Jena--‐owl reasoning over an ontology created in Protégé and querying it via YASGUI

    Protégé(Protege-5.2.0-win版)桌面版官网最新

    Protégé软件是斯坦福大学医学院生物信息研究中心基于Java语言开发的本体编辑和知识获取软件,或者说是本体开发工具,也是基于知识的编辑器,属于开放源代码软件。 Protégé Desktop is a feature rich ontology ...

    本体可视化 Protégé 工具——综述-研究论文

    Protégé 是最流行的本体可视化工具之一。... 这项工作的目的是研究这四种方法在不同种类的protégé可视化工具的开发中的应用,并对它们的特点和特征进行分类,以帮助方法选择并促进本体可视化领域的进一步研究。 .

    中医与人工智能-基于Protégé构建知识图谱

    https://blog.csdn.net/m0_38139250/article/details/121877883 中医与人工智能-基于Protégé构建知识图谱 配套资源

    ontocomp:OntoComP是Protégé4插件,用于完成OWL本体-开源

    OntoComP是Protégé4插件,用于完成OWL本体。 它使用户可以检查OWL本体是否包含有关应用程序域的“所有相关信息”,如果不是,则适当地扩展本体。 它通过向用户询问“类别C1和C2的实例是否也是类别C3的实例?”形式...

    知识图谱构建-protégé

    实践篇(一):数据准备和本体建模 https://zhuanlan.zhihu.com/p/32389370 实践篇(二):关系数据库到RDF https://zhuanlan.zhihu.com/p/32552993 实践篇(三):D2RQ SPARQL endpoint与两种交互方式 ...

    swrltab-plugin:Protégé5插件,用于处理SWRL规则和SQWRL查询语言

    该存储库包含Protégé5 Desktop本体编辑器的基于SWRLAPI的SWRLTab插件。 该插件包含用于处理SWRL规则和SQWRL查询的SWRLTab和SQWRLTab组件。 插件文档可以在找到。 可在找到SWRLAPI的文档。 请注意,该插件仅在...

    【Linux等多平台版】Protege-5.6.3-platform-independent.zip

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

    protege本体建模工具

    protege本体建模工具

    protege(Protégé-5.0.0-beta-23)

    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-...

Global site tag (gtag.js) - Google Analytics