-1

我正在尝试创建一个 SPARQL 查询来构建或插入图形,遵循 BIBFRAME 2.0 模型,使用具有大量数据的个人数据库。我想得到这样的结果:

Subject a bf:Topic, madsrdf:ComplexSubject ;
rdfs:label "Subject" ;
madsrdf:componentList [ a madsrdf:Topic ;
            madsrdf:authoritativeLabel "FirstSubject" ] ;

但我不知道如何在 SPARQL 中做到这一点。我尝试了这个查询,但我总是得到很多空白节点(就像我的数据库中有空的“?主题”字段的寄存器一样多):

PREFIX bf: <http://id.loc.gov/ontologies/bibframe/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix madsrdf: <http://www.loc.gov/mads/rdf/v1#>

CONSTRUCT{

    ?subject a bf:Topic, madsrdf:ComplexSubject ;
        rdfs:label ?subject;
        madsrdf:componentList [ a madsrdf:Topic ;
                madsrdf:authoritativeLabel ?firstsubject ];

} where{ service <http://localhost:.......> {
        ?registerRow a <urn:Row> ;
        OPTIONAL{?registerRow <urn:col:Subject> ?subject ;}
        OPTIONAL{?registerRow <urn:col:FirstSubject> ?firstsubject ;}
                     }
}
4

1 回答 1

0

@Wences,AKSW 回答了你,请仔细阅读。您不在?registerRowCONSTRUCT 部分中使用,这就是为什么它对每一行执行一次。

于 2017-06-06T06:06:04.070 回答