5

N3でクラスを作成する方法は次のとおりです。

:Person a rdfs:Class.

そして、特定のリソースがそのクラスのインスタンスであることを指定する方法は次のとおりです。

:Pat a :Person.

問題: (プログラムで生成された) 20000 を超えるインスタンスを持つクラスを作成したいと考えています。20000 個のインスタンス全体:Pat a :Person.を記述すると、オントロジー ファイルが冗長になります。

質問: ファイルを小さくするための回避策はありますか?

4

2 に答える 2

6

本当に N3 を使用し、Turtle を使用していない場合 (これは疑問です)、次の@is ... @ofようにキーワードを使用できます。

:Person  a  rdfs:Class;
    @is a @of  :Pat, :Bob, :Chris, :Cindy, :Suzy .

これを可能にする Turtle ツールキットはほとんどありません。

この機能をTurtleに追加することについて、 public-rdf-comments@w3.org のメール アーカイブにも長いディスカッション スレッドがありました(これは現在、W3C によって Last Call Working Draft として公開されています)。Tim Berners のコメントから始まります。リー。その後、Dave Beckettがこの機能を含めないことを求めるコメントと、再び長いスレッドに行きました。次に、現在の RDF ワーキング グループの Turtle 仕様の編集者であるGavin Carothers によるコメントとともに、ポジションの適切な要約が行われました。

ただし、最終的に標準化されたときに、これが Turtle の機能になるとは思えません。

ところで、20,000 件のレコードがすべてプログラムによって生成された (そしておそらく解析された) 場合、何が問題になるのでしょうか? ネットワーク経由で大量のデータを交換する必要がある場合は、簡単に大量のデータを圧縮できます。または、 HDTのようなコンパクトなシリアル化構文を使用することもできますが、実装はほとんどありません。

于 2012-08-29T07:41:32.203 に答える
3

完全なクラス URI のカスタム プレフィックスを定義し、そのプレフィックスを使用してクラスを参照できます。

@prefix : <http://example.com/myOntology#>.
@prefix x: <http://example.com/myOntology#MyClass>.

:Alice a x: .
:Bob a x: .
:Charlie a x: .

それは正確に読めるわけではありませんが、できるだけ短くします。

私は、この種の策略にはほとんど意味がないというアントワーヌの意見に同意します。ディスク容量は安価であり、ネットワーク転送のために十分に圧縮され、アプリケーションでの処理のためにとにかく拡張されます。

于 2012-08-29T11:59:00.477 に答える