使用 SPARQL 和 SPIN 对数据进行 RDF 化
RDFising data with SPARQL and SPIN
我想对数据进行 RDF 化,我需要使用 SPARQL 查询(我正在使用 SPIN)构造一个具有两个属性(标题和作者)的 object(书籍)。所有的书都有 "Title",但有时没有 "Author"。
发生这种情况时,它不会创建 "Book",我想用 "Title" 创建它。
我正在使用 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 语法。
在 SERVICE
部分使用 OPTIONAL
使模式在缺少 <urn:col:Author>
时不会失败。
CONSTRUCT
将不会放入 ?rdfIRI pres:Author ?author
三元组中,但会包含 ?rdfIRI a pres:Book
.
如果您想在数据中缺少 ?author 时设置它,请查看使用 COALESCE
。
我想对数据进行 RDF 化,我需要使用 SPARQL 查询(我正在使用 SPIN)构造一个具有两个属性(标题和作者)的 object(书籍)。所有的书都有 "Title",但有时没有 "Author"。
发生这种情况时,它不会创建 "Book",我想用 "Title" 创建它。
我正在使用 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 语法。
在 SERVICE
部分使用 OPTIONAL
使模式在缺少 <urn:col:Author>
时不会失败。
CONSTRUCT
将不会放入 ?rdfIRI pres:Author ?author
三元组中,但会包含 ?rdfIRI a pres:Book
.
如果您想在数据中缺少 ?author 时设置它,请查看使用 COALESCE
。