Rate-it! A general purpose Polling Platform (based on graph dbms Neo4j)

30
Rate-it! “Una piattaforma di voto a scopo generico” A.A: 2013/2014 Laureando : Alain Bindele Matricola : 695164 Relatore : Emanuele Panizzi

description

With Rate-it! you can vote anything in anyway! From the simple "Like " to the Shulze method! Features: - RESTful API . - Neo4j dbms. - Social Network - Polling platform - Advanced Statistics Is still in pre.alpha http://rate-it.no-ip.org Check out the open version on github! https://github.com/pollingplatform/openrate-it

Transcript of Rate-it! A general purpose Polling Platform (based on graph dbms Neo4j)

Page 1: Rate-it! A general purpose Polling Platform (based on graph dbms Neo4j)

Rate-it!“Una piattaforma di voto a scopo generico”

A.A: 2013/2014 Laureando: Alain Bindele Matricola: 695164 Relatore: Emanuele Panizzi

Page 2: Rate-it! A general purpose Polling Platform (based on graph dbms Neo4j)

Testo

Cos’è?Rate-it! è un servizio web che permette agli utenti di memorizzare

e richiedere statistiche su voti e opinioni in qualunque ambito.

Page 3: Rate-it! A general purpose Polling Platform (based on graph dbms Neo4j)

Funzionalità

Social Networking

Statistiche sui dati

RESTFUL API

Autenticazione Applicazioni Mobili

Page 4: Rate-it! A general purpose Polling Platform (based on graph dbms Neo4j)

Funzionalità

Social Networking

Statistiche sui dati

RESTFUL API

Autenticazione Applicazioni Mobili

Page 5: Rate-it! A general purpose Polling Platform (based on graph dbms Neo4j)

Funzionalità

Social Networking

Statistiche sui dati

RESTFUL API

Autenticazione Applicazioni Mobili

Page 6: Rate-it! A general purpose Polling Platform (based on graph dbms Neo4j)

Funzionalità

Social Networking

Statistiche sui dati

RESTFUL API

Autenticazione Applicazioni Mobili REST API

Page 7: Rate-it! A general purpose Polling Platform (based on graph dbms Neo4j)

Funzionalità

Social Networking

Statistiche sui dati

RESTFUL API

Autenticazione Applicazioni Mobili

Page 8: Rate-it! A general purpose Polling Platform (based on graph dbms Neo4j)

Testo

Neo4JTest condotto su un dataset di 1M di nodi con ~50 relazioni ciascuno

Page 9: Rate-it! A general purpose Polling Platform (based on graph dbms Neo4j)

Metodi di voto

Risposta singola

Risposta multipla

Metodo di Condorcet

Scala Likert

Thumb

Page 10: Rate-it! A general purpose Polling Platform (based on graph dbms Neo4j)

Metodi di voto

Page 11: Rate-it! A general purpose Polling Platform (based on graph dbms Neo4j)

Statistiche di base

Page 12: Rate-it! A general purpose Polling Platform (based on graph dbms Neo4j)

Statistiche di base

Page 13: Rate-it! A general purpose Polling Platform (based on graph dbms Neo4j)

Statistiche di base

Page 14: Rate-it! A general purpose Polling Platform (based on graph dbms Neo4j)

Metodo di Condorcet

Il metodo di Condorcet e un metodo di elezione che scegli il candidato che vincerebbe rispetto ad altri candidati rispetto ad una determinata regola di maggioranza.

Page 15: Rate-it! A general purpose Polling Platform (based on graph dbms Neo4j)

Metodo Schulze

conosciuto anche come Schwartz Sequential Dropping (SSD)

E’ considerato una variante del metodo di Condorcet.

Page 16: Rate-it! A general purpose Polling Platform (based on graph dbms Neo4j)

Metodo SchulzeDefinizione 1. d[V; W] è il numero di persone che preferiscono il candidato V al candidato W.

