Linked Open Data, SPARQL e l’End Point di AGID

Linked Open Data, SPARQL e l’End Point di AGID

 Sezione riportata da : http://www.digitpa.gov.it/notizie/open-data-5-stelle-spc
[[ Dal 20/02/2012 è online SPCDATA (spcdata.digitpa.gov.it) con i dati dell’Indice della Pubblica Amministrazione (IPA) nel formato 5 Star del W3C (il World Wide Web Consortium) e un ambiente che consente di realizzare interrogazioni specializzate. IPA contiene – tra gli altri – gli indirizzi di Posta Elettronica Certificata, quelli postali, le email, i servizi offerti dalle pubbliche amministrazioni, e altre informazioni di circa 21.000 pubbliche amministrazioni. La fruibilità in modalità open dell’IPA è stata avviata con la pubblicazione dei relativi dati in formato CSV, in aggiunta all’accesso preesistente LDAP (interconnessione applicativa che consente di fare un download parziale o totale). Oltre 400 utenti, in prevalenza aziende e professionisti, si sono registrati per accedere tramite LDAP, mentre in due settimane sono stati effettuati oltre 200 download dei dati in formato CSV, numeri significativi e incoraggianti.

L’avvio di SPCDATA, oltre a costituire uno stimolo allo sviluppo degli open data, consente di aggiungere servizi per l’interoperabilità semantica al framework italiano per l’interoperabilità (costituito appunto da SPC), allo scopo di rendere SPC stesso allineato al framework europeo (EIF), come prevede la Digital Agenda europea indicando tale azione (actions n.24 e n. 26) da realizzare entro il 2013 da parte dei paesi membri. Il lavoro già avviato è un ottimo punto di partenza per un’estensione significativa che riesca ad abbracciare l’intero Sistema Pubblico di Connettività e Cooperazione: ogni giorno viene prodotta e gestita un’ingente mole di dati pubblici su SPC, grazie anche al supporto delle infrastrutture nazionali condivise gestite da DigitPA. L’insieme di questi dati può pertanto essere sfruttato pienamente per creare un Linked Open Data di SPC fruibile da tutte le pubbliche amministrazioni, dai cittadini e dalle imprese.]]

Tecnicamente l’uso dell’ End Point : http://spcdata.digitpa.gov.it:8899/sparql  funziona come la porta di accesso per un super DB con i dati delle PA censite.
 

Esempi : Volendo sapere tutte le amministrazioni che assomigliano a “COMUN AGRAT” .. si  rimuove tutto ciò che non è A-Z0-9_ e spazi  diventa COMUN AGRAT  e si trasformano gli spazi in qualsiasi cosa… .*, inoltre si trasformano i non A-Z0-9_ in \W* quindi

COMUN.*AGRAT
 
select ?x ?z where 

   ?x <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>    
   <http://spcdata.digitpa.gov.it/Amministrazione> . ?x 
   <http://www.w3.org/2000/01/rdf-schema#label> ?z 
   FILTER regex(?z, “COMUN.*AGRAT”, “i”) 
} LIMIT 20
 Risultato:
http://spcdata.digitpa.gov.it/Amministrazione/c_a087 (uri)
()
Comune di Agrate Brianza (literal)
http://spcdata.digitpa.gov.it/Amministrazione/c_a088 (uri)
()
Comune di Agrate Conturbia (literal)
Se si cercanoo le amministrazioni relative a:” “E.N.P.A.” trasformano gli spazi in qualsiasi cosa… .* e trasformando i non A-Z0-9_ in \W* quindi diventa

E\W*N\W*P\W*A\W*

 
select ?x ?z where {
  ?x <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://spcdata.digitpa.gov.it/Amministrazione> .
  ?x <http://www.w3.org/2000/01/rdf-schema#label> ?z 
  FILTER regex(?z, "E\W*N\W*P\W*A\W*", "i")
} LIMIT 20
 Risultato:
