如何为SPARQL查询添加WHERE子句筛选PROVINCIA为Vicenza的学校
解决SPARQL筛选Vicenza地区学校的问题
先修正原始查询里的重复前缀定义,再添加筛选条件即可,修改后的完整代码如下:
PREFIX miur: <http://www.miur.it/ns/miur#> SELECT ?AnnoScolastico ?AreaGeografica ?Regione ?Provincia ?CodiceIstitutoRiferimento ?DenominazioneIstitutoRiferimento ?CodiceScuola ?DenominazioneScuola ?IndirizzoScuola ?CAPScuola ?CodiceComuneScuola ?DescrizioneComune ?DescrizioneCaratteristicaScuola ?DescrizioneTipologiaGradoIstruzioneScuola ?IndicazioneSedeDirettivo ?IndicazioneSedeOmnicomprensivo ?IndirizzoEmailScuola ?IndirizzoPecScuola ?SitoWebScuola ?SedeScolastica { graph ?g { ?S miur:ANNOSCOLASTICO ?AnnoScolastico. ?S miur:AREAGEOGRAFICA ?AreaGeografica. ?S miur:CAPSCUOLA ?CAPScuola. ?S miur:CODICECOMUNESCUOLA ?CodiceComuneScuola. ?S miur:CODICEISTITUTORIFERIMENTO ?CodiceIstitutoRiferimento. ?S miur:CODICESCUOLA ?CodiceScuola. ?S miur:DENOMINAZIONEISTITUTORIFERIMENTO ?DenominazioneIstitutoRiferimento. ?S miur:DENOMINAZIONESCUOLA ?DenominazioneScuola. ?S miur:DESCRIZIONECARATTERISTICASCUOLA ?DescrizioneCaratteristicaScuola. ?S miur:DESCRIZIONECOMUNE ?DescrizioneComune. ?S miur:DESCRIZIONETIPOLOGIAGRADOISTRUZIONESCUOLA ?DescrizioneTipologiaGradoIstruzioneScuola. ?S miur:INDICAZIONESEDEDIRETTIVO ?IndicazioneSedeDirettivo. ?S miur:INDICAZIONESEDEOMNICOMPRENSIVO ?IndicazioneSedeOmnicomprensivo. ?S miur:INDIRIZZOEMAILSCUOLA ?IndirizzoEmailScuola. ?S miur:INDIRIZZOPECSCUOLA ?IndirizzoPecScuola. ?S miur:INDIRIZZOSCUOLA ?IndirizzoScuola. ?S miur:PROVINCIA ?Provincia. ?S miur:REGIONE ?Regione. ?S miur:SITOWEBSCUOLA ?SitoWebScuola. OPTIONAL {?S miur:SEDESCOLASTICA ?SedeScolastica } # 添加筛选条件,只保留PROVINCIA为Vicenza的记录 FILTER (?Provincia = 'Vicenza') } } LIMIT 50
关键修改说明:
- 移除了重复的
PREFIX miur: <http://www.miur.it/ns/miur#>定义,避免冗余 - 在graph块内的三元组末尾添加
FILTER (?Provincia = 'Vicenza'),精准筛选出目标地区的学校
另外还有一种更直接的写法,把?S miur:PROVINCIA ?Provincia.替换成?S miur:PROVINCIA 'Vicenza'.,同样能实现筛选,此时SELECT中的?Provincia会返回固定值'Vicenza',适合不需要动态查看该字段的场景:
PREFIX miur: <http://www.miur.it/ns/miur#> SELECT ?AnnoScolastico ?AreaGeografica ?Regione ?Provincia ?CodiceIstitutoRiferimento ?DenominazioneIstitutoRiferimento ?CodiceScuola ?DenominazioneScuola ?IndirizzoScuola ?CAPScuola ?CodiceComuneScuola ?DescrizioneComune ?DescrizioneCaratteristicaScuola ?DescrizioneTipologiaGradoIstruzioneScuola ?IndicazioneSedeDirettivo ?IndicazioneSedeOmnicomprensivo ?IndirizzoEmailScuola ?IndirizzoPecScuola ?SitoWebScuola ?SedeScolastica { graph ?g { ?S miur:ANNOSCOLASTICO ?AnnoScolastico. ?S miur:AREAGEOGRAFICA ?AreaGeografica. ?S miur:CAPSCUOLA ?CAPScuola. ?S miur:CODICECOMUNESCUOLA ?CodiceComuneScuola. ?S miur:CODICEISTITUTORIFERIMENTO ?CodiceIstitutoRiferimento. ?S miur:CODICESCUOLA ?CodiceScuola. ?S miur:DENOMINAZIONEISTITUTORIFERIMENTO ?DenominazioneIstitutoRiferimento. ?S miur:DENOMINAZIONESCUOLA ?DenominazioneScuola. ?S miur:DESCRIZIONECARATTERISTICASCUOLA ?DescrizioneCaratteristicaScuola. ?S miur:DESCRIZIONECOMUNE ?DescrizioneComune. ?S miur:DESCRIZIONETIPOLOGIAGRADOISTRUZIONESCUOLA ?DescrizioneTipologiaGradoIstruzioneScuola. ?S miur:INDICAZIONESEDEDIRETTIVO ?IndicazioneSedeDirettivo. ?S miur:INDICAZIONESEDEOMNICOMPRENSIVO ?IndicazioneSedeOmnicomprensivo. ?S miur:INDIRIZZOEMAILSCUOLA ?IndirizzoEmailScuola. ?S miur:INDIRIZZOPECSCUOLA ?IndirizzoPecScuola. ?S miur:INDIRIZZOSCUOLA ?IndirizzoScuola. ?S miur:PROVINCIA 'Vicenza'. # 直接绑定值实现筛选 ?S miur:REGIONE ?Regione. ?S miur:SITOWEBSCUOLA ?SitoWebScuola. OPTIONAL {?S miur:SEDESCOLASTICA ?SedeScolastica } } } LIMIT 50
内容的提问来源于stack exchange,提问作者LittleIron
相关产品推荐
相关产品推荐

