0

我正在使用 LeviathanUpdateProcessor 运行带有 dotNetRdf 的 INSERT/WHERE 语句,它运行良好,但它无法识别我以编程方式添加的 PREFIX 命名空间或 SPARQL 中的命名空间。我还添加了 SparqlUpdateCommandSet 和 Graph 对象。

SparqlUpdateCommandSet cmds = parser.ParseFromString(cmdString);
            cmds.NamespaceMap.AddNamespace( ...)

有谁知道这是否有效?否则我不能使用任何前缀

4

1 回答 1

0

命名空间需要在要解析的实际字符串中定义,而不是事后定义。解析器需要在解析过程中扩展它们以完成 URI。

事后以编程方式添加的命名空间仅在将更新序列化回字符串时使用。

如果您更喜欢以编程方式管理命名空间,那么您应该考虑使用SparqlParameterizedString,如用户指南中所示。

于 2016-07-01T08:58:00.307 回答