0

我正在使用 Jena 来阅读本体,到目前为止它运行良好。不幸的是,我无法弄清楚如何使用我在模型中定义的紧凑 uri。我已经使用模型的setNSPrefix(String prefix, String uri)方法定义了前缀。当我尝试使用前缀检索语句时,我什么也得不到。此外,当我成功检索语句时,它包含完整的 uri,而不是我定义的紧凑 uri。它甚至会为 xsd uri 做到这一点http://www.w3.org/2001/XMLSchema#

例如,我使用 uri http://www.example.com#,我将前缀映射定义为ex,并且我的 Statement 是http://www.example.com#father http://www.example.com#parentOf http://www.example.com#child其中的 parent 是主语,parentOf 是谓词,而 child 是宾语。如果我尝试使用它来检索它,ex:father我不会得到任何结果,并且当我返回 Statement 时,主语、谓词和宾语的完整 uri 就在那里。当我这样做时,我已经看到它使用前缀而不是 uri model.write(OutputStream),但这对我来说并不是特别有用。我是否可以像我一直在尝试做的那样使用前缀代替 uri,或者这不是 Jena 会为我提供的东西吗?

4

1 回答 1

1

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

你不能这样做,例如,

model.getResource("ex:foo")`

你所要做的

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

当然,您可以通过以下方式使其更简单

String EX = "http://example.org/";
model.getResource(EX+"foo");

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

于 2015-02-23T18:33:51.020 回答