Я не знаю, почему после установки setNsPrefix Model это не работает в соответствии с моим ожиданием.
Это мой Java CodeКак добавить NameSpace/PrefixMap в Apache Jena Model?
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);
}
}
Выход:
--------------------------------------
| Subject | Predicate | Object |
======================================
| _:b0 | <vocab:name> | "Dhannan" |
--------------------------------------
Ожидаемое:
------------------------------------------------------
| Subject | Predicate | Object |
======================================================
| _:b0 | <http://myweb.in/vocab#name> | "Dhannan" |
------------------------------------------------------
Где я сделал ошибку? Из моей мысли setNsPrefix может это сделать.
Извините, но он не работает. Я добавил model.expandPrefix ("vocab"); System.out.println (model.expandPrefix ("vocab")); Но он по-прежнему показывает «vocab: name», и даже после печати он показывает «vocab». – Badman
, пока этот System.out.println (model.shortForm ("http://myweb.in/vocab#")); дает мне shortForm "vocab:" – Badman
К сожалению, мне нужно сделать это System.out.println (model.expandPrefix ("vocab:")); Он отлично работает и дает мне «http://myweb.in/vocab#». Но все же у меня есть вопрос, можем ли мы снова и снова избегать создания этого ресурса.addLiteral (ResourceFactory.createProperty (model.expandPrefix («vocab:») + «name»), «Dhannan»); – Badman