zoukankan      html  css  js  c++  java
  • Protege 插件开发

    Protege 是斯坦福大学开发的一个本体建模工具,也是当前世界上最为流行的本体建模工具之一。Protege 采用java语言开发,其源代码对用户开放并且具有和Eclipse类似的插件管理机制,因此具有非常优秀的可扩充性。

    本文介绍如何采用Eclipse开发一个基于Protege的Hello World 插件。

    先决条件:

    • 下载并安装Eclipse,本文中采用Eclipse 3.5;
    • 下载并安装Protege, 本文采用的是Protege 3.4.4。

    1. 打开Eclipse,新建一个java项目,名称为 HelloWorldPlugin,如下图所示。

    image

    • 2. 配置项目属性,在项目构建路径中加入protege.jar, looks.jar, 以及unicode_panel.jar这几个jar文件(在protege安装路径下可以找到)。如果需要用到owl API的话,还得加入protege-owl plugin 中所有的包,即在plugins 文件夹下面edu.stanford.smi.protegex.owl 插件中所有的jar文件。如下图所示。
    • image

    3. 在src下面新建包com.example, 然后新建类HelloWorldTab, 该类继承于AbstractTabWidget,如下图所示。

    image

    4. 在类HelloWorldTab中输入以下代码,

     

    其中,创建UI的代码可以有其它可视化设计器设计,这里推荐使用WindowBuilder,它可以直接识别AbstractTabWidget,并且可以方便的拖控件进行UI设计,如下图,

    image

    5. 在src下面创建manifest文件。新建文件夹META-INF,如图

    image

    然后再在这个文件夹下面新建文件MANIFEST.MF(必须大写),输入以下内容,

     


    这里需注意的是最后必须留一空行。

    6. 运行配置,如图,

    image

    在自变量页,工作目录选择其它,然后单击文件系统,选择protege安装位置,例如,我这里是D:\Program Files\Protege_3.4.4,如下图,

    image

    在VM 自变量中输入-Xmx500M,以防止内存过小导致加载较大的本体时出现内存泄露。

    7. 运行程序,启动Protege,结果如图,任意打开一个本体项目,

    image

    8. 调用创建的插件,在Project->Configure..中打开插件配置对话框,可以发现HelloWorldPlugin出现在插件列表中,如图所示,

    image

    选中该插件前面的选项框,该插件将会出现在下面,

    image

    9. 发布插件。右击src->导出…,

    image

    打开对话框,选择java->jar,

    image

    点下一步,选择导出目标(位置),

    image

    下一步保持默认,再点下一步,选择从工作空间中使用现有清单,然后选择项目下面的MANIFEST.MF,

    image

    点完成,jar文件创建成功!

    10. 测试插件,将该插件放到Protege安装路径下的plugins文件下,然后启动Protege,和第八步类似,调用创建的HelloWorldPlugin插件,结果如下图所示,表明插件安装成功。

    image

    本文介绍了一个极为简单的Protege插件创建过程。但是一个是个实用的插件,远远比此复杂,因此还需要结合具体问题进行更深入地研究。


    作者:Alex Yu
    出处:http://www.cnblogs.com/biaoyu/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    python使用Flask作为MockServer的方法
    Springboot提示数据库连接问题Connection is not available
    python解析FreeMind和XMind思维导图
    java操作对比两个字符串,将差异数据提取出来
    CronExpression表达式详解和案例
    Jquery.Datatables dom表格定位 (转)
    Flask 之 WebSocket
    基于WebSocket的简易聊天室
    Flask 之 宏
    Flask 之 蓝图
  • 原文地址:https://www.cnblogs.com/biaoyu/p/1929715.html
Copyright © 2011-2022 走看看