2009年2月10日火曜日

Annotated CSV

日曜日にSimpleModeler 0.1.2bを公開。


日曜日のSimpleModeling勉強会のデモで使用した版である。
昨日(月曜)にブログでも公開。

SimpleModelerが取り込めるCSVは、ボクがこの目的で作ったAnnotated CSVという形式のCSVを入力ファイルとする。

たとえばSimpleModelerに用語を移入するための最小のCSVは以下のように用語を並べたものである。(なお、上記の版ではバグで動かない。(汗))

---
customer
clerk
goods
buy
---

Annotated CSV(以下ACSV)では、先頭に#をつけた行で注記(annotation)を入れていく。注記は、新たな注記があるまで有効となる。

上記のCSVに注記を入れてみる。
---
#actor
customer
clerk
#resource
goods
#event
buy
---

このACSVは、customerとclerkがactor(登場人物)、goodsがresource(道具)、buyがevent(出来事)であることを定義している。(このACSVと次のACSVは上記の版のSimpleModelerで動作する。)

ACSVでは、複数カラムに対する注記も行うことができる。

---
#actor,term_ja,caption,brief,description,parts,base,tableName
customer,顧客,customer's caption,customer's brief,customer's description,,,CUSTOMER
clerk,店員,clerk's caption,clerk's brief,customer's description,,,CLERK
#resource
goods,商品,goods's caption,goods's brief,customer's description,,,GOODS
#event
transaction,取引,buy's caption,buy's brief,customer's description,customer;clerk,,,TRANSACTION
buy,購入,buy's caption,buy's brief,customer's description,goods,transaction,BUY
---

このACSVでは、先頭行の注記によって、第1カラム:アクター名、第2カラム:日本語用語、第3カラム:見出し、第4カラム:摘要、第5カラム:記述、第6カラム:部品、第7カラム:基底クラス、第8カラム:テーブル名であることを定義している。
2行目と3行目はこの定義が適用されるので、それぞれ以下の意味となる。
[2行目]
アクター名:customer
日本語用語:顧客
見出し:customer's caption
摘要:customer's brief
記述:customer's description
部品:N/A
基底クラス:N/A
テーブル名:CUSTOMER
[3行目]
アクター名:clerk
日本語用語:店員
見出し:clerk's caption
摘要:clerk's brief
記述:clerk's description
部品:N/A
基底クラス:N/A
テーブル名:CLERK

ACSVでは、注記を追加することができる。
4行目では「#resource」という注記行であるが、これは第1カラムのみ「resource」とし、第2カラム以降は以前の設定を引き継ぐ、という定義となる。
このため、第5行目は以下の意味を持つことになる。

[3行目]
リソース名:goods
日本語用語:商品
見出し:goods's caption
摘要:goods's brief
記述:goods's description
部品:N/A
基底クラス:N/A
テーブル名:GOODS

以上のようにACSVを用いれば、構造を持ったデータを必要な情報のみを記述して定義することができる。
SimpleModelerでは、このACSVを用いてデータの移入を行うことができるので、初期データの構築などを効率よく行うことができると考えている。

0 件のコメント: