RDFとRDBとHTMLとXMLとMS Officeのファイルの中身をファイルシステムで表現する
頭の体操。
・セマンティックWebで使われるRDFと
・RDBと
・HTMLと
・XMLと
・MS-Officeのファイル
の中身を、統一的に表現するため、ファイルと、ディレクトリ(フォルダ)上で実装する方法を考える。
■作戦
まず、作戦として、
・HTMLとRDBとOFFICEのファイルをXMLで表現する
・XMLを、ファイルとディレクトリ上に表現する
・RDFをファイルとディレクトリ上に表現する
という手順で行います。
■HTMLとRDBとOFFICEのファイルをXMLで表現する
●HTMLをXMLにする
これは、XHTMLに変換するということで、変換ツールもでているし。。。
●OfficeのファイルをXMLに変換する
Office 2007のフォーマットはXML+ZIPなので変換というより、そのものずばり!だ。
また、Excelは、テーブル上になっているものであれば
<BOOK>ブック名
<SHEET>シート名
<REC>
<項目名1>セルの値1</項目名1>
:
のような感じで、(REC内が1行分で、行数文くりかえし)表現できる。
WordやPowerPointは文章構造があれば、その構造をもとにXMLにできる
Accessは、以降に述べるRDBと考えられる。
●RDBをXMLに表現する
<Database>データベース名
<table>テーブル名
<Type>
<項目名1>
<型>型名</型>
<桁数></桁数>・・・
</項目名1>
:
</Type>
<REC>
<項目名1>値1</項目名1>
:
のようにして、Typeタグの中に、型や桁数、主キーかどうか、NotNULL属性などをいれ、
Recタグで、1レコードを表現し、その中に、項目分、値をいれていく。
レコード数分、RECがならぶことになる。
これで、全部XMLで表現できた。
■XMLをファイルシステムで表現する
以下の決まりを使うと、XMLをファイル上における。
1.タグをフォルダ(ディレクトリ)とし、フォルダ名を
タグ名.並び順
とする
2.テキストをファイルとし、ファイル名を
テキスト内容.並び順
とする。
3.タグについているパラメータは、
パラメータの属性をフォルダ(ディレクトリ)とし、フォルダ名を
属性名.-並び順
とし、
パラメータの値は、そのフォルダの中にファイルを作成し、ファイル名を
属性値.並び順
とする(並び順は1になるはず)。
ここで、並び順は、1からはじまる(0を使わない理由はあとでわかる)
例
<ex para1="abc">
例題
<項目1>値1</項目1>
あああ
</ex>
は、以下のファイル構造になる
ex.1(フォルダ)
|-para1.-1(フォルダ)
| |
| -abc.1(ファイル)
|-例題.1(ファイル)
|-項目1.2(フォルダ)
| |
| - 値1.1(ファイル)
|-あああ.3(ファイル)
ちなみに、コメントは、!--.並び順というフォルダの中に
コメント内容.並び順(結局1しかないと思うけど)というファイル名で
かかれます。
■RDFをファイルとディレクトリ上に表現する
RDFは主語、述語、目的語の3つ組みなので、
親のファイル名-フォルダ名-子のファイル名
主語 - 述語 - 目的語
ということになります。こうなると、フォルダ名が関係となり、
親と子が結びつきます・・・
が、ファイル名=テキスト部分でした。テキスト部分がないものもあります。
どーしましょう(>_<!)
そこで、フォルダの中には、かならず
id番号.0
というファイルを作成することにします。(並び順=0はIDです)
このIDは適当に振ることにします。
そうすると、フォルダの中には必ずファイルが存在し、
テキストがなければIDが値となり
テキストが1があれば、それ
テキストが2、3と複数ある場合・・
id番号.0のファイルの中に、値としたいものを書き込みます。
とすると、RDFの3つ組(トリプル)が表現できます。
っていうことで、全部統一的に表現できました。
だから、なに?
ってツッコまれてしまうと、困るんだけど(^^;)
ま、頭の体操ということで