2

ROWLEX を使用して一連のクラスを作成し、それらを使用して RDF にシリアル化しました。

RdfDocument rdfDocument = Rdfizer.Serialize(ontology);

次に、オントロジーのデータをオブジェクトに取り込むことができるように、それを逆シリアル化します (XmlSerializer.Deserialize() の動作と同様)。

私はこのようなことをしたいと思います:

RdfSerializer serializer = new RdfSeriailzer(typeof(MyOntology));
  MyOntology ontology = (MyOntology)serializer.Deserize(fileStream);

ROWLEX を使用して OWL ドキュメントをオブジェクトに逆シリアル化する方法を教えてください。

ありがとう

4

1 に答える 1

2

非常に単純で残念な答えがあります。逆シリアル化は実装されていません。

背後にある理由: .NET は非常に厳密で正式な環境ですが、RDF はそうではありません。一般的な方法でデータを変換することは、制限の少ない方向に向かってのみ可能です。完全なサイクルのシリアライゼーション/デシリアライゼーションは、両方のアクティビティを自分の手で保持している場合にのみ、確実に機能します。ある会社がシリアライゼーションを実装し、RDF をデシリアライゼーションを実装する別の会社に送信する場合、あまり期待できません。システムの種類が異なればビジネス ロジックも異なり、完璧な 1 対 1 のマッピングは理論的にも不可能です。非常にフォールト トレラントな逆シリアル化を構築することは可能ですが、逆シリアル化された .NET オブジェクトが元の RDF ドキュメントと同じ意味を持つという保証は得られません。RDF ドキュメント内の個々の要素は、RDF の性質上、部分的である可能性があるためです。

ROWLEXをデータストレージレイヤーとして使用し、RDFとの間でオブジェクトを永続化/取得する場合、保証されたシリアライゼーション/デシリアライゼーションがどこで機能するかを考えることができる唯一の正当な理由(間違っている場合は修正してください) 。しかし、オブジェクトを保存/取得するための選択肢は他にもたくさんあります。本当にこれが必要ですか?

于 2009-08-18T20:10:21.493 に答える