Создайте модель RDF с типизированными классами и rdf: id

fran_jo спросил: 28 апреля 2018 в 09:26 в: java

Я дошел до этого вопроса: Как совместить элементы JAXB в CIM / RDF? ищет способы создания файлов CIM / XML с помощью RDF. В результате вопроса я узнал, как получить RDF-файл в этом формате

<rdf:Description rdf:about="idObject2">
    <myns:Object2.Property rdf:resource="#idAnotherObject"/>
    <cim:IdentifiedObject.aliasName>CP01</cim:IdentifiedObject.aliasName>
</rdf:Description>
<rdf:Description rdf:about="idObject1">
    <myns:GeneralObject.Object2 rdf:resource="#idObject2"/><cim:IdentifiedObject.aliasName>GT01</cim:IdentifiedObject.aliasName>
</rdf:Description>

Стандарт CIM добавляет # в идентификатор на ресурсе rdf: поэтому мы не получаем более иерархичный формат, подобный этому

<rdf:Description rdf:about="idObject1">
    <myns:GeneralObject.Object2>
      <rdf:Description rdf:about="idObject2">
        <iso:Object2.Property rdf:resource="#idAnotherObject"/>
        <cim:IdentifiedObject.aliasName>CP01</cim:IdentifiedObject.aliasName>
      </rdf:Description>
    </myns:GeneralObject.Object2>
    <cim:IdentifiedObject.aliasName>GT01</cim:IdentifiedObject.aliasName>
  </rdf:Description>

RDF (или просто JENA, я точно не знаю), когда находит тот же идентификатор, он вложил классы. Затем, чтобы обработать данные, нам нужно как-то разобрать строку rdf: resource, чтобы удалить #

Итак, в этом контексте мои вопросы ...

1) Как я пишу rdf: id вместо rdf: about

2) Как заменить rdf: Descritpion на мое собственное имя класса, например myns: Object1

Спасибо


1 ответ

fran_jo ответил: 11 мая 2018 в 12:31

Чтобы ответить на вопрос 2, я должен создать ресурс таким образом:

    Resource object1 = model.createResource(idObject1, 
            model.createResource(Basics.getURI()+ Object1.class.getSimpleName()))

, таким образом, вывод выглядит примерно так:

    <myns:Object1 rdf:about="idObject1">
        <myns:GeneralObject.Object2 rdf:resource="#idObject2"/>
        <cim:IdentifiedObject.aliasName>GT01</cim:IdentifiedObject.aliasName>
    </myns:Object1>