Как загрузить модель в памяти, основанную на онтологии, используя платформу Jena? - PullRequest
0 голосов
/ 10 февраля 2011

Мне интересно, как из онтологии, использующей инфраструктуру Jena, загрузить модель, в которой я получу точно такую ​​же семантику, определенную в онтологии.Я обнаружил, что Жан-онтологический API дает возможность работать с онтологическими моделями, классами и т. Д.

Затем приведу следующий пример:

<owl:Class rdf:ID="DigitalCamera">
  <rdf:type owl:ObjectProperty />
</owl:Class>

Возможноdo:

Resource r = myModel.getResource( myNS + "DigitalCamera" );
OntClass cls = (OntClass) r.as( OntClass.class );

Однако я ищу, чтобы получить в свои руки непосредственно класс / экземпляры DigitalCamera и не проходить через OntClass или Resource следующим образом:

DigitalCamera camera = new DigitalCamera();

Затем при поиске определенногосвойство этой камеры, я мог получить к ней прямой доступ и сосредоточиться на семантике данных, таких как DSL.Предлагает ли Йена такого рода специализированную (сгенерированную?) Структуру, представляющую какую-либо онтологию?

Спасибо

1 Ответ

0 голосов
/ 14 февраля 2011

Существует концептуальная проблема, связанная с выполнением того, о чем вы просите. Сила RDF в том, что модель данных податлива.Это иногда выражается как «любой может сказать что угодно о чем угодно».Другими словами, состояние вашего приложения полностью определяется тем, что находится на графике в любое время.Предположим, что ресурс r в настоящее время имеет rdf:type foaf:Person, вполне возможно и законно изменить этот граф, так что r имеет, скажем, rdf:type skos:Concept.Или, действительно, быть обоими.Следовательно, использование некоторого вида ORM для представления ресурса в качестве неизменного класса Java Person или Concept может стать неполным или устаревшим.Вот почему (частично) Джена этого не делает: состояние в Йене полностью основано на том, что на графике RDF.

При этом вы согласны с тем, что вы готовы принять этот риск или знаете,В приложении практически нет шансов на то, что отображение URI ресурсов на классы объектов Java кардинально изменится, есть некоторые расширения Jena, которые могут вам помочь.Я бы посоветовал взглянуть на JenaBean в качестве одного примера.

...