2016-04-05 5 views
0

diese (sehr gekünstelt) Code-Schnipsel Gegeben:Korrektur der Namensraum von Vokabularien

System.out.println(VCARD.uri); 
System.out.println(SKOS.uri); 

Resource johnSmith = model.createResource("http://somewhere/js") 
     .addProperty(VCARD.FN, "John Smith") 
     .addProperty(SKOS.notation, "John Smith"); 

model.write(System.out); 

wir bekommen

http://www.w3.org/2001/vcard-rdf/3.0# 
http://www.w3.org/2004/02/skos/core# 

<rdf:RDF 
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
    xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#" 
    xmlns:j.0="http://www.w3.org/2004/02/skos/core#"> 
    <rdf:Description rdf:about="http://somewhere/js"> 
    <j.0:notation>John Smith</j.0:notation> 
    <vcard:FN>John Smith</vcard:FN> 
</rdf:RDF> 

Da SKOS in Jena intern vertreten ist, warum ist es immer noch die j.0 Schreibweise zurückkehren (noch nicht für die vcard Eigenschaft)? Ich habe ähnliche Fragen gelesen (z. B. this one und this one und this one), aber sie scheinen sich auf Personen zu beziehen, die sich auf ihre eigene Ontologie beziehen. Vorausgesetzt, dass die Konstante uri für SKOS korrekt ist, warum ändert es sich in der RDF-Darstellung?

Antwort

0

Der Code hat URIs von SKOS verwendet, aber nicht das Präfix im Modell. Siehe setNsPrefix.

Möglicherweise möchten Sie die hübsche Druckform der Ausgabe verwenden, die Standardeinstellung ist nur grundlegende RDF/XML. Legen Sie den Syntaxnamen im Aufruf model.write fest (Details siehe javadoc).

+0

Ich konnte nirgends in der Dokumentation sehen, welche 'Vokabeln' intern in Jena gesetzt werden (offensichtlich' vcard', aber 'skos' nicht) - existiert eine Liste? – ChrisW