プラグイン開発

MR3 のプラグイン作成に関するクラス(net.sourceforge.mr3.plugin.MR3Pluginクラス)及びプラグインの作成方法について説明する.また,プラグインのサンプルを示す.

MR3 Pluginクラス

net.sourceforge.mr3.plugin.MR3Pluginクラス(以下,MR3Pluginクラス)は,abstract public void exec()抽象メソッドをもつ抽象クラスである.MR3 のプラグインを作成するには,MR3Pluginクラスを継承して,execメソッドをオーバーライドする.MR3Pluginクラスは,ユーティリティメソッドを提供する.プラグイン作成者は,MR3Pluginクラスが提供するユーティリティメソッドを用いることで,Jenaが提供するcom.hp.hpl.mesa.rdf.jena.model.Modelインタフェース(以下,Model)からMR3 のグラフへの変換とMR3 のグラフからJenaのModelを得ることが可能となる.以下に,ユーティリティメソッドを示す.(JavaDoc MR3Plugin)

protected JDesktopPane getDesktopPane()
JDesktopPaneを得る.内部ウィンドウを作成する際に用いる.
protected void replaceRDFModel(Model model)
Jenaが提供するModelを,MR3 のRDFグラフへ変換する.変換したRDFグラフを編集中のRDFグラフと置換する.
protected void mergeRDFModel(Model model)
Jenaが提供するModelを,MR3 のRDFグラフへ変換する.変換したRDFグラフを編集中のRDFグラフにマージする.
protected void mergeRDFSModel(Model model)
Jenaが提供するModelを,MR3 のRDFSグラフへ変換する.変換したRDFSグラフを編集中のRDFSグラフにマージする.
protected void replaceProjectModel(Model model)
Jenaが提供するModelを,MR3 のプロジェクトへ変換する.引数のModelは,MR3 のプロジェクトファイル.
protected Model getRDFModel()
MR3 のRDFグラフをJenaのModelに変換する.
protected JGraph getRDFGraph()
RDFエディタに描かれたグラフをorg.jgraph.JGraphオブジェクトとして得る.
protected JGraph getClassGraph()
クラスエディタに描かれたグラフをorg.jgraph.JGraphオブジェクトとして得る.
protected JGraph getPorpertyGraph()
プロパティエディタに描かれたグラフをorg.jgraph.JGraphオブジェクトとして得る.
protected Model getSelectedRDFModel()
選択されているMR3 のRDFグラフをJenaのModelに変換する.
protected Model getRDFSModel()
MR3 のRDFSグラフをJenaのModelに変換する.
protected Model getSelectedRDFSModel()
選択されているMR3 のRDFSグラフをJenaのModelに変換する.
protected Model getClassModel()
MR3 のクラスグラフをJenaのModelに変換する.
protected Model getSelectedClassModel()
選択されているMR3 のクラスグラフをJenaのModelに変換する.
protected Model getPropertyModel()
MR3 のプロパティグラフをJenaのModelに変換する.
protected Model getSelectedPropertyModel()
選択されているMR3 のプロパティグラフをJenaのModelに変換する.
protected Model getProjectModel()
プロジェクトをJenaのModelに変換する.

プラグイン作成方法

  1. MR3Pluginクラスのサブクラスを作り,public void exec()メソッドをオーバーライドする.
  2. マニフェストファイルに,プラグインクラス名とプラグイン名を以下のように記述し,プラグインクラスとマニフェストファイルをjarファイルでまとめる.(プラグインクラス名とプラグイン名は必須.creator, date, descriptionはオプション.)
Name: プラグインクラス名
plugin-name(or menu-name): プラグイン名
creator: 作者名
date: 更新日時
description: プラグインの説明
  1. 作成したjarファイルをMR3/pluginsディレクトリ(または,クラスパスの通ったディレクトリ)に置く.

ツールメニューの拡張機能を選択すると,プラグイン一覧を表示するダイアログが表示される.プラグイン一覧から実行したいプラグインを選択し,実行ボタンを押すと,プラグインクラスで実装したexecメソッドが実行される.

サンプルプラグイン

以下に,MR3 のプラグインの実例を示す.ここで示すプラグインは, MR3PluginSamples からダウンロードできる.

マニフェストファイル

Manifest-Version: 1.0

Name: net.sourceforge.mr3.plugins.samples.ReplaceRDFModelSample.class
menu-name: ReplaceRDFModelSample
creator: Takeshi Morita
date: 2004-01-24
description: Replace RDF Model Sample Program.

Name: net.sourceforge.mr3.plugins.samples.GetRDFModelSample.class
plugin-name: GetRDFModelSample
creator: Takeshi Morita
date: 2004-01-24
description: Get RDF Model Sample Program.

Name: net.sourceforge.mr3.plugins.samples.OpenProjectSample.class
plugin-name: OpenProjectSample
creator: Takeshi Morita
date: 2004-01-24
description: Open Project File Sample Program.

Name: net.sourceforge.mr3.plugins.samples.SelectNodesSample.class
plugin-name: SelectNodesSample
creator: Takeshi Morita
date: 2004-01-24
description: This plugin select mr3:a, mr3:b and mr3:c nodes.

Name: net.sourceforge.mr3.plugins.samples.GroupNodesSample.class
plugin-name: GroupNodesSample
creator: Takeshi Morita
date: 2003-12-23
description: This plugin group mr3:a, mr3:b and mr3:c nodes.

Name: org.semanticweb.mmm.mr3.owlPlugin.OWLImportPlugin.class
menu-name: OWLImportPlugin
creator: Takeshi Morita
date: 2004-01-24
description: This is owl import plugin.