由于我的图形数据存储区中有很多具有不同命名空间和前缀的本体,并且这些命名空间随着时间的推移而更改或更新,我想从给定的存储库中检索所有使用的命名空间及其前缀,以便创建前缀 - 我自动查询的一部分。
典型的查询可能是:
PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX app: <uri....>
PREFIX geo: <uri....>
PREFIX org: <uri....>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX xml: <http://www.w3.org/XML/1998/namespace>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX meta: <uri....>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX person: <uri....>
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX incident: <uri....>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?something
WHERE {...}
我想摆脱这个长前缀列表,并在另一个本体中管理它,或者找到另一种方法来检索每个查询的所有现有前缀及其URI。
答案 0 :(得分:2)
简短而正式的答案:前缀不是RDF图的一部分,而是一些序列化语言的语法糖,使其更紧凑。可读。一些三元组商店管理前缀,但这实际上取决于三重商店。
我通常做的事情(通过使用一些Java + Jena&#34; magic&#34;):
u
n
中提取namspace u
并从prefix.cc查找服务获取其最常用的前缀p
p -> n
添加到查询希望这有帮助。