Definizione 2. Un percorso dal candidato X al candidato Y di forza p è una sequenza di candidati C1, … ,Cn con le seguenti proprietà:

C1 = X e Cn = Y

∀ i=1,…,n-1 : d[Ci,Ci+1] > d[Ci+1,Ci]

∀ i=1,…,n-1 : d[Ci,Ci+1] ≥ p

Page 17: Rate-it! A general purpose Polling Platform (based on graph dbms Neo4j)

Metodo SchulzeDefinizione 3. p[A, B] é il valore del cammino di forza maggiore tra i candidati A e B (Se non c’é un percorso tra i due candidati allora p[A; B] = 0)

Definizione 4. Il candidato A é migliore del candidato B se e soltanto se p[A, B] > p[B, A]

Definizione 5. Il candidato A é potenzialmente migliore del candidato B se e soltanto se p[A, B] ≥ p[B, A]

Page 18: Rate-it! A general purpose Polling Platform (based on graph dbms Neo4j)

Metodo Schulze

La relazione “potenzialmente migliore” gode della proprietà transitiva, riflessiva e antisimmetrica

I candidati sono un insieme parzialmente ordinato (poset) rispetto alla proprietà “potenzialmente migliore”.

il caso dei parimeriti

Page 19: Rate-it! A general purpose Polling Platform (based on graph dbms Neo4j)

Struttura sul Database

Page 20: Rate-it! A general purpose Polling Platform (based on graph dbms Neo4j)

–Ritorna tutti i cammini orientati di lunghezza N-1 a partire da ogni nodo della clique

START n=node(id1,id2,id3,...,idN)MATCH p=n−[: orderRelation * N−1..N−1{sum :”>”}]->d

RETURN DISTINCT(p);

Page 21: Rate-it! A general purpose Polling Platform (based on graph dbms Neo4j)

Metodo Schulze vs. Somma dei voti

V1=(A,B,C,D,E)

V2=(A,B,C,D,E)

V3=(E,A,B,C,D)

Metodo Somma: (A,B,C,E,D)

Metodo Schulze:(A,B,C,D,E)

Page 22: Rate-it! A general purpose Polling Platform (based on graph dbms Neo4j)

Metodo Schulze

Non sempre vogliamo conoscere l’ordine dei candidati preferiti.

es. “Qual’é l’ordine di preferenze che scontenta meno persone possibili?”

Page 23: Rate-it! A general purpose Polling Platform (based on graph dbms Neo4j)

Testo

Grafico Media/VarianzaMetodo binario

Page 24: Rate-it! A general purpose Polling Platform (based on graph dbms Neo4j)

Testo

Grafico Media/VarianzaMetodo binario

Page 25: Rate-it! A general purpose Polling Platform (based on graph dbms Neo4j)

Testo

Grafico Media/VarianzaMetodo delle differenze

Page 26: Rate-it! A general purpose Polling Platform (based on graph dbms Neo4j)

Testo

Grafico Media/VarianzaMetodo delle differenze

Page 27: Rate-it! A general purpose Polling Platform (based on graph dbms Neo4j)

Architettura

Modularità

Riusabilità

Mantenibilità

ORM GRM

Humus Neo4jOGM Module

Doctrine ORMModule

Mod

el5,

3856

5 m

Cont

rolle

r2,

07 m

View

2,01

m

Page 28: Rate-it! A general purpose Polling Platform (based on graph dbms Neo4j)

Tecnologie adoperate

Page 29: Rate-it! A general purpose Polling Platform (based on graph dbms Neo4j)

Conclusioni e sviluppi futuriImplementare altri metodi di statistiche sui dati

effettuare l’enforcing dei meccanismi di sicurezza

omomorphic cryptography

proxy re-encryption

migliorare l’interfaccia utente

aggiungere la possibilià di votare altri MIME

Page 30: Rate-it! A general purpose Polling Platform (based on graph dbms Neo4j)

Alain Bindele

Grazie per l’attenzione.