Open Data Unofficial del Comune di Catania

Powered by

Cristiano Longo - longo@dmi.unict.it

Nelle Linee guida per la valorizzazione del patrimonio informativo pubblico, l'AgID indica alcune tecnologie attraverso le quali pubblicare i dati in possesso delle Pubbliche Amministrazioni. Molte di queste sono vocabolari sviluppati nell'ambito dei Linked Data. In questo documento riportiamo un esperimento di modellazione delle unità operative del Comune di Catania, svolto nell'ambito del progetto PRISMA, dei servizi offerti da una pubblica amministrazione. In particolare, vengono descritti i vocabolari coinvolti (intesi nel senso del Web Semantico), vengono riportati alcuni esempi di modellazione e, infine, alcuni esempi di interrogazioni SPARQL.

I criteri di modellazione ed i vocabolari utilizzati nella creazione dell'ontologia sono ulteriormente descritti nel rapporto tecnico a corredo di questo documento Linked Open Data per i Servizi Pubblici.

I dati raccolti in questo esperimento sono messi a disposizione di chiunque voglia utilizzarli attraverso un endpoint SPARQL, gentilmente offerto da DYDRA, disponibile all'indirizzo http://dydra.com/cristianolongo/comune-di-catania/sparql. In alternativa, è possibile scaricare integralmente l'ontologia delle strutture del comune di Catania.

AVVERTENZA: i dati presenti ontologia sono stati ottenuti manualmente dal sito, per cui non sono esenti da errori e imprecisioni.

