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

Post on 14-Jun-2015

183 views 2 download

Tags:

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]

Rate-it!“A general Purpose Polling Platform”

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

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.

Features

Social Networking

Results statistics

RESTFUL API

Mobile apps authentication

Features

Social Networking

Results statistics

RESTFUL API

Mobile apps authentication

Features

Social Networking

Results statistics

RESTFUL API

Mobile apps authentication

Features

Social Networking

Results statistics

RESTFUL API

Mobile apps authentication REST API

Features

Social Networking

Results statistics

RESTFUL API

Mobile apps authentication

Testo

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

Votes Methods

Single choice

Multiple choice

Condorcet’s method

Likert scale

Thumb

Metodi di voto

Statistiche di base

Statistiche di base

Statistiche di base

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.

Metodo Schulze

also known as Schwartz Sequential Dropping (SSD)

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

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

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]

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

Database structure

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

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…

Schulze method

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

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

Testo

Mean/Variance GraphBinary method: same position in the vote

permutation count for 1 different position count for 0

Testo

Mean/Variance GraphBinary method: same position in the vote

permutation count for 1 different position count for 0

Testo

Mean/Variance GraphDifferences Method: valuation of the position difference

between same candidates in two permutations

Testo

Mean/Variance GraphDifferences Method: valuation of the position difference

between same candidates in two permutations

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

Tools and technologies used

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)

Alain Bindele

Thank you for the attention.