-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME.txt
99 lines (56 loc) · 3.68 KB
/
README.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# Social-Network-FDS-Project-
Welcome to 'Social Network Analyzer'.
This program is designed to assist in mapping social networks and carry out analysis on them.
The kind of social networks that we are focusing on are inter-university collaborations.
The tools we will be providing in this program will allow the user to find active members in
the graph-space.
The software uses a '.csv' file alongside. Which is contains an Edge at each line in the form
"Name of Student1, Student1 ID, Year of enrollment, Satisfaction, Name of Student1, Student1 ID, Year of enrollment".
Satisfaction is the measure of the Satisfaction of the collaboration between two people.
It was calculated on a scale from 1-5, where
1-wont work again together
2-bad experience
3-neutral
4-good
5-would definetly work again
The data for our program was taken from a survey conducted last year in the final project of the social networks course
offered by Dr. Shah Jamal from the group of Sidra Dara and Taimoor Neeshat. The data is stored in the .csv file. However
this graph can be edited as the user desires.
To edit the graph, update the input1.csv with new nodes and save.
Instructions:
1- Make sure that Social Network.hs and input1.csv are in the same folder.
2- Run Command Prompt and navigate to the folder that contains the two files.
3- In the prompt, type: runhaskell "Social Network.hs".
4- You will be greeted with a Menu screen that will contain 10 functions, represented by the keys 1-10.
5- Follow the instructions in the Menu.
6- The program requires to work with student ID's. For privacy purposes, names and other info are not shown in the program.
7- Incase of error (such as invalid data entry) program will stop. This will require to run the program again.
Functions:
1: Are two people friends
Takes two IDs as Input and returns a boolean.
2: exist in the list or not
Takes an ID and returns a boolean
3: connections of a member
Takes an ID. Outputs a list of all connections(neighbours).
4: print all the data
Prints all the Student IDs in the list.
5: find the mutual friends between two people
Takes 2 Student IDs. Returns a list of mutual connections.
6: find the shortest path of a node to all the nodes in the graph
Takes a Student ID and outputs a list of shortest paths to all nodes using Dijkstras Algorithm.
The node is in the form (1392,112,False,[-1])
Where 1392 is the student ID.
112 is the distance in terms of edges. (If false, this distance is meaningless)
False is a boolean representing whether the node was visited or not during traversal. (False if not connected)
[-1] is a list that shows the next connected node, on the route of shortest path. Where [-1] = The node is the source node. [-2] = Unvisited node.
7: To find the most influential person in data
Takes a Student ID and calculates the Betweenness centrality. The the node with the highest Betweenness Centrality it outputed. (Might take time depending
on graph size.)
8: find the Betweeness centrality of a node
Takes a Student ID and calculates its Betweenness Centrality.
9: find the shortest distance between two nodes
Outputs a string, thats shows the route from node 'a' to node 'b'.
10: find the most satisfied people till nth term
Outputs a list of edges containing the n most pairs with highest satisfaction.
In the form (Student1, Satisfaction, Student2)
Thank You