SPARQL构造/插入查询和空白节点

时间:2017-05-11 21:45:56

标签: mysql sparql rdf graphdb blank-nodes

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

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

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

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 ;}
                     }
}

1 个答案:

答案 0 :(得分:0)

@Wences,AKSW回答你,请仔细阅读。 你没有在CONSTRUCT部分使用?registerRow,这就是每行执行一次的原因。