[11] [DFN[[[RDF/XML]]]] は、 [[RDFグラフ]]を [[XML]] として記述する方式の一つです。
[[RDF]] を表現する方法としては最初に定義されたものであり、元々は単に [[RDF]]
と言えば [[RDF/XML]] を指していました。

* 代替

[44] [[Semantic Web]] コミュニティーでは、 [[RDF/XML]] の後から登場した [[N3]]
などのより簡易的な記述方法が重用されるようになり、 [[RDF/XML]]
は余り使われないようになりました。それ以外のコミュニティーでは、
[[RDF]] 全体への関心が低下し、使われなくなりました。 
[[XML名前空間]]に重度に依存するため、 [[SVG]] や [[MathML]] を ([[XML]] ではなく)
[[HTML]] に埋め込む際にも使うことができません。一時は [[HTML]] に [[RDF]]
を埋め込む方法が広く検討され実装もされましたが、 [[XHTML]] の失敗と [[RDF]]
への関心の低下により、既に忘れ去られています。

* 仕様書

[REFS[
- [18] [CITE@en[RDF 1.1 XML Syntax]]
( ([TIME[2014-04-25 11:38:05 +09:00]] 版))
<https://dvcs.w3.org/hg/rdf/raw-file/default/rdf-xml/index.html>
]REFS]

* RDF/XML の判定