x
z
http://spcdata.digitpa.gov.it/Amministrazione/enpals
Ente Nazionale di Previdenza e Assistenza per i Lavoratori dello Spettacolo – ENPALS
http://spcdata.digitpa.gov.it/Amministrazione/enpaia
Ente Nazionale di Previdenza per gli Addetti e per gli Impiegati in Agricoltura – ENPAIA
http://spcdata.digitpa.gov.it/Amministrazione/enpapi
Ente Nazionale di Previdenza e Assistenza della Professione Infermieristica – ENPAPI
http://spcdata.digitpa.gov.it/Amministrazione/fenpa_rm
Fondazione E.N.P.A.M. – Ente Nazionale di Previdenza Ed Assistenza Dei Medici e Degli Odontoiatri
Se invece si vogliono quelle relative a:” “ENPA” si trasformano gli spazi in qualsiasi cosa…  ( .*  ) e se trasformano i non A-Z0-9_ in \W* quindi diventa

ENPA

 
select ?x ?y ?z where {
  ?x <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://spcdata.digitpa.gov.it/Amministrazione> .
  ?x <http://www.w3.org/2000/01/rdf-schema#label> ?z 
  FILTER regex(?z, "ENPA", "i")
} LIMIT 20
 Risultato:
x
z
http://spcdata.digitpa.gov.it/Amministrazione/enpals
Ente Nazionale di Previdenza e Assistenza per i Lavoratori dello Spettacolo – ENPALS
http://spcdata.digitpa.gov.it/Amministrazione/enpaia
Ente Nazionale di Previdenza per gli Addetti e per gli Impiegati in Agricoltura – ENPAIA
http://spcdata.digitpa.gov.it/Amministrazione/enpapi
Ente Nazionale di Previdenza e Assistenza della Professione Infermieristica – ENPAPI

Se si vogliono vedere gli elementi che compongono un uri

select ?x ?y  where {
  <http://spcdata.digitpa.gov.it/Amministrazione/enpals> ?x ?y  .
} 
 Risultato:
http://www.w3.org/1999/02/22-rdf-syntax-ns#type (uri)
http://spcdata.digitpa.gov.it/Amministrazione (uri)
http://www.w3.org/2000/01/rdf-schema#label (uri)
Ente Nazionale di Previdenza e Assistenza per i Lavoratori dello Spettacolo – ENPALS (literal)
http://xmlns.com/foaf/0.1/homepage (uri)
http://www.enpals.it (literal)
http://www.geonames.org/ontology#locatedIn (uri)
http://spcdata.digitpa.gov.it/Comune/H501 (uri)
http://spcdata.digitpa.gov.it/dominio_pec (uri)
@pcert.enpals.it (literal)
http://spcdata.digitpa.gov.it/indirizzo (uri)
Viale Regina Margherita, 206 (literal)
http://spcdata.digitpa.gov.it/eroga (uri)
http://spcdata.digitpa.gov.it/Servizio/enpals-dirgen-1 (uri)
http://spcdata.digitpa.gov.it/eroga (uri)
http://spcdata.digitpa.gov.it/Servizio/enpals-dirgen-2 (uri)
http://spcdata.digitpa.gov.it/eroga (uri)
http://spcdata.digitpa.gov.it/Servizio/enpals-1 (uri)
http://spcdata.digitpa.gov.it/eroga (uri)
http://spcdata.digitpa.gov.it/Servizio/enpals-2 (uri)
http://spcdata.digitpa.gov.it/PEC (uri)
enpals.direzione.generale@pcert.enpals.it (literal)
http://spcdata.digitpa.gov.it/codice_istat (uri)
138380011201 (literal)
http://spcdata.digitpa.gov.it/responsabile (uri)
http://spcdata.digitpa.gov.it/Responsabile/resp-enpals (uri)
http://www.w3.org/ns/org#classification
http://spcdata.digitpa.gov.it/CategoriaAmministrazione/62
http://spcdata.digitpa.gov.it/codice_fiscale (uri)
02796270581 (literal)
Anche ricorsivamente…
 
select ?x ?y  where {
  <http://spcdata.digitpa.gov.it/CategoriaAmministrazione/62> ?x ?y  .
} 
x
y
http://www.w3.org/1999/02/22-rdf-syntax-ns#type
http://spcdata.digitpa.gov.it/CategoriaAmministrazione
http://www.w3.org/2000/01/rdf-schema#label
Enti Nazionali di Previdenza e Assistenza Sociale
http://spcdata.digitpa.gov.it/sigla_categoria_amministrazione
L3
http://spcdata.digitpa.gov.it/tipologia_amministrazione
L
http://www.w3.org/2004/02/skos/core#inScheme
http://spcdata.digitpa.gov.it/ClassificazionePA-S13
http://www.w3.org/ns/org#classification
http://spcdata.digitpa.gov.it/AmministrazioneLocale
E se voglio vedere cos’è una classe definita non da standard internazionali ?
 
