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 或从 RDF 中获取/检索您的对象。但是还有很多其他方法可以存储持久/检索对象。你真的需要这个吗?

于 2009-08-18T20:10:21.493 回答