Azizel
21-02-2008, 18:10
Ciao a tutti,
Sto lavorando ad un progetto nel quale per farla semplice viene supportata la creazione di ontologie.
Tutte le informazioni di queste ontologie vengono memorizzate in un db relazionale (postgresql). Abbiamo già lo schema per una singola ontologia (fin'ora nel sistema ne veniva utilizzata solo una), il problema si pone quando dobbiamo supportare la creazione a runtime di diverse ontologie.
L'idea iniziale era quella di ampliare lo schema aggiungendo alle varie tabelle una fk che puntasse all'id dell'ontologia, sfortunatamente ogni ontologia può contenere molti dati, quindi con il crescere dell'informazione il tutto diventerebbe più lento, e gestire una singola ontologia potrebbe diventare problemantico e inutile (visto che ogni ontologia e completamente slegata dalle altre).
Un alternativa è quella di creare per ogni ontologia il suo set di tabelle identificate dall'id della stessa nello stesso DB.
L'ultima che mi viene in mente (ed è la direzione che stiamo prendendo) è quella di creare un db per ogni ontologia, qua il problema è che se abbiamo 1000 ontologie avremmo 1000 DB e 1000 connessioni (anche se in realtà è tutto distribuito su più server) e creare un DB è di solito un operazione lenta (5 secondi per postgresql!!).
Sinceramente però non sono troppo convinto e non riesco ad identificare i vari punti di forza dei vari approcci.
Quindi vi chiedo, voi come affrontereste la cosa? Avete qualche articolo da indicarmi sul problema? Qualche consiglio?
Sto lavorando ad un progetto nel quale per farla semplice viene supportata la creazione di ontologie.
Tutte le informazioni di queste ontologie vengono memorizzate in un db relazionale (postgresql). Abbiamo già lo schema per una singola ontologia (fin'ora nel sistema ne veniva utilizzata solo una), il problema si pone quando dobbiamo supportare la creazione a runtime di diverse ontologie.
L'idea iniziale era quella di ampliare lo schema aggiungendo alle varie tabelle una fk che puntasse all'id dell'ontologia, sfortunatamente ogni ontologia può contenere molti dati, quindi con il crescere dell'informazione il tutto diventerebbe più lento, e gestire una singola ontologia potrebbe diventare problemantico e inutile (visto che ogni ontologia e completamente slegata dalle altre).
Un alternativa è quella di creare per ogni ontologia il suo set di tabelle identificate dall'id della stessa nello stesso DB.
L'ultima che mi viene in mente (ed è la direzione che stiamo prendendo) è quella di creare un db per ogni ontologia, qua il problema è che se abbiamo 1000 ontologie avremmo 1000 DB e 1000 connessioni (anche se in realtà è tutto distribuito su più server) e creare un DB è di solito un operazione lenta (5 secondi per postgresql!!).
Sinceramente però non sono troppo convinto e non riesco ad identificare i vari punti di forza dei vari approcci.
Quindi vi chiedo, voi come affrontereste la cosa? Avete qualche articolo da indicarmi sul problema? Qualche consiglio?