select ?x ?y  where {
  <http://spcdata.digitpa.gov.it/CategoriaAmministrazione> ?x ?y  .
} 
x
y
http://www.w3.org/1999/02/22-rdf-syntax-ns#type
http://www.w3.org/2000/01/rdf-schema#Class
http://www.w3.org/1999/02/22-rdf-syntax-ns#type
http://www.w3.org/2004/02/skos/core#Concept
http://www.w3.org/2000/01/rdf-schema#label
CategoriaAmministrazione
http://www.w3.org/2000/01/rdf-schema#label
Categoria Amministrazione
http://www.w3.org/2000/01/rdf-schema#comment
Questa classe rappresenta tutte le categorie di pubbliche amministrazioni italiane secondo la classificazione ufficiale S13 dell’ISTAT.
http://www.w3.org/2000/01/rdf-schema#comment
Questa classe rappresenta tutte le categorie di pubbliche amministrazioni italiane secondo la classificazione ufficiale ISTAT.
http://www.w3.org/2004/02/skos/core#inScheme
http://spcdata.digitpa.gov.it/ClassificazionePA-S13
Mentre se una proprietà o classe è definita da standard internazionali, da browser : http://www.geonames.org/ontology#locatedIn

The GeoNames Ontology

The GeoNames Ontology makes it possible to add geospatial semantic information
to the Word Wide Web.
All over 6.2 million geonames toponyms now have a unique
URL with a corresponding RDF web service.
Other services describe the relation
between toponyms …

e Navigando nell’ontologia trovo la spiegazione:

 
<owl:ObjectProperty rdf:about="#locatedIn">
        <rdfs:comment xml:lang="en">
        Indicates that the subject resource is located in the object feature
        </rdfs:comment>
        <rdfs:label xml:lang="en">located in</rdfs:label>
        <rdfs:range rdf:resource="#Feature"/>
</owl:ObjectProperty>

Se voglio vedere tutti gli elementi che mi interessano in un colpo solo?

 
select ?denominazione ?comune ?codcatastale ?indirizzofull  ?homepage ?PEC ?categoria  where {
  ?x <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://spcdata.digitpa.gov.it/Amministrazione> .
  ?x <http://www.w3.org/2000/01/rdf-schema#label> ?denominazione .
  FILTER regex(?denominazione, “COMUN.*AGRAT”, “i”) .
  OPTIONAL { ?x <http://www.w3.org/ns/locn#address> ?indirizzo } .
  OPTIONAL { ?x <http://xmlns.com/foaf/0.1/homepage> ?homepage } .
  OPTIONAL { ?x <http://spcdata.digitpa.gov.it/PEC> ?PEC } .
  OPTIONAL { ?x <http://www.w3.org/ns/org#classification> ?cat } .
  OPTIONAL { ?cat <http://www.w3.org/2000/01/rdf-schema#label> ?categoria } .
  OPTIONAL { ?x <http://www.geonames.org/ontology#locatedIn> ?comcat } .
  OPTIONAL { ?comcat <http://www.w3.org/2000/01/rdf-schema#label> ?comune } .
  OPTIONAL { ?indirizzo <http://www.w3.org/ns/locn#fullAddress> ?indirizzofull } .
  OPTIONAL { ?comcat <http://spcdata.digitpa.gov.it/codice_catastale> ?codcatastale }
} LIMIT 20
denominazione
comune
codcatastale
indirizzofull
homepage
PEC
categoria
Comune di Agrate Brianza
Agrate Brianza
A087
Via San Paolo, 24, 20864, Agrate Brianza
www.comune.agratebrianza.mb.it
comune.agratebrianza@pec.regione.lombardia.it
Comuni
Comune di Agrate Conturbia
Agrate Conturbia
A088
Via Roma N. 41, 28010, Agrate Conturbia
www.comune.agrate conturbia.no.it
agrate.conturbia@cert.ruparpiemonte.it
Comuni