JSONとRDF/Turtleのマッピングが何とかものになりそうなので、簡単なデモを用意し試してみることにする。細かいことに目をつぶれば、相互変換はJavascriptでも可能だ。Ajax的にやれば、RDF/Turtleのデータを取り込んでJavascriptで処理したり、JSONデータをRDFトリプルとして操作することも可能だろう。
まず、3回目の型付きノードで取り上げた例を使って変換してみる。上のtextareaのJSONのデータを、「JSON ↓ Turtle」ボタンを使ってRDF/Turtleに変換し、下のtextareaに書き込む。生成したRDF/Turtleは、グラフ図を描いたり、きちんとトリプルが得られているかをパーサーで確認することもできる。
逆に、下のtextareaにRDF/Turtleがあれば、「Turtle ↑ JSON」で逆を行うことも可能だ(生成したJSONデータのダンプ表示には、川崎さんのJKL.Dumperを利用させて頂きました)。
:
上下に変換を繰り返すと、多少改行やインデントの書式は変わるものの、いちおう同じデータ構造を保って相互に変換ができていることが分かる。
せっかくだから、もう一つだけサンプルを見ておこう。こちらはFOAFのデータを、Person
要素を省いて記述したもの。2人の知人がいることを、knows
プロパティの値を配列にすることで表現している。こちらは名前空間宣言がどうしても必要なので、2回目の時に導入した@prefix
という特別なプロパティを最初に置いた。
:
JSONの配列データが、RDF/Turtleではプロパティ反復のモデルに変換されている。
変換を行うjavascriptは、まだ作り込みが甘いところもあり、Turtleのコレクションモデルにもきちんと対応していないが、JSONとRDF/Turtleのデータが相互に往き来可能ということは示せるんじゃなかろうか。適当にJSONデータを入れて試してみると、RDF/Turtleがどんなものかも、ある程度感じがつかめるのではないかと思ったりしている。
- JSONではじめるRDF/Turtle (2006-02-21)