Tociyuki::Diary RSSフィード

tociyuki によるPerl・Rubyのコード説明を中心に、日常雑記も混在 : B  F  twitter  GitHub  CPAN  本館
 | 

2005年07月29日

[][][]Account Auto-Discovery 仕様暫定版を簡略化

30日追記:神崎先生の指摘により、RDF Validatorでチェックしてみたら、下の表記はエラーになります。うかつでした。

Error: {E201} Syntax error when processing property attributes. Cannot have property attributes with the following other attributes: rdf:parseType='Resource'[Line = 6, Column = 75]

ということでこの項のRDF記述はボツにします。

神崎先生の「コメントにするならXMLでなくてもいいのでは」のTurtleの表現に惹かれつつも、既存のトラックバックやクリエーティブ・コモンズの埋め込みRDFとのマージする可能性もありますし、XMLでの表現も作っておいた方が良いような気もしています。

それでも、Account Auto-Discovery 仕様暫定版のままではくどいかなと、神崎先生のTurtle案を参考にしてRDFを簡略化してみました。FOAFのスキーマ(ソースの後半にRDF記述あり)のmakerとholdsAccountの定義では、rdf:parseType="Resource"を省略できないようですので、嫌々ながらつけておきます。

これはRDFの構文エラーによりボツ
<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:foaf="http://xmlns.com/foaf/0.1/">
<rdf:Description rdf:about="">
  <foaf:maker rdf:parseType="Resource">
    <foaf:holdsAccount foaf:accountName="hatena" rdf:parseType="Resource">
      <foaf:accountServiceHomePage rdf:resource="http://www.hatena.ne.jp/"/>
    </foaf:holdsAccount>
  </foaf:maker>
</rdf:Description>
</rdf:RDF>

多少は短くなります。

神崎先生のところから修正個所のみを転記しておきます。

    <foaf:holdsAccount rdf:parseType="Resource">
      <foaf:accountName>hatena</foaf:accountName>
      <foaf:accountServiceHomePage rdf:resource="http://www.hatena.ne.jp/"/>
    </foaf:holdsAccount>

これではaccountNameを属性化できませんので、XHTMLに埋め込むときに不利になります。その辺りのケアをスタイルシートでおこなえるときしか使えないようです。

簡略しない版とこの簡略版の両方からアカウントを拾い出すには、each_accountを次のように変更するだけで済みます(我ながら安易だなぁ)。

http://tociyuki.flop.jp/archive/HTML_AccountAutoDiscovery103.pm (テスト漏れがありました)

-  while ( $rdf =~ m{<(${foaf}OnlineAccount)[\s\n]+(.*?)</\1>}sg ) {
+  while ( $rdf =~ m{<(${foaf}holdsAccount)[\s\n]+(.*?)</\1>}sg ) {

http://tociyuki.flop.jp/archive/HTML_AccountAutoDiscovery104.pm

修正個所はnaoyaさんのコメントを参照ください。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/tociyuki/20050729/1122622661
 |