Presentation is loading. Please wait.

Presentation is loading. Please wait.

Shared Questionnaire System 2.0 の開発

Similar presentations


Presentation on theme: "Shared Questionnaire System 2.0 の開発"— Presentation transcript:

1 Shared Questionnaire System 2.0 の開発
IPA 2007年度I期「未踏ソフトウェア創造事業」竹田PM Shared Questionnaire System 2.0 の開発 久保 裕也 千葉商科大学 政策情報学部 専任講師 慶應義塾大学SFC研究所 上席研究員

2 「SQSって、ようするに、 何なの?」

3 2種類の「共有」を意味 1.「アンケートシステム」の共有化 × 2.「調査票の共有」のシステム
Shared Questionnaire System 1.「アンケートシステム」の共有化 オープンソース・ソフトウェアとしてのSQS × 2.「調査票の共有」のシステム   オープンな調査コンテンツの処理系としてのSQS これを実現するために、必要な機能を逆算して、開発を開始した。

4 当面の、エンジニアリング的目的 あるいは、 ユーザを集める「撒き餌」 「アンケートシステム」の共有化

5 いじめアンケート、学力調査… 質問紙方式での調査・集計業務が 学校現場の多大な負担となっている!!
※Webアンケートを利用できる場面は  現実的には非常に限定的。 ※いわゆるマークシート方式は機器・用紙の   コストが高く、回答者にも負担がある。

6 6

7 XMLファイル (XHTML/XForms) マーク読み取りツール MarkReader
調査背景・仮説 調査結果・情報公開 XMLファイル (XHTML/XForms) アンケート設計ツール SourceEditor csv,xls形式ファイル 自由記述欄 画像ファイル 集計結果 表形式データ XSL-FO処理 マーク読み取りツール MarkReader 印刷原稿PDF アンケート 印刷原稿PDF アンケート 回答用紙 調査票スキャン 画像フォルダ/ 画像ファイル 印刷原稿PDF 印刷・配布・ 回答・回収

8 ここで、 「調査プロセス情報」に着目。 調査背景→ 調査仮説→ 調査票→ 調査実施→ 分析→ 調査結果の公開→ 調査結果をもとにした意思決定 などなど。

9 この実現が、 「社会を変革するような研究」 “Blue Ocean” を拓く、という確信。
真の目的 「調査票の共有」のシステム この実現が、 「社会を変革するような研究」 “Blue Ocean” を拓く、という確信。

10 新しい調査のパラダイム 調査1.0 「Closedな調査」 調査2.0 「Openな調査」 調査プロセス情報の非公開化 他者との差別化
調査結果の私物化・死蔵 調査2.0 「Openな調査」 調査プロセス情報の公開化 顧客からの信頼 調査結果の共有財化・多角的活用

11 これまでは、アドホックでワンオフな 調査が多すぎたのだ。
「調査プロセス情報」は、 繰り返し・幅広く、 使われるべきである。 「共有」されるべきである。 これで、強権的統治、衆愚的統治、前例主義的官僚統治などを排する。

12 SQSで 同じ内容のアンケートを 繰り返し実施 (時間軸を超えた調査の「共有」)

13 SQSで 同じ内容のアンケートを 異なる場所で実施 (地理空間・組織を超えた調査の「共有」)

14 共有=流通・再利用 ネットワーク経由で取得した「調査票」を、 コピー・貼り付けしたり、 一部を書き換えたりすることで、 簡単に新しい「調査票」を作れるようになる。 社会的に調査ニーズの高い・品質の高い 調査票が、繰り返し使われることで、 より洗練されるとともに、 その調査結果が蓄積し、客観的な評価の ための比較に用いることができるようになる。

15 「調査プロセス情報」のうち、 まずは、「調査票」を、 計算機可読・人間可読な形で表現し、 自動処理できるようにする。
「手作業に頼った調査」というニッチを 支援・代替するシステムとして、 デファクト標準の地位を得る。 デファクトとしての地位を利用して、 社会変革・ビジネス展開を進める。

16 その社会的な成果

