From: tomo Date: Sun, 15 Oct 2000 08:41:51 +0000 (+0000) Subject: Init. X-Git-Tag: init X-Git-Url: http://git.chise.org/gitweb/?p=www%2Felisp%2Fsemi.git;a=commitdiff_plain;h=17ebfb797316bfccc90c69eacc152834c213bd18 Init. --- 17ebfb797316bfccc90c69eacc152834c213bd18 diff --git a/index.ja.html b/index.ja.html new file mode 100644 index 0000000..e2e3bbb --- /dev/null +++ b/index.ja.html @@ -0,0 +1,336 @@ + + + +SEMI + + + + +

SEMI

+
+ +Last modified: Fri Nov 12 15:57:31 JST 1999 + +
+ +Semi + +
+[English page is here]
+ + + + + + + + + + + + + + + + + + + + + + +

+現在の最新版は + +SEMI 1.13.7 (粟津) + +です。なお、この版を使うためには + +FLIM 1.13.2 (笠縫) + +が必要です。 +

+この版には Chaos 1.13, Nana-gnus 6.13, ET-gnus, Wanderlust 2.* +等が対応します。 +
+ +
+SEMI 1.12, Semi-gnus 6.10, Chaos 1.12, Nana-gnus 6.12, T-gnus, +Wanderlust 1.* 等を使う場合 + +FLIM 1.12.7 (結崎) + +と + +SEMI 1.13.4 (寺井) + +の組合せ、もしくは、SEMI 1.12 系をお使いください。 +
+ +

+なお、現在の開発用の枝は semi-1_13 です。 + + +


+ +

SEMI って何?

+SEMI +

+SEMI は FLIM +の機能を利用して、利用者に Internet message の構造を扱うための対話的な +user interface を提供するための層で、 +message の表示や entity +の再生処理などを行う MIME-View と message の編集を行うための MIME-Edit +からなります。 +

+SEMI は MIME 処理を行うための user interface のための汎用的な核として、 +さまざまな MUA (Message User Interface) で利用することを考慮しています。 +MIME-View の表示および再生処理は、『実行状況モデル』に基づき、 +

    +
  1. entity の構造に関する情報 +
  2. MUA の種類などの実行環境に関する情報 +
  3. 操作の種類 +
  4. SEMI 標準のものおよび利用者が + + mailcap + + 等で設定した処理条件 +
+といった制約を満たした実行状況に関する情報を捜し出し、それに応じて行わ +れます。このような方法により、message の構造を実行環境と利用者の意図を +反映した形で解釈することを可能にしています。再生処理に関しては例示イン +ターフェース的な考え方による、利用者の操作に対する適応も行っています。 +表示に関してもこの考え方を採り入れる予定です。 +

+現在 SEMI 実装としては +SEMI と +widget を用いた +WEMI +があります。 + +


+ +

SEMI archives

+ + +
+ +

SEMI を利用している package

+ + +

[NOTE] XEmacs で Semi-gnus を利用する場合は +rmail-xemacs.tar.gz + を入れましょう。XEmacs で rmail-mime +を使う場合も同様です。但し、rmail-mime +が正常に動作するかどうかは十分に検証されていません。 + +


+ +

過去・現在・未来?

+

