用 Model.setNsPrefix() 定义前缀后不能使用带前缀的 URI?

Can't use prefixed URI after defining a prefix with Model.setNsPrefix()?

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

例如,我设置了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);

设置前缀不会启用 shorthand 表示法。