Newsgroup: it.comp.java
Titolo: Associare "simili entità logiche" senza re-inventare la ruota: Voi come fareste?

Salve a tutti e buona domenica (o buon inizio di settimana per chi leggerà questo post domani mattina).
Vi spiego il nocciolo della questione:
 
facciamo finta che io ricevo, quotidianamente, 2 file di testo riguardanti alcune scommesse delle partite di calcio; io li converto in formato CSV.
Il primo contiene le coppie di stringhe 
    <NOME DELLE SQUADRE> <QUOTE DELLA PARTITA>
 
esempio:
-------
Milan AC - Paris Saint-Germain, 1.30, 2.40, 3.50
 
 
il secondo file invece contiene quelli che sono stati i risultati delle suddette partite una volta che sono state giocate:
    <NOME DELLE SQUADRE> <RISULTATO DELLA PARTITA>
 
esempio:
-------
Milan - PSG, 0-0
 
 
Come vedete i due files, pur trattando le stesse entità logiche (le partite di calcio), le referenziano con nomi diversi (Milan AC != Milan, oppure anche PSG è ben diverso dalla stringa "Paris Saint-Germain").
La mia neccessità è quella di creare un unico files che conterrà l'unione di questi campi:
 
esempio:
-------
Milan AC - Paris Saint-Germain, 1.30, 2.40, 3.50, 0-0
ovvero
    <NOME DELLE SQUADRE> <QUOTE DELLA PARTITA> <RISULTATO DELLA PARTITA>
 
 
Come vedete ho eseguito un merge tra i due files i quali, sfortunatamente, non presentano le medesime righe (ovvero le partite) entrambi nello stesso ordine,
quindi la mia domanda è...
...esiste un qualche tool, un programmino con interfaccia grafica o altro che,
caricati questi due files, mi permette di eseguire manualmente tale associazione.
Ho provato a cercare un qualche GraphEditor che potesse aiutarmi in questo mio intento, ma non ne ho trovato nessuno adatto a questo scopo. Con un GraphEditor, infatti, pensavo di riuscire a caricare le righe sia del primo che del secondo files sotto forma di nodi e, in seguito, avrei potuto trascinare questi nodi avvicinando tra loro quelli che riguardano la stessa partita.
Poi avrei creato un arco che congiungesse il nodo delle quote della partita del "PSG" con l'altro nodo contenente il risultato del "Paris Saint-Germain" ed infine contavo di salvare tutte queste associazioni in maniera tale da creare un unico file csv (o xml) completo di tutti i dati.
Ma non ho trovato nessun tool che rispondesse a questa esigenza.
Questi 2 files sono composti da centinaia di righe (ovvero centinaia di partite) ed è impensabile credere di poter associare tramite copia&incolla tutte le coppie logiche simili presenti in mezzo a tutte queste righe.
 
Voi come risolvereste tale inghippo?
 
Se qualcuno ha dei dubbi riguardo il mio quesito chieda pure ed io sarò felicissimo di fornigli ulteriori dettagli sul caso.
 
 
Grazie a tutti,
aspetto le vostre risposte.

 Voi come risolvereste tale inghippo?
 
se, come mi pare di aver capito, i file ti arrivano giornalmente sempre 
nello stesso formato direi che la soluzione più idonea è costruirsi una 
tantum una mappa di conversione dei nomi e usare poi quella per 
ricostruire ogni volta il file finale.
 
per costruire la mappa non penso valga la pena studiare chissà quale 
algoritmo: un programmino che si scorre tutti i nomi e tramite delle rules 
fa il matching, la maggior parte riusciresti a risolverli con un una 
espressione regolare (voglio dire, "milan ac" e "milan" sono stringhe 
simili) mentre per quello che non viene trovato scrivi la regola puntuale 
a mano. io non mi perderei oltre.
 

Ok, benissimo, grazie per il tuo intervento.
Quindi al momento esiste o non esiste un qualche genere di tool deputato a compiere questa operazione ?
 
Mi sembra strano che un problema "tanto comune" non abbia già una soluzione bella pronta ed impacchettata.
 
 

Ma lo sai che è una vita che anch'io cerco un tool/framework che mi risolva questa situazione. Non hai idea di quante volte lo abbia cercato...
...e cosa ho trovato? Nulla!
 
A me sembra che questa sia una grave lacuna nel panorama informatico (aggiungo 'professionale'). Ogni volta che devo occuparmi di una gestione di tali entità (pensiamo ai prodotti presenti e trattati da un gestionale) mi tocca "lavorare a mano" andando a...
 
 - prelevare i nomi di tutti i prodotti (quando non presentano un ID specifico)
 - costruire la query
 - cercare il suddetto prodotto del database
 - se non è presente... costruire la query che lo andrà ad inserire
 
E metti in conto che per ogni diverso prodotto e/o database devo rifare ogni volta a capo (sempre a mano) 'sto benedetto lavoro.
 
E per giunta anche io avevo cercato di risolvere la faccenda con una specie di editor per grafi, ma non ne ho mai trovato uno che facesse al caso mio.
 
Lo ripeto... per me è strano che non esista un "attrezzo" che risolva questa problematica, secondo me esiste, ma sono io chenon lo conosco.

 caricati questi due files, mi permette di eseguire manualmente tale associazione.
 
 
SquirrelSQL + Hibernate + tanta tanta pazienza e olio di gomito
 
M.

Ok, grazie a tutti per le risposte.
Mi scarico subito questo "scoiattolo" e vediamo cosa sa fare!!