在Jena中使用紧凑的URI

时间:2015-02-23 17:21:52

标签: java jena n-triples

我使用Jena阅读本体论,到目前为止它工作得非常好。不幸的是,我还没有弄清楚如何使用我在模型中定义的紧凑型uris。我使用模型setNSPrefix(String prefix, String uri)方法定义了前缀。当我尝试使用前缀检索语句时,我什么也得不到。此外,当我成功检索一个Statement时,它包含完整的uri而不是我定义的紧凑的uri。它甚至会为xsd uri http://www.w3.org/2001/XMLSchema#

执行此操作

例如,我使用uri http://www.example.com#,我已将前缀映射定义为ex,而我的声明为http://www.example.com#father http://www.example.com#parentOf http://www.example.com#child,其中父亲是主题,parentOf是谓词,child是对象。如果我尝试使用ex:father检索它,我得不到任何结果,当我收到Statement时,完整的uri就是主题,谓词和对象。我在model.write(OutputStream)时看到它使用前缀而不是uri,但这对我来说并不是特别有用。我可以使用前缀替代uri,就像我一直试图做的那样,还是Jena不会为我提供这些东西?

1 个答案:

答案 0 :(得分:1)

  

当我尝试使用前缀检索语句时,我什么都没得到。

你无法做到,例如,

model.getResource("ex:foo")`

你必须做

model.getResource("http://example.org/foo");

当然,你可以通过

使这更简单
String EX = "http://example.org/";
model.getResource(EX+"foo");

前缀实际上只是为了使序列化更好地读写。