`
lcf11824
  • 浏览: 87978 次
  • 性别: 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
分享到:
评论

相关推荐

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

    标题中的"Protégé安装包-win-20200620.rar"指的是一个针对Windows操作系统的Protégé软件的安装程序,日期为2020年6月20日。Protégé是一款开放源代码的本体编辑器和框架,广泛用于创建、编辑和管理本体,是语义...

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

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

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

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

    Protégé-2000 User's Guide

    在开始使用Protégé-2000之前,需要进行项目规划。这一步骤包括确定项目的范围、目标以及预期的结果等关键要素。良好的规划能够确保项目的顺利进行,并帮助团队成员理解项目的需求和期望。 ##### 2. **类别管理** ...

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

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

    基于Java语言开发的Protégé本体建模与编辑工具开源源码

    该项目是一个基于Java语言开发的开源本体建模与编辑工具Protégé的源码,总计包含1891个文件,其中包含1489个Java源文件、210个GIF图片、87个PNG图片、34个XML文件、20个EXSD文件、19个OWL文件、3个Markdown文件、3...

    Protégé教程

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

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

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

    本体(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...

    七步法构建本体实例

    总的来说,这个资源为学习者提供了一套完整的流程,从理解领域知识到利用OWL和Protégé构建本体,再到实例化和验证,是深入了解本体工程和大学领域知识建模的宝贵资料。通过实践这七个步骤,我们可以创建出能够有效...

    基于Prot_g_的课程知识本体的构建

    3. **使用Protégé进行构建**:利用Protégé软件,根据设计好的类和属性,构建出数据结构课程的本体。Protégé提供了直观的图形界面,方便用户进行本体的设计和管理。 4. **本体的验证和完善**:完成初步构建后,...

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

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

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

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

    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é构建知识图谱

    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的实例?”形式...

Global site tag (gtag.js) - Google Analytics