Newsgroup: it.comp.software.database
Titolo: thesauro

Ciao a  tutti.
Premetto dicendo che sono un principiante nell'uso di access.
Avrei necessità di creare un thesaurus, cioè un dizionario controllato.
Il materiale di partenza è un elenco di termini già strutturati secondo uno
schema classificatorio di questo tipo:
grassi----animali
        -----vegetali-----olii di oliva
                         -----olio di semi
                         -----olio di arachidi
Non posso sapere quanto potrà essere "profondo" il livello di
classificazione, e questo mi mette in difficoltà.
Dovrei anche creare un insieme di voci accettate e uno di voci non accettate
strutturate in modo tale che la ricerca (devo impostare una query?) venga
indirizzata dalla voce non accettata a quella accettata. Cioè: inserendo per
la ricerca il termine
pazzo (voce non accettata) il sistema deve farmi una ricerca sul termine
disabile mentale, voce accettata e che appartiene alla classificazione:
disabilità--------fisica-------paraplegia
                              -------tetraplegia
             --------mentale
e così via. Chiedo scusa, ma non sono riuscito a inventarmi esempi migliori!
Il mio problema è che non so come strutturare i dati e che tipo di relazioni
creare fra le tabelle. Potete darmi una mano?
Grazie!
:giorgio


:Provate a guardare gli ingredienti del famoso Labello che si usa per
:le labbra screpolate: Butirrospermum Parkii (sperma di maiale).

 :le labbra screpolate: Butirrospermum Parkii (sperma di maiale).
c'ero cascato! E' un fake!
:))




 GMER? Magari. Lui lo dice sul serio!
A dire il vero ho guardato con sospetto il burro di cacao che tengo nello
zaino......poi mi son spiegato il perchè certe
volte le ragazze con il solo labello mi sembrano delle porche.... :P


:Provate a guardare gli ingredienti del famoso Labello che si usa per


 (don't worry -- ne verremo a capo)
:) grazie!
:giorgio

il thesauro ad altri argomenti) potrei arrivare a 20-30000.
Argh.
Okay. Allora la cosa direi che si risolve in una sola tabella cosi' fatta,
sotto Access:
	idKey	SERIAL (integer not null primary key auto_increment,
			campo chiave, identita', 'nzomma come si chiama
			luili')
	idParent	integer
	valid		boolean
	testo		text
	(altri campi: es, "spiegazione", "note"...)
Inizialmente la tabella e' vuota.
Devi inserire "pazzo" per spiegare che e' un termine non valido.
Modo 1
	Sai che "pazzo" ricade sotto "infermita' mentale".
	Cerchi "infermita' mentale" nel campo testo, e non la trovi.
	Allora ripeti il procedimento per "infermita' mentale".
 
	Sai che "infermita'" e' un termine primitivo (non ricade sotto
		nulla)
	Lo cerchi, e non lo trovi.
	Allora lo inserisci con un idParent pari a 0. Ottieni un idKey
	pari a 1 perche' e' la prima parola che hai inserito.
	Ritornando indietro scopri che devi ancora inserire "infermita'
	mentale" sotto "infermita'"; ma adesso, "infermita'" esiste, ha
	idKey pari a 1, e quindi inserisci "infermita' mentale", con un
	idParent pari a 1, ricevendo idKey = 2.
