weavin'

2005-08-020104

[][][]Account Autodiscovery Meets XHTML2

さてさて、Account Autodiscoveryの話題が落ち着いたらしいですね。XHTML文書中にそのままRDF/XMLな文を埋め込むのはどうなのかなあと思ったりしますが、まあコメントよりはいいかとも思ったり。

というわけでXHTML 2.0だとどうなるかを書いてみました。ソースを書くのに思ったより時間がかかってしまったので、「説明お願い」とか言われたら詳しく書くことにします。ではソースをどうぞ。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 2.0//EN"
  "http://www.w3.org/MarkUp/DTD/xhtml2.dtd">
<html xmlns="http://www.w3.org/2002/06/xhtml2/"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.w3.org/2002/06/xhtml2/
                      http://www.w3.org/MarkUp/SCHEMA/xhtml2.xsd"
  xmlns:foaf="http://xmlns.com/foaf/0.1/">
<head>
  <title>Embedding Account Autodiscovery in XHTML2 Documents</title>
  <link rel="foaf:maker">
    <link property="foaf:holdsAccount">
      <meta property="foaf:accountName" content="hatena"/>
      <link property="foaf:accountServiceHomepage"
        href="http://www.hatena.ne.jp/"/>
    </link>
  </link>
</head>
<body></body>
</html>

長く見えるのですが、head要素内の情報(title以外)がAccount AutodiscoveryのRDF版と等価です。そのはず。

現在のドラフト(2005年5月27日版)にあるMetainformation ModuleMetainformation Attributes Moduleに沿って書いてあるので、これからの変更により変わっていくかもしれません。

とりあえず、XTHML2でのメタデータ表現はこうなるぞってのを書いてみたかったので書いてみました。ではでは。

追記追記。dc:creatorからfoaf:makerになったので、変更しました。

2005-05-270099

[] XHTML2 WD - 2005-05-27

新しいXHTML 2.0のドラフトが出ました。

まずは小さい変更をつらつらと。

スキーマのURIが提供された
XML Schemaはhttp://www.w3.org/MarkUp/SCHEMA/xhtml2.xsdに、DTDはhttp://www.w3.org/MarkUp/DTD/xhtml2.dtdとなりました。たぶんこのまま勧告まで持ち込まれるんでしょうね。どちらもまだ中身がない状態ですが。あとサンプルのデフォルトCSSへのリンクが書かれてあったりと、マメなことされてます。
title要素の内容が再びPCDATAのみに
<title>E = mc<sup>2</sup></title>とかができません。
script要素がhandler要素に改名
XML Eventsとの兼ね合いだそうで。
Image Moduleにて改良されたimg要素の復活
空要素ではなく、代替テキストを中身に入れるものとなりました。これでaltの内容がツールチップにならなくて済みますね。
略称元を示すためのfull属性が追加
abbr要素にて、展開された名称とのつながりを示すためにfull属性が用意されました。たとえば<abbr full="#xhtml">XHTML</abbr>というコードで、そのabbr要素が<span id="xhtml">Extensible HyperText Markup Language</span>という要素内容の略語であると明示できるわけです。
Core Attribute Collectionにlayout属性の追加
要素内の空白が、その要素が持つ意味と関係しているかそうでないかを示すためのlayout属性が用意されました。xml:spaceと似ている感じがしますが、layoutは意味のつながりを示すもので、アプリケーションに対し空白を保持するかどうかを規定するxml:spaceとは違っていると考える方が良いでしょう(xml:spaceで示されるintentionが、layoutが示すrelevancyなのか規定できない)。ちなみに初期値はirrelevantで、blockcodeおよびpreにはrelevantが適用されています。
Hypertext Attribute Collectionにhrefmedia属性が追加
リンク先の対象メディアを示すhrefmedia属性が追加されました。たとえばリンク先のドキュメントが印刷用のページである場合。hrefmedia属性にprintという値を持たせることが可能です。
Embedding Attributes Moduleにencoding属性が追加
埋め込んだリソースのエンコーディングを指定し、それをaccept-charsetとして解釈させる為のencoding属性が追加されました。
Media Attribute Module
Stylesheet Moduleにてstyle要素の下にあったmedia属性がMedia Attribute Moduleのmedia属性として分離し、指定したメディアによって内容処理を分けることを可能とするように拡張されました。

続いて個人的に興味を持っているMetainformation関連の変更点など。セクションがいろいろ入れ替わったので、diffを取るのに苦労します。

metaのネストができなくなった
複雑になりすぎている印象を受けたので、これは歓迎したいところ。
resource, restype属性の削除
href, hreftypeと同じなので。これも歓迎。
property属性にキーワードが用意された
description, generator, keywords, robots, titleという属性値が用意されました。またtitleというキーワードは、title要素やtitle属性と関連性を持つものと定義されています。
LinkTypesにroleとciteが
citeは多分cite属性が取るURIを記述するものと思われます。roleについては後述。