17 2003年晩秋。 SQS1.0は、 宮城県で始まった。 ※ 宮城県教育委員会 と 慶應義塾大学SFC金子研究室 との共同研究事業

18 県教委/学校への公的導入 宮城県教育委員会 岩手県教育委員会 群馬県教育委員会 宮城県内の全公立高校への導入を実現:
2003年: 10校 2004年: 29校 2005年-現在: 87校すべて 岩手県教育委員会 岩手県内の実験校への導入を実現: 2007年全高校への導入 小中学校への導入を並行して開始 群馬県教育委員会 小中学校・高等学校で80の実験学校を指定して導入

19 まず、学校教育の世界で デファクト標準の地位を獲得
「学校教育現場からの絶大なる支持」 宮城県教育委員会(全高校+α)、 岩手県教育委員会(全高校+α) 、 群馬県教育委員会(宇都宮市を中心にした小中高) 、 神奈川県横浜市教育委員会(実験校) 、 東京都三鷹市教育委員会(実験校) 、 愛知県小牧市教育委員会(全中学校+α )、 大阪府大阪市教育委員会(実験校)、

20 文部科学省行政への反映 2005年9月:中央教育審議会・義務教育特別部会(第33,34回)
「科学的な手法」であるというコメントを受ける。 2006年4月:「学校の第三者評価等に関する研究計画に関 わる事業案の公募」 文部科学省からのヒアリングを受け、募集内容に影響を与える。 「事業成果物はフリーソフトウェアとすること」との文言が盛り込まれる。 2006年8月:「学校評価ガイドラインに基づく評価実践研究推 進地域及び協力校の指定」・「コンピュータ等を有効に活用し た効果的な処理方法の研究」部門 岩手県奥州市における「学校評価の事務的負担を軽減する「学校評 価支援システム(SQS)」の有効な活用と普及・拡大」が採択される。

21 京都市での全ての公立学校・ 幼稚園での公式導入の見込み
20年度京都市予算に、京都市立の、 全ての高等学校 全ての中学校 全ての小学校 全ての幼稚園  での必要機器導入(1校あたり約5万円)が予算化。 京都市教育委員会と慶應SQSプロジェクトの間で、 共同研究事業を準備中。

22 南米から「スペイン語版」、 イタリアから「イタリア語版」への ローカライズをしたいとの要望も。 世界進出も視野に?
かくして、 全国制覇の準備は整った? 南米から「スペイン語版」、 イタリアから「イタリア語版」への ローカライズをしたいとの要望も。 世界進出も視野に?

23 未踏的成果

24 SQS1.0 SQS SourceEditor SQS MarkReader 調査票の雛形(調査手法)の選択 調査票の論理的構造のデザイン
各種メディアに対応した 調査票表現の生成 SQS MarkReader 普通紙マークシートでの調査支援 集計処理の自動化 簡易的な分析機能の提供

25 SQS2.0 SQS SourceEditor2.0 SQS MarkReader2.0
eXsed : 自己記述的に 拡張可能なXMLエディタ (eXtensibility by Self-Description)‏ SQS MarkReader2.0 eXigrid: Pure P2P分散並列 画像処理のためのグリッドフレームワーク (eXtensible Image Processing Grid)‏

26 SQS2.0 SQS SourceEditor2.0 SQS MarkReader2.0
eXsed : 自己記述的に 拡張可能なXMLエディタ (eXtensibility by Self-Description)‏ SQS MarkReader2.0 eXigrid: Pure P2P分散並列 画像処理のためのグリッドフレームワーク (eXtensible Image Processing Grid)‏

27 SourceEditorより MarkReaderを優先した理由
来年度にはユーザ数が増える見込み。ユーザ対応に忙殺されたくない。 「SourceEditor/拡張可能なXMLエディタ」を、  半年で完成するというのは、やや荷が重すぎた 「拡張可能なXMLエディタ」部分は今後の課題とし、 そこから使えるコンポーネントを、たくさん作った。 FOによる印刷メディア対応コンテンツ変換生成機能のモジュール化など 「MarkReader/グリッドによる画像処理エンジン」に 魅力的な課題を多数発見、その完成度向上に注力した 大規模サンプル (1万枚以上)をテストデータに実績づくり カスタマイザブルなOMRシステムとしての必要な機能の充実化を図った 実際の大規模・分散的な利用ニーズに対応した

