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

30
Rate-it! “A general Purpose Polling Platform” A.A: 2013/2014 Candidate : Alain Bindele : 695164 Tutor : 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) [ENG version]

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

Rate-it!“A general Purpose Polling Platform”

A.A: 2013/2014 Candidate: Alain Bindele N°: 695164 Tutor: Emanuele Panizzi

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

Testo

What is?Rate-it! is a RESTful web service that allows to the user to submit and retrieve surveys, to vote them, and to consult statistical data

about them.

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

Features

Social Networking

Results statistics

RESTFUL API

Mobile apps authentication

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

Features

Social Networking

Results statistics

RESTFUL API

Mobile apps authentication

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

Features

Social Networking

Results statistics

RESTFUL API

Mobile apps authentication

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

Features

Social Networking

Results statistics

RESTFUL API

Mobile apps authentication REST API

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

Features

Social Networking

Results statistics

RESTFUL API

Mobile apps authentication

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

Testo

Neo4JTest conducted on a 1M nodes dataset with nearly 50 relationships each one.

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

Votes Methods

Single choice

Multiple choice

Condorcet’s method

Likert scale

Thumb

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

Metodi di voto

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

Statistiche di base

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

Statistiche di base

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

Statistiche di base

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

Condorcet’s method

The Condorcet’s method is an election method aiming to choice a winner between a number of candidates with respect to a pre-determined majority rule.

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

Metodo Schulze

also known as Schwartz Sequential Dropping (SSD)

It’s considered a variant of the Condorcet’s method.

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

Metodo SchulzeDefinition 1. d[V; W] is the number of voters who prefer the candidate V to the candidate W.

Definition 2. A path from the X candidate to the Y candidate of strength p is a sequence of candidates C1, … ,Cn with the following properties:

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) [ENG version]

Metodo SchulzeDefinition 3. p[A, B] is the path of greatest strength between the candidates A and B (If there’s not a path between them p[A; B] = 0)

Definition 4. The candidate A is better than candidate B if and only if p[A, B] > p[B, A]

Definition 5. The candidate A is potentially better than candidate B if and only if p[A, B] ≥ p[B, A]

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

Schulze Method

The “potentially better” relation has three property: transitivity, antisymmetry, reflexivity

Candidates forms a partially ordered set (poset) with respect to the “potentially better” property.

ex aequo could lead to multiple paths of greatest strength

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

Database structure

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

–Return all the oriented path of length N-1 starting from any node of the 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) [ENG version]

Schulze method vs. Vote sum

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

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

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

Sum method*: (A,B,C,E,D)

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

*First candidate receives 5 points, second 4 and so forth…

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

Schulze method

We don’t always want to know the order of preferred candidates.

es. “What is the candidate order matching most voters preferences?”

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

Testo

Mean/Variance GraphBinary method: same position in the vote

permutation count for 1 different position count for 0

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

Testo

Mean/Variance GraphBinary method: same position in the vote

permutation count for 1 different position count for 0

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

Testo

Mean/Variance GraphDifferences Method: valuation of the position difference

between same candidates in two permutations

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

Testo

Mean/Variance GraphDifferences Method: valuation of the position difference

between same candidates in two permutations

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

Software Architecture

Modularity

Reusability

Maintainability

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) [ENG version]

Tools and technologies used

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

Conclusions and future directions

Develop other methods of data analysis

enforcing of security policies

omomorphic cryptography (to mangle encrypted data)

proxy re-encryption (to keep a survey private between peers)

improve GUI

add other vote subjects (MIME contents)

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

Alain Bindele

Thank you for the attention.