forked from vedmathai/InferencingInLarge
-
Notifications
You must be signed in to change notification settings - Fork 0
/
mainThreading2.py
67 lines (53 loc) · 2.26 KB
/
mainThreading2.py
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
import CSVRead
import sparqlQuerypy
import Neo4jDrive
from threading import Thread
nameOfFile="agmarkrice2001modified.csv"
def main():
Neo4jDrive.insertNode(nameOfFile)
columnNames=CSVRead.readCSV(nameOfFile,firstRow=True, choice=[0,1,2,3,4])
for name in columnNames:
Neo4jDrive.insertNodeAndRelationship(nameOfFile,"Column",name)
#support=CSVRead.getSupport(nameOfFile,0)
#totalNumberOfValues=CSVRead.numberOfItems(support)
for column in range(sum([1 for _ in Neo4jDrive.findRelationshipsOfNode(nameOfFile,"Column")])):
support=CSVRead.getSupport(nameOfFile,column)
totalNumberOfValues=CSVRead.numberOfItems(support)
#print i.end_node
#cNode=Neo4jDrive.findNodeByName(columnNames[column])
for item in support.keys():
k=itemThread(item,columnNames,column,support,totalNumberOfValues)
k.start()
k.join()
class itemThread(Thread):
def __init__(self,item,columnNames,column,support,totalNumberOfValues):
Thread.__init__(self)
self.item=item
self.columnNames=columnNames
self.column=column
self.support=support
self.totalNumberOfValues=totalNumberOfValues
def run(self):
support=self.support
totalNumberOfValues=self.totalNumberOfValues
column=self.column
columnNames=self.columnNames
item=self.item
rlist=sparqlQuerypy.findBottomUp(item)
for r in rlist:
rel_data=Neo4jDrive.insertNodeAndRelationship(columnNames[column],"cc",r[2])
node=Neo4jDrive.findNodeByName(r[2])
if node.properties['incoming']==None:
node.properties['incoming']=1
else:
node.properties['incoming']+=1
node.properties['type']='type'
node.push()
rel_data=rel_data[0]
rel_data.properties['rel_class'] = 'cc'
rel_data.properties['support']=support[item]/(totalNumberOfValues*1.0)
rel_data.push()
if __name__=='__main__':
main()
#rel_data=Neo4jDrive.insertNodeAndRelationship(nameOfFile,"Column","Home")
#Neo4jDrive.insertNodeAndRelationship(nameOfFile,"Column",name)