2012-05-07 3 views
5

мне нужно создать RDF, который выглядит следующим образом:Как получить вложенные RDF/XML из Йены?

<rdf:Description rdf:about='uri1'> 
    <namespace:level1> 
    <rdf:Description> 
     <namespace:blankNode rdf:resource='uri2'/> 
     <namespace:text></namespace:text> 
    </rdf:Description> 
    </namespace:level1> 
</rdf:Description> 

<rdf:Description rdf:about="uri2"> 
    some properties here 
</rdf:Description> 

Как вы можете видеть, есть вложенные структуры, а также пустые узлы. (Я не знаю, если это точная терминология для свойства «blankNode» в моей структуре.) Если я использую

model.write(System.out, "RDF/XML-ABBREV"); 

тогда даже пустой узел вложен, который я не хочу. Есть ли способ получить такую ​​структуру с помощью Йены? Или есть ли другая библиотека для Java, которая может справиться с этим лучше?

ответ

6

Я думаю, вы идете по этому неправильно.

Вложение - это концепция, которая имеет смысл только при разговоре о деревьях. Но RDF - это не деревья, а троицы. Забудьте некоторое время о структуре XML и подумайте о тройках, которые закодированы в XML. Я нахожу model.write(System.out, "N-TRIPLES"); наиболее полезным для этого.

Прежде всего, вам нужно понять, какие трижды вы хотите, чтобы ваш RDF/XML-файл отображался. Пока он выражает правильные тройки, не имеет значения, написан ли один узел вложенным внутри другого или в каком порядке появляются вещи. Это чисто «косметические» вопросы, такие как отступы.

+0

Спасибо за объяснение! Это для школьного проекта, так что требования к структуре были предоставлены мне :). Но теперь я поговорил с моим профессором и изменил его. – user1355348

+0

Полностью согласен с cygri, также попробуйте model.write (System.out, "TURTLE"); (более «гуманная» сериализация) и забыть об изучении RDF, рассматривая его сериализацию RDF/XML. Приятно требовать изменения «странных требований». ;-) – castagna

+0

Хорошая работа на «просвещании» вашего профессора! Вы определенно заслуживаете +1 за это ;-) – cygri