【问题标题】:Can't use prefixed URI after defining a prefix with Model.setNsPrefix()?用 Model.setNsPrefix() 定义前缀后不能使用前缀 URI?
【发布时间】:2015-07-21 23:16:09
【问题描述】:

我不明白为什么下面的代码会这样。我正在尝试使用 Jena 解析 DCAT 文档,虽然使用完全限定的 URI 不是一个交易破坏者,但我认为在尝试访问语句之前设置 URI 前缀将允许我使用速记符号。

例如,我设置了 dcat 前缀,但无法使用 dcat:distribution 以这种方式搜索模型。相反,我必须使用完全限定的 URI。这是预期的还是我做错了什么?

        dcatModel = RDFDataMgr.loadModel(URI);

        dcatModel.setNsPrefix("dcat", "http://www.w3.org/ns/dcat#");
        dcatModel.setNsPrefix("rdf", "http://www.w3.org/1999/02/22-rdf-syntax-ns#");
        dcatModel.setNsPrefix("dct", "http://purl.org/dc/terms/");
        String uri = "http://catalog.data.gov/dataset/consumer-complaint-database";
        Resource dataSetResource = dcatModel.getResource(uri);

        String propString = "http://www.w3.org/ns/dcat#distribution";
        //String propString = "dcat:distribution";
        Property searchProperty = dcatModel.createProperty(propString);
        StmtIterator i = dataSetResource.listProperties(searchProperty);

【问题讨论】:

  • 设置前缀不会启用速记符号。
  • 这可能适合作为答案。以这种方式可以速记符号吗?例如,是否有任何设置可以通过速记字符串进行搜索?
  • 对此有 API 支持,但在 Java 中使用 NS+"#property" 就足够简单了(这在 Turtle 中就是如此)。有些人使用不寻常的自定义 URI 方案,这使得这不是一个简单的添加问题,并且仍然保持长期兼容性。

标签: java rdf jena semantic-web


【解决方案1】:

设置前缀不会启用速记符号。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-17
    • 2011-10-23
    相关资源
    最近更新 更多