2009-08-16 6 views
2

Я создал кучу классов с использованием ROWLEX и имел их сериализуются с помощью RDFКак десериализовать документ OWL?

RdfDocument rdfDocument = Rdfizer.Serialize(ontology); 

Теперь я хотел бы десериализации его (аналогично тому, как работает XmlSerializer.Deserialize()), так что я мог бы иметь данные в онтология заселена в моем объекте

Я хотел бы сделать что-то вроде этого:

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

может кто-нибудь пожалуйста, скажите мне, как я могу десериализации документ OWL назад к моему объекту с помощью ROWLEX?

Благодаря

ответ

2

У меня есть очень простой и неутешительный ответ: десериализации не реализован.

Rational позади: .NET - очень строгая и формальная среда, в то время как RDF - нет. Преобразование данных в общий режим возможно только в сторону менее ограничительного направления. Сериализация/десериализация сериального цикла может работать надежно только в том случае, если вы выполняете оба действия в своей собственной руке. Если одна компания реализует сериализацию, отправляет RDF другой компании, которая реализует десериализацию, вы не можете ожидать слишком многого. Различные системы имеют различную бизнес-логику, и идеальное отображение 1: 1 даже теоретически невозможно. Было бы возможно построить очень отказоустойчивую десериализацию, но вы не получили бы гарантии, что десериализованные объекты .NET будут иметь то же значение, что и исходный документ RDF. Поскольку отдельные лица в документах RDF могут быть частичными по самой природе RDF.

Единственная обоснованная причина, по которой я могу думать о том, где может работать гарантированная сериализация/десериализация (исправьте меня, если я ошибаюсь), если вы используете ROWLEX в качестве уровня хранения данных, сохраняя/извлекая ваши объекты в/из RDF. Но есть так много других альтернатив для хранения persist/retrieve ваших объектов. Вам это действительно нужно?