-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathexample.html
More file actions
297 lines (269 loc) · 44 KB
/
example.html
File metadata and controls
297 lines (269 loc) · 44 KB
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
<!DOCTYPE html>
<html>
<head>
<title>FCA example</title>
<script src="bvo.js"></script>
<script src="fca.js"></script>
<meta charset="utf-8" />
<style>
*{font-family: Courier;}
</style>
</head>
<body>
<p>Example of FCA application</p>
<p>This uses a dataset of countries and there caracteristics.</p>
<div id="message"></div>
<div id="control">
<!-- <div id="high_level_control">
Load: <input type="file" id="file-input"/>
<a class="button" href="javascript:save();">Save</a>
</div>
-->
<h2>Process</h2>
<div id="buildconcept" style="margin-top: 10px;">
<a class="button" href="javascript:buildconcepts()">Build concepts</a>
<span id="bc_message">On my laptop, it takes a few minutes.</span>
</div>
<div id="buildtaxonomy" style="margin-top: 10px;">
<a class="button" href="javascript:buildtaxonomy()">Build Taxonomy</a>
<span id="bt_message">On my laptop, it takes a few minutes again.</span>
</div>
<div id="populate" style="margin-top: 10px;">
<a class="button" href="javascript:populate()">Populate and add labels</a>
<span id="p_message">This takes less time... but still a bit</span>
</div>
<div id="rulestr" style="margin-top: 20px">
confident min: <input type="number" value="0.8" max="0.99" id="rule_cmin" style="width: 60px" />
max: <input type="number" value="1.0" max="1.0" id="rule_cmax" style="width: 60px" />
support min: <input type="number" value="20" max="200" id="rule_smin" style="width: 60px" />
max: <input type="number" value="200" max="200" id="rule_smax" style="width: 60px" />
</div>
<div id="rules" style="margin-top: 10px;">
<a class="button" href="javascript:rules()">Extract rules</a>
<span id="r_message">This takes less time... but still a bit</span>
</div>
</div> <!-- control -->
<h2>Lattice</h2>
<div id="lattice">Something will appear here when the process is complete.</div>
<h2>Rules</h2>
<div id="rules_ex">Something will appear here when the rules are extracted.</div>
<!-- data from example data folder: fc_attributes and fc_objects -->
<script>
var stage = 0
const attributes = ["area:low", "area:medium", "area:high", "population:low", "population:medium", "population:high", "mains voltage:low", "mains voltage:medium", "mains voltage:high", "driving side:right", "driving side:left", "inflation rate:low", "inflation rate:medium", "inflation rate:high", "total fertility rate:low", "total fertility rate:medium", "total fertility rate:high", "PPP GDP per capita:low", "PPP GDP per capita:medium", "PPP GDP per capita:high", "life expectancy:low", "life expectancy:medium", "life expectancy:high", "has quality:free country", "has quality:historical country", "has quality:partly free country", "has quality:not-free country", "nominal GDP per capita:low", "nominal GDP per capita:medium", "nominal GDP per capita:high", "nominal GDP:low", "nominal GDP:medium", "nominal GDP:high"]
const fc_objects = {"Canada": [false, false, true, false, false, true, true, false, false, true, false, false, true, false, true, false, false, false, false, true, false, false, true, true, false, false, false, false, false, true, false, false, true], "East Timor": [true, false, false, true, false, false, false, true, false, false, true, true, false, false, false, false, true, false, true, false, true, false, false, false, false, true, false, false, true, false, true, false, false], "Turkmenistan": [false, false, true, false, true, false, false, true, false, true, false, false, false, true, false, true, false, false, true, false, false, true, false, false, false, false, true, false, true, false, false, true, false], "United States of America": [false, false, true, false, true, false, true, false, false, true, false, false, true, false, true, false, false, false, false, true, false, false, true, true, false, false, false, false, false, true, false, false, true], "Cambodia": [false, true, false, false, true, false, false, true, false, true, false, false, true, false, false, true, false, true, false, false, true, false, false, false, false, false, true, true, false, false, false, true, false], "Republic of the Congo": [false, true, false, true, false, false, false, true, false, true, false, true, false, false, false, false, true, false, true, false, true, false, false, false, false, false, true, true, false, false, true, false, false], "Ethiopia": [false, false, true, false, false, true, false, true, false, true, false, false, false, true, false, false, true, true, false, false, true, false, false, false, false, false, true, true, false, false, false, false, true], "The Gambia": [true, false, false, true, false, false, false, true, false, true, false, false, false, true, false, false, true, true, false, false, true, false, false, false, false, false, true, true, false, false, true, false, false], "Sri Lanka": [false, true, false, false, false, true, false, true, false, false, true, false, true, false, true, false, false, false, true, false, false, true, false, false, false, true, false, true, false, false, false, false, true], "Bolivia": [false, false, true, false, true, false, true, false, false, true, false, false, true, false, false, true, false, false, true, false, true, false, false, false, false, true, false, true, false, false, false, true, false], "Cameroon": [false, false, true, false, true, false, false, true, false, true, false, true, false, false, false, false, true, false, true, false, true, false, false, false, false, false, true, true, false, false, false, true, false], "Burkina Faso": [false, true, false, false, true, false, false, true, false, true, false, true, false, false, false, false, true, true, false, false, true, false, false, false, false, true, false, true, false, false, false, false, true], "Ghana": [false, true, false, false, true, false, false, true, false, true, false, false, false, true, false, false, true, true, false, false, true, false, false, true, false, false, false, true, false, false, false, true, false], "Saudi Arabia": [false, false, true, false, true, false, false, true, false, true, false, false, true, false, false, true, false, false, false, true, false, false, true, false, false, false, true, false, true, false, false, true, false], "Cape Verde": [true, false, false, true, false, false, false, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false, false, false, false, true, false, true, false, false], "Guatemala": [false, true, false, false, true, false, true, false, false, true, false, false, true, false, false, false, true, false, true, false, false, true, false, false, false, true, false, false, true, false, false, true, false], "Guinea": [false, true, false, false, true, false, false, true, false, true, false, false, false, true, false, false, true, true, false, false, true, false, false, false, false, true, false, false, true, false, false, true, false], "Germany": [false, true, false, false, false, true, false, true, false, true, false, false, true, false, true, false, false, false, false, true, false, false, true, true, false, false, false, false, false, true, false, false, true], "Dominica": [true, false, false, true, false, false, false, true, false, false, true, true, false, false, true, false, false, false, true, false, false, false, true, true, false, false, false, false, true, false, true, false, false], "Liberia": [false, true, false, true, false, false, true, false, false, true, false, false, false, true, false, false, true, true, false, false, true, false, false, false, false, true, false, false, true, false, true, false, false], "Netherlands": [true, false, false, false, false, true, false, true, false, true, false, true, false, false, true, false, false, false, false, true, false, false, true, true, false, false, false, false, false, true, false, false, true], "Pakistan": [false, false, true, false, false, true, false, true, false, false, true, false, true, false, false, false, true, false, true, false, false, true, false, false, false, true, false, true, false, false, false, true, false], "Oman": [false, true, false, true, false, false, false, false, true, true, false, true, false, false, false, true, false, false, false, true, false, false, true, false, false, false, true, true, false, false, true, false, false], "Tanzania": [false, false, true, false, false, true, false, true, false, false, true, false, false, true, false, false, true, true, false, false, true, false, false, false, false, true, false, true, false, false, false, false, true], "Ivory Coast": [false, true, false, false, true, false, false, true, false, true, false, true, false, false, false, false, true, false, true, false, true, false, false, false, false, true, false, false, false, true, false, true, false], "People's Republic of China": [false, false, true, false, false, true, false, true, false, true, false, false, true, false, true, false, false, true, false, false, false, false, true, false, false, false, true, true, false, false, false, false, true], "New Zealand": [false, true, false, false, true, false, false, true, false, false, true, false, true, false, true, false, false, false, false, true, false, false, true, true, false, false, false, false, false, true, false, false, true], "Yemen": [false, false, true, false, false, true, false, true, false, true, false, false, false, true, false, false, true, false, true, false, true, false, false, false, false, false, true, false, true, false, false, false, true], "Jamaica": [true, false, false, false, true, false, true, false, false, false, true, false, true, false, false, true, false, false, true, false, false, false, true, true, false, false, false, false, true, false, false, true, false], "Samoa": [true, false, false, true, false, false, false, true, false, true, false, false, true, false, false, false, true, false, true, false, false, true, false, true, false, false, false, false, true, false, true, false, false], "United Arab Emirates": [false, true, false, true, false, false, false, true, false, true, false, false, true, false, false, true, false, false, false, true, false, false, true, false, false, false, true, false, false, true, false, false, true], "India": [false, false, true, false, false, true, false, true, false, false, true, false, false, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, false, false, false, true], "Lesotho": [true, false, false, true, false, false, false, true, false, false, true, false, false, true, false, true, false, true, false, false, true, false, false, false, false, true, false, true, false, false, true, false, false], "Saint Vincent and the Grenadines": [true, false, false, true, false, false, false, true, false, false, true, false, true, false, false, true, false, false, true, false, false, true, false, true, false, false, false, true, false, false, true, false, false], "Kenya": [false, false, true, false, false, true, false, false, true, false, true, false, false, true, false, false, true, true, false, false, true, false, false, false, false, true, false, true, false, false, false, true, false], "South Korea": [false, true, false, false, false, true, false, true, false, true, false, false, true, false, true, false, false, false, false, true, false, false, true, true, false, false, false, true, false, false, false, true, false], "Tajikistan": [false, true, false, false, false, true, false, true, false, true, false, false, false, true, false, true, false, false, true, false, false, true, false, false, false, false, true, false, true, false, false, true, false], "Turkey": [false, false, true, false, false, true, false, true, false, true, false, false, false, true, false, true, false, false, true, false, false, true, false, false, false, true, false, false, true, false, false, false, true], "Afghanistan": [false, false, true, false, false, true, false, false, true, true, false, false, false, true, false, false, true, true, false, false, true, false, false, false, false, false, true, true, false, false, true, false, false], "Czech Republic": [false, true, false, false, false, true, false, true, false, true, false, false, false, true, true, false, false, false, false, true, false, false, true, true, false, false, false, false, false, true, false, false, true], "Mauritania": [false, false, true, true, false, false, false, true, false, true, false, false, true, false, false, false, true, true, false, false, true, false, false, false, false, false, true, true, false, false, false, false, true], "Solomon Islands": [true, false, false, true, false, false, false, true, false, false, true, true, false, false, false, false, true, true, false, false, false, true, false, true, false, false, false, true, false, false, true, false, false], "Saint Lucia": [true, false, false, true, false, false, false, false, true, false, true, true, false, false, true, false, false, false, true, false, false, true, false, true, false, false, false, false, false, true, true, false, false], "Mongolia": [false, false, true, false, true, false, false, true, false, true, false, true, false, false, true, false, false, false, true, false, false, true, false, true, false, false, false, false, false, true, false, true, false], "France": [false, false, true, false, false, true, false, true, false, true, false, true, false, false, true, false, false, false, false, true, false, false, true, true, false, false, false, false, false, true, false, false, true], "Rwanda": [true, false, false, false, true, false, false, true, false, true, false, false, false, true, false, false, true, true, false, false, true, false, false, false, false, false, true, true, false, false, true, false, false], "Slovakia": [false, true, false, false, true, false, false, true, false, true, false, true, false, false, true, false, false, false, false, true, false, false, true, true, false, false, false, false, false, true, false, false, true], "Peru": [false, false, true, false, false, true, false, true, false, true, false, false, true, false, false, true, false, false, true, false, false, true, false, true, false, false, false, false, true, false, false, true, false], "Vanuatu": [true, false, false, true, false, false, false, true, false, true, false, false, true, false, false, false, true, true, false, false, false, true, false, true, false, false, false, false, false, true, true, false, false], "Norway": [false, true, false, false, true, false, false, true, false, true, false, false, true, false, true, false, false, false, false, true, false, false, true, true, false, false, false, false, false, true, false, false, true], "Malawi": [false, true, false, false, true, false, false, true, false, false, true, false, false, true, false, false, true, true, false, false, true, false, false, false, false, true, false, true, false, false, true, false, false], "Benin": [false, true, false, false, true, false, false, true, false, true, false, true, false, false, false, false, true, true, false, false, true, false, false, true, false, false, false, true, false, false, true, false, false], "Federated States of Micronesia": [true, false, false, true, false, false, true, false, false, true, false, false, true, false, false, false, true, true, false, false, false, true, false, true, false, false, false, false, false, true, true, false, false], "Singapore": [true, false, false, false, true, false, false, true, false, false, true, true, false, false, true, false, false, false, false, true, false, false, true, false, false, true, false, false, true, false, false, true, false], "Montenegro": [true, false, false, true, false, false, false, true, false, true, false, true, false, false, true, false, false, false, true, false, false, false, true, false, false, true, false, false, false, true, false, true, false], "Saint Kitts and Nevis": [true, false, false, true, false, false, false, true, false, false, true, true, false, false, true, false, false, false, false, true, false, true, false, true, false, false, false, false, true, false, true, false, false], "Togo": [false, true, false, false, true, false, false, true, false, true, false, false, true, false, false, false, true, true, false, false, true, false, false, false, false, true, false, true, false, false, false, false, true], "Dominican Republic": [false, true, false, false, true, false, true, false, false, true, false, false, true, false, false, true, false, false, true, false, false, true, false, false, false, true, false, true, false, false, false, true, false], "Bahrain": [true, false, false, true, false, false, false, true, false, true, false, false, true, false, false, true, false, false, false, true, false, false, true, false, false, false, true, false, false, true, false, true, false], "Finland": [false, true, false, false, true, false, false, true, false, true, false, true, false, false, true, false, false, false, false, true, false, false, true, true, false, false, false, false, false, true, false, false, true], "Libya": [false, false, true, true, false, false, true, false, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false, false, false, false, true, false, false, true, false, false, true], "Indonesia": [false, false, true, false, false, true, true, false, false, false, true, false, true, false, false, true, false, false, true, false, false, true, false, false, false, true, false, true, false, false, false, false, true], "Central African Republic": [false, false, true, false, true, false, false, true, false, true, false, false, false, true, false, false, true, true, false, false, true, false, false, false, false, false, true, false, true, false, true, false, false], "Mauritius": [true, false, false, true, false, false, false, true, false, false, true, false, true, false, true, false, false, false, true, false, false, true, false, true, false, false, false, false, true, false, false, true, false], "Vietnam": [false, true, false, false, false, true, false, true, false, true, false, false, false, true, true, false, false, true, false, false, false, false, true, false, false, false, true, false, true, false, false, false, true], "Mali": [false, false, true, false, true, false, false, true, false, true, false, true, false, false, false, false, true, true, false, false, true, false, false, false, false, true, false, true, false, false, true, false, false], "Bulgaria": [false, true, false, false, true, false, false, true, false, true, false, true, false, false, true, false, false, false, true, false, false, true, false, true, false, false, false, false, false, true, false, false, true], "Romania": [false, true, false, false, false, true, false, true, false, true, false, true, false, false, true, false, false, false, false, true, false, true, false, true, false, false, false, false, false, true, false, false, true], "Chad": [false, false, true, false, true, false, false, true, false, true, false, true, false, false, false, false, true, true, false, false, true, false, false, false, false, false, true, true, false, false, true, false, false], "South Africa": [false, false, true, false, false, true, false, true, false, false, true, false, false, true, false, true, false, false, false, true, true, false, false, true, false, false, false, false, false, true, false, false, true], "Fiji": [true, false, false, true, false, false, false, false, true, false, true, false, true, false, false, true, false, false, true, false, false, true, false, false, false, true, false, false, true, false, true, false, false], "Malaysia": [false, true, false, false, false, true, false, false, true, false, true, false, true, false, false, true, false, false, false, true, false, false, true, false, false, true, false, false, true, false, false, true, false], "Austria": [false, true, false, false, false, true, false, true, false, true, false, false, true, false, true, false, false, false, false, true, false, false, true, true, false, false, false, false, false, true, false, false, true], "Mozambique": [false, false, true, false, true, false, false, true, false, false, true, false, false, true, false, false, true, true, false, false, true, false, false, false, false, true, false, false, true, false, false, true, false], "Uganda": [false, true, false, false, true, false, false, false, true, false, true, false, false, true, false, false, true, true, false, false, true, false, false, false, false, false, true, true, false, false, true, false, false], "Japan": [false, true, false, false, false, true, true, false, false, false, true, true, false, false, true, false, false, false, false, true, false, false, true, true, false, false, false, false, true, false, false, false, true], "Niger": [false, false, true, false, true, false, false, true, false, true, false, true, false, false, false, false, true, true, false, false, true, false, false, false, false, true, false, true, false, false, true, false, false], "Brazil": [false, false, true, false, false, true, true, false, false, true, false, false, false, true, true, false, false, false, false, true, false, true, false, true, false, false, false, true, false, false, false, false, true], "The Bahamas": [true, false, false, true, false, false, true, false, false, false, true, true, false, false, true, false, false, false, false, true, false, false, true, true, false, false, false, false, false, true, true, false, false], "Costa Rica": [false, true, false, true, false, false, true, false, false, true, false, true, false, false, false, true, false, false, true, false, false, false, true, true, false, false, false, false, true, false, true, false, false], "Ireland": [false, true, false, false, true, false, false, true, false, false, true, true, false, false, true, false, false, false, false, true, false, false, true, true, false, false, false, false, true, false, false, true, false], "Palau": [true, false, false, true, false, false, true, false, false, true, false, true, false, false, true, false, false, false, false, true, false, true, false, true, false, false, false, false, false, true, true, false, false], "Nigeria": [false, false, true, false, false, true, false, true, false, true, false, false, false, true, false, false, true, false, true, false, true, false, false, false, false, true, false, true, false, false, false, true, false], "Ecuador": [false, true, false, false, true, false, true, false, false, true, false, true, false, false, false, true, false, false, true, false, false, false, true, false, false, true, false, false, true, false, false, true, false], "Bangladesh": [false, true, false, false, false, true, false, true, false, false, true, false, false, true, false, true, false, true, false, false, false, true, false, false, false, true, false, true, false, false, false, true, false], "Brunei": [true, false, false, true, false, false, false, false, true, false, true, true, false, false, true, false, false, false, false, true, false, false, true, false, false, false, true, false, false, true, true, false, false], "Australia": [false, false, true, false, false, true, false, true, false, false, true, true, false, false, true, false, false, false, false, true, false, false, true, true, false, false, false, false, false, true, false, false, true], "Iran": [false, false, true, false, false, true, false, true, false, true, false, false, false, true, true, false, false, false, false, true, false, true, false, false, false, false, true, true, false, false, false, false, true], "Algeria": [false, false, true, false, false, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false, false, false, false, true, false, true, false, false, true, false], "El Salvador": [true, false, false, false, true, false, true, false, false, true, false, true, false, false, false, true, false, false, true, false, false, true, false, true, false, false, false, false, true, false, false, true, false], "Chile": [false, false, true, false, true, false, false, true, false, true, false, false, true, false, true, false, false, false, true, false, false, false, true, true, false, false, false, false, true, false, false, true, false], "Kiribati": [true, false, false, true, false, false, false, false, true, false, true, false, true, false, false, true, false, true, false, false, false, true, false, true, false, false, false, false, true, false, true, false, false], "Haiti": [true, false, false, false, true, false, true, false, false, true, false, false, false, true, false, false, true, true, false, false, true, false, false, false, false, true, false, true, false, false, false, true, false], "Iraq": [false, false, true, false, true, false, false, true, false, true, false, true, false, false, false, false, true, false, false, true, false, true, false, false, false, false, true, false, true, false, false, true, false], "Sierra Leone": [false, true, false, false, true, false, false, true, false, true, false, false, false, true, false, false, true, true, false, false, true, false, false, false, false, true, false, true, false, false, true, false, false], "Nepal": [false, true, false, false, false, true, false, true, false, false, true, false, false, true, false, true, false, true, false, false, true, false, false, false, false, true, false, true, false, false, true, false, false], "Denmark": [false, true, false, false, true, false, false, true, false, true, false, true, false, false, true, false, false, false, false, true, false, false, true, true, false, false, false, false, false, true, false, false, true], "Poland": [false, true, false, false, false, true, false, true, false, true, false, true, false, false, true, false, false, false, false, true, false, false, true, true, false, false, false, false, false, true, false, false, true], "Morocco": [false, false, true, false, false, true, true, false, false, true, false, false, true, false, false, true, false, false, true, false, false, true, false, false, false, true, false, true, false, false, false, true, false], "Croatia": [false, true, false, false, true, false, false, true, false, true, false, true, false, false, true, false, false, false, false, true, false, false, true, true, false, false, false, false, false, true, false, false, true], "Guinea-Bissau": [true, false, false, true, false, false, false, true, false, true, false, false, true, false, false, false, true, true, false, false, true, false, false, false, false, true, false, true, false, false, true, false, false], "Thailand": [false, false, true, false, false, true, false, true, false, false, true, true, false, false, true, false, false, false, true, false, false, true, false, false, false, false, true, true, false, false, false, true, false], "Grenada": [true, false, false, true, false, false, false, true, false, false, true, false, true, false, false, true, false, false, true, false, false, true, false, true, false, false, false, false, false, true, false, true, false], "Seychelles": [true, false, false, true, false, false, false, false, true, false, true, true, false, false, true, false, false, false, false, true, false, false, true, false, false, true, false, false, true, false, false, true, false], "Portugal": [false, true, false, false, false, true, false, true, false, true, false, true, false, false, true, false, false, false, false, true, false, false, true, true, false, false, false, false, true, false, false, true, false], "Uruguay": [false, true, false, false, true, false, false, true, false, true, false, false, false, true, true, false, false, false, false, true, false, false, true, true, false, false, false, false, true, false, false, true, false], "Lebanon": [true, false, false, false, true, false, false, true, false, true, false, false, true, false, true, false, false, false, true, false, false, false, true, false, false, true, false, false, false, true, false, true, false], "Uzbekistan": [false, false, true, false, false, true, false, true, false, true, false, false, false, true, false, true, false, false, true, false, false, true, false, false, false, false, true, false, true, false, false, false, true], "Tunisia": [false, true, false, false, false, true, false, true, false, true, false, false, true, false, true, false, false, false, true, false, false, false, true, true, false, false, false, true, false, false, false, true, false], "Djibouti": [true, false, false, true, false, false, false, true, false, true, false, false, true, false, false, false, true, false, true, false, true, false, false, false, false, false, true, false, false, true, true, false, false], "Antigua and Barbuda": [true, false, false, true, false, false, false, true, false, false, true, true, false, false, true, false, false, false, false, true, false, false, true, true, false, false, false, false, false, true, true, false, false], "Colombia": [false, false, true, false, false, true, true, false, false, true, false, false, false, true, false, true, false, false, true, false, false, true, false, false, false, true, false, false, true, false, false, false, true], "Burundi": [true, false, false, false, true, false, false, true, false, true, false, false, false, true, false, false, true, true, false, false, true, false, false, false, false, false, true, true, false, false, true, false, false], "Eswatini": [true, false, false, true, false, false, false, true, false, false, true, false, false, true, false, false, true, false, true, false, true, false, false, false, false, false, true, true, false, false, true, false, false], "Nicaragua": [false, true, false, false, true, false, true, false, false, true, false, false, true, false, false, true, false, false, true, false, false, true, false, false, false, true, false, true, false, false, false, true, false], "Barbados": [true, false, false, true, false, false, true, false, false, false, true, true, false, false, true, false, false, false, false, true, false, false, true, true, false, false, false, false, false, true, true, false, false], "Madagascar": [false, false, true, false, true, false, true, false, false, true, false, false, false, true, false, false, true, true, false, false, true, false, false, false, false, true, false, true, false, false, false, true, false], "Italy": [false, true, false, false, false, true, false, true, false, true, false, true, false, false, true, false, false, false, false, true, false, false, true, true, false, false, false, false, false, true, false, false, true], "Bhutan": [true, false, false, true, false, false, false, true, false, false, true, false, true, false, false, true, false, true, false, false, true, false, false, false, false, true, false, false, true, false, true, false, false], "Sudan": [false, false, true, false, false, true, false, true, false, true, false, false, false, true, false, false, true, true, false, false, true, false, false, false, false, false, true, true, false, false, false, true, false], "Laos": [false, true, false, false, true, false, false, true, false, true, false, false, true, false, false, false, true, true, false, false, true, false, false, false, false, false, true, false, true, false, false, true, false], "Democratic Republic of the Congo": [false, false, true, false, false, true, false, true, false, true, false, false, false, true, false, false, true, true, false, false, true, false, false, false, false, false, true, false, true, false, false, true, false], "Maldives": [true, false, false, true, false, false, false, true, false, false, true, false, true, false, false, true, false, false, true, false, false, true, false, false, false, true, false, false, true, false, true, false, false], "S\u00e3o Tom\u00e9 and Pr\u00edncipe": [true, false, false, true, false, false, false, true, false, true, false, false, false, true, false, false, true, true, false, false, false, true, false, true, false, false, false, false, true, false, true, false, false], "Venezuela": [false, false, true, false, false, true, true, false, false, true, false, false, false, true, false, true, false, false, false, true, false, false, true, false, false, false, true, false, false, true, false, false, true], "Israel": [true, false, false, false, false, true, false, true, false, true, false, true, false, false, false, true, false, false, false, true, false, false, true, true, false, false, false, false, false, true, false, true, false], "Zambia": [false, false, true, false, false, true, false, true, false, false, true, false, false, true, false, false, true, true, false, false, true, false, false, false, false, true, false, false, true, false, false, true, false], "Senegal": [false, true, false, false, true, false, false, true, false, true, false, false, true, false, false, false, true, true, false, false, true, false, false, true, false, false, false, false, true, false, false, true, false], "Papua New Guinea": [false, false, true, false, true, false, false, false, true, false, true, false, false, true, false, false, true, true, false, false, true, false, false, false, false, true, false, true, false, false, true, false, false], "Zimbabwe": [false, false, true, false, true, false, false, true, false, false, true, true, false, false, false, true, false, true, false, false, true, false, false, false, false, true, false, false, true, false, false, true, false], "Jordan": [false, true, false, false, false, true, false, true, false, true, false, true, false, false, false, true, false, false, true, false, false, false, true, false, false, true, false, false, true, false, false, true, false], "Kazakhstan": [false, false, true, false, false, true, false, true, false, true, false, false, false, true, true, false, false, false, false, true, false, true, false, false, false, false, true, false, false, true, false, false, true], "Philippines": [false, true, false, true, false, false, false, true, false, true, false, false, true, false, false, true, false, false, false, true, false, true, false, false, false, true, false, false, true, false, false, false, true], "Eritrea": [false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, false, true, true, false, false, true, false, false, false, false, false, true, true, false, false, true, false, false], "Kyrgyzstan": [false, true, false, false, true, false, false, true, false, true, false, true, false, false, false, true, false, false, true, false, false, true, false, false, false, true, false, false, true, false, false, true, false], "Trinidad and Tobago": [true, false, false, true, false, false, true, false, false, false, true, false, true, false, true, false, false, false, false, true, false, true, false, true, false, false, false, false, true, false, true, false, false], "Latvia": [false, true, false, false, true, false, false, true, false, true, false, false, true, false, true, false, false, false, true, false, false, true, false, true, false, false, false, false, false, true, false, false, true], "Guyana": [false, true, false, true, false, false, false, false, true, false, true, false, true, false, false, true, false, true, false, false, false, true, false, true, false, false, false, false, true, false, true, false, false], "Honduras": [false, true, false, false, true, false, true, false, false, true, false, false, true, false, false, true, false, false, true, false, false, true, false, false, false, true, false, false, false, true, true, false, false], "Myanmar": [false, false, true, false, false, true, false, true, false, true, false, false, false, true, false, true, false, true, false, false, false, true, false, false, false, true, false, true, false, false, false, false, true], "Mexico": [false, false, true, false, false, true, true, false, false, true, false, false, true, false, false, true, false, false, false, true, false, false, true, false, false, true, false, false, true, false, false, false, true], "Egypt": [false, false, true, false, false, true, false, true, false, true, false, false, false, true, false, true, false, false, true, false, false, true, false, false, false, false, true, false, true, false, false, false, true], "Comoros": [true, false, false, true, false, false, false, true, false, true, false, true, false, false, false, false, true, true, false, false, true, false, false, false, false, true, false, false, true, false, true, false, false], "United Kingdom": [false, true, false, false, false, true, false, true, false, false, true, false, true, false, true, false, false, false, false, true, false, false, true, true, false, false, false, false, false, true, false, false, true], "Paraguay": [false, false, true, false, true, false, false, true, false, true, false, false, true, false, false, true, false, false, true, false, false, true, false, false, false, true, false, true, false, false, true, false, false], "Namibia": [false, false, true, true, false, false, false, true, false, false, true, false, false, true, false, true, false, false, true, false, true, false, false, true, false, false, false, false, false, true, false, true, false], "Botswana": [false, false, true, true, false, false, false, true, false, false, true, false, true, false, false, true, false, false, true, false, true, false, false, true, false, false, false, true, false, false, true, false, false]}
const objects = Object.keys(fc_objects)
var matrix = []
var count = 0
for(var o in objects) {
matrix.push(fc_objects[objects[o]])
count++
// if (count > 20) break
}
console.log(count)
</script>
<!-- building lattice -->
<script>
(function (){
//document.getElementById("file-input")
// .addEventListener("change", load, false);
})()
var formal_context = new FormalContext(attributes, objects, matrix)
function save(){
data={stage: stage, concepts: []}
for (var i in formal_context.concepts){
var c = formal_context.concepts[i]
var bv = new BinaryVector([])
bv._representation = c.intent._representation
bv.size = c.intent.size
var nc = new Concept(bv, true)
nc.subconcepts = []
nc.superconcepts = []
for(var j in c.subconcepts){
var sc = c.subconcepts[j]
var sbv = new BinaryVector([])
sbv._representation = sc.intent._representation
sbv.size = sc.intent.size
var nsc = new Concept(sbv, true)
nc.subconcepts.push(nsc)
}
for(var j in c.superconcepts){
var sc = c.superconcepts[j]
var sbv = new BinaryVector([])
sbv._representation = sc.intent._representation
sbv.size = sc.intent.size
var nsc = new Concept(sbv, true)
nc.superconcepts.push(nsc)
}
data.concepts.push(nc)
}
var file = new Blob([JSON.stringify(data)], {type: "application/json"});
var filename = "fca.json"
if (window.navigator.msSaveOrOpenBlob) {
window.navigator.msSaveOrOpenBlob(file, filename);
} else {
var a = document.createElement("a"),
url = URL.createObjectURL(file);
a.href = url;
a.download = filename;
document.body.appendChild(a);
a.click();
setTimeout(function() {
document.body.removeChild(a);
window.URL.revokeObjectURL(url);
}, 0);
}
}
function load(e) {
alert("loading can take a bit of time if the taxonomy needs to be rebuilt")
var file = e.target.files[0]
loadFile(file)
}
function loadFile(file){
if (!file) {
return
}
var reader = new FileReader()
reader.onload = function(e) {
const contents = e.target.result
const cdata = JSON.parse(contents)
stage = cdata.stage
formal_context.contents = []
var concepts = {}
for (var i in cdata.concepts){
var bv = new BinaryVector([])
bv._representation = cdata.concepts[i].intent._representation
bv.size = cdata.concepts[i].intent.size
var c = new Concept( bv , true)
formal_context.concepts.push(c)
concepts[bv._representation.join()] = c
}
for (var i in cdata.concepts){
c1 = concepts[cdata.concepts[i].intent._representation.join()]
for (var j in cdata.concepts[i].subconcepts){
c2 = concepts[cdata.concepts[i].subconcepts[j].intent._representation.join()]
if (!c1.subconcepts) c1.subconcepts = []
if (!c2.superconcepts) c2.superconcepts = []
c1.subconcepts.push(c2)
c2.superconcepts.push(c1)
}
}
if (stage >= 1) document.getElementById("bc_message").innerHTML = "loaded"
if (stage >= 1) document.getElementById("bt_message").innerHTML = "loaded"
console.log(formal_context.root())
}
reader.readAsText(file);
}
function buildconcepts(){
const starttime = new Date().getTime()
console.log("started building concepts")
formal_context.buildConcepts()
document.getElementById("bc_message").innerHTML="completed in "+((new Date().getTime() - starttime)/1000)+"s"
console.log(formal_context)
stage = 1
}
function buildtaxonomy(){
if (stage < 1){
alert("you need to build concepts first")
return
}
const starttime = new Date().getTime()
console.log("started building taxonomy")
formal_context.buildTaxonomy()
document.getElementById("bt_message").innerHTML="completed in "+((new Date().getTime() - starttime)/1000)+"s"
console.log(formal_context.root())
stage = 2
}
function populate(){
if (stage < 2){
alert("you need to build taxonomy first")
return
}
const starttime = new Date().getTime()
console.log("started populating")
formal_context.populate()
formal_context.addLabels()
document.getElementById("p_message").innerHTML="completed in "+((new Date().getTime() - starttime)/1000)+"s"
console.log(formal_context.root())
document.getElementById('lattice').innerHTML = showConcept(formal_context.root(), 0)
stage = 3
}
function difference(a,b){
var res = []
for (var i in a)
if (!b.includes(a[i])) res.push(a[i])
return res
}
function rules(){
if (stage < 3){
alert("you need to populate first")
return
}
const starttime = new Date().getTime()
console.log("started rule extraction")
const cmin = document.getElementById("rule_cmin").value
const cmax = document.getElementById("rule_cmax").value
const smin = document.getElementById("rule_smin").value
const smax = document.getElementById("rule_smax").value
var st = ""
for (var i in formal_context.concepts){
var c = formal_context.concepts[i]
var sc = c.objects.length
for (var j in c.subconcepts){
var ssc = c.subconcepts[j].objects.length
if (ssc/sc >= cmin && ssc >= smin && ssc <= smax && ssc/sc <= cmax){
var d = difference(c.subconcepts[j].attributes, c.attributes)
st += '<div class="rule" style="margin-top: 10px">'+c.attributes.join(",")+" -> "+d.join(",")+" s:"+(ssc)+" c:"+(ssc/sc)+"</div>"
}
}
}
document.getElementById("r_message").innerHTML="completed in "+((new Date().getTime() - starttime)/1000)+"s"
document.getElementById('rules_ex').innerHTML = st
stage = 4
}
function rules2(){
if (stage < 3){
alert("you need to populate first")
return
}
const starttime = new Date().getTime()
console.log("started rule extraction")
var st = ""
for (var i in formal_context.concepts){
var c = formal_context.concepts[i]
if (c.properAttributes.length > 0){
var rs = difference(c.attributes, c.properAttributes)
if (rs.length > 0)
st += c.properAttributes.join(",")+" -> "+rs.join(",")+'<br/>'
}
}
document.getElementById("r_message").innerHTML="completed in "+((new Date().getTime() - starttime)/1000)+"s"
document.getElementById('rules_ex').innerHTML = st
stage = 4
}
var concepts={}
function showConcept(c, indent){
concepts[c.intent._representation.join("_")] = c
var st = '<div style="margin-left: '+(indent*10)+'px">'
st+='<a href="javascript:toogleExpand(\''+c.intent._representation.join("_")+'\')"><p style="margin-bottom: 0px;">['+c.attributes.join("|")+'] ('+c.subconcepts.length+')</p></a>'
st+='<p style="margin-top: 0px;">{'+c.objects.join("|")+'}</p>'
st+='<div indent="'+(indent+1)+'" id="sc_'+c.intent._representation.join("_")+'" style="display: none">'
// for (var i in c.subconcepts) st+=showConcept(c.subconcepts[i], indent+1)
st += '</div></div>'
return st
}
function toogleExpand(cc){
if (document.getElementById("sc_"+cc).style.display == "none"){
document.getElementById("sc_"+cc).style.display = "block"
scs = concepts[cc].subconcepts
const indent = parseInt(document.getElementById("sc_"+cc).getAttribute("indent"))
var st = ""
for (var i in scs) st += showConcept(scs[i], indent)
document.getElementById("sc_"+cc).innerHTML = st
} else {
document.getElementById("sc_"+cc).style.display = "none"
}
}
</script>
</body>
</html>