28 中間発表時の宿題 マーク解析処理について 分散並列処理について 集計結果について 読み取り品質の向上 読み取りパラメータの設定をできるように
安定化 「参加感」のある処理状況の可視化 集計結果について わかりやすいブラウズ・分析ツールの実現

29 デモ

30 SourceEditor 1.0-backport
「素人にも利用しやすい」 XMLエディタを核とする 調査票エディタ

31 クリックすると、 インストール/更新・起動

32 起動までの手順 Webブラウザからの アクセス JNLPファイルのダウンロード・解釈 アプリケーション起動 またはデスクトップ上からの起動
Webブラウザからの アクセス またはデスクトップ上からの起動 JNLPファイルのダウンロード・解釈 必要に応じて: JREの取得・インストール 必要なjarファイル群のダウンロード Jarファイルのコード署名証明書の承認 デスクトップアイコン・メニューの作成の 確認 アプリケーション起動

33 参考: コード署名証明書の購入: Verisignの場合
コード署名証明書を購入して維持していくためは, 毎年,94,500円の料金を振り込み,毎年,実在証明のた めの登記簿謄本や印鑑証明などの書類を送付し,毎年, 責任者のところにかかってくる電話待ちをしてもらう段取り をする,といったコストがかかる. Verisignの場合,個人や任意団体に対しては,コード署 名証明書を販売していない. 多くのオープンソースプロジ ェクトには,法人としての組織実体が無いので,少なくとも Verisignからは買うことができない.

34 Web上から、 「.sqsファイル」をダウンロード
SQSホームページから 「ドキュメント」のページをアクセス。 さらに、上から3つめ、 「サンプルファイル」 SQS SourceEditorで利用・生成されるファイルのサンプル をアクセス。 「SQSを用いた調査票を作成実習のための素材」のうち、  「SQS Sourceファイル」を、デスクトップに保存。 このファイルを開いてみると、XHTML2.0+XForms1.0の内容 であることが分かる。

35 XForms ※FormControl部分のみ
DublinCore XForms ※FormControl部分のみ XHTML2 いろいろ 調査文脈・調査過程 記述言語 “SQS Source”

36 SourceEditor画面上に、 「.sqsファイル」をDrag&Drop
ココへ!

37 アウトライン上 での選択で、 「編集対象ノード」を指定して編集(undo/redo)‏ 編集用GUIは ノードの種類 ごとに作成・ 入れ子状に 表示内容が 編成される タブで複数の ファイルを 切り替え・ 同時編集 (ファイルを超えた Cut/copy&paste) アウトライン 形式で 階層的に ノードを表示・ 選択・編集 (cut/copy&paste)‏

38 画面構成 左側: ノードツリー画面 右側: ノードエディタ画面

39 編集要素と出力結果の対応 見出し 段落 注意書 設問

40 ノードエディタの選択方法 SourceEditorに 組み込まれた ノードエディタの カタログ
Key: XMLのパターン※ Value: ノードエディタ SourceEditor利用者によ って選択された ノード群(「DOM構造の部 分木」のリスト)‏ 選択されたノード群に 対する ノードエディタの リスト 対応するノードエディタが存在 しない場合には、 SourceEditorが自動的に 生成したノードエディタを 対応づけられる ノードエディタは、 ノードの親子関係に応じて 入れ子状に構成・配置される ※現在の実装では、XMLパターンは、 単一階層の「名前空間:要素名」にマッチする

41 PDFで印刷原稿をプレビュー 127.0.0.1でローカルな Webサーバを起動し、
動的に生成したコンテンツに 適切なContent-Typeを付けて 渡すことで、Webブラウザの 設定を通じ、環境非依存的に ファイルを表示できる。 PDF生成には、Apache FOP (XSL-FO: TeXに類似のXML電子組版エンジン)を 利用。

