インタラクティブ
Webシステムの
ペトリネットによる
モデル化と自動生成
早稲田大学理工学部
情報学科
上田研究室
学籍番号:g98p0238
上之園 雅文
1
目的と背景
OESSの問題点
 その解決策としてWebシステ
ムを簡単に記述し、自動生
成するシステムを開発する
 OESSのようなシステムを快
適に利用できるようにする

Webシステム
利
用
者
機能の
記述
自動生成
システム
CGI
HTML
・・・
図:自動生成システムのイメージ
2
本研究の特徴


新たに追加する機能をシナ
リオとしてとらえ、その記述
をシステムの入力とする
その記述方法として、ペトリ
ネットを利用
– インタラクティブWebシステム
を並行離散システムととらえ
ると、ペトリネットが有効
p1
t1
図:ペトリネット
p2
3
ペトリネットによる
モデル化の流れ
1. 実際の機能を考える
2. CGIなど、実際のツールを作成
3. それを数種類の書き方でペト
リネット化する
自動生成システムへの入力として
最も良いモデル化を考察
4
ペトリネットによる
モデル化の例

小テストを追加する場合のシナリオ
– 教師がページのフォームから小テ
ストをシステムに登録
– 生徒がそのページへ行く
– 生徒の解答が終わるまで、教師は
待機
– 生徒はそのページの解答をし、結
果を送信
– システムにより採点され、結果が生
徒に表示される
– 採点結果はシステム上に残り、教
師はその結果を閲覧できる
5
ペトリネットによる
モデル化
OESS
DB
•p2,p6,p10:教師の状態を表す
•p1,p4,p9:生徒の状態を表す
•p3,p5,p7,p8:OESS内の状態を表す
•t1~t4:OESSでの処理を表す
6
問題点
 繰り返しの記述
– 同様の処理でも、繰り返しの
数だけ書かなければならな
い
 時間の概念がない
– 提出期限が設定できない
 情報量が不足している
– プレースがどのような状態か、
トランジションの処理は何か
を明記できない
7
トークンという形に抽象化されている情報を具体的に記述するために、
CHR の構文を使用したと言えばよいかと思います。
> > CHR 的表現(を使うことはたまたま思いついた)
> もしくは、
> プレースにおいてのトークンの生起を表すのにCHRの表記方法は有効である
> で問題は無いんでしょうか。
後者。有効な理由は下。
> CHRが出てきた経緯は、ペトリネットだけでは表現しきれない情報を記述する方
> 法として出てきたのは確かなわけですが、なぜCHRだったのでしょうか。
> CHRは、何をすることに向いていて、この場合何故有効なのか、その辺がまだ理
> 解が足りません。教えていただけないでしょうか。
CHR(Constraint Handling Rules)は、
制約処理エンジンを記述するための言語です。
CHRは複数個のヘッドを持つ規則が書けるという特徴を持つため、
ペトリネットを直接埋め込むことができたようです。
しかもトークンという形に抽象化されている情報を
具体的なアトム(制約)として記述することができるため、
CHRの使用は、ペトリネットで表現しきれない情報の記述に
有効であるものと思われます。
8
解決策:CHR
ペトリネットとの親和性が高い
 ペトリネットで表記できなかっ
た情報を記述できる

9
解決策:CHR
ペトリネットとの親和性が高い
 ペトリネットで表記できなかっ
た情報を記述できる

10
CHRの構文で表した
小テストのペトリネット
constraints quizDB/4, resultDB/3, classDB/2,browse/1, click/1,inputQuiz/5,
showQuiz/2, inputResult/3, showResult/2.
classDB(CourseId, StudentId) \ click(URL),inputQuiz(TeacherId, CourseId,
QuizId, Quiz, Answer)
<=> quizDB(QuizId, CourseId, Quiz, Answer), browse(URL),
resultDB(QuizId, StudentId, false).
quizDB(QuizId, CourseId, Quiz, Answer), resultDB(QuizId,StudentId, false)
\ showQuiz(StudentId, QuizId), click(URL)
<=> browse(Quiz).
quizDB(QuizId, CourseId, Quiz, Answer) \ resultDB(QuizId,StudentId, false),
inputResult(StudentId, QuizId, Result), click(URL)
<=> Answer = Result | resultDB(StudentId, QuizId, correct), browse(URL).
quizDB(QuizId, CourseId, Quiz, Answer) \ resultDB(QuizId,StudentId, false),
inputResult(StudentId, QuizId, Result), click(URL)
<=> Answer =\= Result | resultDB(StudentId, QuizId, wrong), browse(URL).
resultDB(QuizId, StudentId, Result) \ click(URL),showResult(StudentId,
QuizId)
<=> Result \== false | browse(Result).
11
まとめ
 ペトリネットでインタラクティブ
Webシステムのモデル化を行
い、表記可能であることを示し
た
 自動生成システムの入力とし
てのペトリネットの情報不足を
補う方法として、CHR構文を利
用する方法を提案した
 自動生成システムの実装、他
技術への対応の検討が今後
の課題である
12
ダウンロード

小テストを追加する場合のシナリオ