Buon giorno a tutti,
qualcuno di voi è a conoscenza di un applicativo, anche a riga di comando, o libreria FOSS cross-platform (preferibilmente python, ma anche java, php...) che consenta di gestire metadati applicativi? Esistono, indipendentemente dalla implementazione, degli standard per metadati applicativi GIS, tipo UML? Con metadati applicativi intendo: - modello dati (schema) in cui le entità descritte siano mappabili su un DB (geo)relazionale (platform-independent) ed eventualmente su classi Java/Python: simile all'ORM, solo che non genero le classi dal database, ma genero schema database E classi dal mio modello dati; - properties e configurazioni utilizzabili da applicativi che fanno uso dei dati modellizzati - possibilità di estendere il metamodello con schemi propri del mondo GIS (es. i grafi) - possibilità di utilizzare gli oggetti del modello tramite scripts per generare codice, sql, documentazione... Ho visto SQLAlchemy, data la complessità non sono ancora riuscito a capire fino a che punto sia possibile estenderne il modello dati, o se un modello dati possa esistere indipendentemente da una istanza DB. La cosa che più si avvicina a quel che ho in mente è un UML modeler scriptabile, che mi consenta di generare files di testo/xml potendo accedere ad una rappresentazione ad oggetti del modello dati che posso manipolare tramite opportuna API. Banalmente, in PHP uno script per copiare solo alcune tabelle da uno schema postGIS ad un'altro potrebbe essere: $model = DataModel::getInstance(); foreach ($entity in $model->$entities) { if (!$entity->isAbstract()) { $tableName = $entity->sqlName(SQL_DIALECT_POSTGIS); outputBuffer->add("insert into \"$out_schema\".\"$tableName\" select * from \"$in_schema\".\"$tableName\";); } } Pensavo in realtà a Python per la possibilità di integrare lo strumento in QGIS, ma uno strumento simile potrebbe funzionare anche come software standalone. Entro nel dettaglio. Il caso d'uso è: abbiamo un database geografico con un centinaio di tabelle, di cui esistono versioni locali e repository di sviluppo e versioni pubbliche (attuali e storiche) che viene editato in MapInfo, immagazzinato in PostGIS (in schemi diversi con diverse funzioni), esportato in shape, visualizzato in MapInfo e QGIS, elaborato in GRASS, e presto pubblicato in MapServer/GeoServer. In futuro spero non remoto vorrei migrare anche l'editing su QGIS. Ovviamente uno strumento di gestione delle configurazioni e del modello dati è fondamentale. Attualmente gestiamo i metadati applicativi con un tool realizzato in MSAccess (il classico prototipo definitivamente provvisorio). Il tool descrive entità, attributi, associazioni, ereditarietà tra entità di un geodatabase in modo sufficientemente astratto dall'implementazione RDBMS/OO; lo realizzammo ai tempi del nostro impegno in GeoTools per cui le entità descritte dovevano essere mappate in Tabelle PostGIS così come in FeatureTypes Java. A entità, attributi e relazioni è possibile attribuire delle PROPERTIES che possono essere gestite a livello applicativo: - settaggi dipendenti dalla piattaforma - nomi compatibili con i diversi formati (es. con shapefile se il nome originale è più lungo di 10 caratteri) - mappatura esatta del tipo in funzione dell'RDBMS in cui si va a generare lo schema - TAGS che raggruppino entità accomunate da operazioni routinarie - ... Vengono inoltre gestiti oggetti specifici all'ambito GIS come i grafi topologici, i route systems, gli attributi segmentati. Ci sono altre caratteristiche non standard per UML o E/R, come i templates - entità astratte con gruppi di attributi funzionalmente correlati che possono essere inseriti in diverse entità, quasi fossero interfaces basate però sui dati anziché sui metodi, con una risultante "ereditarietà multipla" delle tabelle. Tutte queste informazioni sono attualmente salvate in tabelle, ma potrebbero tranquillamente stare in un XML, ed esprimono un modello dati usando appunto questa specie di accrocchio tra UML ed E/R. Attraverso una serie di classi e procedure, il tool consente, partendo dal modello dati, di: - generare lo schema (le create table) in MapInfo, PostGIS e volendo in altri DB - generare un file di configurazione per il tool di edit del geodatabase (attualmente in MapInfo). In prospettiva, generare analoghe configurazioni per plugins QGIS. Per esempio, il tool di modifica di un grafo deve sapere, per ogni grafo, quali sono le tabelle che implementano archi e nodi, e in quali associazioni sono memorizzate le relazioni topologiche nodo-da e nodo-a. Domani questa informazione potrebbe essere spostata in stored procedures PostGIS, sempre generate automaticamente dal tool. - generare script ad hoc: caricamento ed export con OGR2OGR, estrazione, validazione, creazione di schemi con opzioni differenti (check constraints on/off ad esempio)... Esempio: se definisco una regola di integrità nel modello dati, posso poi implementarla (generarla automaticamente) come: - file di configurazione di un plugin su GIS desktop che, alla modifica di un record, verifica che la validazione passi; in alternativa, codice python incluso stesso plugin; - generazione di un metodo validate() per una classe generata da ORM; - una alter table ... add contraint ... check in PostGIS - una create view errori_tabella as select ... WHERE condizione_di_errore in PostGIS - un gestore evento javascript onSubmit() per un form su webGIS ... Successivamente vorrei estendere il modello con metadati applicativi di visualizzazione (integrazione con SLD), i cataloghi e metadati di istanza (Dublin Core ad esempio). Naturalmente vorrei portare avanti lo sviluppo come software GFOSS. Attendo qualche feedback, rimango a disposizione per eventuali chiarimenti e scusate per la lunghezza del post. Sig _____________ PRIVACY Le informazioni contenute in questo messaggio sono riservate e confidenziali. Il loro utilizzo e' consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora Lei non fosse la persona a cui il presente messaggio è destinato, La invitiamo ad eliminarlo dal Suo Sistema e a distruggere le varie copie o stampe, dandone gentilmente comunicazione all’indirizzo mail del mittente. Ogni utilizzo improprio e' contrario ai principi del D.lgs 196/03 e alla legislazione europea (Direttiva 2002/58/CE). PRIVACY Le informazioni contenute in questo messaggio sono riservate e confidenziali. Il loro utilizzo e' consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora Lei non fosse la persona a cui il presente messaggio è destinato, La invitiamo ad eliminarlo dal Suo Sistema e a distruggere le varie copie o stampe, dandone gentilmente comunicazione all’indirizzo mail del mittente. Ogni utilizzo improprio e' contrario ai principi del D.lgs 196/03 e alla legislazione europea (Direttiva 2002/58/CE). -- This email was Anti Virus checked by Astaro Security Gateway. http://www.amat-mi.it _______________________________________________ Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. Non inviate messaggi commerciali. I messaggi di questa lista non rispecchiano necessariamente le posizioni dell'Associazione GFOSS.it. 518 iscritti al 3.6.2011 |
In data venerdì 3 giugno 2011 15:27:22, Luca Sigfrido Percich ha scritto:
: > Buon giorno a tutti, > > qualcuno di voi è a conoscenza di un applicativo, anche a riga di > comando, o libreria FOSS cross-platform (preferibilmente python, ma > anche java, php...) che consenta di gestire metadati applicativi? > Esistono, indipendentemente dalla implementazione, degli standard per > metadati applicativi GIS, tipo UML? Ciao Sig, e benvenuto in lista! Dopo 15 che ti rompo le scatole vedo con molto piacere che hai fatto il salto in GFOSS :) Ripondendo al tuo quesito, hai pensato a partire da GeoDjango [1] ? È un ottimo ORM geografico e gestisce diversi backend (PostGIS, Spatialite ecc.). Non ha tutte le funzionalità che cerchi ma rispetto a SQLAlchemy direi che è probabilmente più maturo. [1] https://docs.djangoproject.com/en/dev/ref/contrib/gis/ -- Alessandro Pasotti itOpen - "Open Solutions for the Net Age" w3: www.itopen.it Linux User# 167502 _______________________________________________ Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. Non inviate messaggi commerciali. I messaggi di questa lista non rispecchiano necessariamente le posizioni dell'Associazione GFOSS.it. 518 iscritti al 3.6.2011 |
Ciao Ale,
grazie per la dritta - e grazie per i 15 anni di insistente (talvolta molesto) proselitismo FOSS con me. Del resto sai che sui miei PC il dual-boot con Linux non è mai mancato ;) Non conosco Django/GeoDjango, ma da una rapida scorsa ai doc mi è parso di capire che, analogamente a SQLAlchemy, consente definire il modello dati istanziando oggetti da opportune classi (Model in Django, Table in SQLAlchemy). In SQLAlchemy si possono anche implementare nel modello i vincoli di integrità referenziale (immagino anche in Django), ma mancano gli attributi geometrici. Tuttavia il modello è estensibile e dà la possibilità di generare DDL SQL custom (penso a addgeometrycolumn()). Inoltre si possono creare connettori verso altri DB, quindi si potrebbe pensare ad esempio ad un connettore OGR. In entrambi i tools, essendo il modello rappresentato da classi Python, penso sia semplice aggiungere dei decoratori o subclassare sia per generare scripts ad hoc, che per gestire nuove semantiche (penso soprattutto alla topologia). Le funzioni ORM fornite da entrambi i tools mi sembrano più interessanti in un contesto Web; QGIS, OGR, GeoTools etc forniscono già le loro classi di accesso ai dati, e non so quanto possa aver senso sovrapporre un ORM ad un altro ad esempio in un plugin Python. Mi guarderò approfonditamente entrambi i framework e vi terrò informati sugli sviluppi. Ciao a tutti Sig Il giorno ven, 03/06/2011 alle 19.08 +0200, Alessandro Pasotti ha scritto: > In data venerdì 3 giugno 2011 15:27:22, Luca Sigfrido Percich ha scritto: > : > Buon giorno a tutti, > > > > qualcuno di voi è a conoscenza di un applicativo, anche a riga di > > comando, o libreria FOSS cross-platform (preferibilmente python, ma > > anche java, php...) che consenta di gestire metadati applicativi? > > Esistono, indipendentemente dalla implementazione, degli standard per > > metadati applicativi GIS, tipo UML? > > Ciao Sig, > > e benvenuto in lista! > > Dopo 15 che ti rompo le scatole vedo con molto piacere che hai fatto il salto > in GFOSS :) > > Ripondendo al tuo quesito, hai pensato a partire da GeoDjango [1] ? > > È un ottimo ORM geografico e gestisce diversi backend (PostGIS, Spatialite > ecc.). > > Non ha tutte le funzionalità che cerchi ma rispetto a SQLAlchemy direi che è > probabilmente più maturo. > > > [1] https://docs.djangoproject.com/en/dev/ref/contrib/gis/ > > -- > Alessandro Pasotti > itOpen - "Open Solutions for the Net Age" > w3: www.itopen.it > Linux User# 167502 > _______________________________________________ > Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione > [hidden email] > http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss > Questa e' una lista di discussione pubblica aperta a tutti. > Non inviate messaggi commerciali. > I messaggi di questa lista non rispecchiano necessariamente > le posizioni dell'Associazione GFOSS.it. > 518 iscritti al 3.6.2011 _______________________________________________ Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. Non inviate messaggi commerciali. I messaggi di questa lista non rispecchiano necessariamente le posizioni dell'Associazione GFOSS.it. 518 iscritti al 3.6.2011 |
Luca, ciao. Capisco poco di quello che dite : ) però ... non è per caso che ti serva una cosa simile?
Ciao Luca
_______________________________________________ Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. Non inviate messaggi commerciali. I messaggi di questa lista non rispecchiano necessariamente le posizioni dell'Associazione GFOSS.it. 518 iscritti al 3.6.2011 |
Ciao Luca, sarà che capisci poco, ma hai scovato l'estensione geografica di SQLAlchemy. Tordo come sono sarei stato capace di reimplementarla prima di accorgermi che esisteva :) A questo punto si tratta di confrontare GeoAlchemy e GeoDjango, oltre a vedere i GeoUML tools sviluppati dal polimi come suggerito da Andrea Peri. Grazie a tutti per le preziose dritte, vi terrò informati Sig Il giorno dom, 05/06/2011 alle 12.40 +0200, Luca Mandolesi ha scritto: > Luca, ciao. Capisco poco di quello che dite : ) però ... non è per > caso che ti serva una cosa simile? > > > http://www.geoalchemy.org > > > > > > Ciao > > > Luca _______________________________________________ Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. Non inviate messaggi commerciali. I messaggi di questa lista non rispecchiano necessariamente le posizioni dell'Associazione GFOSS.it. 518 iscritti al 3.6.2011 |
Free forum by Nabble | Edit this page |