从RDF获取具有前缀的谓词

时间:2018-06-09 12:55:18

标签: java sparql rdf jena

RDF 文件中提取主题,属性和对象时,我想用谓词对应的关键字替换谓词的IRI。例如,一般 SPARQL 查询会返回以下结果:

| <http://extbi.dk/resource/727> | <http://extbi.dk/p/population> | "21,749"                                             
| <http://extbi.dk/resource/727> | <http://extbi.dk/p/region> | "Central"                                                
| <http://extbi.dk/resource/727> | <http://extbi.dk/p/id>   | "727" 

我想要做的是:如果 http://extbi.dk/p/ 的前缀关键字是架构,那么我想要的结果是:

| <http://extbi.dk/resource/727> | <schema:population> | "21,749"                                             
| <http://extbi.dk/resource/727> | <schema:region> | "Central"                                                
| <http://extbi.dk/resource/727> | <schema:id>   | "727" 

我正在使用Apache Jena。

1 个答案:

答案 0 :(得分:0)

使用PrefixMapping对象在Jena中处理前缀。

此示例应返回QName,如果不存在则返回null:

Node n;
PrefixMapping prefixes = new PrefixMapping.Factory.create();
qnameFor(n.getURI());

shortForm(String URI)也可用于根据“原始”URI资源简化URI。

以下是Javadoc的链接:Link