Esorto infine tutti gli interessati (comuni che vogliano realizzare ontologie simili o sviluppatori che vogliano utilizzare l'ontologia qui presentata) a contattarmi.

Riconoscimenti

Questo documento è stato realizzato nell'ambito del PON PRISMA - PiattafoRme cloud Interoperbili per SMArt-government.

Il sito e il file scaricabile contenente l'ontologia sono ospitati sui server del Dipartimento di Matematica ed Informatica dell'Università degli Studi di Catania.

L'ontologia viene inoltre conservata e fornita mediante un endpoint SPARQL su uno spazio offerto gratuitamente da Dydra.

Il motore di inferenza pellet è stato utilizzato per arricchire l'ontologia che viene fornita attraverso l'endpoint SPARQL.

L'esecuzion delle query nella sezione Esempi di Interrogazioni SPARQL avviene in javascript utilizzando la base di conoscenza. Tali esempi sono stati realizzati con la collaborazione di Andrea Costazza.

Architettura e Vocabolari

Il primo passo per la modellazione di un comune, così come di ogni altra entità tangibile o intangibile, è l'identificazione di una URI attraverso la quale l'oggetto in questione verrà riferito. Per la modellazione di Pubbliche Amministrazioni ci viene in aiuto il Sistema Pubblico di Connettività e Cooperazione che, tra le altre cose, fornisce l'elenco completo delle pubbliche amministrazioni italiane. In questo dataset, il comune di Catania viene identificato con la seguente URI:

http://spcdata.digitpa.gov.it/browse/page/Amministrazione/c_c351 .
	

I vocabolari utilizzati per descrivere la struttura organizzativa e gli uffici del comune di Catania e alcuni dei servizi offerti da questo sono:

Citiamo inoltre i due vocabolari WSG84 lat/lon, vocabolario di riferimento per la georeferenziazione che è stato impiegato per fornre le coordinate dei luoghi fisici di cui sopra, e FOAF per la rappresentazione di agenti e gruppi di agenti, che viene esteso da ORG.

I namespace utilizzati nel seguito del documento sono riassunti nella seguente tabella.

Namespace
PrefissoNamespace
ccthttp://www.comune.catania.it/servicesont.owl#
locnhttp://www.w3.org/ns/locn#
orghttp://www.w3.org/ns/org#
cpsvhttp://purl.org/vocab/cpsv#
wsg84http://www.w3.org/2003/01/geo/wgs84_pos#
foafhttp://xmlns.com/foaf/0.1/
dctermshttp://purl.org/dc/terms/

Luoghi ed Indirizzi

Il vocabolario LOCN definisce tre classi principali per rappresentare i luoghi fisici:

  • locn:Location,
  • locn:Address e
  • locn:Geometry.

La classe locn:Location può essere usata per modellare luoghi e località quali ad esempio città, stati, monumenti e palazzi. Una istanza della classe locn:Location è caratterizzata da un locn:geographicName, specificato come testo semplice. Per l'identificazione del nome geografico si consiglia di seguire le linee guida INSPIRE Data Specification on Geographical Names. In oltre, la proprietà locn:geographicIdentifier può essere utilizzata per collegare l'istanza di locn:Location al corrispondente individuo nel dataset geonames.

La classe locn:Address modella invece gli indirizzi attraverso le seguenti proprietà:

  • locn:fullAddress per fornire una rappresntazione completa e comprensibile agli umani dell'indirizzo;
  • locn:poBox ad indicare la eventuale casella postale;
  • locn:thoroughfare per il nome della via (o del viadotto o del fiume);
  • locn:locatorDesignator per il numero civico;
  • locn:locatorName per l'eventuale nome dell'edificio;
  • locn:addressArea ad indicare un'area che non rappresenti una entità amministrativa (ad esempio un quartiere o una contrada);
  • locn:postName per il nome della città.

Infine, al classe locn:Geometry può essere utilizzata per fornire una collocazione spaziale della risorsa in questione tramite valori qantitativi, usualmente latitudine e longitudine. Nell'implementazione presentata in questa sede si è scelto di utilizzare il vocabolario WSG84 lat/lon. In particolare, le istanze della classe locn:Geometry sono state implementate come istanze della class wsg84:Point.

Le istanze di locn:Address e locn:Geometry possono essere associate, mediante le proprietà locn:address e locn:geometry, rispettivamente, direttamente alla risorsa che si intende localizzare. In alternativa, esse possono essere associate ad una istanza di locn:Location, a sua volta associata alla risorsa da localizzare con la proprietà locn:location.

Nell'implementazione che presentiamo qui è stata scelta la prima opzione. Nel seguente frammento di codice riportiamo un esempio della localizzazione di un elemento all'interno di un palazzo.

Esempio di Localizzazione
<org:Site rdf:about="&cct;polizia_municipale_site">
	<org:siteAddress>
		<locn:Address rdf:about="&cct;polizia_municipale_address">
			<rdfs:label>Piazza Spedini, 5/A, 95125, Catania, Italia</rdfs:label>
			<locn:fullAddress>Piazza Spedini, 5/A, 95125, Catania, Italy</locn:fullAddress>
			<locn:thoroughfare>Piazza Spedini</locn:thoroughfare>
			<locn:locatorDesignator>5/A</locn:locatorDesignator>
			<locn:postCode>95125</locn:postCode>
			<locn:postName>Catania</locn:postName>
			<locn:adminUnitL1>IT</locn:adminUnitL1>
		</locn:Address>
	</org:siteAddress>
	<locn:geometry>
		<locn:Geometry rdf:about="&cct;polizia_municipale_geometry">
			<geo:lat>37.514636</geo:lat>
			<geo:long>15.069745</geo:long>
		</locn:Geometry>
	</locn:geometry>
</org:Site>
				

Servizi Pubblici

L'erogazione di un servizio pubblico, da parte di una pubblica amministrazione o di un ente di altra natura che agisca per conto di questa, consiste nell'esecuzione di una procedura che porti beneficio ad un cittadino, un ente economico o ad un altro ente pubblico. Esempi di servizi pubblici sono ad esempio quelli concernenti il rilascio di certificati e autorizzazioni, le prestazioni a sostegno del reddito, le visure catastali, etc.

Le linee guida per la valorizzazione del patrimonio informativo pubblico citano il vocabolario CPSV per la descrizione dei servizi pubblici. In questo vocabolario, i servizi pubblici vengono modellati come istanze della classe cpsv:PublicService e di norma per ognuno di questi viene fornito un titolo e una descrizione esplicativa mediante le proprietà dcterms:title e dcterms:description, rispettivamente.

Un dato rilevante, in termini di interoperabilità ed effettiva usabilità dell'informazione, è la tipologia del servizio. La tipologia del servizio va specificata attraverso la proprietà dcterms:type. Si consiglia di fare riferimento al tesauro ESD Toolkit's Service List . Più in dettaglio, l'individuo corrispondente alla tipologia del servizio in questione si ottiene concatenando l'identificativo della tipologia nella lista (indicato tra parentesi nella riga corrispondente) alla URI http://id.esd.org.uk/service/. Quindi, ad esempio, l'individuo corrispondente alla tipologia di servizio con identificativo 523 (Commercial clinical waste disposal) sarà identificato dalla seguente URI:

			
http://id.esd.org.uk/service/523
			
			

La classe cpsv:Rule viene utilizzata per modellare norme, decreti, provvedimenti legislativi e amministrativi. I servizi pubblici vanno collegati alla normativa di riferimento che li stabilisce e che ne regola l'erogazione attraverso la proprietà cpsv:follows. Per ogni istanza di cpsv:Rule può essere specificato il contesto legislativo nel quale la norma è stata sviluppata. Questo è il caso ad esempio di leggi emanate a seguito di direttive della Comunità Europea. Tale contesto legislativo viene indicato come istanza della classe cpsv:FormalFramework e la norma va collegata a questo con la proprietà cpsv:implements. Per le normative sviluppate nell'ambito dell'Unione Europea e dei paesi membri è possibile fare riferimento allo standard ELI. In particolare, riguardo alla legislazione emanata dalle istituzioni Europee, le URI da utilizzare hanno il seguente schema:

http : //eur-lex.europa.eu/eli/typeof document/yearof adoption/numberofdocument.
			

I canali attraverso i quali un utente può entrare in contatto con un servizio pubblico vengono specificati attraverso la proprietà cpsv:hasChannel. Il vocabolario CPSV definisce due sottoproprietà di cpsv:hasChannel:

Per la rappresentazione dei luoghi fisici, nel caso in cui si decida di usare cpsv:physicallyLocatedAt, è possibile fare riferimento alla Sezione Luoghi e Indirizzi. Si noti infine che non viene preclusa la possibilità di definire altre tipologie di canali usando la generica proprietà cpsv:hasChannel o definendo ulteriori sottoproprietà della stessa.

Esempio di Servizio Pubblico: Conferimento di Farmaci Scaduti
<cpsv:PublicService rdf:about="&cct;farmaci_scaduti">
	<rdfs:label>Conferimento farmaci scaduti</rdfs:label>
	<dcterms:title>Conferimento farmaci scaduti</dcterms:title>
	<dcterms:description>Le sostanze tossiche contenute nei farmaci scaduti possono inquinare 
	il suolo e l'acqua. I farmaci scaduti, raccolti separatamente e conferiti negli appositi contenitori in 
	prossimità di farmacie, possono essere trattati da ditte specializzate in modo tale che essi 
	non possano nuocere alla nostra salute.  E' quindi necessario smaltirli separatamente, secondo le 
	procedure previste dalla legge. Tra le normative di riferimento, c'è anche la direttiva del 
	Parlamento europeo (la 2004/27/CE), che disciplina l'uso dei "medicinali per uso umano" 
	e stabilisce che "gli Stati membri introducono, per i medicinali inutilizzati o scaduti, idonei 
	sistemi di raccolta". La raccolta capillare in alcune delle farmacie della nostra città 
	consentirà il recupero ed il successivo corretto smaltimento dei farmaci, delle siringhe e 
	degli aghi usati. Il contenitore sarà alloggiato all'interno o in prossimità  della farmacia, 
	in posizione visibile e facilmente raggiungibile dai cittadini. Il cittadino, seguendo le istruzioni, 
	dovrà inserirvi unicamente il farmaco, l'ago o la siringa, trattenendo quindi l'involucro
	in carta o cartoncino che dovrà essere smaltito nella raccolta differenziata della carta.
	</dcterms:description>
	<foaf:homepage rdf:resource="http://www.comune.catania.it/il-comune/uffici/ambiente/farmaci-scaduti/" />
	<dcterms:type rdf:resource="http://id.esd.org.uk/service/523" />
	<cpsv:follows>
		<cpsv:Rule rdf:about="&cct;farmaci_scaduti_rule">
			<cpsv:implements rdf:resource="http://eur-lex.europa.eu/eli/dir/2004/27" />
		</cpsv:Rule>
	</cpsv:follows>
	<cpsv:physicallyLocatedAt rdf:resource="via_garibaldicatania24it" />
	<cpsv:physicallyLocatedAt rdf:resource="via_plebiscitocatania534it" />
	<cpsv:physicallyLocatedAt rdf:resource="via_etneacatania79it" />
	<cpsv:physicallyLocatedAt rdf:resource="piazza_carlo_albertocatania18it" />
	<cpsv:physicallyLocatedAt rdf:resource="via_francesco_crispicatania195it" />
	<cpsv:physicallyLocatedAt rdf:resource="viale_mario_rapisardicatania320it" />
	<cpsv:physicallyLocatedAt rdf:resource="viale_librinocatania15it" />
	<cpsv:physicallyLocatedAt rdf:resource="piazza_stesicorocatania36it" />
	<cpsv:physicallyLocatedAt rdf:resource="via_garibaldicatania376it" />
	<cpsv:physicallyLocatedAt rdf:resource="via_etneacatania238it" />
	<cpsv:physicallyLocatedAt rdf:resource="piazza_san_domenicocatania31it" />
	<cpsv:physicallyLocatedAt rdf:resource="via_cristoforo_colombocatania25it" />
	<cpsv:physicallyLocatedAt rdf:resource="via_etneacatania274it" />
	<cpsv:physicallyLocatedAt rdf:resource="via_vittorio_emanuelecatania54it" />
	<cpsv:physicallyLocatedAt rdf:resource="via_del_boscocatania70it" />
	<cpsv:physicallyLocatedAt rdf:resource="via_vittorio_emanuelecatania114it" />
	<cpsv:physicallyLocatedAt rdf:resource="via_gambinocatania52it" />
	<cpsv:physicallyLocatedAt rdf:resource="via_dei_sanguinellicatania5it" />
	<cpsv:physicallyLocatedAt rdf:resource="via_della_concordiacatania211it" />
	<cpsv:physicallyLocatedAt rdf:resource="via_san_giuseppe_la_renacatania98_hit" />
	<cpsv:physicallyLocatedAt rdf:resource="corso_indipendenzacatania99it" />
	<cpsv:physicallyLocatedAt rdf:resource="viale_mario_rapisardicatania61it" />
	<cpsv:physicallyLocatedAt rdf:resource="via_vittorio_emanuelecatania248it" />
	<cpsv:physicallyLocatedAt rdf:resource="corso_indipendenzacatania253it" />
	<cpsv:physicallyLocatedAt rdf:resource="via_plebiscitocatania224it" />
	<cpsv:physicallyLocatedAt rdf:resource="via_delle_medaglie_d%27orocatania11it" />
	<cpsv:physicallyLocatedAt rdf:resource="via_san_gaetano_alle_grottecatania38it" />
	<cpsv:physicallyLocatedAt rdf:resource="via_plebiscitocatania391it" />
	<cpsv:physicallyLocatedAt rdf:resource="via_umbertocatania254it" />
	<cpsv:physicallyLocatedAt rdf:resource="viale_vittorio_venetocatania135it" />
	<cpsv:physicallyLocatedAt rdf:resource="piazza_risorgimentocatania43it" />
	<cpsv:physicallyLocatedAt rdf:resource="viale_bummacarocatania6it" />
	<cpsv:physicallyLocatedAt rdf:resource="viale_della_libertacatania57it" />
	<cpsv:physicallyLocatedAt rdf:resource="via_befana_enricocatania7it" />
	<cpsv:physicallyLocatedAt rdf:resource="piazza_santa_maria_di_gesucatania4it" />
	<cpsv:physicallyLocatedAt rdf:resource="via_garibaldicatania74it" />
	<cpsv:physicallyLocatedAt rdf:resource="viale_mario_rapisardicatania349it" />
	<cpsv:physicallyLocatedAt rdf:resource="corso_indipendenzacatania62it" />
	<cpsv:physicallyLocatedAt rdf:resource="via_garibaldicatania328it" />
	<cpsv:physicallyLocatedAt rdf:resource="via_etneacatania39it" />
	<cpsv:physicallyLocatedAt rdf:resource="via_plebiscitocatania116it" />
	<cpsv:physicallyLocatedAt rdf:resource="corso_martiri_della_libertacatania14it" />
	<cpsv:physicallyLocatedAt rdf:resource="stradale_san_teodorocatania6it" />
	<cpsv:physicallyLocatedAt rdf:resource="via_plebiscitocatania329it" />
	<cpsv:physicallyLocatedAt rdf:resource="via_garibaldicatania230it" />
	<cpsv:physicallyLocatedAt rdf:resource="via_belicecatania2it" />
	<cpsv:physicallyLocatedAt rdf:resource="via_lago_di_nicitocatania85it" />
	<cpsv:physicallyLocatedAt rdf:resource="piazza_duomocatania16it" />
	<cpsv:physicallyLocatedAt rdf:resource="via_playacatania115it" />		
</cpsv:PublicService>
			

Strutture Organizzative

In questa sezione vengono riassunte le caratteristiche del vocabolario ORG utilizzate nella nostra ontologia.

Il vocabolario ORG fornisce gli strumenti per descrivere le organizzazioni, pubbliche e private, in termini di struttura, membri e strutture fisiche (edifici, terreni, ...) di proprietà delle organizzazioni o dove queste svolgano le loro attività.

Le organizzazioni vengono modellate come istanze di org:Organization e della sua sottoclasse org:FormalOrganization.

La proprietà org:haSite serve a specificare le sedi fisiche di una organizzazione. org:hasRegisteredSite si usa per indicare la sede legale, mentre org:hasPrimarySite indica il sito presso il quale è possibile accedere all'organizzazione. Ogni sede è espressa con una istanza di org:Site. Per ogni sito è possibile specificare un indirizzo con la proprietà org:siteAddess. Non è presente alcun vincolo sul codominio di questa proprietà, per cui è possibile specificare l'indirizzo utilizzando un qualsiasi vocabolario ben noto. Nell'ontologia che presentiamo qui si è scelto di utilizzare il vocabolario LOCN, descritto nella sezione precedente. Di conseguenza, gli indirizzi sono stati specificati come istanze della classe locn:Address. Inoltre, è stato aggiunto un vincolo per specificare che org:siteAddess è una sotto-proprietà di locn:address.

La classe org:Organization è definita come sottoclasse di foaf:Agent. Di conseguenza, è appropriato utilizzare le proprietà foaf:phone, foaf:mbox e foaf:homepage per indicare numeri di telefono e fax, caselle mail e pagine web associate a organizzazioni e a unità operative. Seguendo quanto indicato nella specifica del vocabolario FOAF, i numeri di telefono vanno rappresentati come individui seguendo l'URI Scheme specificato nello RFC 2806.

Infine, i servizi (nel senso della Sezione Servizi Pubblici) che un comune o una unità operativa fornisce sono indicati attraverso la proprietà cpsv:provides. Si noti che nell'esempio che segue sono indicati solo un sottoinsieme dei servizi che l'unità operativa effettivamente fornisce.

Esempio di Unità Operativa
<org:OrganizationalUnit rdf:about="&cct;direzione_politiche_sociali_famiglia">
	<rdfs:label rdf:datatype="&xsd;string">“Direzione Famiglia e Politiche Sociali</rdfs:label>
	<foaf:phone rdf:resource="tel:+39-095-7422608" />
	<foaf:phone rdf:resource="tel:+39-095-7422609" />
	<foaf:phone rdf:resource="tel:+39-095-7422610" />
	<foaf:phone rdf:resource="fax:+39-095-7422644" />
	<foaf:mbox rdf:resource="mailto:direttore.servizisociali@comune.catania.it" />
	<foaf:homepage rdf:resource="http://www.comune.catania.it/il-comune/uffici/socio-sanitari/" />
	<org:hasPrimarySite>
		<org:Site rdf:about="&cct;direzione_politiche_sociali_famiglia_site">
			<org:siteAddress>
				<locn:Address rdf:about="&cct;direzione_politiche_sociali_famiglia_address">
					<rdfs:label>Via Cardinale Dusmet, 141, Catania, Italia</rdfs:label>
					<locn:fullAddress>Via Cardinale Dusmet 141, Catania, Italy</locn:fullAddress>
					<locn:thoroughfare>Via Cardinale Dusmet</locn:thoroughfare>
					<locn:locatorDesignator>141</locn:locatorDesignator>
					<locn:postName>Catania</locn:postName>
					<locn:adminUnitL1>IT</locn:adminUnitL1>
				</locn:Address>
			</org:siteAddress>
			<locn:geometry>
				<locn:Geometry rdf:about="&cct;direzione_politiche_sociali_famiglia_geometry">
					<geo:lat>37.50129</geo:lat>
					<geo:long>15.09315</geo:long>
				</locn:Geometry>
			</locn:geometry>
		</org:Site>
	</org:hasPrimarySite>
	<cpsv:provides rdf:resource="&cct;asili_nido" />
</org:OrganizationalUnit>
			

La struttura gerarchica di una organizzazione viene espressa tramite la proprietà org:subOrganizationOf e la sua inversa org:hasSubOrganization. Nel caso in cui la sotto-organizzazione abbia un senso solo nel contesto dell'organizzazione principale (ad esempio un dipartimento), essa va rappresentata come istanza di org:OrganizationalUnit e la relazione di questa con l'organzzazione principale tramite le proprietà org:unitOf e org:hasUnit.

Gli uffici del comune di Catania sono raggruppati in due aree, ad eccezzione dell'ufficio di gabinetto, del comando di polizia municipale e della direzione affari legali che non ricadono in alcuna area. Si noti l'ultilizzo di org:FormalOrganization per indicare che il comune è una organizzazione legalmente riconosciuta.

Esempio di Gerarchia per la Struttura Organizzativa
<org:FormalOrganization rdf:about="http://spcdata.digitpa.gov.it/browse/page/Amministrazione/c_c351">
	<rdfs:label rdf:datatype="&xsd;string">Comune di Catania</rdfs:label>
	<org:hasUnit rdf:resource="&cct;gabinetto_sindaco" />
	<org:hasUnit rdf:resource="&cct;polizia_municipale" />
	<org:hasUnit rdf:resource="&cct;direzione_affari_legali" />
	<org:hasUnit>
		<org:OrganizationalUnit rdf:about="&cct;area1">
			<rdfs:label rdf:datatype="&xsd;string">Prima Area di Coordinamento</rdfs:label>
			<org:hasUnit rdf:resource="&cct;direzione_lavori_pubblici_protezione_civile" />
			<org:hasUnit rdf:resource="&cct;direzione_manutenzione_servizi_tecnici" />
			<org:hasUnit rdf:resource="&cct;direzione_ecologia_ambiente_nu" />
			<org:hasUnit rdf:resource="&cct;direzione_politiche_sociali_famiglia" />
			<org:hasUnit rdf:resource="&cct;direzione_istruzione_sport_pari_opportunita" />
			<org:hasUnit rdf:resource="&cct;direzione_risorse_umane_controllo_gestione" />
		</org:OrganizationalUnit>
	</org:hasUnit>
	<org:hasUnit>
		<org:OrganizationalUnit rdf:about="&cct;area2">
			<rdfs:label rdf:datatype="&xsd;string">Seconda Area di Coordinamento</rdfs:label>
			<org:hasUnit rdf:resource="&cct;direzione_ragioneria_provveditorato_economato_autoparco" />
			<org:hasUnit rdf:resource="&cct;direzione_sviluppo_attivita_produttive" />
			<org:hasUnit rdf:resource="&cct;direzione_urbanistica_gestione_territorio" />
			<org:hasUnit rdf:resource="&cct;direzione_cultura_turismo" />
			<org:hasUnit rdf:resource="&cct;direzione_servizi_demografici_decentramento_statistica" />
			<org:hasUnit rdf:resource="&cct;direzione_patrimonio" />
		</org:OrganizationalUnit>
	</org:hasUnit>
</org:FormalOrganization>
			

Accesso ai Dati

Come anticipato nel paragrafo introduttivo, l'ontologia non ufficiale delle strutture organizzative e uffici del comune di Catania è disponibile sia come file scaricabile in formato OWL2 (utile per chi ad esempio volesse integrarla con altri dataset), sia con un endpoint SPARQL, offerto da Dydra. I vantaggi nello sviluppare un applicativo che insista direttamente sull'endpoint SPARQL sono fondamentalmente due: innanzitutto i dati cui farà riferimento l'applicazione saranno quelli aggiornati; inoltre, non è necessario allocare spazio sui propri server per ospitare l'ontologia. Nel nostro caso, l'ontologia fornita attraverso l'endpoint SPARQL è arricchita (rispetto a quella originale fornita come file scaricabile) da un insieme di asserzioni generate per inferenza (ad esempio asserzioni derivanti dalla presenza di chiusure transitive o relazioni inverse). ll processo di arricchimento nel nostro caso è stato eseguito mediante il reasoner pellet.

I dati dell'ontologia presentata qui vengono rilasciati con licenza CC BY 3.0 IT ed il riuso ne viene incoraggiato (invito gli interessati a contattarmi personalmente).

I dati nell'ontologia sono stati inseriti manualmente estrapolandoli dal sito del comune, e come tali potrebbero essere non aggiornati e contenere delle imprecisioni.

Nel seguito sono riportati i punti di accesso all'ontologia non ufficiale del Comune di Catania.

Esempi di Interrogazioni SPARQL

Il resto di questa sezione è dedicato a presentare alcuni esempi di interrogazioni SPARQL.

La seguente query permette di ricavare l'insieme di strutture del comune: aree, uffici e il comune stesso. Si noti che alcuni campi (eg. la casella e-mail, i numeri di telefono ...) sono opzionali perchè potrebbero non esistere o non essere disponibili nell'ontologia. Inoltre, un ufficio potrebbe essere presente su più righe del risultato della query, nel caso in cui l'ufficio abbia molteplici numeri di telefono, caselle e-mail o simili.

Query per Ricavare le Strutture del Comune
				
PREFIX org:<http://www.w3.org/ns/org#>
PREFIX locn:<http://www.w3.org/ns/locn#>
PREFIX wsg84:<http://www.w3.org/2003/01/geo/wgs84_pos#>

select ?u ?label  ?homepage ?tel ?mail ?address ?lat ?long where { 
	?u a org:Organization .
	?u rdfs:label ?label . 
	optional {?u foaf:homepage ?homepage} .
	optional {?u foaf:phone ?tel} .
	optional {?u foaf:mbox ?mail} .
	optional {?u org:hasPrimarySite ?site .
	?site locn:address ?a .
	?a locn:fullAddress ?address .
	?site locn:geometry ?g .
	?g wsg84:lat ?lat .
	?g wsg84:long ?long . }
} order by ?u
				
				

Per selezionare solo gi uffici, è sufficiente scartare le strutture dell'organizzazione che hanno ulteriori sottostrutture, indicate con la proprietà org:hasSubOrganization. Nel seguente esempio viene utilizzato l'operatore not exists per questo scopo. Inoltre, in questo caso possiamo assumere che ogni ufficio abbia almeno una sede.

Query per Ricavare gli Uffici del Comune
				
PREFIX org:<http://www.w3.org/ns/org#>
PREFIX locn:<http://www.w3.org/ns/locn#>
PREFIX wsg84:<http://www.w3.org/2003/01/geo/wgs84_pos#>

select ?u ?label  ?homepage ?tel ?mail ?address ?lat ?long where { 
	?u a org:Organization .
	?u rdfs:label ?label . 
	optional {?u foaf:homepage ?homepage} .
	optional {?u foaf:phone ?tel} .
	optional {?u foaf:mbox ?mail} .
	?u org:hasPrimarySite ?site .
	?site locn:address ?a .
	?a locn:fullAddress ?address .
	?site locn:geometry ?g .
	?g wsg84:lat ?lat .
	?g wsg84:long ?long .
	
	filter not exists {?u org:hasSubOrganization ?x .}
} order by ?u
				
				

Un quadro completo dell'organizzazione gerarchica delle strutture (eg. suddivisione in aree) può essere ricavato analizzando le relazioni tra ogni parte dell'organizzazione e le sue sottostrutture.

Query per Determinare la Struttura Organizzativa Comune
				
PREFIX org:<http://www.w3.org/ns/org#>

select ?u ?label ?child ?childlabel where { 
	?u a org:Organization .
	?u rdfs:label ?label . 
	?u org:hasSubOrganization ?child .
	?child rdfs:label ?childlabel .
} order by ?u
				
				

Con la seguente query è possibile ricavare i siti dove sono dislocati gli uffici e le strutture del comune. In un certo senso, questa interrogazione fornisce una vista inversa di quella offerta dalla query per ricavare gli uffici del comune. Essa può essere utilizzata, ad esempio, per realizzare una mappa (vedi dopo la query). Si noti che diversi uffici possono essere posizionati nello stesso palazzo. In questo caso, i siti e le locazioni saranno ripetute, una (o più) riga per ogni ufficio che insiste nella struttura.

Query per Determinare i siti del Comune
				
PREFIX org:<http://www.w3.org/ns/org#>
PREFIX locn:<http://www.w3.org/ns/locn#>
PREFIX wsg84:<http://www.w3.org/2003/01/geo/wgs84_pos#>
PREFIX foaf:<http://xmlns.com/foaf/0.1/>

select ?site ?dirlabel  ?homepage ?tel ?mail ?address ?lat ?long where { 
	?dir org:hasSite ?site .
	?dir rdfs:label ?dirlabel . 
	?dir org:transitiveSubOrganizationOf <http://spcdata.digitpa.gov.it/browse/page/Amministrazione/c_c351> .
	?site locn:address ?a .
	?a locn:fullAddress ?address .
	?site locn:geometry ?g .
	?g wsg84:lat ?lat .
	?g wsg84:long ?long .
} order by ?dir
				
				

Per ottenere l'elenco dei servizi pubblici offerti dal comune, e delle direzioni che hanno la responsabilità di questi, è possibile utilizzare la sequente interrogazione.

Query per Ricavare i Servizi Pubblici Forniti dal Comune
				
PREFIX cpsv:<http://purl.org/vocab/cpsv#>
PREFIX dcterms:<http://purl.org/dc/terms/>
PREFIX foaf:<http://xmlns.com/foaf/0.1/>

SELECT ?s ?label ?homepage ?dirlabel WHERE {
	?u a cpsv:PublicService . 
	?u dcterms:title ?label . 
	?d cpsv:provides ?u . 
	?d org:transitiveSubOrganizationOf <http://spcdata.digitpa.gov.it/browse/page/Amministrazione/c_c351>  .
	optional { ?u foaf:homepage ?homepage .} 
} ORDER BY ?u
				
				

È inoltre possibile ricavare tutte le location nelle quali è disponibile un accesso fisico al servizio. Queste location possono quindi essere utilizzate per realizzare una mappa dei servizi pubblici.

Query per i Luoghi di Accesso ai Servizi
				
PREFIX org:<http://www.w3.org/ns/org#>
PREFIX locn:<http://www.w3.org/ns/locn#>
PREFIX wsg84:<http://www.w3.org/2003/01/geo/wgs84_pos#>
PREFIX foaf:<http://xmlns.com/foaf/0.1/>
PREFIX cpsv:<http://purl.org/vocab/cpsv#>

SELECT ?label ?homepage ?address ?lat ?lon WHERE {
	?item a cpsv:Service . 
	?dir cpvs:provides ?item .  
	?dir org:transitiveSubOrganizationOf <http://spcdata.digitpa.gov.it/browse/page/Amministrazione/c_c351> .
	?item locn:location ?site .
	?item rdfs:label ?label .
	?site locn:address ?a .
	?a locn:fullAddress ?address .
	?site locn:geometry ?g .
	?g wsg84:lat ?lat .
	?g wsg84:long ?lon .
	 optional {?item foaf:homepage ?homepage} .
} ORDER BY ?lat ?lon