0

私は Turtle 形式のファイルを初めて使用し、SPARQL でクエリを実行しています。解決すべき質問がたくさんありますので、お役に立てれば幸いです。

私はequipamentsCURT3.ttlというファイルを持っており、以下が含まれています:

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix v: <http://www.w3.org/2006/vcard/ns#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://opendata.gencat.cat/recursos/equipaments/30883> a v:VCard ;
v:adr [ a v:Work ;
        v:country-name "Spain" ;
        v:locality "Sabadell" ;
        v:postal-code "08202" ;
        v:region "Vallès Occidental" ;
        v:street-address " c.  Sant Josep" ] ;
v:category "2. Parvulari"@ca,
    "3. Educació primària"@ca,
    "4. Educació secundària obligatòria"@ca,
    "Educació. Formació"@ca,
    "Ensenyaments de règim general"@ca ;
v:fn "Escolàpies Sabadell"@ca ;
v:geo [ v:latitude 4.154826e+01 ;
        v:longitude 2.111243e+00 ] ;
v:nickname "Escolàpies Sabadell"@ca ;
v:tel [ a v:Pref,
            v:Tel,
            v:Work ;
        rdf:value "937255348" ] .

<http://opendata.gencat.cat/recursos/equipaments/31264> a v:VCard ;
v:adr [ a v:Work ;
        v:country-name "Spain" ;
        v:locality "Molins de Rei" ;
        v:postal-code "08750" ;
        v:region "Baix Llobregat" ;
        v:street-address " c.  Ntra. Sra. de Lourdes" ] ;
v:category "4. Educació secundària obligatòria"@ca,
    "7. Batxillerat"@ca,
    "8. Cicles formatius d'FP de grau mitjà (CFPM)"@ca,
    "9. Cicles formatius d'FP de grau superior (CFPS)"@ca,
    "Educació. Formació"@ca,
    "Ensenyaments de règim general"@ca ;
v:fn "Institut Bernat el Ferrer"@ca ;
v:geo [ v:latitude 4.14105e+01 ;
        v:longitude 2.02704e+00 ] ;
v:nickname "Institut Bernat el Ferrer"@ca ;
v:tel [ a v:Pref,
            v:Tel,
            v:Work ;
        rdf:value "936683762" ] .

<http://opendata.gencat.cat/recursos/equipaments/31265> a v:VCard ;
v:adr [ a v:Work ;
        v:country-name "Spain" ;
        v:locality "Castellar del Vallès" ;
        v:postal-code "08211" ;
        v:region "Vallès Occidental" ;
        v:street-address " NC  Bonavista" ] ;
v:category "2. Parvulari"@ca,
    "3. Educació primària"@ca,
    "Educació. Formació"@ca,
    "Ensenyaments de règim general"@ca ;
v:fn "Escola Bonavista"@ca ;
v:geo [ v:latitude 4.161903e+01 ;
        v:longitude 2.091745e+00 ] ;
v:nickname "Escola Bonavista"@ca ;
v:tel [ a v:Pref,
            v:Tel,
            v:Work ;
        rdf:value "937144195" ] .

Python3.5 と RDFLib ( https://github.com/RDFLib/rdflib ) というライブラリを使用しています。equipamentsCURT.rdf というファイルから読み取り、equipamentsCURT3.ttl にシリアル化し、機器に関連するすべての情報を取得する必要があります。たとえば、機器 30883 ( http://opendata.gencat.cat/recursos/equipaments/30883 )の場合、 v:adr,v:category,v:fn,v:geo と v:tel が必要です。このデータを取得するために SPARQL を使用していますが、クエリが機能しない理由がわかりません。情報を照会する方法に非常に混乱しています。

これが私のコードです:

import rdflib , pprint
from rdflib import URIRef, Graph
from rdflib.plugins import sparql

g = Graph()
g.load("equipamentsCURT3.ttl", format='turtle')

queryTest = 'prefix v: <http://www.w3.org/2006/vcard/ns#> ' \
'select ?y where {?x  a <http://opendata.gencat.cat/recursos/equipaments 30883>; ?y v:VCard .}'
qresult = g.query(queryTest)

for st in qresult:
 print rdflib.term.Literal(st).value
4

1 に答える 1