[英]RDFising data with SPARQL and SPIN
我想对数据进行RDF处理,我需要使用SPARQL查询(我正在使用SPIN)构造具有两个属性(标题和作者)的对象(书)。 所有书籍都有“标题”,但有时没有“作者”。
发生这种情况时,它不会创建此“书”,而我想使用“标题”来创建它。
我正在使用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语法。
在缺少<urn:col:Author>
时,在SERVICE
部分中使用OPTIONAL
可使模式不失败。
这样, CONSTRUCT
将不会简单地将“ ?rdfIRI pres:Author ?author
放到三元组中,而是将?rdfIRI a pres:Book
包括?rdfIRI a pres:Book
。
如果您想在数据中缺少?author时设置它,请考虑使用COALESCE
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.