Ich weiß nicht, warum nach setNsPrefix von Model funktioniert es nicht nach meinen Erwartungen.
Das ist mein Java-CodeWie man NameSpace/PrefixMap in Apache Jena-Modell hinzufügen?
public class TestClass
{
public static void main(String[] args){
Model model = ModelFactory.createDefaultModel();
model.setNsPrefix("vocab","http://myweb.in/vocab#");
model.createResource().addLiteral(ResourceFactory.createProperty("vocab:name"),"Dhannan");
String query
= " SELECT * "
+ " WHERE { "
+ " ?Subject ?Predicate ?Object . "
+ " } ";
Services.executeQuery(model, query);
}
}
Ausgang:
--------------------------------------
| Subject | Predicate | Object |
======================================
| _:b0 | <vocab:name> | "Dhannan" |
--------------------------------------
Erwartet:
------------------------------------------------------
| Subject | Predicate | Object |
======================================================
| _:b0 | <http://myweb.in/vocab#name> | "Dhannan" |
------------------------------------------------------
Wo habe ich Fehler machen? Von meinem Gedanken kann setNsPrefix das tun.
Tut mir leid, aber es funktioniert nicht. Ich habe model.expandPrefix ("vocab") hinzugefügt; System.out.println (Modell.expandPrefix ("vocab")); Aber es zeigt immer noch "vocab: name" und auch nach dem Drucken zeigt es "vocab". – Badman
während dieser System.out.println (model.shortForm ("http://myweb.in/vocab#")); gibt mir shortForm "vocab:" – Badman
Tut mir leid, ich muss dies tun System.out.println (model.expandPrefix ("vocab:")); Es funktioniert gut und gibt mir "http://myweb.in/vocab#". Aber ich habe noch Fragen, können wir vermeiden, immer wieder diese Ressource zu schreiben.addLiteral (ResourceFactory.createProperty (model.expandPrefix ("vocab:") + "name"), "Dhannan"); – Badman