Citando wikipedia, proviamo a dare una definizione di matchmaking:
Matchmaking is any process of introducing people for the purpose of marriage
Quindi ci occuperemo di matrimoni e della ricerca della dolce metà.
Ma anche no, o forse si….
Beh, sicuramente non ci occuperemo di matrimoni, ma di ricerca della dolce metà forse si… In che senso?
Come un giovane ragazzo che è alla disperata ricerca della sua dolce metà con cui condividere il resto dei suoi giorni e si trova a dover scegliere tra le tante ragazze disponibili che possano appartenere ai suoi ideali, così molti soggetti si ritrovano, negli ambiti più svariati, ad effettuare delle richieste a fronte di un vasto numero di offerte presenti nel medesimo dominio.
Quindi, in breve, il Matchmaking altro non è che un procedimento atto ad individuare le offerte che meglio rispondono, o che meglio combaciano (match-ano), anche solo in parte, con la richiesta effettuata da un soggetto e a fornire una lista di possibili offerte “candidate” ordinate in base al loro grado di match.
Parliamo invece di Matchmaking Semantico nel caso in cui le richieste (query) e le offerte (risorse) sono espresse all’interno di un dominio di conoscenza opportunamente strutturato, come per esempio un’ontologia.
Quindi per ricercare delle risorse all’interno del Web Semantico ricorreremo al processo di Matchmaking Semantico.
Categorie di match
È opportuno, a questo punto, fare delle distinzioni in base al tipo di offerta che viene individuata a fronte di una query. Parliamo di:
- Exact match, se tutte le richieste presenti nella query sono soddisfatte dall’offerta;
- Potential match, se l’offerta soddisfa solo parte delle richieste presenti nella query e non ci sono caratteristiche in conflitto;
- Partial match, se l’offerta soddisfa parte delle richieste della query e ci sono caratteristiche contrastanti tra query e risorsa;
- Full match, se l’insieme delle caratteristiche espresse nella domanda è un sottoinsieme delle caratteristiche espresse nell’offerta.
È ovvio che i match più desiderabili sono gli exact e i full, ma, come è facile intuire, nella realtà quelli più ricorrenti sono proprio i partial e soprattutto i potential.
Facciamo un breve esempio, riconducibile sempre alla nostra Ontologia (usiamo una notazione leggera per motivi di chiarezza espositiva):
R = {libro, Bompiani, Robert_Kyiosaki}
O = {libro, Bompiani, Robert_Kyiosaky, Padre_Ricco_Padre_Povero}
Notiamo che ci troviamo di fronte ad un caso di Full match, se consideriamo la R come richiesta e la O come offerta. Se invece considerassimo O come richiesta e R come offerta ci troveremmo di fronte ad un caso di Partial match.
A questo punto introduciamo una nuova distinzione riguardante i Sistemi di Matchmaking. Parliamo di :
- Sistemi di Matchmaking Simmetrici, se i risultati prodotti sono identici sia se si considera R come richiesta ed O come offerta sia se si considera il viceversa (ovvero O come richiesta ed R come offerta);
- Sistemi di Matchmaking Non-Simmetrici, se i risultati prodotti dal processo sono diversi a seconda che R ed O siano considerate rispettivamente come richiesta/offerta oppure come offerta/richiesta.
I risultati e la funzione penalty
Rimandando ad un altro articolo la trattazione formale in DL del matchmaking, proseguiamo concentrandoci sui risultati del processo.
La classificazione dei risultati ricompre, infatti, un ruolo fondamentale, se non addirittura primario, nell’ambito del matchmaking; per classificare una offerta nei confronti di una richiesta all’interno di una ontologia, definiamo la funzione penalty p(O,R,T).
Presentiamola allora:
- T è una ontologia
- R è una richiesta
- O è una offerta
- P(O,R,T) è la funzione penalty completa
La funzione penalty possiede alcune proprietà:
- Non-simmetria, quando il grado di penalty ha una direzione, per cui
p(O; R; T ) ≠ p(R; O; T ); - Indipendenza Sintattica, quando la penalty dipende esclusivamente dalla semantica di R ed O, ovvero, se all’interno di una ontologia T due risorse O1 e O2 sono identiche, a fronte di una stessa query R, le funzioni penalty sono uguali.
Riassumendo: if T ⊨ O1 ≡ O2 then p(O1; R; T ) = p(O2; R; T ).
Inoltre possiamo definire altre proprietà per la funzione penalty a seconda del tipo di match con cui abbiamo a che fare.
Per il Potential Match, la funzione penalty p⇒(O, R, T) deve essere:
- Monotonica rispetto all’implicazione, ovvero se ho due risorse O1 e O2 che sono match potenziali per la query R, e si verifica che O1 è più specifico di O2, cioè T ⊨ O1 ⊑ O2, deve succedere che p(O1; R; T ) ≤ p(O2; R; T ).
Per quanto riguarda il Partial Match, la funzione penalty p∅(O, R, T) deve essere:
- Antimonotonica rispetto all’implicazione, ovvero se ho due risorse O1 e O2 che sono match parziali per la query R, e si verifica che O1 è più specifico di O2, cioè T ⊨ O1 ⊑ O2, deve succedere che p(O1; R; T ) ≥ p(O2; R; T ).
Ma che significato ha la funzione penalty?
La funzione penalty assume significato a seconda che ci si trovi di fronte ad un partial o ad un potential match.
In particolare, per un potential match la funzione p⇒(O, R, T) valuta quanta informazione manca, non è specificata in O al fine di soddisfare completamente la richiesta R.
Per un partial match la funzione p∅(O, R, T) valuta quanto sia incompatibile la risorsa O rispetto alla query R.
Antonio Cicirelli
Se il post ti è piaciuto, ti ha incuriosito o se non ha soddisfatto appieno la tua voglia di conoscenza lasciaci un commento, ci sarà d'aiuto per andare avanti e migliorare oppure sottoscrivi i feed e ricevi i prossimi articoli nel tuo RSS reader.
Comments
Non c'è ancora nessun commento.
Lascia un commento