セマンティックエディタ入門
導入
準備
セマンティックエディタは産総研社会知能技術研究ラボで開発中のJavaアプリケーションです。 JRE5以降のJRE (Java Runtime
Environment; J2SEに含まれます) が必要です。JRE6以降を推奨します。
下記のJWS版を使うと、 適当な版のJREがなければ自動的にダウンロード・インストールされます。 Mac OS X用のJavaはここにあります。
セマンティックエディタを使うにはユーザアカウント(SACMと共通)が必要です。
これらを取得するには橋田までご連絡下さい。
インストール
ダウンロードページ
(上記とは別のユーザ名とパスワードによる認証が必要です) のから、
下記のいずれかをダウンロードして下さい (JWS版をお薦めします)。
- JWS版 ()
Java Web Start用のスクリプトeditor_stable.jnlpです。
クリックでエディタ本体がダウンロードされ起動されます。
または、 ブラウザの右クリックで「」等を選んでダウンロードして下さい。
起動の際にセマンティックエディタ本体の最新版のインストールが自動的に行なわれます。
- スタンドアロン版 ()
アプリケーションのアーカイブsaEditor.tar.gzです。 ダウンロード後、適当なディレクトリに展開すればインストール完了です。
起動の際に最新版の自動的インストールは行なわれません。
起動
- JWS版の場合
上記でダウンロードしたeditor_stable.jnlpを実行して下さい。 インターネットに接続されている場合、
JREの適当な版がインストールされていなければ、 自動的にダウンロード・インストールが行なわれます。
また、 セマンティックエディタの最新版がインストールされていなければ 自動的に最新版のダウンロードとインストールが行われます。
最初の起動の際は必ずセマンティックエディタの本体をダウンロードするため、 インターネットに接続している必要があります。
JRE6ではなくJRE5を使う場合は、 Javaコンソールを表示しない設定にして下さい。
Javaコンソール等を表示しない設定は、 Windowsの場合、で行ないます。
- スタンドアロン版の場合
上記でインストールしたディレクトリの、saEditor.bat (Windowsの場合) またはsaEditor (UNIX系OSの場合)
を実行して下さい。
- 共通
起動すると、下のような「」ダイアログが表示されます。
ユーザ名とパスワードを入力してをクリックして下さい。
「」ダイアログ (起動時)
やの設定は、
大学や会社のファイアウォールを越えて サーバにアクセスするためのものものですが、 通常は不要です。
なお、このダイアログは、 起動後にで呼び出すことができます。
ユーザ名とパスワードは管理者から発行されます。 これらがないと作成したコンテンツを共有することができません。
認証が完了した後、 サーバとの通信が可能な状態であれば、
「」 (アップデート情報など) が表示されます。
重要な情報が含まれる可能性があるので、 必ず内容を確認して下さい。
確認したらをクリックして下さい。
「」
セマンティックエディタを初めて起動したときは、システムオントロジーを含む初期ローカルキャッシュが自動的にダウンロードされます。
サーバとの通信が行なわれている間は、 下図のように「」ボタン (との間の下) が赤くなって押下可能になります。
起動されたセマンティックエディタの画面 (通信中)
下にセマンティックエディタの画面の全体を示します。
セマンティックエディタの全体像
会社や大学によってはファイアウォールのせいで通信ができないことがあります。
その場合は、で「」ダイアログを表示し、
下のように「」タブでを選び、でシステムオントロジーを開いて、を実行して下さい。
「」ダイアログ (「」タブ)
最初にエディタが立ち上がったときに自動的にダウンロードされるコンテンツは最新でない可能性があります。
明示的にサーバとの同期をして下さい。
単なる同期はフォーカスされているハイパーノードの範囲の同期なのですぐに終わりますが、再帰的同期はそのハイパーノード以下の全コンテンツの同期なのでかなり時間がかかる場合があります。
をチェックすると「」ウィンドウが現われ、 ここに通信の内容が表示されます。
通信の失敗は赤字で表示されます。
JRE5でJavaコンソールを表示した状態でJWS版を使っている場合など、
セマンティックエディタの終了の際にローカルキャッシュが壊れて 次の起動ができなくなることがあるかも知れません。
そのような場合は、 ローカルキャッシュ (Windows XPやVistaの場合は C:\Documents
and Settings\ユーザ名\.sa\cache、Windows 7の場合は C:\Users\ユーザ名\.sa\cache)
を消去して下さい。
終了
、Alt-F4、 またはCtrl-Qで終了して下さい。
アンインストール
プラグイン
サンプルプラグイン (Serialize「」、 Duplicate「」、 Graph Search「」など) がシステムオントロジーに組み込まれています。
プラグインはから実行できます。
追加のプラグインは、プラグイン(sa:plugin)型のメディアノードをプロジェクトオントロジーの中に置き、を実行すると、
以後から使用可能になります。
不要になったら、プロジェクトオントロジーの中から移動 (カット&ペースト) や削除でプラグインノードを取り除き、
を実行すると、以後メニューからも消されます。
を実行すると、
すべてのプラグインがいったんメニューからは消えますが、を実行するか次にプロジェクトファイルを開くとふたたび使用可能になります。
システムオントロジー内のプラグインノードを移動 (ドラグ&ドロップ、カット&ペースト) や削除してしまうと、
すべてのユーザーに影響が及ぶので注意してください。
誤ってカット&ペーストなどしてしまった場合は、 元に戻す (Ctrl-Z) またはバージョンを戻す (Shift-↓) を実行して下さい。
操作
概要と例
セマンティックエディタはRDF (Resource Description Format) のグラフを共同作成するためのソフトウェアツールです。
グラフはノードとリンクからなり、
ノードはハイパーノード(グラフを中に含むノード) でも構いません。 画面のトップレベルもハイパーノードです。
その他のハイパーノードの内容であるグラフは各々サブウィンドウの中に表示されます。
セマンティックエディタの画面には「グラフモード」と「ツリーモード」という2通りの表示のモードがあります。
トップレベルのウィンドウは通常はグラフモードになっていますが、 サブウィンドウは通常はツリーモードになっています。
ウィンドウの背景を右クリックすると現われるからまたはを選択するとツリーモードまたはグラフモードに変更することができます。
ツリーモードへの変更
グラフモードでは、 グラフに含まれる各ノード、 各リンクがちょうど1回ずつ出現するようにグラフを単純に表示します。
ツリーモードではグラフを木のように表示しますが、 各ノード、 各リンクは複数回出現しても良いので、 木の形で任意のグラフを表示できます。
ツリーモードではウィンドウの左端に縦長の長方形が現われます。 この長方形は当該のハイパーノード自体を表わします。
ツリー表示
ツリーモードでは、 カーソルの位置に応じて黄色い破線 (上の図ではノード`F'の右側の破線) が表示されますが、
これは、ドラッグ&ドロップによる<
SPAN>実体(ノードまたはリンク) の移動や新たな実体の作成によって実体が挿入される位置を示しています。
上の図の状態でCtrl-Tを実行すると、
現在フォーカスされたウィンドウの中にノードの一種であるテキストノードがノード`F'の右側に新たに作られます。
テキストノードができると、 その内容としてテキストを入力できる状態になっています。
新たなテキストノードの作成
ここで背景をクリックするなどしてテキストを入力せず空にすると、
空ノード(空のテキストノード) が表示されます。
ノードのタイプであるクラスはrdfs:Resourceです。
空ノード
実体(ノードまたはリンク) の左肩の赤い星印は、
その実体 の最新の情報がサーバに送信されていないことを示します。
「同期」を実行するとその情報がサーバに送信され、 星印が消えます。
サーバとの同期の後
実体のタイプ(ノードの場合はクラス、
リンクの場合は属性) を変更するには、
その実体を右クリックして現われる() から適当なタイプを選択します。
「」からの選択
上図の例のクラスや属性を使用するには、そのためのオントロジー`rel (middle-grain linguistic relations)'をプロジェクトオントロジーにインポートしてする必要があります。
ノードをダブルクリックすると、 そのノードに対応するサブウィンドウが開きます。
たとえば上図の例で空ノードをダブルクリックすると、 下図のようになります。
サブウィンドウ
このサブウィンドウの中にノードを作ると、 空ノードの枠線が2重になりますが、
これはこのノードが非空のハイパーノードになったことを表わします。
ハイパーノード
さらにノード`B'をこのハイパーノードの中にドラッグ&ドロップすると、
サブウィンドウの背景が緑色になりますが、
これはノード`C'を根とする部分木が空ノード自身も含めて空ノードの要素となり、
空ノードがトップレベルのハイパーノードの要素でなくなくなったため、
このサブウィンドウの内容が現在のプロジェクトの外にあることを示します。
プロジェクトの外のハイパーノード
ツリーモードでは各実体をCtrl+ドラッグ&ドロップすることによってその実体の新しい出現を作ることができます。
また、 リンクの端 (3角か丸の部分) を背景にドラッグ&ドロップすると、
ドロップ先にその端につながったノードの新しい出現ができます。
たとえば、 下のように「例」リンクの右端をノード`A'の右側にドラッグ&ドロップすると、
リンクの端のドラッグ
ノード`
G'の新しい出現がノード`
A'の右側にできます。
ノード`G'の新しい出現の作成
ひとつの実体のある出現を別の出現にドラッグ&ドロップすると、
2つの出現を後者に統合できます。
ノード`G'の複数の出現の統合
終点がrdfs:Literalタイプまたはxsd:Datatypeタイプである属性 (データ型属性)
のインスタンスと終点は、 始点であるノードの内部に埋め込まれます。
それらを閲覧・編集するには、 ノードに関して「」 (Ctrl-G) を実行します。
「」
ツリーモードでは、 ノードの下へ複雑な部分木を畳み込んで、 ツリーの全体像を見やすくできます。
部分木の根となるノードの右脇にカーソルを合わせると、 背景の色が変わり`-'が表示されます。
ノード`tree'の下の部分木を畳み込む
ここで`-'をクリックすると、 表示が`-'から`+'に変わり部分木は畳み込まれます。
ノード`tree'の下に畳み込まれた部分木
ノードの右の`+'をクリックすると、 ふたたび部分木が展開されます。
グラフモードでは、 リンク自体をリンクの終点にすることができます。
リンクを終点とするリンク
同じ関係が、 ツリーモードでは下図のような表現になります。
リンクを終点とするリンク (ツリーモード)
上図の`A'を始点とするふたつの「要素」リンクのうち、
`D'へのリンクの方が「言及」リンク終点である「要素」の選択と同時に青くなっているので、
「言及」リンクの終点と同じ実体をもつリンクだとわかります。
メニュー
以下のようなメニューを見れば操作の仕方は大体わかると思います。
たいていのコマンドにキーボードショートカットを定義してあるので活用して下さい。
「」
「」
「」
「」メニューには、 上図に示されているキーボードショートカット以外に、
クリックやドラッグによる操作が可能な項目があります。
たとえば、 ノード内のテキストの「」は、
ノードを選択した状態でCtrl-Eとする以外に、
ノードをCtrl-ダブルクリックしても実行できます。
-
- ノードを選択した状態でCtrl-E
- ノードをCtrl-ダブルクリック
-
-
-
- ノードを選択した状態でCtrl+Shift-R
- ウィンドウの縁をダブルクリック
「」
「」
背景を右クリックすると (サブ) ウィンドウのが現われます。
ウィンドウの「」
ウィンドウの「」
ツールバーや、 選択した実体のURIを表示するステータスバーの表示・非表示は、
から、
「」ダイアログ内、
「」タブ中の「」チェックボックスで設定できます。
ツールバー
ステータスバー
ダイアログ (「」タブ)
この他に、ノードを右クリックして現われるからも さまざまなコマンドが実行できます。
リンクのからは属性を選択できます。
コンテンツ
表示モード
セマンティックエディタには下記の2つの表示モードがあります。
実体の選択
- 単一選択
- 複数選択
- Shift-クリック(選択のトグル)
- Shift-ドラッグ(範囲の選択)
- フォーカスされているノードの要素の全選択
ノードの展開
ハイパーノードの内容であるグラフを表示するサブウィンドウを開きます。
- ノードをダブルクリック
- ノードを選択してEnter
- ノードを選択して
- ノードを選択して
ウィンドウのスクロール
(サブ) ウィンドウをスクロールします。
- ウィンドウの背景をドラッグ
- ウィンドウの中の任意の個所 (実体でも可) をAlt-ドラッグ
ノードの作成
- ショートカットキー
- テキストノード:Ctrl-T
- オントロジーノード:Ctrl-N
- メディアノード:Ctrl-B(外部ファイルを含む任意の実体をすることによって作る)
-
-
- 背景を右クリック→
実体のインポート
実体のURIを以下のいずれかの操作で入力すると、 その実体をできます。
- ショートカットキーCtrl-B
-
-
- 背景を右クリック→
ここで入力できるURIは、 セマンティックエディタで作られた実体のURI
(ee8a55ce-d517-4d3f-9b61-33b325bb4274のようなもの) または外部の実体のURI
(http://i-content.org/index.htmlのようなもの) です。
リンクの作成
実体同士 (通常はノード同士) を結び付けます。
- 既存の実体を1つ以上選択した状態で、 それらの1つを他の実体にShift-ドラッグすると、
選択されていた実体を始点 (主語) とし後者の実体を終点 (目的語) とするリンクができる。
- 既存の実体を2つ選択した状態で、 最初に選択した実体を始点 (主語) 、 次に選択した実体を終点 (目的語) とするリンクを作る。
- ショートカットキーCtrl-M
-
-
- 背景を右クリック→
- いずれかの実体 (ノードでなければならない) を右クリック→
- 既存の実体を始点 (主語) とするリンクとその終点 (目的語) を作る。
- 実体を1つだけ選択した状態でショートカットキーCtrl-M
- 実体を1つだけ選択した状態で
- 実体を1つだけ選択した状態で
- 実体を1つだけ選択した状態で背景を右クリック→
- 始点となる実体を右クリック→
- 既存のノードを1つだけ選択した状態で、 そのノードに必須のリンクとその終点を作る。
テキストの編集
ノードの内容のテキストを編集します。 オントロジーノードの内容 (URI) も編集できます。
- ノードを1つだけ選択した状態で、 ショートカットキーCtrl-E
- ノードの内部を長く左クリック
- ノードを右クリック、
- ノードをCtrl-ダブルクリック
- ノードを1つだけ選択した状態で、
- ノードを1つだけ選択した状態で、
実体の移動とコピー
実体の位置を変更します。
- 実体をドラッグ&ドロップ(またはカット&ペースト) で移動できす。
別のハイパーノードの中に移動することもできます。
- グラフ表示モードでは、↑↓←→キーを押下すると、 選択状態にある全ノードが10ピクセルずつ移動します。
- Altと同時に押下すると1ピクセルずつ移動します。
- ツリー表示モードでは、↑↓←→キーを押下すると、 選択状態にある各ノードを根とする部分木すべてが木構造の中を移動します。
-
実体をコピー&ペーストで他の所にコピーすることができます。
コピーは Ctrl-C、
ペーストはCtrl-V です。
-
グラフ表示モードのハイパーノードとツリー表示モードのハイパーノードとの間での実体のドラッグ&ドロップやコピー&ペーストはできません。
リンクの端点の変更
リンクの先端 (3角形の部分) または末尾 (丸い部分) を他の実体にドラッグ&ドロップするとリンクの端点が付け換わります。
ツリー表示モードでリンクのいずれかの端を実体がないところにドラッグ&ドロップすると、
その端が付いていた実体の新たな出現がそこにできて、 ドラッグした端がその出現に付きます。
実体のタイプの設定
ノードがどのクラスのインスタンスか、 リンクがどの属性のインスタンスかを設定します。
クラスと属性は、システムオントロジーまたはプロジェクトオントロジーで定義されたものから選べます。
- 選択されているすべてのノードのクラスの設定
いずれかのノードを右クリック
- 選択されているすべてのリンクの属性の設定
いずれかのリンクを右クリック
ノードの種別の変更
ノードには、 単文 (テキスト) /メディア/オントロジーという3つの種別があります。
サーバとの通信
サーバと通信することによって他の利用者とコンテンツを共有することができます。サーバとの通信には主に(再帰的) 同期を使って下さい。
通信によって実体の枠線の色が変化することがあります。 各色の意味は下記の通りです。
オントロジー
セマンティックエディタが初期状態で使用できるオントロジーは、
システムオントロジーに含まれる下記のものです。
- RDF/RDFS/OWL
- sa (semantic authoring) core
他のオントロジーは必要に応じて
プロジェクトオントロジーに入れて下さい。オントロジーに違反している実体のラベルは赤くなります。
システムオントロジーの内容
従来システムオントロジーに含まれていた下記のオントロジーは、
他のオントロジーと共に`some ontologies you may include in your projectOntology'の中にあり、
から開くことができます。
- xsd (Datatypes in XML Schema Definition)
- rel (middle-grain linguistic relations)
言語的関係のオントロジー`rel (middle-grain linguistic relations)'は文間の関係 (談話関係) 等の意味的な関係を定義しています。
通常の文章に相当するコンテンツはこれらの関係を使って作ります。 上の図のツリーやグラフの例もこのオントロジーを使用しています。
オントロジーの例題
ここでは「サザエさん」の家系図を作ってみましょう。 以下に図で示すコンテンツはすべてグラフ表示モードになっていますが、
ツリー表示モードでも実質的に同じことができます。
家族関係を記述するためには、 そのためのオントロジーをプロジェクトオントロジーにインポートしてする必要があります。
ここでは、 予め用意されているオントロジー`fam: family relation'に基づいてグラフを作ります。
のから`'を開き、その下のに`'があるのを確認します。
「」確認
確認したら`'の方をクリックして`some ontologies you may include in your projectOntology'を展開します。
`some ontologies you may include in your projectOntology'の内容
背景が緑色になっているのは、
このノードが現在作業中のプロジェクトに含まれていないということです。 ちなみに、 縁が点線になっているノードは実はこのハイパーノードの要素ではなく、
「ダミーノード」と呼ばれます。
もし`fam: family relation'ノードの縁がピンクになっていたら、
その最新の内容が未取得であることを表わしています。
いったん`fam: family relation'を開いてこのオントロジーの中味をダウンロードして下さい。
`fam: family relation'のダウンロード
でプロジェクトオントロジーを開きます。
「」選択
プロジェクトオントロジーのウィンドウが開いたら、
ツリーモードにして`some ontologies...'にそろえます。
`projectOntology'のウィンドウ (ツリーモード)
`some ontologies...'の中から`fam: family relation'を`projectOntology'にコピー&ペーストします。
`projectOntology'にコピー&ペースト(直後)
ドラッグ&ドロップでプロジェクトオン トロジに移動 (カット&ペースト) すると、 `some ontologies...'ノードから`fam: family relation'オントロジーが削除されてしまうので注意して下さい。
カット&ペーストしてしまった場合は、(Ctrl-Z) または(Shift-↓) を実行して下さい。
`fam: family relation ontology'を開いている場合には背景が緑から白に変化してインポートが完了したことがわかります。
`projectOntology'にコピー&ペースト(インポート完了)
インポートが終わったらを実行します。
「」を選択
以下のようなことを表わすグラフを作成しましょう。
- サザエ(女) とフグ田マスオ(男) は夫婦である
- タラオ(男) はサザエ(女) とフグ田マスオ(男) の子である
- 磯野波平(男) とフネ(女) は夫婦である
- カツオ(男) は磯野波平(男) とフネ(女) の子である
- ワカメ(女) は磯野波平(男) とフネ(女) の子である
- サザエ(女) は磯野波平(男) とフネ(女) の子である
`fam: family relation'オントロジーでは、
以下のクラスと属性 (プロパティ) が定義されています。
- クラス
- fam:MaritalCouple(夫婦)
- fam:Person(人)
- fam:Male(男:人のサブクラス)
- fam:Female(女:人のサブクラス)
- 属性
- fam:husband(夫:始点は夫婦、
終点は男)
- fam:wife(妻:始点は夫婦、
終点は女)
- fam:child(子:始点は夫婦、
終点は人)
まず、サザエを妻、
フグ田マスオを夫とする夫婦ノードを作成します (このノードを便宜上「フグ田夫妻」と呼びます) 。
最初に空ノード(空テキストノード) を作成し、 そのクラスを`fam:MaritalCouple'に変更します。
ここでは夫婦ノードを空ノード (空テキストノード) にしていますが、
他の種別にすると次のようなことができます。
- テキストノードとしてフグ田夫妻などと名前を付ける。
- メディアノードにして家族の写真などを貼り付ける。
空ノード「フグ田夫妻」生成&選択
「(fam:MaritalCouple) 」選択
このように、 あるクラスをリンクの終点でないノードのタイプとして使うには、
そのクラスの`iOccur'属性の値が「自由」でなければなりません。
`iOccur'属性の値「自由」
クラスを変更したテキストノードは、テキストが空白の場合はクラスが太字で表示されます。
空ノード「フグ田夫妻」のクラス表示
次に、 この夫婦ノード「フグ田夫妻」を他のノードと関連付けます。
夫婦は必ず夫と妻を含みます。
`fam: family relation'オントロジーではこのことが定義されているので、で夫と妻に相当するノード、
およびそれらと夫婦ノード「フグ田夫妻」との関係が簡単に作れます。
「」選択
必須リンク作成結果
生成された妻ノードのテキストをサザエにします。
妻ノード(空ノード「女」) を長クリックしてテキストカーソルを作り、
テキストを入力して下さい。
テキスト入力の結果 (サザエ)
同様に、 空ノード「男」 (夫ノード) をテキストノード「フグ田マスオ」に変更します。
夫ノードのテキスト入力
以上でフグ田夫妻ができました。
この夫婦の間には、 子供 (タラオ) がいます。フグ田夫妻ノードのからを選択すると、フグ田夫妻を始とするリンクとその終点のノードが生成されます。
夫婦空ノード「フグ田夫妻」選択
「」選択
「」結果
上図とちがって「フグ田夫妻」と「人」 (または「男」・「女」) ノードが「子」リンクで結ばれていない場合は、
リンクとノードをそれぞれ手動で、 リンクの属性を「子」に、
ノードのクラスを「人」または「男」・「女」にして下さい。
新しい「子」リンクとノードを見やすい位置に移動したら、 タラオは男なので、 新ノードが「人」(or「女」)ノードならばそのクラスを人(or女)から男に変更し、 さらに名前を入力します。
「(fam:Male) 」選択
クラス変更結果 (人から男)
テキスト入力結果 (タラオ)
同様にして「磯野家」のグラフを作成します。
「磯野家」のグラフ作成
「磯野夫妻」と「サザエ」の間の親子関係を表現するため、
前者 (「夫婦」ノード) から後者への「子」リンクを作ります。
たとえば、CtrlキーまたはShiftキーを押した状態で「磯野夫妻」、
「サザエ」の順にノードを選択しておいてCtrl-Mでリンクを作り、
そのタイプを「子」に設定します。
「子」リンク作成結果
これで所期のグラフができました。
さらに、 普通の家系図風に配置を変更することもできます。
家系図風の配置