有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在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,我的语句是http://www.example.com#father http://www.example.com#parentOf http://www.example.com#child,其中父是主语,父是谓语,子是宾语。如果我尝试使用ex:father检索它,我不会得到任何结果,当我返回语句时,主语、谓语和宾语都有完整的uri。我看到它在执行model.write(OutputStream)操作时使用了前缀而不是uri,但这对我并没有特别的帮助。我是否能够像我一直试图做的那样使用前缀来代替uri,或者Jena不会为我提供这样的功能


共 (1) 个答案

  1. # 1 楼答案

    When I try to retrieve statements using the prefix, I get nothing.

    你做不到,例如

    model.getResource("ex:foo")`
    

    你必须这样做

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

    当然,你可以通过

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

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