在Jena中使用紧凑的URI



我正在使用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,其中father是主语,parentOf是谓语,child是宾语。如果我尝试使用ex:father检索它,我不会得到任何结果,当我取回Statement时,主题、谓词和对象的完整uri就在那里。当我做model.write(OutputStream)时,我看到它使用前缀而不是uri,但这对我没有特别的帮助。我能像我一直试图做的那样使用前缀来代替uri吗?或者这不是Jena会为我提供的吗?

当我尝试使用前缀检索语句时,我一无所获

你不能做,例如

model.getResource("ex:foo")`

你必须做

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

当然,你可以通过让它变得更简单

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

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

相关内容

  • 没有找到相关文章

最新更新