[6] ある[[文書]]が [[RDF/XML]] であるかどうかは、次のように判断します。
[FIG[
- [7] [[MIME型]]が [CODE(MIME)@en[[[application/rdf+xml]]]] なら、 [[RDF/XML]] です [SRC[>>12]]。
- [9] [[根要素]]が [CODE(URI)@en[[[http://www.w3.org/1999/02/22-rdf-syntax-ns#]]]] [[名前空間]]の [CODE(XMLe)@en[[[RDF]]]]
[[要素]]なら、 [[RDF/XML]] です [SRC[>>5]]。
- [8] 他の方法でも構いません [SRC[>>12]]。
]FIG]

[REFS[
- [12] [CITE@en[RDF/XML Syntax Specification (Revised)]] ([TIME[2004-02-10 15:29:31 +09:00]] 版) <http://www.w3.org/TR/rdf-syntax-grammar/#start>
- [5] [CITE[Gleaning Resource Descriptions from Dialects of Languages (GRDDL)]] ([TIME[2007-09-10 23:49:31 +09:00]] 版) <http://www.w3.org/TR/grddl/#ns-bind>
]REFS]

;; [15] >>6 より [[RDF/XML]] と判定される[[文書]]の一部は、 [[RSS 1.0]] であり、 [[RDF/XML]]
とみなさない方が良いかもしれません。

* 根要素

[13] [[RDF/XML]] [[文書]]の[[根要素]]としては [CODE(XMLe)@en[[[rdf:RDF]]]] [[要素]]が一般的ですが、
この[[要素]]は省略できます。その場合[[根要素]]は[[節点要素]]
([CODE(XMLe)@en[[[rdf:Description]]]]
[[要素]]か、それに相当する[[要素]] ([[展開URI]]が [CODE@en[[[rdf:type]]]] の[[目的語]]として使われるような
[[QName]] である[[要素]])) とすることになります。

* 文脈

[33] [[RDF/XML]] はしばしば他の [[XML文書]]に埋め込まれます。

[34] [CODE(XMLe)@en[[[rdf:RDF]]]] [[要素]]の埋め込みについては、
[CODE(XMLe)@en[[[rdf:RDF]]]] の項を参照してください。

[35] 理論上は他の[[根要素]]たりえる[[要素]]も埋め込めますが、現在そのような例は見つかっていません。

[32] [[Account Auto-discovery]] や [[CC]] のような [[RDF/XML]] 片 ([CODE(XMLe)@en[[[rdf:RDF]]]] [[要素]])
を (何故か) [[HTML]] の[[注釈]]の中に埋め込むことが00年代中頃に流行りました。
詳しくは[[RDF/XML/HTML注釈]]の項を参照してください。

[45] [[ORE]] の [CODE(XMLe)@en[[[oreatom:triples]]]] [[要素]]は、
[CODE(XMLe)@en[[[rdf:RDF]]]] [[要素]]の[[内容]]相当の[[内容]]を持てるようです。

[FIG(short list)[ [46] [[RDF/XML]] の[[応用]]
- [[RSS 0.9]]
- [[RSS 1.0]]
- [[RSS 1.1]]
- [[ROR]]
- [[XMP][RDF/XML (XMP)]]
]FIG]

* 処理

[64] [[RDF/XML]] の[[仕様書]]では、 [[XML情報集合]]から
[[RDFグラフ]]を生成する方法が定義されています。

[65] ただしこれは正当な [[RDF/XML]] [[文書]]の場合に限定されており、
[[非適合]]な[[入力]]が与えられた場合にどう処理するべきかは定められていません。

** URL の解決

[30] [CODE(XMLa)@en[[[rdf:about]]]]、[CODE(XMLa)@en[[[rdf:type]]]]、[CODE(XMLa)@en[[[rdf:resource]]]]
では [[URLの解決]]が発生します。これは失敗する可能性がありますが、それをどう処理するべきかはまったく言及されていません。

[31] [[RDF 1.1]] では、 [[RFC 3986]]、[[RFC 3987]]、[[RFC 2396]]、[CODE(XMLa)@en[[[xml:base]]]]
が参照されています (!)。

** RSS 1.0

[66] [[RSS 1.0]] は本来 [[RDF/XML]] の一[[応用]]として設計されましたが、
実際には [[RDF/XML]] として処理されない、できない状況となっています。
[SEE[ [[RSS 1.0]] ]]

* MIME 型

[19] [[MIME型]]は [DFN[[CODE(MIME)@en[[[application/rdf+xml]]]]]] です [SRC[>>18]]。

[HISTORY[
[20] [[RFC 3023]] に登場しますが、まだ [[IANAREG]] には登録されていません。

[21] 3023 は登録を待つ様に言っていますが、実際にはよく使われています。登録を待ってたら何年かかることやら。

;; [22] [CODE(MIME)[[[text/xsl]]]] も 
[CODE(MIME)[[[text/javascript]]]] もいつまで待ってもだしね。

[23] やっと登録されるみたいです。。。
([[名無しさん]] [TIME[2004-04-29 16:54:41 +00:00]])
]HISTORY]

[24] [CITE[RdfAndMediaTypes - ESW Wiki]] <http://esw.w3.org/topic/RdfAndMediaTypes>

[49] [[RSS 1.0]] 系列の、 [[RDF/XML]] でもあった [[RSS]] では、
[CODE(MIME)@en[application/rdf+xml]] が使われることがありました。
しかし現実世界の [[RSS 1.0]] は [[RDF/XML]] として処理されることはなく、
[[RDF/XML]] としては正しく解釈できないものも多いので、
[CODE(MIME)@en[application/rss+xml]] を使うのがより好ましいとされています。

[50] [[RSS 2.0]] 系列の [[RSS]] では、 [CODE(MIME)@en[application/rdf+xml]]
を使うのは完全な誤りです。

[42] [[BioPAX]] は [CODE(MIME)@en[[[application/vnd.biopax.rdf+xml]]]]
を使っています。 [[RDF/XML]] の[[応用]]のようですが、なぜか [CODE[+rdf+xml]]
ではありません。

* 拡張子

[25] [[拡張子]]は [DFN[[CODE(file)[[[.rdf]]]]]] が推奨されています [SRC[>>18]]。

* Macintosh ファイル型

[26] [[Macintoshファイル型]]は 「[DFN[[CODE[[[rdf ]]]]]]」 (4文字目は [CODE(charname)@en[[[SPACE]]]])
が推奨されています [SRC[>>18]]。

* 素片識別子

[36] [[RDF 1.0]] においては [[RDF]] の[[素片識別子]]は [CODE(MIME)@en[[[application/rdf+xml]]]]
のものであるとの (多少強引な) 解釈がなされていましたが、 [[RDF 1.1]] では[[素片識別子]]は [[RDFグラフ]]中の[[資源]]を表すものとされ、
[CODE(MIME)@en[[[application/rdf+xml]]]] 独自の[[素片識別子]]の定義はなされなくなっています。

;; [37] [[素片識別子]>>303]参照。

* 歴史

** 1999年版

[REFS[
- [63] [CITE[RDF Model and Syntax]] ([[Ora Lassila, Ralph Swick]]著, [TIME[2013-05-29 06:15:44 +09:00]]) <https://www.w3.org/TR/WD-rdf-syntax-971002/>
- [61] [CITE[Resource Description Framework (RDF) Model and Syntax]] ([[Ora Lassila, Ralph Swick]]著, [TIME[1998-02-19 11:50:18 +09:00]]) <https://www.w3.org/TR/1998/WD-rdf-syntax-19980216/>
-- [62] [CITE[RDF Model and Syntax]] ([[Ora Lassila, Ralph Swick]]著, [TIME[2013-05-29 06:15:44 +09:00]]) <https://www.w3.org/TR/WD-rdf-syntax-971002/>
- [59] [CITE[Resource Description Framework (RDF) Model and Syntax]] ([TIME[1998-07-22 02:05:49 +09:00]]) <https://www.w3.org/TR/1998/WD-rdf-syntax-19980720/>
-- [60] [CITE[Status for Resource Description Framework (RDF) Model and Syntax]] ([TIME[1999-01-07 22:35:58 +09:00]]) <https://www.w3.org/TR/1998/WD-rdf-syntax-19980720/status-19980720>
- [57] [CITE[Resource Description Framework (RDF) Model and Syntax Specification]] ([TIME[1998-08-19 23:31:06 +09:00]]) <https://www.w3.org/TR/1998/WD-rdf-syntax-19980819/>
-- [58] [CITE[Status for Resource Description Framework (RDF) Model and Syntax Specification]] ([TIME[1999-02-25 01:22:45 +09:00]]) <https://www.w3.org/1998/.status/WD-rdf-syntax-19980819/status>
- [55] [CITE[Resource Description Framework (RDF) Model and Syntax Specification]] ([TIME[1998-10-09 06:55:02 +09:00]]) <https://www.w3.org/TR/1998/WD-rdf-syntax-19981008/>
-- [56] [CITE[Status for Resource Description Framework (RDF) Model and Syntax Specification]] ([TIME[1999-04-14 23:43:47 +09:00]]) <https://www.w3.org/1998/.status/WD-rdf-syntax-19981008/status>
- [53] [CITE[Resource Description Framework (RDF) Model and Syntax Specification]] ([TIME[1999-01-07 04:44:16 +09:00]]) <https://www.w3.org/TR/1999/PR-rdf-syntax-19990105/>
-- [54] [CITE[Status for Resource Description Framework (RDF) Model and Syntax Specification]] ([TIME[1999-02-25 01:06:40 +09:00]]) <https://www.w3.org/1999/.status/PR-rdf-syntax-19990105/status>
- [28] [CITE[Resource Description Framework (RDF) Model and Syntax Specification]] ([TIME[1999-02-24 14:45:07 +09:00]] 版) <http://www.w3.org/TR/1999/REC-rdf-syntax-19990222/>
- [51] [CITE[Errata in REC-rdf-syntax-19990222]] ([TIME[2004-02-10 23:00:31 +09:00]]) <https://www.w3.org/TR/1999/REC-rdf-syntax-19990222/errata>
- [52] [CITE[www-rdf-comments@w3.org Mail Archives]] ([TIME[2017-05-05 16:55:58 +09:00]]) <https://lists.w3.org/Archives/Public/www-rdf-comments/>
]REFS]

** 2004年版

[REFS[
- [10] [CITE@en[RDF/XML Syntax Specification (Revised)]]
( ([TIME[2004-02-10 15:29:31 +09:00]] 版))
<http://www.w3.org/TR/rdf-syntax-grammar/>
]REFS]

** 模索

[70] [[RSS 1.0]]

[71] [[FOAF]]

- [72] [CITE[ねこめしにっき(2004年9月)]], [TIME[2006-01-05T18:49:29.000Z]], [TIME[2022-06-14T09:30:33.386Z]] <http://www.remus.dti.ne.jp/~a-satomi/nikki/2004/09a.html#d13n03>
-- [73] [CITE@ja[RDF : 披露宴・二次会 BGM プレイリスト]], [TIME[2022-06-14T09:31:23.000Z]] <http://www.remus.dti.ne.jp/~a-satomi/nikki/tmp/wedding/playlist.rdf>

[74] 
[[RDF]] の[[プレイリスト]]っていうから [[Podcast]] かな、 [[Media RSS]] かな、
と見てみたら
[[MusicBrainz Metadata Initiative 2.1]]
という[[語彙]]を使った独自形式。
[[RDF/XML]] + [[XSLT]]
で [[HTML]] 表示している。

[75] 
当時はこういう実験が盛んに行われたものの、形になったのは [[RSS]] と [[FOAF]]
だけに終わったのが残念よね。

** 衰退

[3] [[00年代]]前半の [[N3]]、[[N-Triples]]、[[Turtle]] といった他の [[RDF]] の構文の開発により、
煩雑な [[RDF/XML]] は徐々に使われなくなっていきました。

[38] 00年代を通して多くの [[XML応用]]が[[メタデータ]]の記述のために [[RDF/XML]]
を埋め込めるような規定を設けていました。しかし実際にはそれも規定だけで、
ほとんど利用実態は無かったようです。

;; [CODE(XMLe)@en[[[rdf:RDF]]]] を参照。

[39] [[RSS 0.9]] とその改訂である [[RSS 1.0]] は [[RDF/XML]] を採用していましたが、
[[欧米]]では比較的早くに [[RDF]] に基づかない [[RSS 0.91]]、[[RSS 0.92]]
とその改訂版である [[RSS 2.0]] や同じく [[RDF]] に基づかない [[Atom]] 
に置き換えられていきました。[[日本]]では [[RSS 1.0]] が比較的延命しましたが、
それも [[Web 2.0]] ブームの収束により、衰退しました。 [[RSS 1.0]] の改訂である
[[RSS 1.1]] は完成せずに頓挫しました。

[40] [[Mozilla]] は [[RDF/XML]] を標準のデータベース形式として採用していましたが、
その後置き換えられ、廃止されました。

;; [41] [[XML名前空間]]が現在のように複雑な仕様となったのは [[RDF/XML]]
の要件のためだったと言われていますが、その [[Semantic Web]] コミュニティーから見捨てられ、
[[XML]] には複雑な構造だけが残ったわけです...


[69] [CITE[A media type for Resource Description Framework (RDF)]], [[Connolly, Dan]], [TIME[2001-03-23T19:09:56.000Z]], [TIME[2021-06-10T07:28:18.750Z]] <https://www.w3.org/2001/03mr/rdf_mt>


[67] [CITE[Media Type for Resource Description Framework (RDF)]], [[Swartz, et al]], [TIME[2002-03-29T17:35:47.000Z]], [TIME[2021-06-10T07:27:11.135Z]] <http://blogspace.com/rdf/mimetype>

[68] [CITE[application/rdf+xml Media Type Registration]], [TIME[2021-06-10T07:27:27.000Z]] <http://www.aaronsw.com/2002/rdf-mediatype.html>


** RDF 1.1

[REFS[
- [16] [CITE@en[RDF 1.1 XML Syntax]]
( ([TIME[2014-02-21 21:38:31 +09:00]] 版))
<http://www.w3.org/TR/2014/REC-rdf-syntax-grammar-20140225/>
- [17] [CITE@en[RDF 1.1 XML Syntax]]
( ([TIME[2014-04-04 16:22:45 +09:00]] 版))
<https://dvcs.w3.org/hg/rdf/raw-file/default/rdf-xml/index.html>
]REFS]

[27] [CODE(XML)@en[[[rdf:XMLLiteral]]]] が[[規定]]から[[参考]]になったほかは技術的内容に変化がない [SRC[>>16]]
とされています。実際には [CODE(XML)@en[[[rdf:XMLLiteral]]]] の解釈が微妙に変わっています。
また2004年版の誤りが幾つか修正されています。構文の定義から参照されている [[N-Triples]]
も2004年版から [[RDF 1.1]] 版に更新されているため、[[RDFリテラル]]の[[データ型]]の解釈が新しいものに変わっています。

;; [29] ですので、 [[RDF 1.0]] 時代は[[データ型]] [CODE(XML)@en[[[xs:string]]]] の[[型付きリテラル]]と[[平リテラル]]は区別されていましたが、
[[RDF 1.1]] では区別できません。

* メモ

[14] [[RDF/XML]] は必要以上に複雑であり、 [[N3]] や [[JSON-LD]] など [[RDF/XML]] 以外の表現方法が人気になってきています。

- [1] [[RDF]] の [[XML]] による実装。単に [[RDF]] と言うことも多い。
- [2] ''RDF/XML構文の簡単な説明'' <http://www.kanzaki.com/docs/sw/rdf-xml.html>

[4] 今から思うとあの [[RDF/XML]] 熱(?) はなんだったんだろうね。なんで誰もおかしいといわなかったんだろうね。
[[裸の王様]]だね。

[43] [CITE[Strawman simpler syntax for RDF]]
([TIME[2009-08-28 06:38:06 +09:00]] 版)
<http://www.w3.org/DesignIssues/Syntax.html>

[FIG(quote)[
[FIGCAPTION[
[47] [CITE[PubChemRDF Release Notes]]
([TIME[2016-09-14 23:56:18 +09:00]])
<https://pubchem.ncbi.nlm.nih.gov/rdf/#_Toc421254649>
]FIGCAPTION]

> Abbreviated RDF/XML
> application/rdf+xml+abbrev
> rdfxml-abbrev
> RDF/XML
> application/rdf+xml
> text/rdf
> rdfxml
> rdf
> xml

]FIG]




[FIG(quote)[
[FIGCAPTION[
[48] [CITE@ja[RDFメタデータの設置場所ガイド]]
([TIME[2008-06-25 12:01:20 +09:00]])
<http://s-web.sfc.keio.ac.jp/intap-public/data/rss_guide_v1.html>
]FIGCAPTION]

> 以下のように、元コンテンツの拡張子を.rdfとすることで、対応するRDFメタデータファイルのファイル名とします。
> コンテンツ作成者がRDFメタデータも自由に作成してローカルに管理することができるので、当委員会として最も推奨する方法です。
> 

]FIG]
