我对 RDF/SPARQL 比较陌生,我正在尝试将一些 N-Quad、4 列/四重数据导入并查询到Blazegraph(参见schemaOrgEvent.sample.txt)。
当我导入 Quads 数据(Web 控制台)时,我只剩下基于三元组的 3 列元组数据,即 Blazegraph 只允许 SPARQL 查询 SELECTing {?s ?p ?o},但四元组选择 {?s ? p ?o ?c},不要。我究竟做错了什么???
Blazegraph 可以本地存储 4 列 Quad 数据,还是我误解了 RDF/Triple/Quad 存储的本质?
- 我的Blazegraph模式/知识数据库(要导入)是为 QUAD 配置的:
com.bigdata.rdf.store.AbstractTripleStore.quads=true
- 我已经使用基于 Web 的 UPDATE 控制台 @ http://127.0.0.1:9999/bigdata/#update将Quads 文件导入Blazegraph。我还没有尝试直接批量上传。
此外,导入的四元组数据以及变成三元组(归一化???)似乎将第 1 列转换为另一个 Blazegraph 提供的(?)标识符,原始(四元组)数据格式为(4 列)
_:node03f536f724c9d62eb9acac3ef91faa9 <http://schema.org/PostalAddress/addressRegion> "Kentucky"@en <http://concerts.eventful.com/Lauren-Alaina> .
导入后(3 列):
t1702 schema:PostalAddress/addressRegion Kentucky
谁的查询是:
SELECT * WHERE
{
?s ?p ?o
#?s ?p ?o ?c - Won't work :-(
FILTER(STR(?o)="Kentucky")
}
't1702' 值是某种“外键”,可用于链接到其他三元组(即在导入日期内重复)。