使用SPARQL和SPIN

时间:2017-03-13 09:29:43

标签: sparql rdf graphdb spin-rdf

我想要RDFising数据,我需要使用SPARQL查询构建(我正在使用SPIN)一个具有两个属性(Title和Author)的对象(Book)。所有书籍都有“标题”,但有时候没有“作者”。

当发生这种情况时,它不会创建这个“书”,我想用“标题”创建它。

我正在使用GraphDB,这是查询:

prefix spif: <http://spinrdf.org/spif#>
prefix pres: <http://example.com/pruebardf/>

CONSTRUCT {
    ?rdfIRI a           pres:Book ;
            pres:Author ?author   .
}
WHERE {
     SERVICE <http://localhost:7200/rdf-bridge/1683716393221> {
         ?bookRow a                <urn:Row> ;
                  <urn:col:Author> ?author   ;
                  <urn:col:Title>  ?title    .
     }
     BIND(IRI(CONCAT("http://example.com/", spif:encodeURL(?title))) AS ?rdfIRI)
}

有解决方案吗?我可以使用其他SPARQL语法。

1 个答案:

答案 0 :(得分:0)

OPTIONAL部分使用SERVICE,以便在缺少<urn:col:Author>时模式不会失败。

CONSTRUCT根本不会放入?rdfIRI pres:Author ?author三元组,但会包含?rdfIRI a pres:Book

如果要在数据中缺少作者时设置?作者,请查看使用COALESCE