Я работаю в рамках реализации модели данных Europeana (EDM) для конкретной структуры данных, и у меня возникает проблема, когда я хочу добавить свойство.Например, рассматривая следующий простой пример ( с использованием Apache Jena 3.9 ):
public static void main(String[] args) {
String NS = "http://my.com/";
Model model = ModelFactory.createDefaultModel();
model.setNsPrefix("edm", EDM_TEST.getURI());
model.setNsPrefix("skos", SKOS.getURI());
Resource repository = model.createResource(NS + "testing_agent");
repository.addProperty(RDF.type, EDM_TEST.Agent);
repository.addProperty(SKOS.altLabel, model.createLiteral("Vasile Alecsandri Museum"));
repository.addProperty(SKOS.prefLabel, model.createLiteral("Vasile Alecsandri National Museum"));
Resource providedCHO = model.createResource(NS + "testing_cho");
providedCHO.addProperty(RDF.type, EDM_TEST.ProvidedCHO);
providedCHO.addProperty(EDM_TEST.currentLocation, repository);
StringWriter out = new StringWriter();
model.write(out, "RDF/XML");
String result = out.toString();
System.out.println(result);
}
Результат вроде бы нормальный:
<edm:ProvidedCHO rdf:about="http://my.com/testing_cho">
<edm:currentLocation>
<edm:Agent rdf:about="http://my.com/testing_agent">
<skos:prefLabel>Vasile Alecsandri National Museum</skos:prefLabel>
<skos:altLabel>Vasile Alecsandri Museum</skos:altLabel>
</edm:Agent>
</edm:currentLocation>
</edm:ProvidedCHO>
но это не таквсе в порядке, потому что EDM не разрешает внутренний объект для свойства currentLocation .Итак, мне нужно сгенерировать следующий вывод для свойства currentLocation:
<edm:ProvidedCHO rdf:about="http://my.com/testing_cho">
<edm:currentLocation rdf:resource="http://my.com/testing_agent"/>
</edm:ProvidedCHO>
<edm:Agent rdf:about="http://my.com/testing_agent">
<skos:prefLabel>Vasile Alecsandri National Museum</skos:prefLabel>
<skos:altLabel>Vasile Alecsandri Museum</skos:altLabel>
</edm:Agent>
Как можно отдельно создать ресурс репозитория (Агент) и связать его со свойством currentLocation из предоставленного ресурса CHO как Iобъяснил выше?