42 XSLTによる変換 XHTML{ XForms{ SQS } }
XHTML{ XHTML Table{ XForms Select{ SQS } } XHTML{ XHTML Table{ SVG{ SVG Metadata{ XForms } } FO{SVG { SVG Metadata{ XForms Select } } } PDF + SVG Print{ SVG { SVG Metadata{ XForms Select } } } XForms対応 ブラウザでの利用に。 XForms要素を表組みでレイアウト・ 設問をcheckbox型にフラット化 旧来のHTMLフォームへの 変換元となるものとして。 XForms要素をSVG形式に変換 (もともとのXForms要素を  SVG Metadataとして保持)‏ Page mediaでのXForms実装はSQS以外には存在しない。そこで 実装上の作法を、独自に提案。 FOボキャブラリはマイナー。 HTMLでいけるところは、 なるべくHTMLで。 XHTML要素をFO形式に変換 ページ構造に流し込み FOをPDF形式に変換 別途、SVG Print形式データの雛形を作成し、Metadataを格納 FOのPDFレンダラをhackして、 SVGを配置するPDF座標を横取りし、 対応するSVG Print形式データを完成、PDFに添付

43 生成されたPDFへの添付ファイル 生成された PDFファイル .sqmファイル : SQS Master
   調査票からマーク欄・自由記述欄を    抽出して処理するためのデータ .sqsファイル : SQS Source    このPDFファイルの元となった    調査票定義データ クリックすると、 添付ファイル一覧 が表示される

44 .sqmファイルの中身: SVG Print + svg:metadata
<svg:svg …> <svg:pageSet> <svg:masterPage> <svg:metadata> </svg:metadata> <svg:page> <svg:g>  </svg:metadata>

45

46

47

48 画像処理タスクの分散並列化を行う イントラネット用グリッドを核とする マークシート読み取りアプリケーション
MarkReader2.0 画像処理タスクの分散並列化を行う イントラネット用グリッドを核とする マークシート読み取りアプリケーション

49 Drag&Dropで入力 Source フォルダ ココへ! 処理 出力 index.html Result フォルダ

50 Sourceフォルダの内容 調査票の印刷原稿 として用いた
1ページ1ファイルで 調査票の画像をスキャン 「名前で並べ替え」ると、 回答者順・ページ順に並ぶようにする まとめてひとつの フォルダに入れる  調査票の印刷原稿  として用いた  「PDFファイル」を   集計用のタネとして   フォルダに同梱する 回答者一人分は、 連続したファイル名 になるようにする

51 新規開発: 画像処理アルゴリズム 位置合わせマークの候補抽出: 位置合わせマークの選別:
画像内ピクセルの4近傍ラベリングによるシルエット抽出 位置合わせマークの選別: シルエットのフィルタリング シルエットの縦・横の長さの最大・最小値 シルエットの濃度 位置合わせマークのエッジ検出・マーク中心座標算 出・ページ枠導出 位置合わせマークの認識誤りのチェック ページ上下間違い・ページ裏表間違いのチェック 射影変換

52 新規開発:Config.xml フォルダごと・ファイルごとの設定 Xml形式での保存 標準エラー出力にASCIIアートで出力 動的に修正可能
ページ位置合わせパラメータ ページ乱丁検出パラメータ マーク読み取りパラメータ Xml形式での保存 将来はSourceEditorを拡張して編集GUI化 標準エラー出力にASCIIアートで出力 動的に修正可能 セッション開始時に更新チェック

53 事例: 読めたもの 読めなかったもの

54 標準エラー出力

55 SVG+XHTMLでの エラー出力

56 デモ エラーを含むSourceフォルダの処理と その修正

57 Resultフォルダの内容 フォルダ内の ファイルの目次
★MarkReader  での処理後に: このフォルダ内の画像から 切り出された自由記述欄 index.html Sourceのフォルダ名に-RESULTを付けたフォルダ名で、 同じ階層に作成される このフォルダの 選択式設問の回答を集約した 表形式データ

58 SQS MarkReaderからの出力 自由記述式設問 ⇒画像ファイル として切り出し (自動)‏ ⇒文字データに 打ち込み直し
⇒画像ファイル  として切り出し (自動)‏ ⇒文字データに  打ち込み直し (手作業)‏

59 SQS MarkReaderからの出力 択一選択設問 →円グラフ(自動生成) 複数選択設問 →棒グラフ(自動生成)

60 バッチ処理(1): 異なる種類の調査票の一括処理
まとめてひとつの フォルダに入れる H19年度 期末試験/国語の試験 数学の試験 英語の試験 H19年度 期末試験 国語の試験 「国語の試験」の印刷原稿として用いた「PDFファイル」 集計用のタネ

61 バッチ処理(1): 異なる種類の調査票の一括処理
フォルダ内の ファイルの目次 このフォルダ内の画像から 切り出された自由記述欄 フォルダ内の ファイルの目次 index.html index.html 数学の試験 英語の試験 H19年度 期末試験-RESULT 国語の試験 このフォルダ内の 選択式設問の回答を 集約した 表形式データ

62 バッチ処理(2):同じ種類の 調査票の階層ごとでの処理
まとめてひとつの フォルダに入れる 3年/3年C組 3年A組 3年B組 3年 3年C組  調査票の印刷  原稿として用いた  「PDFファイル」   集計用のタネ

63 バッチ処理(2):同じ種類の 調査票の階層ごとでの処理
このフォルダ内の画像から 切り出された自由記述欄 フォルダ内の ファイルの目次 index.html 3年A組 フォルダ内の ファイルの目次 3年B組 index.html 3年-RESULT 3年C組 このフォルダ以下の 選択式設問の回答を 階層的に集約した表形式データ このフォルダ内の 選択式設問の回答を 集約した 表形式データ

64 以前の処理結果を活かした 「差分的処理」 Resultフォルダ内の、 隠しフォルダ以下にキャッシュを作成:
前回までの処理結果を キャッシュとして保持。 メモリ消費量の低減。 大規模調査に対応。 次回以降は、Sourceフォルダ内で更新されたものだけを 差分的に処理。 処理の効率化・高速化をもとに、Sourceフォルダの 監視・随時処理モードを実現。 index.html 3年A組 3年B組 3年-RESULT 3年C組 .cache

65 「学校のコンピュータ教室など、  PCがたくさんある部屋をつかって、
 MarkReaderをたくさん起動すると、  グリッドで分散並列処理してくれたら、  いいのになぁ…」

66 P2Pグリッド アプリケーションは、マスタとスレーブの両方の機能 を持つ マスタとスレーブは「n対n」関係で接続する
マスタとスレーブそれぞれの、開始・停止・再開、 起動・終了・再起動を、自由に行って良いものとする マスタとスレーブを繋ぐネットワークは不安定 ネットワークは繋がったり切れたりする

67 実装の詳細 マスタ: スレーブ: マルチキャストでセッション広告・鍵を配布。
分散BlockingQueueにPageTaskを詰め込んだものを、 RMIサービスとして公開。 PageTaskを、リース時間をつけてタスクとして供与、 リース時間が切れたら再リース。 スレーブ: マルチキャストされる広告をもとにマスタを発見、 RMI接続。 セッション鍵を用いて、マスタ上の分散BlockingQueueを共有。 polling して PageTaskの取得ができるまで待つ。 PageTaskを取得したら、求められた処理を実施し、 そのマスタに結果を返却。 一定時間、マスタからの反応が無い場合には接続を切る。

68 マスタ スレーブ Engine PageTaskProducer PageTaskQueue ResultManager
PageConfig マスタ スレーブ PageMaster Engine PageTaskProducer PageTask ResultEvent PageTaskQueue ResultManager ResultEventSource MulticastAdvertisementService SessionService ResultEventFilter ResultEventHandler RMI ResultEventHandler multicast group ResultEventHandler MulticastDiscoveryService PageTaskExecutorManger PageTaskEventExecutor PageTaskEventExecutor PageTaskExecutor

69 グリッド化で実現したこと MarkReaderを複数台のマシン上で起動しておくと、 マシンの台数に比例して処理速度が高まる。処理速度の上限は、主とし て、マスタとなるマシンのハードディスク書き込み性能に依存する。 上限は 10枚/秒 程度。1万枚が約15分で処理できる。 マスタとスレイブの役割関係は固定的ではなく、セッション処理状況によ って動的に変化していく。 グリッド内のMarkReaderがセッションを解しするとマスタになる。 任意の複数台のマシンそれぞれがいつでも同時にマスタになれる。 それ以外のマシンは、スレイブとして仕事を分担する。 グリッド内でマスタとスレイブは、相手と自分の状況やネットワーク切断状 況を検知しながら、賢く自律的に動作する。

70 Ajaxによる 読み取り結果ブラウズ オフライン利用可能 iTunes的なインターフェイス マーク修正、テキスト起こし
Localhostで起動するhttpdと通信 iTunes的なインターフェイス 調査票、集計グループ、サンプル(行)、設問(列) マーク修正、テキスト起こし CSV・XLSダウンロード 集計(→拡張可能)

71 納品までに行うこと

72 TODO: 細かいバグ取り 開発済みモジュール群の結合 MarkReaderグリッド機能の処理性能の 計測と評価
マーク読み取りエンジンの正確さの評価 「標準的な作業者」による一連のシステム 利用の所要時間の計測と評価

73 まとめ

74 実用本位のソフトウェア インストール・利用の簡単さを追求 多数の多様な実際のユーザと関係づくり 開発者自身が「最強のヘビーユーザ」である
その分、開発が面倒だが、その手間を自動化する仕組みを実現 多数の多様な実際のユーザと関係づくり 「要求の幅」を把握する 抽象化を行い、フレームワークの自由度を決めるときの参考に ユーザに「迎合」せず、「啓蒙」する 開発内容の優先順位は、ユーザの要望とは独立的に決める 開発者自身が「最強のヘビーユーザ」である ユーザインターフェイスの使いやすさにこだわりを持つ 自分が楽をするためのシステム

75 未踏的・研究的成果というよりも、むしろ… エンジニアリング的場面で すぐに使えるTIPS・ プログラミング事例集?
その筋の人たちが喜びそうなが目新しいネタ満載 RichClient, AJAX, REST, P2P, グリッド技術などなど まじめなプログラミング教材としても有効 画像処理、データ構造とアルゴリズム、デザインパターン、 システムプログラミング、ネットワークプログラミング… オープンソース

76 今後の課題

77 汎用XMLエディタを 自己反映的に拡張可能なXMLエディタを
SourceEditor 2.0-dev 汎用XMLエディタを 自己反映的に拡張可能なXMLエディタを

78 eXsed(えくせっど):自己記述的に拡張可能なXMLエディタ

79 帳票システムのWeb2.0化 JavaScriptとしての部品化 調査結果のリポジトリ機能の充実 調査結果の利用・コンテンツ変換モジュール
iTunes的GUIを持つAjaxアプリを つくるためのライブラリ 調査結果のリポジトリ機能の充実 コンテンツ秘匿化・ユーザ認証機能 調査結果の利用・コンテンツ変換モジュール オフライン手書きOCR機能 より高度な集計分析機能などとの統合

80 事業化のアイデア、続々 中国・大連などへの 帳票入力アウトソーシング事業のWeb2.0化
cf. CAPCHA, エログリッドコンピューティング WBTと紙媒体でのテストをシームレスに。 学習履歴をe-learning側で一括管理。 E-learningコンテンツをペーパーテストにレンダリング。 ペーパーテストの回答をe-learning側に反映。 それぞれの子どもについて、 学校での学習、家庭学習、学習塾での学習等の 学習履歴を統合的に蓄積し、指導を可能にする。 サポートビジネス、コンテンツビジネス、 マーケティング・経営コンサルティング

81 SQSホームページ ありがとうございました http://sqs-xml.sourceforge.jp/ 開発ブログ
ありがとうございました


Download ppt "Shared Questionnaire System 2.0 の開発"

Similar presentations


Ads by Google