问题描述
我想创建一个SPARQL构造查询以选择与某个主题相关联的所有三元组。问题是我不确定会关联多少个三元组。以下是我特定的SPARQL查询的用法。我想分离r2rml映射中包含的三重映射。
示例图。
@prefix dbo: <http://dbpedia.org/ontology/> .
@prefix dc: <http://purl.org/dc/terms/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix ex: <http://www.txample.com/people/voc/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-Syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix rr: <http://www.w3.org/ns/r2rml#> .
@prefix testd: <http://www.txample.com/people/data/> .
@prefix testv: <http://www.txample.com/people/voc/> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
<TripleMap1>
rr:logicalTable [ rr:tableName "people" ] ;
rr:predicateObjectMap [ rr:objectMap [ rr:column "publications" ;
rr:language "en-GB" ] ;
rr:predicate foaf:publications ;
rr:termType rr:Literal ],[ rr:objectMap [ rr:column "age" ;
rr:datatype xsd:integer ] ;
rr:predicate foaf:age ],[ rr:objectMap [ rr:column "age" ;
rr:datatype xsd:integer ] ;
rr:predicate dbo:equipment ] ;
.
<TripleMap2>
rr:logicalTable [ rr:tableName "people" ] ;
.
示例SPARQL查询。
CONSTRUCT {
<TripleMap2> ?predicate ?object .
?object ?p2 ?o2 .
}
WHERE {
<TripleMap2> ?predicate ?object.
?object ?p2 ?o2 .
}
这将返回TripleMap2的所有三元组,但是,不会返回TripleMap1的所有三元组。
TripleMap2的输出。
<TripleMap2>
rr:logicalTable [ rr:tableName "people" ] ;
TripleMap1的输出。
<TripleMap1>
rr:logicalTable [ rr:tableName "people" ] ;
rr:predicateObjectMap [ rr:objectMap [] ;
rr:predicate foaf:publications ;
rr:termType rr:Literal
] ;
rr:predicateObjectMap [ rr:objectMap [] ;
rr:predicate dbo:equipment
] ;
rr:predicateObjectMap [ rr:objectMap [] ;
rr:predicate foaf:age
] .
任何帮助将不胜感激。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)