<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
   <channel>
      <title>Xyndy .jp</title>
      <link>http://xyndy.oops.jp/blog-jp/</link>
      <description>Syndicating the Web with XML, I boldly go where no one has imagined before.</description>
      <language>en</language>
      <copyright>Copyright 2008</copyright>
      <lastBuildDate>Mon, 29 Sep 2008 20:23:00 +0900</lastBuildDate>
      <generator>http://www.sixapart.com/movabletype/</generator>
      <docs>http://blogs.law.harvard.edu/tech/rss</docs> 

            <item>
         <title>コンテナエディターと見出しエディター</title>
         <description><![CDATA[<div class="vevent"><p><abbr title="2008-09-24" class="dtstart">先週</abbr>、<span class="summary">xfy Communityがコンテナエディターを紹介してくださいました。</span></p><div class="description"><p>いつも画面イメージをつけてくれるのですが、これはあちらで新たに作られたものですね。素材には一般的な文書を使われていて、中身もしっかり入っています。実際に使う場面に即したスナップショットになっています。ありがとうございました。</p><p>なにせ、わたしが付けるスナップは、自分のありあわせの文書を使うので、内容が一般的かというと……ね…。</p></div></div>
<h3>コンテナエディターと見出しエディター</h3><p>コンテナエディターと見出しエディター。2つの違いは、同じ文書に両方を適用してみると分かるか、と。</p><p>例えば、次の文書(URL)で試してみます:</p><p style="margin-left:1em;">Softwears<br /><a href="http://www.yamahige.jp/softwares/index.html">http://www.yamahige.jp/softwares/index.html</a><br /># ね、こういうときに、手近な素材に走るんですよね…</p><ol><li>まず見出しエディターを適用します: ボキャブラリーコンポーネントを見出しエディターにします。</li><li>次ぎに、右ペインにカーソルを置いて、コンテナエディターを適用します。</li><li><p>コンテナエディターの表示設定を次のようにします。「コンテナエディター」メニューから「表示」を選んで、次のように「ラベルに表示する要素名の一部を記号で」と「コンテナと見出しのみを表示」だけにチェック(v)が入るようにします。</p><ul style="list-style-type: none;"><li>  ラベルにクラス名を表示</li><li>v ラベルに表示する要素名の一部を記号で</li><li>  ラベルにIDを表示</li><li>----------</li><li>  選択されたときに属性を表示</li><li>----------</li><li>v コンテナと見出しのみを表示</li></ul></li><li>すると、こんな風に見えます…。</li></ol><p style="margin-left:1em;"> <img style="float:none;margin-right:1em;" alt="コンテナエディターと見出しエディターとの違いの図" src="http://xyndy.oops.jp/blog-jp/2008/09/heading-container.PNG" />&gt;&gt;<a href="http://xyndy.oops.jp/blog-jp/2008/09/heading-container-large.PNG" title="コンテナエディターと見出しエディターとの違いの拡大図">大きい図</a></p><p>見出しエディターでは、見出しに目次風のインデントがついて表示されます。こんな感じ:</p><ul style="list-style-type: none;"><li>§ <span style="font-size:144%;font-weight:bold;">Softwears</span></li><li><ul style="list-style-type: none;"><li>§ <span style="font-weight:bold;">EUREKA</span></li><li><ul style="list-style-type: none;"><li>§ STORYWRITER</li><li>§ Template It!</li></ul></li></ul></li></ul><p>コンテナエディターでは、同じ部分がこのように表示されてますね:</p><ul style="list-style-type: none;"><li>§ Softwears</li><li>§ EUREKA</li><li>§ STORYWRITER</li><li>§ Template It!</li></ul><p>コンテナ(div要素)は、文書を構成する要素を様々にグルーピングするために使われます。章節構成もその1つでしょう。</p><p>しかし、コンテナで章節をグルーピングしなくても、見出しを大きくしたりして区別すれば、人には章節の構成が見えます。ワープロがそうですね。</p><p>見出しエディターは、コンテナによるグルーピングにかかわらず、見出しだけに基づいて章節構成を表示し、章の入れ替えなどの編集を可能にしています。上の例の文書は、章節の構成にコンテナを使っていませんが、それにもかかわらず、章節構成をインデントで示しています。</p><p>普通はコンテナを使いません、というか知りませんから、見出しエディターだけで十分だと思います。</p><h3>グルーピング</h3><p>「章節以外に、どんなグルーピングがあるんだ？」</p><p>例えば、ブログの段組や記事(エントリー)はコンテナ(div要素)を使ってグルーピングされています。コンテナ(div要素)なしに、現代のWebはありません。</p><p>次の例では、スライド表示する部分を、コンテナを使ってグルーピングしています:</p><p style="margin-left:1em;">定性的で主観的で個人的な記録を活用するシステムの試作 ～ 時間情報を例に<br /><a href="http://www.yamahige.jp/documents/2008-07-24_SigDD_67/20080725-SigDD-67_v2_20080727.html">http://www.yamahige.jp/documents/2008-07-24_SigDD_67/20080725-SigDD-67_v2_20080727.html</a></p><p>コンテナエディターの表示を次のようにします:</p><ul style="list-style-type: none;"><li>v ラベルにクラス名を表示</li><li>v ラベルに表示する要素名の一部を記号で</li><li>  ラベルにIDを表示</li><li>----------</li><li>  選択されたときに属性を表示</li><li>----------</li><li>  コンテナと見出しのみを表示</li></ul><p>スライド表示する部分は、slideというクラスのコンテナでグルーピングされています。</p><p style="text-indent:-1em;margin-left:1em;"># 中身がslideというコンテナに属するんですよ、という意味で∋を使ってます。</p><p style="text-align:right;">つづく…</p>]]></description>
         <link>http://xyndy.oops.jp/blog-jp/2008/09/post_10.html</link>
         <guid>http://xyndy.oops.jp/blog-jp/2008/09/post_10.html</guid>
        
        
         <pubDate>Mon, 29 Sep 2008 20:23:00 +0900</pubDate>
      </item>
            <item>
         <title>コンテナエディター 0.3.1</title>
         <description><![CDATA[<p>コンテナエディターを公開しました。ここで報告する前に修正が入って、0.3.1です。</p><div class="vevent"><ul><li><a class="url" href="http://www.yamahige.jp/container-editor/"><span class="summary">コンテナエディター 0.3.1</span></a></li><li>リリース日：<abbr class="dtstart" title="2008-09-13T140000+0900">2008年9月13日(土)</abbr></li><li><div class="description"><p>主にコンテナ(div要素)のツリー構造やクラス設定を編集するツールです。リストなどブロック要素に対しても使えます。</p><ul><li>ドラッグ&ドロップによるコンテナの移動・コピー</li><li>複製: IDを更新して、IDを削除して、構造のみ</li><li>クラスの編集</li><li>要素の削除</li></ul><p><img src="http://www.yamahige.jp/container-editor/cd-012.png" alt="" style="float:none;" /></p></div></li></ul></div><p>コンテナ(div要素)は、要素をグルーピングするのに使われます。わたしもよく使います。でも、WYSIWYG編集では、その存在が見えにくい。いくつか階層が重なると、選択して、クラス設定を変えて…という操作がまどろっこしい。そういうときは、WYSIWYGよりも、昔ながらのXMLエディターのようなツリー型で編集したくなります。</p><p>用途はこんなところ:</p><ul><li><a href="http://www.yamahige.jp/taiyaku/">対訳エディタ</a>の編集機能不足を補う (^_^;</li><li><a href="http://www.xfy.com/jp/manual/app/client/">xfy Personal Client</a>のストックを使って、ストックを文書に挿入するときのドラッグ&ドロップターゲットにする。</li><li><a href="http://www.yamahige.jp/heading-editor/">見出しエディター</a>と使い分ける。</li></ul><p>初めはブロックエディターと呼んでましたが、XHTMLコンポーネントでは、「囲む」操作が「コンテナ」と結びついているので、コンテナエディターと呼ぶことに。</p><h3>アウトラインエディターか？</h3><p>1年ちょっと前に見出しエディターを -- 当時はHeading Operatorと呼んでいた -- アウトラインエディターと呼ばなかった理由は2つ:</p><p>1つは、これが頭にあったから。見出しエディター、コンテナエディター、どちらかをアウトラインエディターと呼んでしまったら、もう一方の名前に困るだろう、と。</p><p>もう1つは、見出しの並びや章節の階層構造だけが、文章のアウトライン -- 概略、概要 -- ではないだろう、ということ。アウトラインを、なんらかの《構成》、《構造》を指すものだと限定しても。例えば『藪の中』のアウトラインは、<a title="STORYWRITER 2が示す、盗人とダンナの主張の食い違い" href="http://www.yamahige.jp/documents/2008-07-24_SigDD_67/20080725-SigDD-67_v2_20080727.html#id_fig_10">STORYWRITER 2が示すようなもの</a>ではないか。</p>]]></description>
         <link>http://xyndy.oops.jp/blog-jp/2008/09/_031_1.html</link>
         <guid>http://xyndy.oops.jp/blog-jp/2008/09/_031_1.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">software</category>
        
        
         <pubDate>Sun, 14 Sep 2008 23:55:00 +0900</pubDate>
      </item>
            <item>
         <title>見出しエディター 0.3.1</title>
         <description><![CDATA[<p>昨年の7月に「Heading Operator」として公開したものを改訂して、「見出しエディター 0.3.1」として公開しました。</p><div class="vevent"><ul><li>タイトル：<a class="url" href="http://www.yamahige.jp/heading-editor/"><span class="summary">見出しエディター Heading Editor</span></a></li><li>日時：<abbr class="dtstart" title="2008-09-07T100000+0900">2008-09-07 19:00</abbr></li></ul></div><p><img src="http://www.yamahige.jp/heading-editor/0.3.1/he-010.png" alt="" style="float:right;" />特に、これという大きな修正はしてません。ただ、自身を2ペインにしたり、見出しの文字が修正できたりと、これまで自分で使ってて、少しずつ溜めてた改善を反映しました。</p>]]></description>
         <link>http://xyndy.oops.jp/blog-jp/2008/09/_031.html</link>
         <guid>http://xyndy.oops.jp/blog-jp/2008/09/_031.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">software</category>
        
        
         <pubDate>Mon, 08 Sep 2008 01:03:00 +0900</pubDate>
      </item>
            <item>
         <title>CrossConceptをXHTML形式へ: 近況</title>
         <description><![CDATA[<p><a href="http://xyndy.oops.jp/blog-jp/2008/02/crossconceptxhtml.html">CrossConceptをXHTMLベースにする</a>と宣言したのが2月、はや6ヶ月、…まだできてません。仕様を決められない。時間がとれない。</p><p>これまでのCrossConceptは、コンセプトを示すツールとしては役割を果たしてると思う。1つで、あれこれ様々な可能性を示せる。でも、そのぶん抽象的すぎる。せめて、「箇条書きと連動する表エディター」くらいにはしないと。</p><p>データ構造は、当初はhAtom方式を考えていました。今は、いわば「Table rendering by non-visual user agents」方式で実装を進めてます。</p><dl><dt>hAtom方式</dt><dd>もともとAtomに準じて設計していたので、hAtomに倣えばよいと。</dd><dt>Table rendering by non-visual user agents方式</dt><dd>th要素、td要素のscope属性、headers属性、axis属性を使えば、所望のデータ構造を表現できるのではないか…？</dd></dl><p>次のようなCrossConceptの表を例に、検討の過程をダイジェストしてみます。</p><p></p>
<div style="font-size:90%;padding-left:2em;">
<div style="float:left;width:35%;"><p style="margin-bottom:0em;">対象</p><ul style="margin-top:0em;"><li>Webデザイナー</li></ul><p style="margin-bottom:0em;">トピック</p><ul style="margin-top:0em;"><li>Web 2.0</li></ul></div>
<div style="float:right;width:60%;">
<table style="border-spacing:0.5em 0.5em;border-collapse:separate;">
<thead><tr><th style="text-align:right;vertical-align:top;padding-left:0.5em;padding-right:0.5em;"><p></p></th><th style="text-align:left;vertical-align:middle;padding-left:0.5em;padding-right:0.5em;"><p>…</p></th><th style="text-align:left;vertical-align:middle;padding-left:0.5em;padding-right:0.5em;background-color:khaki;"><p>Webデザイナー</p></th><th style="text-align:left;vertical-align:middle;padding-left:0.5em;padding-right:0.5em;"><p>…</p></th></tr></thead>
<tbody><tr><th style="text-align:right;vertical-align:top;padding-left:0.5em;padding-right:0.5em;"><p>…</p></th><td style="text-align:left;vertical-align:middle;padding-left:0.5em;padding-right:0.5em;"><p></p></td><td style="text-align:left;vertical-align:middle;padding-left:0.5em;padding-right:0.5em;"><p>…</p></td><td style="text-align:left;vertical-align:middle;padding-left:0.5em;padding-right:0.5em;"><p></p></td></tr><tr><th style="text-align:right;vertical-align:top;background-color:khaki;padding-left:0.5em;padding-right:0.5em;"><p>Web 2.0</p></th><td style="text-align:left;vertical-align:middle;padding-left:0.5em;padding-right:0.5em;"><p>…</p></td><td style="text-align:left;vertical-align:middle;padding-left:0.5em;padding-right:0.5em;background-color:khaki;"><p>◎</p><p>とても適した演題になるでしょう。</p></td><td style="text-align:left;vertical-align:middle;padding-left:0.5em;padding-right:0.5em;"><p></p></td></tr><tr><th style="text-align:right;vertical-align:top;padding-left:0.5em;padding-right:0.5em;"><p>…</p></th><td style="text-align:left;vertical-align:middle;padding-left:0.5em;padding-right:0.5em;"><p></p></td><td style="text-align:left;vertical-align:middle;padding-left:0.5em;padding-right:0.5em;"><p></p></td><td style="text-align:left;vertical-align:middle;padding-left:0.5em;padding-right:0.5em;"><p></p></td></tr>
</tbody>
</table>
</div>
<p style="clear:both;font-weight:bold;">図 CrossConceptの画面例</p>
</div>
<h3>hAtom方式</h3><p>hAtom方式では、表のセルに表示される内容は、例えば次のように表現するのだろうな:</p><pre>&lt;ul id=&quot;target&quot;&gt;
 &lt;li id=&quot;CIO&quot;&gt;…&lt;/li&gt;
 &lt;li id=&quot;WD&quot;&gt;Webデザイナー&lt;/li&gt;
 &lt;li id=&quot;OFFICE&quot;&gt;…&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;hentry&quot;&gt;
 &lt;h3 class=&quot;entry-title&quot;&gt;◎&lt;/h3&gt;
  &lt;div class=&quot;entry-content&quot;&gt;
   &lt;p&gt;とても適した演題になるでしょう。&lt;/p&gt;
  &lt;/div&gt;
  &lt;p&gt;Related to: &lt;a rel=&quot;bookmark&quot; href=&quot;#WD&quot;&gt;Webデザイナー&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;Related to: &lt;a rel=&quot;bookmark&quot; href=&quot;#Web20&quot;&gt;Web 2.0&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;</pre><p>これを解釈して、CrossConceptが上図のような表として表示します。</p><p>…つまり、これだと、CrossConceptが表形式で表示しているコンセプト間の関係が、通常のブラウザ上では表形式では見えない。それはいやだ。</p><p>じゃぁ、最初から表にしてしまえばよいのでは？次はどうか？</p><pre>&lt;<span style="text-decoration:underline;">td</span> class=&quot;hentry&quot;&gt;
 &lt;h3 class=&quot;entry-title&quot;&gt;◎&lt;/h3&gt;
  &lt;div class=&quot;entry-content&quot;&gt;
   &lt;p&gt;とても適した演題になるでしょう。&lt;/p&gt;
  &lt;/div&gt;
  &lt;p&gt;Related to: &lt;a rel=&quot;bookmark&quot; href=&quot;#WD&quot;&gt;Webデザイナー&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;Related to: &lt;a rel=&quot;bookmark&quot; href=&quot;#Web20&quot;&gt;Web 2.0&lt;/a&gt;&lt;/p&gt;
&lt;/<span style="text-decoration:underline;">td</span>&gt;</pre><p>これだと、<code>&lt;a rel=&quot;bookmark&quot; href=&quot;#WD&quot;&gt;Webデザイナー&lt;/a&gt;</code>の邪魔さが際だつ。</p><p>でも、もう表になってるんだから、対応する見出しを指すリンクは不要なんじゃないの？これでどう？</p><pre>&lt;td class=&quot;hentry&quot;&gt;
 &lt;h3 class=&quot;entry-title&quot;&gt;◎&lt;/h3&gt;
  &lt;div class=&quot;entry-content&quot;&gt;
   &lt;p&gt;とても適した演題になるでしょう。&lt;/p&gt;
  &lt;/div&gt;
&lt;/td&gt;</pre><p>いや、リンクは必要。リストから「Webデザイナー」という項目を削除したら、連動して表の列を削除できなくては…。</p><h3>Table rendering by non-visual user agents方式</h3><p>HTML 4.01の「<a href="http://www.w3.org/TR/html401/struct/tables.html#h-11.4">11.4 Table rendering by non-visual user agents</a>」は、まるでCrossConceptのために書かれたかのよう。CrossConceptは、思いっきりvisualなuser agentだけど。「non-visual user agents」を「CrossConcept」に置き換えて読むと、scope属性、headers属性、axis属性を使うのが正しいと思えます。</p><pre>&lt;ul <span style="text-decoration:underline;">id=&quot;target&quot;</span>&gt;
 &lt;li id=&quot;CIO&quot;&gt;…&lt;/li&gt;
 &lt;li <span style="text-decoration:underline;">id=&quot;WD&quot;</span>&gt;Webデザイナー&lt;/li&gt;
 &lt;li id=&quot;OFFICE&quot;&gt;…&lt;/li&gt;
&lt;/ul&gt;

&lt;th <span style="text-decoration:underline;">id=&quot;TH-WD&quot;</span> <span style="text-decoration:underline;">axis=&quot;target&quot;</span>&gt;
 &lt;a <span style="text-decoration:underline;">href=&quot;#WD&quot;</span>&gt;Webデザイナー&lt;/a&gt;
&lt;/th&gt;

&lt;td <span style="text-decoration:underline;">headers=&quot;TH-WD TH-Web20&quot;</span>&gt;
 &lt;p&gt;◎&lt;/p&gt;
 &lt;p&gt;とても適した演題になるでしょう。&lt;/p&gt;
&lt;/td&gt;</pre><p>headers属性はIDREF型なのですね、HTML唯一の。</p><p>axis属性も実は同様なのかも。CrossConceptはこれを、カンマ区切りのIDREFもどきとして扱うことにします。</p><p>HTML 4.01では次のようになっているので、この扱い方はCrossConcept固有のモノとなりますが、規格違反にはならないでしょう。</p><ul><li>axis = cdata [CI]。つまりcase-insensitive</li><li>The value of this attribute is a comma-separated list of category names.</li><li>This specification does not require user agents to handle information provided by the axis attribute, nor does it make any recommendations about how user agents may present axis information to users or how users may query the user agent about this information.</li></ul><p>HTML 4.01のaxis属性が、大文字小文字を区別せず、また区切りにカンマを使うのは、speech synthesizersが読み上げることを想定しているから、かも。</p><h3>要求定義と暗黙的に知る過程</h3><p>こうして検討する過程で、自分がCrossConceptを何だと思っているのかが分かってきます。これを外したらCrossConceptじゃなくなる、そういうものは何か？</p><p>また、CrossConceptを日常的に使ううちに感じるもどかしさを整理してみると、XHTMLベースに移行することで達成したいことも見えてきました。</p><ul><li>CrossConceptで表に見えるモノは、ブラウザでも表に見せたい。印刷も任せたい。</li><li>素のXHTMLのリストと表から、CrossConcept用の構造を構築できるようにしたい。</li></ul><p>ところで…、ここで、少し話題を変えます。</p><p>データ構造が決まるとき、別の何かも決まるのですね。同時進行で、寄り添うように決まる。でも、両者の論理的な関係は、後者の「別の何か」を前提にして前者の「データ構造」が決まる、というものです。「別の何か」が「データ構造」の副産物であるとか、副次的であるとかいうのは違う気がします。</p><p>このような「決めごと」「知ること」の構造を踏まえて、来週、「知識再利用システムならびにその展開」という企画セッションでお話しする予定です。</p>]]></description>
         <link>http://xyndy.oops.jp/blog-jp/2008/08/crossconceptxhtml_1.html</link>
         <guid>http://xyndy.oops.jp/blog-jp/2008/08/crossconceptxhtml_1.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">software</category>
        
        
         <pubDate>Thu, 14 Aug 2008 23:45:00 +0900</pubDate>
      </item>
            <item>
         <title>第67回デジタルドキュメント研究会</title>
         <description><![CDATA[<p><a href="http://www.ipsj.or.jp/sig/dd/2008-07.htm">第67回デジタルドキュメント研究会</a>で発表しました:</p><div class="vevent"><ul><li>タイトル：<a class="url" href="http://www.ipsj.or.jp/sig/dd/2008-07.htm"><span class="summary">定性的で主観的で個人的な記録を活用するシステムの試作　〜 時間情報を例に 〜</span></a></li><li>開始日時：<abbr class="dtstart" title="2008-07-25T041000+0900">2008-07-25 13:10</abbr></li><li>終了日時：<abbr class="dtend" title="2008-07-25T045000+0900">2008-07-25 13:50</abbr></li><li>場所: <span class=" location "><a href="http://www.hokudai.ac.jp/bureau/map/map4.htm">北海道大学 学術交流会館</a> 第3会議室</span></li><li>概要：<span class="description">個人が、ブログの記事などの定性的で主観的な文章を書くことを支援したり、そのような情報を整理して利用することを支援するシステムを、時間情報を例に検討して試作している。記事の投稿時刻など物理的で客観的な時間情報に比べて、記事本文中に書かれるこのような時間記述を、ITは支援してこなかった。このような時間情報を処理するシステムは、矛盾やあいまいさを排除せず、物理時間への対応付けを要求しないものであろう。</span></li></ul></div><p>発表資料をこちらに置いておきます:</p><p><a href="http://www.yamahige.jp/documents/2008-07-24_SigDD_67/20080725-SigDD-67_v2_20080727.html">定性的で主観的で個人的な記録を活用するシステムの試作 ～ 時間情報を例に</a><br /><a href="http://www.yamahige.jp/documents/2008-07-24_SigDD_67/20080725-SigDD-67_v2_20080727.html">http://www.yamahige.jp/documents/2008-07-24_SigDD_67/20080725-SigDD-67_v2_20080727.html</a></p><p>STORYWRITER 2というのを作りました。公開は、まだ先になると思います。</p>]]></description>
         <link>http://xyndy.oops.jp/blog-jp/2008/07/67.html</link>
         <guid>http://xyndy.oops.jp/blog-jp/2008/07/67.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">document</category>
        
        
         <pubDate>Wed, 30 Jul 2008 05:32:00 +0900</pubDate>
      </item>
            <item>
         <title>対訳エディターにLynx Retriever機能を</title>
         <description><![CDATA[<p>対訳エディターを改訂しました:</p><div class="vevent"><ul><li>タイトル：<a class="url" href="http://www.yamahige.jp/taiyaku/"><span class="summary">対訳エディター 0.7.4</span></a></li><li>日時：<abbr class="dtstart" title="2008-07-05T200000+0900">2008-07-06 05:00</abbr></li><li>内容：<div class="description"><ul><li><a href="http://www.yamahige.jp/lynx-retriever/">Lynx Retriever</a>の機能を導入。</li><li><a href="http://www.yamahige.jp/tag-direct/">タグダイレクト</a>の機能をアップデートして逆変換機能が使えるようにした。</li></ul></div></li></ul></div><p>タグダイレクト機能はATOKを使って用語を挿入するため。Lynx Retrieverは用語の用法の整合性を見るのが目的です。</p><h3>機能を統合して使う</h3><p>自慢。</p><p>Firefoxで拡張機能をアドオンするようなものですね。これを用途・目的別にやる、と。</p><p>もともと対訳エディターもLynx RetrieverもタグダイレクトもXHTML文書を対象にしているので、何もしなくても同じ1つの文書に対してこれら機能を使うことができます。</p><p>でも、より使いやすくなるように、対訳エディターの並行表示ビューに機能を統合しています。それぞれ、対象とするソースボキャブラリーはXHTMLと同じですが、各機能はそれぞれ固有の名前空間の基に実装しています。なので、わりとあっさりと統合できます。</p><p>具体的には、テンプレート(xvcd:template要素)には、それぞれ固有のmode属性を付けているし、コマンド(xvcd:command)や関数(xvcd:function)も固有の名前空間に属しています。このため、衝突する心配がありません。xvcd:importするスクリプトファイルを切り替えたりして、機能を上書きすることもやってます…これはちょっと危険(^_^;</p>]]></description>
         <link>http://xyndy.oops.jp/blog-jp/2008/07/lynx_retriever_2.html</link>
         <guid>http://xyndy.oops.jp/blog-jp/2008/07/lynx_retriever_2.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">software</category>
        
        
         <pubDate>Sun, 06 Jul 2008 18:49:00 +0900</pubDate>
      </item>
            <item>
         <title>タグダイレクトで逆変換</title>
         <description><![CDATA[<p>xfy Basic Edition限定で、xfy Blog Editorでは使えませんが、逆変換もできるようにしました。</p><div class="vevent"><ul><li>タイトル：<a class="url" href="http://www.yamahige.jp/tag-direct/"><span class="summary">タグダイレクト0.3.4</span></a></li><li>日時：<abbr class="dtstart" title="2008-07-06T030000+0900">2008-07-06 12:00</abbr></li><li>詳細：<div class="description"><ul><li>要素を選択してタグ付きテキストに変換する、逆変換をサポートした。ただし、xfy Basic Editionでのみ利用できる。</li><li><a href="http://www.justsystems.com/jp/products/xfy_blog/">xfy Blog Editor個人非商用限定版公開</a>に合わせて、インストール方法を変更した</li></ul></div></li></ul></div><p>ひとことで「タグダイレクトはタグを直接入力する機能」と言ってますが、実際は「タグ付きテキストを要素などに変換してカーソル位置に挿入する機能」です。挿入するのは<em>要素</em>などであって<em>タグではありません</em>。だから、タグダイレクトを使ってある場所に開始タグ&lt;em&gt;を挿入して、次に別の場所に終了タグを&lt;/em&gt;を挿入して、既存の内容をem要素の内容とする、ということはできません。</p><p>でも、そういうことをしたくなる気持ちは分かるので、実装したのがこれ、逆変換。修正したい範囲を、まずタグ付きテキストに戻して、それから開始タグ&lt;em&gt;を書き、次に別の場所に…とやれば、既存の内容をem要素の内容とする、ということができますね、と。</p><p>まるで外科手術をしてるよう。なので、UIもそれっぽくしてみました。ヤバイので、歯止めをかけて、ブロック要素はいじれないようにしています。</p><p>また一歩、やってはならないことに足を踏み込んでしまった気がする。限りなくしている。</p>]]></description>
         <link>http://xyndy.oops.jp/blog-jp/2008/07/post_9.html</link>
         <guid>http://xyndy.oops.jp/blog-jp/2008/07/post_9.html</guid>
        
        
         <pubDate>Sun, 06 Jul 2008 18:19:00 +0900</pubDate>
      </item>
            <item>
         <title>Lynx Retrieverでリンクを逆に手繰る</title>
         <description><![CDATA[<p>Lynx Retrieverを改訂しました:</p><div class="vevent"><ul><li>タイトル：<a class="url" href="http://www.yamahige.jp/lynx-retriever/"><span class="summary">Lynx Retriever 0.4.0</span></a></li><li>日時：<abbr class="dtstart" title="2008-07-04T140000+0900">2008-07-04 23:00</abbr></li><li>詳細：<div class="description"><ul><li>参照先に参照元を引き寄せて表示する機能を追加。</li><li>参照先・参照元の範囲を広げる・狭める操作を変更。アイコン[+]、[-]をクリックするようにした。</li><li>動作を安定させることができていないので、固定配置表示と絶対配置表示に蓋をして、使えないようにした。</li></ul></div></li></ul></div><h3>文書の整合性や構成</h3><p>自分のを実験台にします。例えば、次のプレゼン資料<a href="http://www.yamahige.jp/documents/2008-06-06_SigDD_66/20080606-SigDD-66_v3_20080704.html#term-ordinary">「文書内容の操作に見るマークアップの効果 - 解説 -」で使われている「通常の意味の文書」</a>ということばの用法を見てみます。</p><ol><li>まず、Lynx Retrieverをxfy Basic Editionにセットアップします。</li><li>URL「<a href="http://www.yamahige.jp/documents/2008-06-06_SigDD_66/20080606-SigDD-66_v3_20080704.html#term-ordinary">http://www.yamahige.jp/documents/2008-06-06_SigDD_66/20080606-SigDD-66_v3_20080704.html#term-ordinary</a>」をコピーして、xfy Basic EditionのブラウズバーのURL欄に貼り付けて開くと、「通常の意味の文書」を説明した…と著者が思ってる箇所が表示されます。</li><li>ボキャブラリーコンポーネントを「Lynx Retriever」に変えます。</li><li>さっきの部分に<span style="color:darkseagreen">⇒]</span>が表示されています。ここをクリックします。</li><li>すると、この部分へリンクしている、つまりこの部分を参照している6箇所が表示されます。これらは、文書内に登場する順番に並んでいます。</li><li>各部分の左側の[+]をクリックすると、そこに引き寄せて表示する範囲が広がります。[-]をクリックすると狭まります。右肩の[x]をクリックすると、引き寄せた全体が消えます。</li></ol><p>で、どうすかね…。こうして見ると、「通常の意味の文書」という概念がまだまだすんなりとは呑み込めない気がします。それは、「通常の意味の文書とは、○○である。」という直接的な書き方をしてる部分がないから、かもしれません。この書きっぷりを良しとするかしないか…。</p><p>…ってなことを、検討する役に立てるためのツールなんです、Lynx Retriever。</p><p>つまり整合性といっても、数字が合ってるか？とか、リテラルに同じ内容を機械的にリンク挿入するとか、そういう整合性ではありません。もちろん、それはそれで重要な整合性です。ここでは、意味的な整合性をさしています。</p><p>また、内容の構成といっても、目次的な構成ではありません。概念をどのように導入して、どう使っていくか？といった構成ですね。</p><h3>今後</h3><p>それらを踏まえると、引き寄せた箇所に直近の見出しも合わせて表示した方がよいかも。SayYes!でやってるみたいに。</p><p>また[+]や[-]で、引き寄せて表示する範囲を広げたり狭めたりできますが。このアルゴリズムも改善の余地が…かなり広いですね(^_^;)。いまは、[+]をクリックすると親要素に広がるので、いきなりページ全体に広がったりします。これを、兄弟姉妹の範囲で1つずつ広げるとかしないと。</p>]]></description>
         <link>http://xyndy.oops.jp/blog-jp/2008/07/lynx_retriever_1.html</link>
         <guid>http://xyndy.oops.jp/blog-jp/2008/07/lynx_retriever_1.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">software</category>
        
        
         <pubDate>Sat, 05 Jul 2008 16:07:00 +0900</pubDate>
      </item>
            <item>
         <title>対訳エディター 0.7.3</title>
         <description><![CDATA[<p>タグダイレクトの改訂を対訳エディターにも反映しました:</p><div class="vevent"><ul><li>タイトル：<a class="url" href="http://www.yamahige.jp/taiyaku/"><span class="summary">対訳エディター 0.7.3</span></a></li><li>日時：<abbr class="dtstart" title="2008-06-29T230000Z">2008-06-29 23:00</abbr></li><li>内容：<span class="description">タグダイレクトの改訂を反映</span></li></ul></div>]]></description>
         <link>http://xyndy.oops.jp/blog-jp/2008/06/_073.html</link>
         <guid>http://xyndy.oops.jp/blog-jp/2008/06/_073.html</guid>
        
        
         <pubDate>Mon, 30 Jun 2008 03:06:00 +0900</pubDate>
      </item>
            <item>
         <title>長いタグ付きテキストとTips: タグダイレクト</title>
         <description><![CDATA[<p>タグダイレクトを改訂しました:</p><div class="vevent"><ul><li>タイトル：<a href="http://www.yamahige.jp/tag-direct/" class="url"><span class="summary">タグダイレクト0.3.3</span></a></li><li>日時：<abbr title="2008-06-28T140000+0900" class="dtstart">2008-06-28 23:00</abbr></li><li>内容：<span class="description">長いタグ付きテキスト入力時の振る舞いを改善。</span></li></ul></div><p>また、長いタグ付きテキストの利用法など、使いこなしの工夫を「<a href="http://www.yamahige.jp/tag-direct/tips.html">タグダイレクトTips</a>」として少しずつ書いていこうと思います。</p><h3>長いタグ付きテキスト</h3><p>長いタグ付きテキストを入力しようとするとエラーになることがありました。それを改善した…つもりです。</p><p>で、ここからはコーディングの話なのですが…</p><p>実験。改行の入らない数百文字のタグ付きテキストを用意して、uxc:Tag_Direct実行してからコピペなどで一気に入力、その後でENTERキーを押さずに、<em>取り消し(undo)</em>してみます。すると、一気に戻らずに何回かに分けて入力した文字列が消えていきます。…う～む、見かけとは異なり、実際の処理では、何回かに分けて入力されているのではないでしょうか？それで、即変換するuxc:Tag_Direct_Right_Nowを使う場合には、全部入力される前の中途半端なタグ付きテキスト(XML)を解釈(パーズ)することになって、文法エラーになっているのでは？</p><p>…という仮説をもとに、変換の実行を500ms遅らせてみました。変換して挿入する部分をコマンドとして切り出し、instruction:postインストラクションで実行します。</p><p>これで、わたしのPCやMacでは、</p><ul><li>長いタグ付きテキストでも</li><li>また途中に改行が入っていても、</li></ul><p class="xfy_xss">うまくいくようになりました。その代わり、短いタグ付きテキストでも、変換に一呼吸かかる感じになってしまいました。</p><p class="xfy_xss">いずれ、このあたり、自分の環境や用途に合わせて調整できるようにしようかと:</p><ul><li>ユーザーが、変換実行の遅延時間を調整できるようにする</li><li>ユーザーが、変換キーを変えられるようにする。例えば、ENTERではなくて、Ctrl+ENTERにするとか。</li></ul><p class="xfy_xss">実用に近づく反面、コードがだんだん判りづらくなりますね…(^^;)。そのうち、わたしの限界を超えると思います (^^ゞ。</p>]]></description>
         <link>http://xyndy.oops.jp/blog-jp/2008/06/tips.html</link>
         <guid>http://xyndy.oops.jp/blog-jp/2008/06/tips.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">software</category>
        
        
         <pubDate>Sun, 29 Jun 2008 21:22:00 +0900</pubDate>
      </item>
            <item>
         <title>タグダイレクトで即変換</title>
         <description><![CDATA[<p>タグダイレクトに文字入力したらすぐに変換するコマンド・拡張コマンドを追加しました。</p><ul><li>タイトル：<a class="url" href="http://www.yamahige.jp/tag-direct/"><span class="summary">タグダイレクト 0.3.2</span></a></li><li>日時：<abbr class="dtstart" title="2008-06-19T140000+0900">2008-06-19 23:00</abbr></li><li>詳細：<span class="description">文字入力されると即、変換するコマンドを追加した。</span></li></ul><p>慣れてくると、IMEに単語登録したタグ付きテキストを入力する場合、IMEで確定してから、タグダイレクト側でもう一度ENTERキーで確定みたいなことをするのは面倒ですよね。これをスキップする「タグ付きテキスト入力」を開始するコマンドを作りました。</p>]]></description>
         <link>http://xyndy.oops.jp/blog-jp/2008/06/post_8.html</link>
         <guid>http://xyndy.oops.jp/blog-jp/2008/06/post_8.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">software</category>
        
        
         <pubDate>Fri, 20 Jun 2008 06:15:00 +0900</pubDate>
      </item>
            <item>
         <title>「文書内容の操作に見るマークアップの効果」発表資料</title>
         <description><![CDATA[<p>2008年6月6日に<a href="http://www.ipsj.or.jp/sig/dd/2008-06.htm">第66回デジタルドキュメント研究会</a>で発表した「文書内容の操作に見るマークアップの効果」の発表資料を公開しました:</p><p>「<a href="http://www.yamahige.jp/documents/2008-06-06_SigDD_66/20080606-SigDD-66_v2_20080618.html">文書内容の操作に見るマークアップの効果 - 解説 -</a>」</p><h3>概要</h3><p>マークアップを利用するには次の2つのアプローチがある:</p><dl><dt>意味駆動型</dt><dd><p>マークアップの意味や構造を具体的かつ厳密に設計し、意味に従って処理させる従来のアプローチ。正確、高速、大量、自動的にプログラムで処理することが目的。意味や構造を標準化して、システム間で相互運用を図る。</p></dd><dt>意味与奪型</dt><dd><p>または「区切りそのもの利用」。マークアップから意味を剥奪した区切りそのものをベースにすることで、対話的な編集の操作性、創造性を高め、深い読みをもたらす。</p></dd></dl><p>通常の意味での文書には次の特徴がある:</p><dl><dt>《読み》《書き》の試行錯誤</dt><dd>文書を書くときも、読むときも試行錯誤する。試行錯誤を非効率で悪いこととは見なさず、むしろ肯定的。</dd><dt>マークアップが未定、不定</dt><dd>文書を構成する要素の区切りや意味が未定、不定、または隠蔽されている。試行錯誤して書きながら、あるいは読みながら、これらが確定していく。</dd></dl><p>通常の意味での文書には意味与奪型のアプローチが向いている。</p><p style="text-align:right;"><a href="http://www.yamahige.jp/documents/2008-06-06_SigDD_66/20080606-SigDD-66_v2_20080618.html"><span style="font-style:italic;">&gt;&gt; 詳細…</span></a></p>]]></description>
         <link>http://xyndy.oops.jp/blog-jp/2008/06/post_7.html</link>
         <guid>http://xyndy.oops.jp/blog-jp/2008/06/post_7.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">document</category>
        
        
         <pubDate>Fri, 20 Jun 2008 01:27:00 +0900</pubDate>
      </item>
            <item>
         <title>xfy Blog Editorでも「タグ付きテキストを変換」: タグダイレクト</title>
         <description><![CDATA[<p>早速、要望をいただいたので、タグダイレクトを改訂して、xfy Blog Editorでも「タグ付きテキストを変換」ができるようにしました。</p><div class="vevent"><ul><li>タイトル：<a class="url" href="http://www.yamahige.jp/tag-direct/"><span class="summary">タグダイレクト 0.3.1</span></a></li><li>開始日時：<abbr class="dtstart" title="2008-06-10T030000+0900">2008-06-10 03:00</abbr></li><li>詳細：<span class="description">xfy Blog Editorでも、「タグ付きテキストを変換」機能を使えるようにした。</span></li></ul></div><p>実際、入力を始める前に、タグダイレクト開始コマンドを忘れることがあるんですね。この記事の最後の「…<small><a href="http://www.yamahige.jp/tag-direct/">タグダイレクト</a>を利用して…</small>」を入力したときもそうでした。アンドゥーしてやり直しは悲しいので、打ち込んでしまったものは活かしたい、ということで。</p><p>タグダイレクトが一番役に立つのは、タグダイレクト自身の説明文だったりもします。</p><h3>ところで…</h3><p>こういう小ネタをもっと公開していこうかな、と思うこの頃。自分の仕事用の便利ツールはいくつかあるんですよね。</p><p>それと、こういったものの作りの解説記事も。</p><h3>タグダイレクトの作り</h3><p>マークアップとしてではなく通常の文字列として書かれたXML文書 -- それをタグ付きテキストとタグダイレクトの説明では呼んでいますが -- をxfyのDOMに変換するのは、function:xml-string-to-dom関数がやってくれるので簡単です。</p><p>タグダイレクトの課題は、その関数を利用するUIの工夫です。</p><p>ダイアログを出すのが最も簡単な -- 特にxfy Blog Editorで使うための -- 解だと思います。でも、師匠に「ダイアログはいやだ、できるだけ《近い》ところで処理して」と、ダイアログを却下されてしまったんですよね。わたし自身も、いやだし。で、いまの作りになっています。</p><p>このやり方は、他にも応用がきくと思うんですよね。…いつか、どこかで書きます。</p><p><small>このページは <a href="http://www.xfy.com/jp/blog/">xfy Blog Editor</a> と<a href="http://www.yamahige.jp/tag-direct/">タグダイレクト</a>を利用して作成されました。</small></p>]]></description>
         <link>http://xyndy.oops.jp/blog-jp/2008/06/xfy_blog_editor.html</link>
         <guid>http://xyndy.oops.jp/blog-jp/2008/06/xfy_blog_editor.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">software</category>
        
        
         <pubDate>Tue, 10 Jun 2008 21:21:00 +0900</pubDate>
      </item>
            <item>
         <title>タグダイレクト</title>
         <description><![CDATA[<p>というわけで、タグダイレクト - Tag Direct for xfy Blog Editorを公開しました:</p><div class="vevent"><ul><li>タイトル：<a class="url" href="http://www.yamahige.jp/tag-direct/"><span class="summary">タグダイレクト 0.3.0.20080607</span></a></li><li>日時：<abbr class="dtstart" title="2008-06-07T230000+0900">2008-06-07 23:00</abbr></li><li>詳細：<span class="description">タグダイレクトは、xfy Blog EditorのWYSIWYGモードで、ソースモードのようにしてタグを直接入力する拡張コマンド。ATOKを使って、タグ付き文章入力を簡単で正確にするのが狙い。</span></li></ul></div><p>能書きはこちら: 「<a href="http://xyndy.oops.jp/blog-jp/2008/06/post_5.html">対訳エディターにタグダイレクト機能</a>」。</p><p>けっこうシンプルなソース、正味<em>100行弱</em>。1日でできた。でも、ドキュメント書いたりで、さらに半日かかった…。</p><p><small>このページは <a href="http://www.xfy.com/jp/blog/">xfy Blog Editor</a> と</small><a href="http://www.yamahige.jp/tag-direct/"><small>タグダイレクト</small></a><small>を利用して作成されました。</small></p>]]></description>
         <link>http://xyndy.oops.jp/blog-jp/2008/06/post_6.html</link>
         <guid>http://xyndy.oops.jp/blog-jp/2008/06/post_6.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">software</category>
        
        
         <pubDate>Sun, 08 Jun 2008 00:49:00 +0900</pubDate>
      </item>
            <item>
         <title>対訳エディターにタグダイレクト機能</title>
         <description><![CDATA[<p>対訳エディターを改訂しました。</p><div class="vevent"><ul><li>タイトル：<a class="url" href="http://www.yamahige.jp/taiyaku/"><span class="summary">対訳エディター 0.7.2.20080606</span></a></li><li>日時：<abbr class="dtstart" title="2008-06-06T230000+0900">2008-06-06 23:00</abbr></li><li>詳細：<span class="description">タグダイレクト機能をサポート。</span></li></ul></div><h3>タグダイレクト機能</h3><p>タグダイレクト機能とは、わたしが勝手にとりあえず付けた名前です。これから、他のツールにも組み込んだり、xfy Blog Editorの拡張機能版も作ろうと思います。xfy Blog Editor版の方が、融通がききそう。</p><p>タグダイレクト機能は、ソースにあたるタグ付きテキストをキー入力すると、カーソル位置に、それに該当するノードを作成してくれる、というものです。これを使うと、こんなことができます:</p><ul><li>入力がサポートされていない要素、例えばem要素などを入力できる。</li><li>style属性値などをダイアログを介さずに入力できる。</li></ul><p>これだけだと、XHTMLのソースを直接書ける人向けの、オプショナルな入力手段って感じですが、もっと重要な用途はこれ:</p><ul><li>ATOKと組み合わせて、タグ付き単語登録・入力したり、タグ付きで用語統制する。</li></ul><p>XHTMLソースの知識は、辞書を作る人が持っていればよいのです。タグダイレクト機能で入力するときにちらっとタグが見えますが…まぁ、気にしない。</p><p><small>このページは <a href="http://www.xfy.com/jp/blog/">xfy Blog Editor</a> を利用して作成されました。</small></p>]]></description>
         <link>http://xyndy.oops.jp/blog-jp/2008/06/post_5.html</link>
         <guid>http://xyndy.oops.jp/blog-jp/2008/06/post_5.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">software</category>
        
        
         <pubDate>Sat, 07 Jun 2008 06:08:00 +0900</pubDate>
      </item>
      
   </channel>
</rss>
