我想从我的模型中获取每个ocd:startdate
的所有ocd:deputato
值。但是,如下面的代码段所示,该值位于ocd:aderisce
内。如何检索值?
<ocd:deputato rdf:about="deputato.rdf/d21950_9">
<rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
>RAFFAELE RUSSO, IX Legislatura della Repubblica</rdfs:label>
<dc:description xml:lang="it">Laurea in giurisprudenza; avvocato</dc:description>
<ocd:aderisce rdf:parseType="Resource">
<ocd:startDate>19830712</ocd:startDate>
</ocd:aderisce>
…
答案 0 :(得分:2)
AndyS's comment是对的;如果您提供我们可以使用的数据,那么在此处提供帮助要容易得多。我们可以模拟数据,但这并不能很好地利用我们的时间,这意味着您可以根据自己的问题调整我们提供的答案。无论如何,在这种特殊情况下,它并不太难。您的数据基本上是:
<rdf:RDF
xmlns:ocd="urn:ocd:"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="urn:dc:"
xmlns:rdfs="urn:rdfs:">
<ocd:deputato rdf:about="urn:deputato.rdf/d21950_9">
<rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
>RAFFAELE RUSSO, IX Legislatura della Repubblica</rdfs:label>
<dc:description xml:lang="it">Laurea in giurisprudenza; avvocato</dc:description>
<ocd:aderisce rdf:parseType="Resource">
<ocd:startDate>19830712</ocd:startDate>
</ocd:aderisce>
</ocd:deputato>
</rdf:RDF>
然而,Turtle序列化更容易阅读,而且它更接近SPARQL的语法:
@prefix ocd: <urn:ocd:> .
@prefix dc: <urn:dc:> .
@prefix rdfs: <urn:rdfs:> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
<urn:deputato.rdf/d21950_9>
a ocd:deputato ;
dc:description "Laurea in giurisprudenza; avvocato"@it ;
ocd:aderisce [ ocd:startDate "19830712" ] ;
rdfs:label "RAFFAELE RUSSO, IX Legislatura della Repubblica"^^<http://www.w3.org/2001/XMLSchema#string> .
正如我们所看到的,ocd:deputato
实例是由属性ocd:aderisce
与另一个具有ocd:startDate
属性的资源相关联的(只是一个字符串,而不是{{1} }})。我们可以使用如下查询提取xsd:date
s的日期:
ocd:deputato
prefix ocd: <urn:ocd:>
select ?deputato ?startDate where {
?deputato a ocd:deputato ;
ocd:aderisce/ocd:startDate ?startDate .
}