Modo 2
	Inserisci due o tre categorie primitive (come "infermita'")
	Ogni volta che devi inserire un termine nuovo, guardi in quale
	mega-categoria rientra; se non la trovi la crei.
	Se la trovi la apri (selezioni tutto cio' che ha idparent pari
	all'idkey di quella categoria) e trovi un elenco di sottocat.,
	o sottotermini; se il termine da inserire e' un "fratello" dei
	termini che hai, lo inserisci li' dentro; e se la categoria e'
	vuota ma il termine va li', pure lo inserisci; se ti serve una
	nuova categoria figlia, la crei e poi la apri (sara' vuota), e
	ripeti il procedimento.
Ti verrebbe comodoso un "tree browser"; io, ne conosco per Javascript e
server Web, per Access no. Come se avessi delle cartelle su disco, dove
nella cartella "infermita'" hai "infermita' mentale" e dentro "pazzo".
Ti verrebbe ancora piu' comodo se pensi che, avendo un mini-sito web in
intranet, potresti convincere i colleghi a darti una mano. 30000 parole
ti fa camina' roccia, se sei da solo :-(
Una funzione che puo' venire utile ed e' semplice da implementare e' il
"pruning and grafting": se modifichi l'idParent di "infermita' mentale"
da, diciamo, 1823 (="infermita'") a 17332 (="patologia"), tutti i figli
di infermita' mentale si ritrovano automagicamente nipoti di patologia,
e il nuovo path e'
	patologia -> infermita' mentale -> pazzo
...se seguito dell'altro, questo glossario mi servira'... 8-6


 
Se non ti serve per un programma commerciale, perché non distribuire il 
datainsert tra più persone e rendere aperto il codice?
Ti può interessare?
Io collaborerei con piacere!
Ciao
Marcello Verona

datainsert tra più persone e rendere aperto il codice?
Il codice e' abbastanza una bischerata, se si fa su in MySQL e PHP. Ci
puo' volere un paio di giornate per mettere su un HTML bellino, poi...
...volendo farlo aperto sarebbe meglio mettere i tag 'approved' in una
tabella diversa, con i dati utente. Cio' perche' magari a me non me ne
puo' frega' dde meno se il tale termine e' valido nel contesto XYZ, ma
interessa solo sapere che "pazzo" rientra nel novero delle "infermita'
mentali". Poi, macari l'inseritore del termine potrebbe essere salvato
nella tabella, cosi' si sa chi andare a pigliare in caso di guai :-)
Per l'albero si potrebbe usare qualcosa tipo TreeView; il browser deve
supportare Javascript, ma...
...mumble...
...in quanti siamo, ad essere interessati? 8-D


ciao!
Al momento sono parecchio impegnato in un'altra cosa...penso/spero di aver
capito cosa fare, ma sono costretto a rimandare di una settimana circa.
Lo so che č comoda una visualizzazione gerarchica dei termini....una delle
possibili strutture di un thesauro č proprio quella gerarchica......altra
cosa piuttosto comoda sarebbe il completamento automatico del termine da
inserire nel caso
Mi chiedevo una cosa: nella struttura che mi hai suggerito come si risolve
il problema della quasi sinonimia? Cioč: come spiego e formalizzo la
differenza fra gru come macchinario edile e gru come uccello?
Ciao!
:giorgio

 Io collaborerei con piacere!
Guarda, sarebbe il mio sogno!!!!
Il mio problema è il codice! Per quanto riguarda la base teorica che
reggerebbe la struttura del thesauro, gli standard UNI ISO (il 2788 del 1986
per il monolingue, c'è un altro standard per il plurilingue) necessari per
fare una cosina "decente", la disponibilità per la redazione della lista di
voci del vocabolario controllato, la creazione delle relazioni fra i termini
io sono disponibile e sarei felice di partecipare.
Purtroppo per quello che riguarda ciò che sta "dietro la facciata" mi viene
difficile. So bene cosa mi serve....ma fra dire e il fare...
Ciao!
:giorgio

 creare fra le tabelle. Potete darmi una mano?
Esiste un base dati del genere in Inglese e piuttosto completa, il progetto si chiama 
Wordnet. Oltre alla base dati esistono anche moltissimi tools e librerie per accedervi 
dai piu' svariati linguaggi di programmazione.
Perche' non usi gli stessi strumenti per l'Italiano?
(E magari lo rilasci anche open source e gratuito)
-- 
Roberto Lupi

differenza fra gru come macchinario edile e gru come uccello?
Uhm. Una possibile soluzione in fase di inserimento potrebbe essere quella
di aggiungere, nei dati utente, un ulteriore campo con indicato "contesto"
(come nei dizionari: "mecc.", "zoot.", "zool.", "biot.", "chim."...).
A questo punto pero' se inserisci "gru" in fase di verifica, a meno che il
sistema gia' non conosca il contesto, te lo domandera'.
Cioe', facendo SELECT FROM vocaboli, trova due "gru" - una associata ad un
contesto "edil." e l'altro "zool.".
In fase di display, se hai un contesto lo mostri.
Leonardo
-- 
Nach doiligh domhsa mo chailin a mholadh
'S ni he amhain mar bhi si or
Bhi si mar gath greine a dhul in eadan na gloinne
Is bhi sceimh mhna na finne le mo cailin or

Il mio problema è il codice!
Te di quello 'un te n'occupa'... :-)


 (E magari lo rilasci anche open source e gratuito)
Beh, ho dato una guardata, ma non è che abbia capito più di tanto. I
progetti per creare classificazioni sono centinaia e ciascuno ha le sue
peculiarità. Iconclass, ad esempio, è un thesauro per la classificazione e
descrizione dell'immagine iconografica, nello specifico della pittura del
17mo e 18mo secolo. E' un thesaurus multilingue, ha dei descrittori
appositi, ma, il fatto che non siano visibili le relazioni fra i diversi
termini non mi fanno "comprendere" la struttura dei dati. Tanto per dirne
una, se si fa una ricerca booleana con i termini Maria di Magdala ho una
risposta 10, se metto l'operatore and, quindi, Maria di Magdala AND Giovanni
Battista trovo un numero maggiore di risposte  in quanto mi si allarga il
focus informativo piuttosto che stringersi. Onestamente NON so perchè
Iconclass fa così, ma alla fine lo vedo poco intuitivo per un utente.
(probabilmente, visto che molti personaggi in un quadro non sempre sono
identificabili, mi visualizza tutto quello che ha Maria di Magdala e poi
tutto quello che ha Giovanni Battista senza fare un incrocio dei dati come
immagineremmo).
Quindi? Onestamente preferirei che si creasse qualcosa di specifico per la
lingua italiana, che ha dei problemi "forti" su alcuni elementi del
linguaggio (in teoria un thesaurus non dovrebbe aver bisogno di elementi
grammaticali che facciano di legame alle diverse parole......prova a levare
gli articoli dall'italiano e fa' un confronto con l'inglese, oppure la
struttura gerarchica che deve essere costruita ad hoc per l'uso che se ne
deve fare del thesaurus stesso.....quindi sarebbe il caso cominciare da zero
con l'italiano).
Sto pensando ad un po' di soluzioni....vediamo che succede!
ciao!
:giorgio

 Te di quello 'un te n'occupa'... :-)
dammi tempo! Domani sono fuori, spero di poter mandare qualcosa di "serio"
(la struttura dei dati con le relazioni necessarie) lunedě al piů tardi.
ciao!
:giorgio

 supportare Javascript, ma...
Io lo troverei davvero necessario! Una forma di classificazione che troverei
piuttosto efficace è la cd. classificazione a faccette. Ovvero lo stesso
oggetto può essere descritto (e inserito in una griglia classificatoria) a
seconda dei diversi tipi di faccette. Ecco un esempio di come potrebbe
essere descritto qualcosa di mooolto complesso come un quadro.
Descrizione: donna su prato in pieno sole che fa colazione con un panino.
Una faccetta può essere l'azione (=far colazione) un'altra faccetta il luogo
(=prato, sole), altra ancora l'intensità dell'azione, e così via. In questo
modo si potrebbero creare tanti alberi distinti creando una descrizione più
concettuale che collegata ai termini.
Mi mancano un paio di riferimenti in volume.....lunedì cercherò di postare
qualcosa di più completo, ok?
Ciao!
:giorgio

focus informativo piuttosto che stringersi.
Um. Quello dipende dal motore, in realta' sta facendo un OR, direi. Ma noi
stiamo parlando di thesauri astratti, mica di iconografia, spero :-)


 spero :-)
io voglio fare una cosa astratta.....poi vedremo quanto questo lavoro sarà
flessibile!
;)
ciao!
:giorgio