Mercurial > hg > drupalISMI
annotate importFromOpenMind/importer/unfilteredISMI.py @ 19:ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
ismi2model: openmind importer like ismi2neo4j that saves networkx pickle file.
author | casties |
---|---|
date | Wed, 09 Sep 2015 17:32:42 +0200 |
parents | |
children | a9bfd49355f8 |
rev | line source |
---|---|
19
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
1 ''' |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
2 Created on 22.04.2014 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
3 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
4 @author: dwinter |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
5 ''' |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
6 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
7 import os |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
8 import json |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
9 import urllib.request |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
10 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
11 #ismiBaseUrl="https://ismi.mpiwg-berlin.mpg.de/om4-ismi" |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
12 ismiBaseUrl="http://localhost:18080/ismi-richfaces" |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
13 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
14 class Importer: |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
15 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
16 allents = {} |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
17 allrels = {} |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
18 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
19 def loadJSON(self,url): |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
20 """Load JSON from URL. |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
21 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
22 Saves JSON in data member. |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
23 """ |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
24 #print(" loading "+url) |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
25 response = urllib.request.urlopen(url) |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
26 str_response = response.readall().decode('utf-8') |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
27 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
28 self.data = json.loads(str_response) |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
29 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
30 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
31 def loadJSONFromFile(self,fn): |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
32 """Load JSON from file. |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
33 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
34 Saves JSON in data member. |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
35 """ |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
36 print(" loading "+fn+".json") |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
37 self.data = json.load(open(fn+".json",'r', encoding="utf-8"),encoding="utf-8") |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
38 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
39 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
40 def getEntIds(self): |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
41 """Extract entities from data member. |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
42 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
43 Checks all relations. |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
44 Returns a set of ids of related objects and a list of the relations. |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
45 """ |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
46 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
47 ents = self.data.get("ents") |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
48 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
49 ret=set() |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
50 rels=[] |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
51 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
52 for ent in ents: |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
53 ret.add(str(ent.get('id'))) |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
54 if 'src_rels' in ent: |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
55 print("src_rels: %s"%ent.get('src_rels')) |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
56 rels.extend(ent.get('src_rels')) |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
57 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
58 if 'tar_rels' in ent: |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
59 print("tar_rels: %s"%ent.get('tar_rels')) |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
60 rels.extend(ent.get('tar_rels')) |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
61 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
62 return ret,rels |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
63 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
64 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
65 def loadallEnts(self,kind="tar",filterOC=[]): |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
66 """Get related entities from OpenMind. |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
67 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
68 Gets all related entities' ids using kind and filterOC via getEntIdsMentioned(). |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
69 Downloads the entities from OpenMind using the ids. |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
70 Returns the entities as JSON-string and a list of relations. |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
71 """ |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
72 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
73 ids,rels = self.getEntIds() |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
74 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
75 baseUrl=ismiBaseUrl+"/jsonInterface?include_content=true&include_romanization=true&method=get_ents" |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
76 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
77 lenId = len(ids) |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
78 portions = int(lenId / 500) |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
79 print("loading %s entities"%lenId) |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
80 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
81 ents = [] |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
82 for p in range(portions+1): |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
83 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
84 start = p * 500 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
85 end = min(lenId,(p+1)*500) |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
86 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
87 idsFrak = list(ids)[start:end] |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
88 idsString = ",".join(idsFrak) |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
89 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
90 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
91 qs = baseUrl+"&ids="+idsString |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
92 #print(" loading ents from "+qs) |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
93 response = urllib.request.urlopen(qs) |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
94 entsJ = json.loads(response.readall().decode('utf-8')); |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
95 ents += entsJ.get("ents") |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
96 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
97 # iterate all entities |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
98 for ent in entsJ.get("ents"): |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
99 ismi_id = ent.get('id') |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
100 if ismi_id in self.allents: |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
101 print("entity id=%s exists!"%ismi_id) |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
102 else: |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
103 self.allents[ismi_id] = ent |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
104 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
105 # extract relations |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
106 if 'src_rels' in ent: |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
107 #print("src_rels: %s"%ent.get('src_rels')) |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
108 rels.extend(ent.get('src_rels')) |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
109 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
110 for rel in ent.get('src_rels'): |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
111 rel_id = rel.get('id') |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
112 if rel_id in self.allrels: |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
113 print("relation id=%s exists!"%rel_id) |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
114 else: |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
115 self.allrels[rel_id] = rel |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
116 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
117 if 'tar_rels' in ent: |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
118 #print("tar_rels: %s"%ent.get('tar_rels')) |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
119 rels.extend(ent.get('tar_rels')) |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
120 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
121 for rel in ent.get('tar_rels'): |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
122 rel_id = rel.get('id') |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
123 if rel_id in self.allrels: |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
124 print("relation id=%s exists!"%rel_id) |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
125 else: |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
126 self.allrels[rel_id] = rel |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
127 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
128 #str_response = json.dumps({"ents":ents}); |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
129 return ents,rels |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
130 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
131 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
132 def saveallEnts(self,filename,kind="tar",filterOC=[]): |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
133 """Loads all related entities and saves as JSON. |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
134 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
135 Loads all related entities using kind and filterOC via LoadAllEnts(). |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
136 Saves entities in file filename.json. |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
137 Saves relations in file filename_rels.json. |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
138 """ |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
139 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
140 ents,rels = self.loadallEnts(kind=kind,filterOC=filterOC) |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
141 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
142 print(" writing ", filename+".json") |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
143 of = open(filename+".json","wb") |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
144 of.write(json.dumps({"ents":ents}).encode('utf-8')) |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
145 of.close() |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
146 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
147 print(" writing ", filename+"_rels.json") |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
148 of = open(filename+"_rels.json","w") |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
149 json.dump({'rels':rels},of); |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
150 of.close() |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
151 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
152 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
153 if __name__ == '__main__': |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
154 imp = Importer() |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
155 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
156 # get current list of all definitions |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
157 imp.loadJSON(ismiBaseUrl+"/jsonInterface?method=get_defs") |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
158 ismi_defs = [atts['ov'] for atts in imp.data['defs']] |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
159 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
160 # create directory for export files |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
161 exportDir = '/tmp/ismi_data' |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
162 if not os.access(exportDir, os.R_OK): |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
163 # dir doesn't exist -> create |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
164 os.makedirs(exportDir) |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
165 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
166 for ismi_def in ismi_defs: |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
167 print("loading entities of type %s"%ismi_def) |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
168 # |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
169 # load all entities of type ismi_def |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
170 # contains entities with attributes and first-order relations |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
171 # |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
172 url = ismiBaseUrl+"/jsonInterface?method=get_ents&oc=%s"%ismi_def |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
173 imp.loadJSON(url) |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
174 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
175 # |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
176 # load and save all target relations of entities as entities.json |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
177 # |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
178 imp.saveallEnts(exportDir+"/%s"%ismi_def) |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
179 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
180 # |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
181 # save all entities in one file |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
182 # |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
183 print(" writing ", "ALL.json") |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
184 of = open(exportDir+"/ALL.json","wb") |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
185 allents = [ent for ent in imp.allents.values()] |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
186 of.write(json.dumps({"ents":allents}).encode('utf-8')) |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
187 of.close() |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
188 |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
189 print(" writing ", "ALL_rels.json") |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
190 of = open(exportDir+"/ALL_rels.json","wb") |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
191 allrels = [rel for rel in imp.allrels.values()] |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
192 of.write(json.dumps({"rels":allrels}).encode('utf-8')) |
ca1e02a2a9c4
unfilteredIsmi: openmind to json exporter like filterISMI.
casties
parents:
diff
changeset
|
193 of.close() |