我想从 sparql 查询中获取结果并且结果不包含命名空间。
例如:有三重格式的结果,如:
"http://www.xyz.com#Raxit" "http://www.w3.org/1999/02/22-rdf-syntax-ns#type" "http://www.xyz.com#Name"
所以我只想得到以下内容:
Raxit type Name
我想直接从 sparql 查询中得到这个结果。我正在使用艺术大师。
是否有可能从 sparql 得到这个?
请分享您对此的看法。
提前致谢。
最佳答案
如果您的数据是常规数据,并且您知道您想要的子字符串总是出现在 #
之后字符,那么您可以使用 strafter
SPARQL 1.1 中的函数。我不知道这在 Virtuoso 的实现中是否可用。
然而,总的来说,这是一个非常冒险的策略。并非所有 URI 的格式都在 #
之后带有本地名称部分。特点。事实上,一般来说,URI 可能根本没有合法或有用的本地名称。所以你应该问问自己:为什么你认为你需要这个?一般而言,语义 Web 应用程序使用整个 URI 作为不可分割的标识符。如果您实际上需要在 UI 中显示人性化的内容,请让您的查询也查找 rdfs:label
或 skos:label
特性。最坏的情况是,尝试将 URI 缩写为 q-name 形式(即 prefix:name
),使用来自模型或服务的前缀 prefix.cc
关于没有命名空间的 Sparql 查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11234371/