JATS-Con Asia ミーティングという、ユーザ目線で大変興味のあるイベントが、しかも都内で開催されるというのに、別な国際会議が松江で開催されるというので泣く泣く参加を断念した。今は松江にいる。
泣きそうになるほど残念だった理由は、J-Stageに論文を登載する作業の際に改めて直面した「スペースの扱いの問題」についてどれくらい業界で認知されているのか、ということをおかがいしたかったからである。XMLに詳しい人たちにとっては既知のことだと思われるのだが、単語間が空白で区切られている表記体系と区切られていない表記体系との間では、改行・空白・タブなどの扱いを微妙に変更しなければならない、という件である。
かいつまんで言えば、英語だとテクストデータが改行されている場合、改行は単語の切れ目とみなして1つ空白を入れようということになりがちである。タブも同様である(これを仮に「分かち書きタイプ」としておく)。しかし、たとえば日本語では、そもそも空白を文章の中で使う機会が少ないということもあり、改行されている場合であっても、単語の切れ目である可能性は高くないので(これを仮に「非分かち書きタイプ」としておく)、とりあえず改行等が入っていても無視して、明示的に空白が入っている場合はそれを処理や表示に反映させようということになりやすい。
実際の所、J-Stageでは、(私が使ってみた限りでは:やり方が悪かったのかもしれないが)、メタデータ登載の際に、英語・日本語をlangで指定できるようになっているにも関わらず、英語を指定した場合でも、明示的な空白が入っていない限りは、改行の扱いは「非分かち書きタイプ」だった。私が使っているXMLエディタの設定の問題もあるかもしれないが、デフォルトでは「分かち書きタイプ」を前提として処理が行われるため、結果として、「表示・処理の際には空白として扱われることを前提としている改行が削除されて単語間がつながってしまう」という状況になっていた。単にCSSの書き方の問題だと思うので技術的には深刻な問題ではないのだが、J-Stageのような大規模システムでこういう仕様になってしまっていると、せっかくの効率化の効果が十分に発揮されないのではないかという気がした。もちろん、非分かち書きタイプにあわせて分かち書きタイプの処理方法を変えていくという手もあるかもしれないが、それはたとえばUnicodeが広まったからといってすべてのソフトウェア開発者が多バイト文字の処理に前向きに取り組んでくれるのかという微妙な問題と似たような感じで、やはり後々に微妙な問題となっていくのではという気もしないでもないが、XMLの場合はlang属性でとりあえずデータ側で切り替えができるので、処理系の方でlang属性を見て処理を切り替えてもらえるとありがたいなと思っている。なお、そこら辺のことについて、JATSに深く関わっているMulberry Technologiesの方々や、先日、日本にご招待したWendell Piezさんとお話をする機会もあったのだが、東アジアは大変だよね、ということで、まあ自分たちの問題は自分たちで解決しなければならないのだなという思いを新たにしたところである。
この点について、非分かち書きタイプのテクストが多い東アジアでは最近はどういう風に考えているのか、どう対応しているのか、そういう中でJ-Stageの仕様はどういう位置づけになるのか(普通なのか、ちょっと作り込み損なったのか、今後改善する予定があるのか、それとも分かち書きタイプの書き方を変える方向を目指しているのか、というような)、ということをおうかがいしたかったのだが、残念ながら、参加できなかったのでとりあえずここに書いてみることにしたのであった。