2009/8/31 Andrea C. [email protected]:
Io userei RDF, che rende facile creare relazioni fra oggetti senza
portarsi appresso id numeriche dipendenti dal DB:
ma si porterebbe dieteo id numeriche provenienti dallo url, che è la
stessa cosa.
Non sono sicuro di capire cosa intendi…
intendevo che se come uri usano lo url si porta probabilemnte dietro
la info del db. Se ha già una chiave univoca e la usa con to_param
allora tanto vale usare cone uri lo url , che però probabilmente avrà
direttamene l’id numerico. Se non usi questa informazione, e usi i
blank node (alla _:1 etc) tanto vale usare gli id numerici del db
penso.
Io il restore lo farei facendo:
- per ogni risorsa creo il model, ignorando i predicate che hanno
riferimenti ad altre risorse
- mi salvo in un hash URI → id
- una volta create tutte le risorse, faccio un altro giro e aggiorno i
predicate che hanno riferimenti ad altre risorse
si, ma rimane: che id usi per il nodo?
qualunque tool XML, quindi più flessibile in caso di processamenti
intermedi.
si ma N-TRIPLES è trattabile con File.readlines.map &:split
Ma questa è una discussione vecchia quanto RDF, quindi meglio non
entrarci
dehe
Ma dovrebbe definirsi il vocabolario, e verificare se una libreria per
RDF qualunque in ruby sa gestire volumi di dati grossi.
Il vocabolario non è un gran problema; basta usare il nome del model
come tipo e il nome dell’attributo come nome del predicato.
ActiveRDF fa così, ad esempio.
funziona ancora ActiveRDF? uno degli autori (renaud delbru) lavorava
con me e so per certo che non ci mette mano da due anni, un altro paio
hanno cambiato centro di ricerca e io diffido dei ricercatori
Il fatto che le librerie funzionino bene… certo, è tutto da vedere.
Sicuramente le librerie che sono frontend su Jena e/o Redmine non hanno
problemi a riguardo.
la mia preoccupazione era su com è fatto il wrapping: e.g. se mette
tutto in memoria per semplicità, se ha leak. Ho visto una dozina di
progetti che funzionavano fino a che un input in xml non superava una
certa dimensione per poi collassare perché si tenevano tutto in
memoria invece di fare processing streaming.
My 2C: il vecchio plugin ar_fixtures permette di fare un dump in yaml
del db, che p0uò essere ricaricato con i tool standard di rails per le
fixture. Ma secondo me è meglio il dump con i tool del db, usando CSV
(o TSV) l compatibilità è garantita con qualunque cosa.
Dipende se lo scopo è un backup di cui farai il restore sullo stesso
tipo di DB e sulla stessa istanza di server, oppure un export
“trasportabile”. A me sembra che lui voglia la seconda, per cui la
seconda soluzione non sarebbe applicabile, e la prima ti lega comunque a
rails (che potrebbe non essere un problema).
colpa mia che mi esprimo male: suggerivo YAML properio perché si può
ricostruire un oggetto ruby facilmente e poi può farci quel che vuole,
indipendentemente da AR, con il vantaggio che può fare il dump
facilmente.