さて、今回のドラフトで一番大きな変更と考えられるのがRole Access Moduleの追加です。今まであったaccesskeyの概念を拡張したaccess要素と、文書中の要素の役割を明示するrole属性を組み合わせたモジュールです。

access要素では、key属性で従来のaccesskeyと同じ様にアクセスキーを指定し、title属性でラベルを、targetidまたはtargetrole属性にて、そのアクセスキーを登録する要素を指定します。従来のaccesskey, access属性は、それらを対象要素に記述するものでしたが、access要素はhead内に記述します。アプリケーションの挙動についての指定を、文書内容から切り離すのは理にかなっていると感じます。あとXHTML2にはXML EventsやXFormsが組み合わさってくるので、挙動に関する属性や要素はモジュールにする必要があったのでしょう。

role属性は名前の通り要素の「役割」を示すものです。現在のドラフトではmain, secondary, navigation, banner, contentinfo, note, seealso, searchという8つのRoleが用意されています。あとaccess要素の例にtocというRoleがあるので、これも追加されるんじゃないかなと思ったり。

またRoleは自分で定義することも可能で、定義したroleは<link rel="role" href="path"/>のように参照するものと思われます。

Roleを用いて、アプリケーションがあるRoleに対し特定の動作を起こすことが可能となります。classでも可能と言えば可能ですが、属性値が単なる文字列なので、Namespaceの衝突が起こってしまい予期せぬ挙動を起こす場合があります(role属性はQNameを型に持つので、間違えなければ問題ない)。

アプリケーションとRoleの例を考えてみます。たとえばWikiの「編集」「履歴」というアンカー(ボタン)にwiki:edit, wiki:historyなんていうRoleを担わせ、それを各Wikiが実装するとします。ユーザはこれを利用し、スタイルシートやスクリプトなどでボタンの配置を変更したり、挙動を変更できます。各Wikiは単一のRoleを使用していますから、これにより異なるWikiエンジンで同じ操作感を得ることが可能となります。

Role Access Moduleについて読んだところで、よりユーザセントリックにWebが向かうんだなということを感じました。Berners-LeeはWebにあるドキュメントは閲覧者のためにeditableであるべきだと考えている人ですし、現在のWebの潮流も、HTMLで提供されている情報をただ享受していただけという旧来のものから、RSSの利用だったり、ページをユーザスクリプトでカスタマイズしたり、パーソナライズ化されていくWebサービスなどと、個人が自由にWebとつきあえる様な環境づくりに向かっていますよね。素敵だなと。

そうそう、最近Structured Bloggingなんかがアナウンスされましたが、あれはたぶんRoleと同じものだと思います、僕の理解が正しければ。

W3的にはGRDDLでXHTMLからメタデータを得る為にRoleが必要だったのでしょうが、それだけじゃなくかなり広範囲で使えそうです。うーん、早く使いたい。

さてさて、今回もステータスはドラフトで、Last Callではありません。Recommendationはいつになるのやら。

whirlwhirl2005/05/28 07:39「ヽ(`Д´)ノはてなデバイド!」とか叫ぶだけのアホでごめんなさい。株価暴落!

2005-04-280091

[] W3C WD: XLink 1.1

XLink 1.1のドラフトが公開されました。Extending XLink 1.0について書いたときにその存在を知ったわけなんですが、ついにでました。

といってもXLink 1.0とのdiffを見る限り、Extending XLink 1.0に書かれていた内容と現在の仕様をマージしたくらいのものになってます。

ちょっと後で読んでみます。

2005-01-170062

[] rel="nofollow"

Google で rel="nofollow" の噂よりReport: Google to Put Kibosh on Blog Comment Spamを読むわけです。リソースとリソースの関係を意味するrel属性が最近人気。

ところで、仕様にない独自属性を加味するということに対して、反論も予想されますがとあるのですが、a要素におけるrel属性はきちんと仕様で定義されており、独自属性を加味するわけではありません。rel属性の属性値はLinkTypesとなっており、プロファイルさえ用意してその在処を明示すれば後ろめたさなく使うことができます。

もっとも、そのプロファイルがどのようなものであるかなんてのは、HTML仕様書では明示されていないので、定義しようにもなんかしっくりこないわけなのですが。

2005-01-110061

[][] [w']

サイト簡易表記だって。変なこと考える人もいるなぁと。

XHTML2だったらtitle要素内にTextモジュールを記述することができるので、<title><span class="shortname">[w']</span> weavin'</title>とかできるので、そのようにできればいいなぁと思いました。

だってユーザ側で消せるんだもん。便利にも不便にも見られるものには、できるだけそれに対する配慮がほしいですね。

ところでtitle要素にTextモジュールが適用できるようになるということなんですが、UIのつくりはどう変わっていくのでしょうか。

© 2004 kota.