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

Post on 23-Jun-2015

106 views 1 download

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)

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

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

Testo

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

e richiedere statistiche su voti e opinioni in qualunque ambito.

Funzionalità

Social Networking

Statistiche sui dati

RESTFUL API

Autenticazione Applicazioni Mobili

Funzionalità

Social Networking

Statistiche sui dati

RESTFUL API

Autenticazione Applicazioni Mobili

Funzionalità

Social Networking

Statistiche sui dati

RESTFUL API

Autenticazione Applicazioni Mobili

Funzionalità

Social Networking

Statistiche sui dati

RESTFUL API

Autenticazione Applicazioni Mobili REST API

Funzionalità

Social Networking

Statistiche sui dati

RESTFUL API

Autenticazione Applicazioni Mobili

Testo

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

Metodi di voto

Risposta singola

Risposta multipla

Metodo di Condorcet

Scala Likert

Thumb

Metodi di voto

Statistiche di base

Statistiche di base

Statistiche di base

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.

Metodo Schulze

conosciuto anche come Schwartz Sequential Dropping (SSD)

E’ considerato una variante del metodo di Condorcet.

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

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]

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

Struttura sul Database

–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);

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)

Metodo Schulze

Non sempre vogliamo conoscere l’ordine dei candidati preferiti.

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

Testo

Grafico Media/VarianzaMetodo binario

Testo

Grafico Media/VarianzaMetodo binario

Testo

Grafico Media/VarianzaMetodo delle differenze

Testo

Grafico Media/VarianzaMetodo delle differenze

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

Tecnologie adoperate

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

Alain Bindele

Grazie per l’attenzione.