+1993 年の初夏、私はレポートの現実逃避(^_^;から mh-e や GNUS で MIME 機 +能(特に + +encoded-word +)を利用する試みをはじめました。この後、encoded-word を扱うための +program は“tiny-mime”という program として公開しました。当時は公開し +てそれで終りというつもりだったんですが、まさかそれから5年も続ける羽目 +になろうとは。 +

+“tiny-mime”は思いの他反響が大きく、大量の mail に耐えかねて tm +mailing list を作りました。mailing list の member の協力もあり、 +“tiny-mime”は何度か version up され、mh-e や GNUS でこれを利用するた +めの設定サンプルも公開しました。これらは後に“tm”という package にま +とめて配布するようになりました。 +

+“tm”では当初 body に対しては metamail を利用した viewer を用いていま +したが、後に、Emacs Lisp で書いた“tm-view”という viewer を実装しまし +た(修士研究の現実逃避(^_^;)。 +

+tm mailing list の member から周辺 module が提供されたこともあり、tm +は急速に成長して生きました。 +やがては tm は高機能な MIME 機能を提供する MUA attachment +として世界中で広く使われるようになりました。しかし、 +一方で、tm の提供する機能の古さも目立つようになって来ました。これは +tm が元々 Emacs 18 の時代に設計され、Emacs 18 を support +し続けていたからです。 +このため、Emacs 19 で導入された機能の内 Emacs 18 で emulate +できないものは根幹部で利用することができなかったのです。 +しかし、徐々に Emacs 19 以降や XEmacs への移行が進み、 +Emacs 18 を support するための機能制限の +デメリットが目立つようになって来ました。 +また、長年の機能拡張のために見通しの悪くなった部分や、 +当初の無知や技術力不足により emacs +の慣習に反する部分や効率の悪い部分も見受けられましたが、 +過去のしがらみでなかなかいじる訳にはいきませんでした。 +こうした問題を解決したいと思うようになっていましたが、1996 年春ついに +tm のリストラを決意し、その作業を開始しました。 +

+tm は『大盛り package』という形で、tm に関わるさまざまな module や、 +MIME 処理に関わらないものまで入っていましたが、これを +APEL, +FLIM, +SEMI と +EMH などの +MUA interface module に再編しました。 + +bitmap-mule + +や +mu-cite +などは別配布としました。その後、 +Semi-gnus project +などもはじまりました。 +

+これまで、FLIM では mime-entity 抽象や mm-backend, mel-backend が導入 +され、さまざまな環境での効率的な使用に配慮した抽象化を行った API の整 +備が進んでいます。 +

+SEMI では + +mailcap + +による外部 method の設定機能を追加しました。 +Emacs lisp が苦手な人でも気軽に外部 method を設定でき、 +SEMI 以外の MUA と設定を共有することも可能になりました。 +また、tm では外部 method に特別な shell script +を用いていたため非 UNIX 環境で工夫が必要でしたが、 +新方式では mailcap file を書くだけで良くなり +Windows 95 などの非 UNIX 環境では特にその恩恵が大きいといえるでしょう。 +mailcap の導入に伴い、複数の method が競合しやすくなり、また、優先度を +決めるのが難しくなったために、method 選択 menu を導入しました。毎回 +menu で選択するのは面倒臭いので選択結果を記録して、 +2度目からは前回に最も似た method +を選ぶ機能(用例に基づく適応インターフェース)を導入しました。 +C-u v のように C-u 付きで再生すると +過去の用例を無視して全候補から選択することも可能であり、この場合には選 +択結果を登録し以後の method 選択においてこの結果を配慮します +(用例に関する例示インターフェース)。また +multipart/alternative の選択表示も実装されました。mime-entity 抽象を利 +用した API の整備も進んでいます。 +

+今後は FLIM API のさらなる整備や、SEMI MIME-Edit の再設計が計画されて +います。 + +


+ +

SEMI 1.13 の開発目標

+

+従来、mime-view は ``raw-buffer'' と ``preview-buffer'' という2つの +buffer で message を管理するというモデルで設計されて来ました。 +

+しかしながら、このモデルに基づき、message に対応する ``raw-buffer'' +を要求すると、IMAP4 のように、大きな entity +の不用意な転送が望ましくない表現方式でも ``raw-buffer'' が必要になり、 +必要がなくても常に message +内容全体を転送することになり、問題です。また、 +FLIM では既に ``raw-buffer'' と ``preview-buffer'' という2つの +buffer で message を管理するというモデルは破棄されています。 +

+このため、SEMI 1.13 では FLIM の mime-entity 抽象を全面的に用いて、 +再生処理に於いて ``raw-buffer'' を不要にします。 + + +

SEMI 1.13 の新機能

+ + + +

bug fix

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

参考文献

+ + +
+ + +[Emacsen(日本語)] + + +[Emacsen (English)] + + + + diff --git a/man/mime-ui-ja.html b/man/mime-ui-ja.html new file mode 100644 index 0000000..3b0d730 --- /dev/null +++ b/man/mime-ui-ja.html @@ -0,0 +1,506 @@ + +SEMI 1.8 説明書 + + +

SEMI 1.8 説明書

+守岡 知彦
morioka@jaist.ac.jp

+1998/07/03 +
+
+ +

This file documents SEMI, a MIME user interface for GNU Emacs. +

GNU Emacs 用の MIME user interface である SEMI について説明します。 + +


+

SEMI って何?

+

SEMI は GNU Emacs 用の MIME user interface を提供する package です。 +

SEMI が提供する MIME user interface は MIME-View と MIME-Edit からなりま +す。 +

+MIME-View は MIME や STD 11 および『地域化された RFC 822』message を表示 +したり、操作したりするための user interface の中核です。 +

MIME-Edit は MIME message を生成するための user interface です。 +

各 MUA でこれらの機能を利用することにより、高度な MIME 機能を利用するこ +とができます。 + +


+

MIME message の閲覧

+

MIME-View は GNU Emacs で動作する汎用的な MIME viewer です。 +

MIME-View は MIME message を閲覧するための利用者界面 (user interface) +の核であり、この上で presentation-method と呼ばれる表示を作るプログラム +を動かしたり、acting-method と呼ばれる entity の処理プログラムを動かす +ことが可能で、さまざまな種類の entity を扱う事ができるようになっています。 + +


+

MIME-View 概説

+

Internet の電子書簡・ネットニュースなどの書面 (message) の表現形式は +STD 11 に基づいています。STD 11 の書面本体 (message body) は行を唯一の +構造とする簡易文面 (plain text) であり、文字符号も us-ascii と定められ +ています。実際には、文字符号を us-ascii の代わりにその言語圏で用いられ +る文字符号とした『地域化された STD 11』書面も用いられてきましたが、こ +の場合も書面の文字符号は1つです。このため、利用者界面 (Message User +Agent) は、しばしば、byte 列 = us-ascii 文字列、ないしは、byte 列 = そ +の言語圏で用いる文字符号の文字列のように見倣してきました。 +

しかしながら、MIME では書面は entity を単位とする木構造になり、また、 +1つの書面で複数の文字符号を用いることができます。また、entity の内容 +は文面や絵のような単純に表示可能なものだけでなく、音声や動画などの一定 +時間再生されるようなものや特定のアプリケーションのデータやプログラムの +ソース、あるいは、ftp や mail service の利用法や URL といった形で表さ +れた外部参照などのさまざまなものが考えらます。このため、表示だけを考え +ていた STD 11 における利用者界面の単純な延長では MIME の全ての機能を扱 +うことはできません。つまり、MIME の形式に合わせて復号するだけでは不十 +分であり、利用者との対話的な再生処理を考慮する必要があります。MIME 書 +面の形式は自動処理がしやすく設計されていますが、MIME 書面に含まれる内 +容の中にはセキュリティー上の問題から自動処理をするべきでないものがあり、 +こういったものの再生に関しては利用者の判断を仰ぐように設計されるべきで +しょう。結局、MIME 書面を扱うためには STD 11 および MIME の構文で記述 +されたメッセージの情報交換用表現とその解釈結果である表示画面や再生等の +処理を区別して考える必要があります。また、利用者との対話的な再生処理が +必要です。 +

このため、MIME-View は1つの書面に対して、情報交換用表現を格納する +mime-raw-buffer と表示用表現を格納する mime-preview-buffer の2つの +buffer を用います。 +

MIME-View は mime-preview-buffer に対して mime-view-mode という MIME +message を閲覧するための mode を提供します。利用者はここで各 entity に +対して操作を行うことができます。 + +


+

mime-preview-buffer の画面構成

+

mime-view-mode では各 entity に対して +

+

+	[entity-button]
+	(header)
+	
+	(body)
+	(separator)
+
+

+という情報を表示します。これらは条件に従って design を変更したり、表示 +を抑制することもできます。 +

以下に、表示例を示します。 + + +

+From: morioka@jaist.ac.jp (守岡 知彦 / MORIOKA Tomohiko)
+Subject: Re: 質問?
+Newsgroups: zxr.message.mime
+Date: 22 Oct 93 11:02:44
+Mime-Version: 1.0
+Organization: Japan Advanced Institute of Science and Technology,
+        Ishikawa, Japan
+
+[1  (text/plain)]
+  MIME-Edit mode における、MIME message の作り方。
+
+  C-c C-x ? を押すと help が出てくる。
+
+C-c C-x C-t	insert a text message.
+C-c C-x TAB	insert a (binary) file.
+C-c C-x C-e	insert a reference to external body.
+C-c C-x C-v	insert a voice message.
+C-c C-x C-y	insert a mail or news message.
+C-c C-x RET	insert a mail message.
+C-c C-x C-s	insert a signature file at end.
+C-c C-x t	insert a new MIME tag.
+C-c C-x a	enclose as multipart/alternative.
+C-c C-x p	enclose as multipart/parallel.
+C-c C-x m	enclose as multipart/mixed.
+C-c C-x d	enclose as multipart/digest.
+C-c C-x s	enclose as PGP signed.
+C-c C-x e	enclose as PGP encrypted.
+C-c C-x C-k	insert PGP public key.
+C-c C-x C-p	preview editing MIME message.
+...
+
+って訳で、C-c C-x C-i を押して、挿入したい binary file を指定します。
+
+  binary file の MIME encoding には、普通、Base64 を指定します。
+
+[2  (image/gif)]
+
+[3  (text/plain)]
+
+  こんな風に、絵入り message のでき上がり。
+
+〓〓〓〓〓〓〓〓〓〓〓 ロシアン・ティーを一杯。 〓〓〓〓〓〓〓〓〓〓〓
+〓〓〓〓〓  ☆ ジャムではなくマーマレードでもなく蜂蜜で ☆  〓〓〓〓〓
+〓〓〓〓〓         МОРいОКА  ТОМОХИКО         〓〓〓〓〓
+〓〓〓〓〓〓〓  Internet E-mail: <morioka@jaist.ac.jp>  〓〓〓〓〓〓〓
+
+ + +
+

entity-button

+

entity-button は entity の先頭にあって、その entity +に関する大まかな情報を表示する部分です。 +

標準では + +

+        [1.3 test (text/plain)]
+
+ +のような感じに表示されます。 +

最初の数字は message 中のこの entity の位置を節番号のように表したもの +で、entity-number と呼びます。 +

2番目の文字列は表題を表します。この情報は、 + +

    +
  1. Content-Description field もしくは Subject field に書かれた表題 +
  2. Content-Disposition field の filename parameter に書かれた file 名 +
  3. Content-Type field の name parameter に書かれた file 名 +
  4. uuencode の場合の file 名 +
+から作ります。どれも存在しない場合は空白が表示されます。 +

3番目の括弧の中の情報はその entity の media-type/subtype を表します。 +非 MIME entity の場合、nil が表示されます。 +

この entity-button は entity の内容を象徴する icon のような役割を果た +します。例えば、 + +

+        [2  (image/gif)]
+
+ +の上で v を押せばここに入っている絵が表示されます。 +

また、mouse 操作が可能な場合、entity-button を第2ボタン(3 button +mouse の場合、中央のボタン)で押せば、同様にその絵が表示されます。 + +


+

entity-header

+

entity-header はある entity の header を表示する部 +分です(「そのままやんけ」って怒らないで。そういうもんなんです)。 + +


+

entity-body

+

entity-body は part の内容を表示する部分です。 +

これもひねりが足りないですが、まあ、そういうもんです。 +

とはいえ、実際には少しひねってます。 +

text entity の場合は charset に応じて code 変換したりしますし、XEmacs +では image entity を変換しないといけないし。 +

詳しくはまた後で。 + +


+

mime-preview-buffer での操作

+

mime-preview-buffer には以下の機能があります。 +

+

+
u
上の part に戻る(message の一番上の part でこれを行なうと Summary +mode に戻る (*1)) +
p
前の part に移動する +
M-TAB
前の part に移動する +
n
次の part に移動する +
TAB
次の part に移動する +
SPC
scroll up する +
M-SPC
scroll down する +
DEL
scroll down する +
RET
次の行に移動する +
M-RET
前の行に移動する +
v
part を再生する (*2) +
e
part から file を取り出す (*2) +
C-c C-p
part を印刷する (*2) +
mouse-button-2
preview-buffer 中の mouse button を起動する +

content-button を押せば、その part が再生される(*2) +

URL-button を押せば、その WWW browser が起動される +

+

+[注意] +

+

(*1) MUA で mime-view の設定をしていない場合、Summary mode には戻りま +せん。 +

(*2) 実際の動作は対応する method に依ります。 +

+ + +
+

MIME message の編集

+

MIME-Edit は GNU Emacs で動作する汎用的な MIME +composer です。 + +


+

MIME message を編集するための minor-mode

+

mime-edit-mode は MIME message を作成するための +minor-mode です。この mode では tag を使ってさまざま +な種類の data を表現し、さまざまな種類の data からなる複数の部分からなる +message を編集することを可能にしています。 +

tag には + +

+の2つがあります。 +

single-part tag は single part を表現するための tag で、 +

+

+        --[[TYPE/SUBTYPE;PARAMETERS][ENCODING]
+        OPTIONAL-FIELDS]
+
+

+というような形をしています。 +

TYPE/SUBTYPE および PARAMETERS は @DREF{(mime-ja)Content-Type}@end DREF{@refill} 欄の type/subtype および parameters を表します。TYPE/SUBTYPE は +必須であり、PARAMETERS は省略可です。 +

ENCODING は @DREF{(mime-ja)Content-Transfer-Encoding}@end DREF{@refill} 欄を表 +します。これも省略可です。 +

OPTIONAL-FIELDS は Content-Type, Content-Transfer-Encoding 以外の +field を書くための部分で、省略可です。 +

multi-part tag は +

multi part + を表 +現するための tag で、 +

+

+        --<>-@{
+
+

+という形の multi-part 開始 tag と呼ばれる multi +part の開始を示す tag と +

+

+        --@}-<>
+
+

+という形の multi-part 終了 tag と呼ばれる multi +part の終了を示す tag があります。 +

また、multi-part 開始 tag と multi-part 終了 tag で囲まれた部分を +enclosure と呼びます。 + +


+

single-part に対する操作

+

single-part を作るための操作には以下のようなものがあります。 + +

+
C-c C-x C-t
text part を表す single-part tag を挿入します。 +
C-c C-x C-i
file を MIME part として添付します。前に C-u を付けた場合、 +常に media-type, subtype 等を聞いて来ます。(cf. ) +
C-c C-x C-e
external part を挿入します。 +
C-c C-x C-v
C-g が押されるまで録音を行い、音声 part を挿入します。(使 +用できない場合があります) +
C-c C-x C-y
現在表示中の (mail or news) message を挿入します。(実際の動作は使用し +ている MUA に依存します) +
C-c C-x C-m
mail message を挿入します。 +
@key{C-c C-x C-w}, @key{C-c C-x C-s}
signature を挿入します。 +
C-c C-x C-k
@DREF{()PGP}@end DREF{@refill} の公開鍵を挿入します。 +
C-c C-x t
任意の single-part tag を挿入します。
+ +
+

enclosure に対する操作

+

enclosure を作るための操作としては以下のようなものがあります。 + +

+
C-c C-m C-a
指定した region を multipart/alternative として囲みます。 +
C-c C-x C-p
指定した region を multipart/parallel として囲みます。 +
C-c C-x C-m
指定した region を multipart/mixed として囲みます。 +
C-c C-x C-d
指定した region を multipart/digest として囲みます。 +
C-c C-x C-s
指定した region に電子署名を行います。(cf. ) +
C-c C-x C-e
指定した region を暗号化します。(cf. ) +
C-c C-x C-q
指定した region 内の tag を無効にし、その tag を文字列として利用できる +ようにします。(現在の版ではうまく働かないことがあります。また、電子署 +名との併用に関しても不完全です)
+ +
+

mime-edit-mode におけるその他の操作

+

mime-edit-mode におけるその他の操作を説明します。 + +

+
C-c C-c
編集中の message を送信します。 +
C-c C-x p
編集中の message を preview します。(cf. ) +
C-c C-x C-z
編集中の message を送信することなく、mime-edit-mode を終了します。 +
C-c C-x /
大きな message を送信する場合に message/partial 形式に自動分割可能とす +るかどうかを決めます。 +
C-c C-x 7
@DREF{()transfer level}@end DREF{@refill} を @DREF{(mime-ja)7bit}@end DREF{@refill} にします。 +
C-c C-x 8
@DREF{()transfer level}@end DREF{@refill} を @DREF{(mime-ja)8bit}@end DREF{@refill} にします。 +
C-c C-x v
message 全体を電子署名するかどうかを決めます。(cf. ) +
C-c C-x h
message 全体を暗号化するかどうかを決めます。(cf. ) +
C-c C-x ?
help message を表示します。
+ +
+

挿入される file に対する tag の決定

+

C-c C-x C-i (mime-edit-insert-file) を実行した時、 +挿入される file に対する media-type や encoding などの tag の情報は変数 +mime-file-types によって file 名から推測されます。 +

前に C-u を付けた時、および、適当な値が見付からなかった場合、 +user に対して値の入力を促します。(前に C-u を付けた時、推 +測された値が既定値として用いられます) +

file 名に対する既定値を変えたい場合は変数 mime-file-types +を設定して下さい。 + +@defvar mime-file-types +

挿入される file の file 名に対する tag の既定値を与える。 +

この変数は + +@lisp + (FILE_PAT TYPE SUBTYPE PARAMS ENCODING + DISPOSITION_TYPE DISPOSITION_PARAMS) +@end lisp + + +という list の list で、各要素は以下の通りである: + +

+
FILE_PAT
file 名を表す正規表現 +
TYPE
media type +
SUBTYPE
media subtype +
PARAMS
Content-Type field の parameter +
ENCODING
Content-Transfer-Encoding +
DISPOSITION_TYPE
disposition-type +
DISPOSITION_PARAMS
Content-Disposition field の parameter
+設定例: @file{*.rtf} に対する media type を application/rtf に +する場合 + +@lisp +(eval-after-load + "mime-edit" + '(set-alist 'mime-file-types + "\\.rtf$" + '("application" "rtf" nil nil + "attachment" (("filename" . file))) + )) +@end lisp +@end defvar + + +
+

transfer level

+

message に挿入する data は @DREF{(mime-ja)7bit}@end DREF{@refill} ないし +@DREF{(mime-ja)8bit}@end DREF{@refill} もしくは @DREF{(mime-ja)binary}@end DREF{@refill} で表現することができます。 +

よって、7bit しか通さない @DREF{(mime-ja)MTA}@end DREF{@refill} を経由する場合、 +7bit の data はそのままで送れますが、8bit や binary の data は 7bit に変 +換しなければなりません。 +

同様に、8bit しか通さない MTA を経由する場合、7bit や 8bit の data は +そのままで送れますが、binary の data は 7bit か 8bit に変換しなければ +なりません。 +

+[Memo] +

+EBCDIC しか通さない MTA を経由する場合、7bit の data も base64 等で変 +換しないと送れませんが、私は EBCDIC のことまでは知りません。(^_^; +

同様に、制御文字を通さない MTA のことや code 変換を行なう MTA も消えて +なくなって欲しいです。(^_^; +

binary も通す MTA も存在するんでしょうが、今のところあまり一般的とはい +えないでしょう。 +

+

transfer level というのはどの範囲の data まで送れるか +ということを表すものです。mime-edit は +mime-transfer-level という変数を持っており、これで +transfer level を表現します。 + + +@defvar mime-transfer-level +

transfer level を表す。 +

ある data の transfer level がこの値を越える場合、7bit data への変換が +行われる。 +

現在のところ、7 か 8 が有効である。既定値は 7 である。 +

EBCDIC を 5, ASCII printable のみを 6, binary を 9 とすることを計画し +ているが、実装の予定はない。 +@end defvar + + + +[Memo] +

+transfer level は +

message header + には関係しない。 +MIME は body において、8bit の data を使えるように @DREF{(mime-ja)STD 11}@end DREF{@refill} を拡張しているが、message header では +@DREF{(mime-ja)us-ascii}@end DREF{@refill} のみを用いることを求めている。 +

+ + +
+

Splitting

+

+@defvar mime-edit-split-message +

Split large message if it is non-nil. +@end defvar + + +@defvar mime-edit-message-default-max-lines +

Default maximum lines of a message. +@end defvar + + +@defvar mime-edit-message-max-lines-alist +

Alist of major-mode vs maximum lines of a message. +

If it is not specified for a major-mode, +mime-edit-message-default-max-lines is used. +@end defvar + + +@defvar mime-edit-split-blind-field-regexp +

Regular expression to match field-name to be ignored when split +sending. +@end defvar + + +


+

その他

+

+


+

PGP

+

mime-edit では PGP/MIME (RFC 2015) および +PGP-kazu (draft-kazu-pgp-mime-00.txt) による暗号化・ +電子署名・公開鍵の挿入機能を利用することができます。 +

但し、この機能を利用するには +

Mailcrypt package + +と pgp command が必要です。 + +@defvar pgp-function-alist +

Alist of service names vs. corresponding functions and its filenames. +Each element looks like (SERVICE FUNCTION FILE). +

SERVICE is a symbol of PGP processing. It allows `verify', `decrypt', +`fetch-key', `snarf-keys', `mime-sign', `traditional-sign', `encrypt' +or `insert-key'. +

Function is a symbol of function to do specified SERVICE. +

FILE is string of filename which has definition of corresponding +FUNCTION. +@end defvar + + +@defun pgp-function method +

Return function to do service @var{method}. +@end defun + + +


+

押釦

+

+@defvar mime-button-face +

Face used for content-button or URL-button of MIME-Preview buffer. +@end defvar + + +@defvar mime-button-mouse-face +

Face used for MIME-preview buffer mouse highlighting. +@end defvar + + +@defvar mime-browse-url-function +

Function to browse URL. +@end defvar + + +


+

実行条件の設定

+

+@defun mime-add-condition target-type condition &optional mode file +

Add @var{condition} to database specified by +@var{target-type}. +

@var{target-type} must be preview or +action. +

If optional argument @var{mode} is strict or +nil (omitted), @var{condition} is added strictly. +

If optional argument @var{mode} is with-default, +@var{condition} is added with default rule. +

If optional argument @var{file} is specified, it is loaded when +@var{condition} is activate. +@end defun + + +


+

概念索引


+

関数索引


+

変数索引

diff --git a/paper/ma-wwca98.dvi b/paper/ma-wwca98.dvi new file mode 100644 index 0000000..359ddd1 Binary files /dev/null and b/paper/ma-wwca98.dvi differ diff --git a/paper/ma-wwca98.ps.gz b/paper/ma-wwca98.ps.gz new file mode 100644 index 0000000..a7307cf Binary files /dev/null and b/paper/ma-wwca98.ps.gz differ diff --git a/paper/mui-asian97.dvi b/paper/mui-asian97.dvi new file mode 100644 index 0000000..6783150 Binary files /dev/null and b/paper/mui-asian97.dvi differ diff --git a/paper/mui-asian97.tex b/paper/mui-asian97.tex new file mode 100644 index 0000000..25723e0 --- /dev/null +++ b/paper/mui-asian97.tex @@ -0,0 +1,206 @@ +\documentstyle{article} +\title{Structure of User Interface Module for Practical Internet +Messages} +\author{MORIOKA Tomohiko\\ +\small JAIST, Hokuriku; 1-1 Asahidai, Tatsunokuchi, Nomi, Ishikawa, +923-12, Japan\\ +\tt E-mail: morioka@jaist.ac.jp} +\date{} + +\begin{document} +\pagestyle{empty} +%\maketitle +%\vspace*{-2em} + +\begin{center} + \LARGE\bf Structure of User Interface Module for Practical Internet + Messages +\end{center} +\vspace*{-1.2em} +\begin{center} + \Large Morioka Tomohiko +\end{center} +\vspace*{-1.2em} +\begin{center} + {\small + JAIST, Hokuriku; 1-1 Asahidai, Tatsunokuchi, Nomi, Ishikawa, + 923-12, Japan}\\ + \tt E-mail: morioka@jaist.ac.jp +\end{center} + + +%\vspace*{-1.5em} +%\section{Introduction} +%\vspace*{-0.8em} + +MIME offers structures like ``multipart''\cite{RFC2046} for messages. +Structured messages may form a tree and in that case the node of the +tree is called ``entity''\cite{RFC2045}. Each entity has a type known +as ``media-types''\cite{RFC2045} for representing the data type. +Conventional MUAs (Message User Agent; mail reader, news reader, etc.) +provide the features necessary for message navigation. However, they +do not provide any feature for navigating the entities and therefore, +some kind of mapping between the message and the entity hierarchy is +required. Moreover, as the conventional MUAs can not process the +entities itself, the MIME module has to be employed for processing the +entities. The processing is normally defined by a mapping between +media-type and program. However, entity processing is not depended on +media-type alone. Hence, a simple mapping between media type and +program is not adequate. +% +In the present study, the notion of ``acting situation model'' is +proposed to overcome the above mentioned problems of the conventional +MUAs. Instead of the simple mapping between media-type and program; a +generlaized MIME processing module is designed based on the ``acting +situation model''. The proposed system is implemented on GNU Emacs +and its variants, namely ``tm''\cite{tm} and ``SEMI''\cite{SEMI}. + + +\vspace*{-1.4em} +\section{Mapping between a message and its entities} +\vspace*{-0.8em} + +Traditional Internet messages are limited to plain text. Hence, +conventional MUAs do not require complex message processing. They +ignore the internal structure and simply manage messages. Therefore, +the proposed MIME processing module must provide the adequate features +to process and manage the hierarchy of entities, and at the same time +it has to offer an interface between a message and its structure. In +the present approach, SEMI and tm employ the \textit{``preview''} +function for supporting these functions. Entity related information +are embedded for allowing the user to navigate entities in +\textit{preview}. Tm and SEMI manage the mapping between a message +and its \textit{preview}. The interface modules between MIME +processing module and MUAs replace the display for a message of +original MUAs by its \textit{preview}. \textit{Preview} functions as +a message display for MUAs and therefore, MIME processing features are +added to the message features of the original MUAs. + + +\vspace*{-1.4em} +\section{Acting situation model} +\vspace*{-0.8em} + +An ``Acting situation'' consists of (1) information of entities +specified by the header (ex. {\tt Content-Type}\cite{RFC2045}), (2) +conditions related to program execution, (3) operation type and (4) +information related to MUA type. ``Acting situation'' is generated by +the operation on entity. In case of tm and SEMI, an acting situation +is represented by the association list: $((t_1 . v_1)(t_2 . v_2) +... (t_n . v_n))$. An acting situation consists attributes with type +$t_i$ and value $v_i$. During an operation on entity, tm or SEMI +generates the draft for acting situation with the help of (1), (3) and +(4) (They are unique and therefore they are simply appended). Finally +the appropriate condition is retrieved from (2) and it is compared +with the draft of acting situation. For example, if the draft for +action situation is: +\vspace*{-0.6em} +{\small +\begin{verbatim} + ((media-type . message)(media-subtype . partial)("number" . "2") + ("total" . "3")("id" . "foo@tsukuyomi.jaist.ac.jp") + (mode . play)(major-mode . gnus-original-article-mode)) +\end{verbatim}} +\vspace*{-0.6em} +\noindent and +\vspace*{-0.6em} +{\small +\begin{verbatim} + ((media-type . message)(media-subtype . partial) + (method . mime-combine-message/partials-automatically) + (major-mode . gnus-original-article-mode) + (summary-buffer-exp . gnus-summary-buffer)) +\end{verbatim}} +\vspace*{-0.6em} +\noindent is matched with the list of conditions (2), then +\vspace*{-0.6em} +{\small +\begin{verbatim} + ((media-type . message)(media-subtype . partial) + ("number" . "2")("total" . "3") + ("id" . "foo@tsukuyomi.jaist.ac.jp") + (mode . play)(major-mode . gnus-original-article-mode) + (method . mime-combine-message/partials-automatically) + (summary-buffer-exp . gnus-summary-buffer)) +\end{verbatim}} +\vspace*{-0.6em} +% +\noindent will be generated as the acting situation. Next, the program +specified by the `method' attribute is executed. The remaining +attributes are to be referenced by the program. + + +\vspace*{-1.4em} +\section{Conclusion} +\vspace*{-0.8em} + +The proposed MIME processing module employs \textit{preview} for +providing an adequate mapping mechanism between a message and its +hierarchy of entities. The functions of the proposed MIME processing +module should be consistent with the original functions of MUAs. The +acting situation model allows the user to specify conditions along +with various factors. In the proposed method the acting situation is +generated dynamically, hence it is flexible. However present +implementation of the model might generate wrong acting situation. +Therefore, the subject is to be farther investigated. + + +\vspace*{-1.4em} +\begin{thebibliography}{[1]} +\vspace*{-0.8em} +\small +%\bibitem{ASCII} ``Coded Character Set -- 7-Bit American Standard Code +%for Information Interchange'', ANSI X3.4, 1986. + +%\bibitem{RFC822} Crocker, D., ``Standard for the format of ARPA +%Internet text messages'', RFC 822, 1982-08-13. + +\bibitem{RFC2045} Freed, N. and Borenstein, N., ``Multipurpose +Internet Mail Extensions (MIME) Part One: Format of Internet Message +Bodies'', RFC 2045, 1996-02-12. + +\vspace*{-0.555em} +\bibitem{RFC2046} Freed, N. and Borenstein, N., ``Multipurpose +Internet Mail Extensions (MIME) Part Two: Media Types'', RFC 2046, +1996-12-02. + +\vspace*{-0.555em} +\bibitem{tm} ftp://ftp.jaist.ac.jp/pub/GNU/elisp/mime/ + +\vspace*{-0.555em} +\bibitem{SEMI} ftp://ftp.jaist.ac.jp/pub/GNU/elisp/mime/alpha/ + +\vspace*{-0.555em} +\bibitem{mailcap} Borenstein, N., ``A User Agent Configuration + Mechanism For Multimedia Mail Format Information'', RFC 1524, + 1993-09-23. + +%\vspace*{-0.555em} +%\bibitem{RFC2183} Troost, R., Dorner, S. and Moore, K., +% ``Communicating Presentation Information in Internet Messages: The +% Content-Disposition Header Field'', RFC 2183, +% 1997-8. + + +%\bibitem{RFC2047} Moore, K., ``Multipurpose Internet Mail Extensions +%(MIME) Part Three: Message Header Extensions for Non-ASCII Text'', RFC +%2047, 1996-12-02. + +%\bibitem{RFC2048} Freed, N., Klensin, J. and Postel, J., +%``Multipurpose Internet Mail Extensions (MIME) Part Four: Registration +%Procedures'', RFC 2048, 1996-12-02. + +%\bibitem{RFC2049} Freed, N. and Borenstein, N., ``Multipurpose +%Internet Mail Extensions (MIME) Part Five: Conformance Criteria and +%Examples'', RFC 2049, 1996-12-02. + +%\bibitem{Mule} Nishikimi, M., Handa, K., and Tomura, S., ``Mule: +% MULtilingual Enhancement to GNU Emacs'', Proc. INET '93, +% pp.~GAB-1-GAB-9 (1993). + +%\bibitem{Mew} Yamamoto, K., ``An Integration of Internet Messages'', +%Transactions of Information Processing Society of Japan, Vol.~37, +%No.~5 (1996), p.~809--821. +\end{thebibliography} + +\end{document} diff --git a/semi.gif b/semi.gif new file mode 100644 index 0000000..4e4c8ea Binary files /dev/null and b/semi.gif differ