/
445.txt
164 lines (113 loc) · 8.05 KB
/
445.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
[11] [DFN[[[RDF/XML]]]] は、 [[RDFグラフ]]を [[XML]] として記述する方式の一つです。
[[RDF]] を表現する方法としては最初に定義されたものであり、元々は単に [[RDF]]
と言えば [[RDF/XML]] を指していました。
* 仕様書
[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注釈]]の項を参照してください。
* 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]]]]
が参照されています (!)。
* MIME 型
[19] [[MIME型]]は [CODE(MIME)@en[[[application/rdf+xml]]]] です [SRC[>>18]]。
[20] [[RFC 3023]] に登場しますが、まだ [[IANAREG]] には登録されていません。
[21] 3023 は登録を待つ様に言っていますが、実際にはよく使われています。登録を待ってたら何年かかることやら。
;; [22] [CODE(MIME)[[[text/xsl]]]] も
[CODE(MIME)[[[text/javascript]]]] もいつまで待ってもだしね。
[23] やっと登録されるみたいです。。。
([[名無しさん]] [WEAK[2004-04-29 16:54:41 +00:00]])
[24] [CITE[RdfAndMediaTypes - ESW Wiki]] <http://esw.w3.org/topic/RdfAndMediaTypes>
[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[
- [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/>
]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]
** 衰退
[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]] には複雑な構造だけが残ったわけです...
** 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]] 熱(?) はなんだったんだろうね。なんで誰もおかしいといわなかったんだろうね。
裸の王様だね。