指向性メモ::2007-02-08

ページ情報
制作日
2007-02-08T22:59:27+09:00
最終更新日
2007-02-08T22:59:27+09:00

Hercules version 0.03リリース

Created:
2007-02-08T22:59:27+09:00

Herculesのversion 0.03を公開しました。変更点配下の通りです。

RDF-Classベースでの走査は、雰囲気としてはRailsのPerson.find_all()をほぼそのままコピーしたような感じです。ただし、RDFの場合明確なDBのスキーマというものが存在しないので(RDFスキーマは使えません)、グラフ上に何種類のクラスが存在するのかが分かりません。Herculesでは<http://www.w3.org/2000/01/rdf-schema#Class>のサブクラスを1度問い合わせ、得られたリストの結果を基に動的にJavaScriptのクラスを定義しています。なお、クラス名がURIのままだとJavaScript的に無理があるので、あらかじめ登録されたPrefixを元に、QName形式に変換できた場合のみ、クラスとして定義されます。また、クラスがグローバルで定義すると色々と問題があるので、Herculesのプロパティとして定義されるようになっています。

e = new Hercules("http://path/to/sparql/server");
e.registerPrefix("", "http://mynamespace/"); // dafault prefix
e.registerPrefix("foaf", "http://xmlns.com/foaf/0.1/");
e.registerPrefix("dc", "http://purl.org/dc/elements/1.1/");

// define JavaScript classes automatically
e.defineExistClasses();

// RDF-Class-based search
people = e.foaf$Person.findAll();
alert(people[0].foaf$name.$()); // -> Someone's name

パフォーマンス的にちょっと辛い部分があるので、何か対策を考えないといけないのですが、「グラフ上に何がどれだけあるか把握することが不可能」というのが前提な以上、クライアント側でCoC的なコードを書くのには限界がありそうです。ある程度は設定を自分で書くことになるでしょう。

Comments
0
Trackbacks
0
PermaLink
http://yudai.arielworks.com/memo/2007/02/08/225927
連絡先、リンク、転載や複製などについては『サイト案内』をご覧ください。Powered by HIMMEL

I ♥ Validator