[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[1523] Re: Sxmlcnv 0.1.0



kiyokaです。

>   浅海です。
> 
> At Wed, 16 Jun 2004 22:37:55 +0900 (JST),
> Kiyoka Nishiyama wrote:
> > Sxmlcnv 0.1.0 をリリースしました。
> > SXML は XML Infoset の一種で、XMLの持つ情報量を保ったままS式で記述でき
> > るようにしたフォーマットです。
> > 僕は、Sxmlcnv というソフトウェアを作って
> > SXMLのSmartDoc -> XMLのSmartDoc という変換を行っています。
> > 今回のバージョンからマクロ(スタイルシートのようなもの)
> > を使ったマークアップができるようになりました。
> > ついに禁断の道に入ってしまったという感じです。
> > こんな感じのドキュメントが Emacsのオートインデントの助けを借りながら
> > 書けてしまいます。
> > (*section "日本語タイトル" "英語タイトル"
> >   (p "文章")
> >   (*subsubsection "日本語タイトル" "英語タイトル"
> >     (*ja
> >       (日本語ロケール部のS式))
> >     (*en
> >       (英語ロケール部のS式))
> >     (*insert-file 挿入するファイル名)))
> 
>  S式を使って"評価"の手法をXMLのInfosetに導入するSXMLのアプローチはと
> ても面白いと思います。

僕も、ようやくScheme(というかLisp系言語)に慣れてきたところですが
S式の面白ろさとパワーというのが体感できるようになりました。

>  goldenportもLisp&S式的な評価をXMLにアレンジしたものですが、この系統
> の技術はXML文書操作で非常に重要だと思います。
>  goldenportの場合は、XML側の文法に軸を置いているため、プログラム的な
> 処理よりも、マクロ的な処理が中心となります。

手でXML文書を書く場合、マクロはドキュメントのメンテナンス性を格段に
向上させるため、SmartDocにマクロ機能が導入されるのは楽しみです。
SmartDoc内蔵のWiki等を実装する場合でも、SmartDoc側のマクロを利用すれば
Wikiプログラム側のコードがシンプルになるのではないかと想像します。

>  それに対して、S式を用いるとプログラム的な処理が簡単に行なえるように
> なるため、SmartDocの可能性がより広がると感じました。
>  goldenportを補完するために、SmartDocに組込んでもよいかなと思いました。
> 
> XML->S式->Sxmlcnv->S式->XML->goldenport->XML->SmartDoc
> 
> という感じです。こうしておくと、Schemeで記述したマクロを皆で共有できる
> ようになるので、色々と面白いことができそうです。

SxmlcnvをSmartDocと組み合わせて使おうとすると SxmlcnvはJava系のScheme処理系
で動いたほうが良いかもしれませんね。
Biglooとかで SxmlcnvのJavaバイナリが生成できたりすると初めての人が試しやすく
なるかもしれません。
それとも、最初からKawa等を SmartDocに内蔵してしまって SSAXをそのまま使える
ようにしてしまうという手もあるかもしれません。そうすれば、Sxmlcnvに依存せず
インストールで即使えます。

いずれにしても、普通の人には S式が見えないようにしたほうがSmartDocのキャッチー
な印象をキープできると思います。
S式はディープな人だけが手を出す部分として隔離したほうが良いと思います。
> XML->S式->Sxmlcnv->S式->XML->goldenport->XML->SmartDoc
この流れはそういう意味も含んでいるんですよね?

たとえが適切かどうかわかりませんが、普通の人は車のボンネットを空けても
エンジン内部まではさわろうとは思わないのと同じで、ボンネットの中身は
整備士にまかせたほうが良いという感じです。
普通の人は普及したXMLの顔だけを見てればOKなほうが良いと思います。

ではでは。
+---
 Kiyoka Nishiyama <kiyoka@netfort.gr.jp>
 http://www.netfort.gr.jp/~kiyoka/