annotate src/main/java/de/mpiwg/itgroup/ismi/search/beans/AdvancedSearchBean.java @ 1:2e911857a759

(none)
author jurzua
date Wed, 29 Oct 2014 14:00:28 +0000
parents
children 3c83f42a8a39
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
jurzua
parents:
diff changeset
1 package de.mpiwg.itgroup.ismi.search.beans;
jurzua
parents:
diff changeset
2
jurzua
parents:
diff changeset
3 import java.io.Serializable;
jurzua
parents:
diff changeset
4 import java.util.ArrayList;
jurzua
parents:
diff changeset
5 import java.util.List;
jurzua
parents:
diff changeset
6 import java.util.Map;
jurzua
parents:
diff changeset
7 import java.util.Map.Entry;
jurzua
parents:
diff changeset
8
jurzua
parents:
diff changeset
9 import javax.faces.event.ValueChangeEvent;
jurzua
parents:
diff changeset
10 import javax.faces.model.SelectItem;
jurzua
parents:
diff changeset
11
jurzua
parents:
diff changeset
12 import org.apache.log4j.Logger;
jurzua
parents:
diff changeset
13 import org.mpi.openmind.repository.bo.Attribute;
jurzua
parents:
diff changeset
14 import org.mpi.openmind.search.utils.ResultEntry;
jurzua
parents:
diff changeset
15 import org.mpi.openmind.search.utils.SAttribute;
jurzua
parents:
diff changeset
16 import org.mpi.openmind.search.utils.SAttributeMultipleName;
jurzua
parents:
diff changeset
17 import org.mpi.openmind.search.utils.SAttributeMultipleValue;
jurzua
parents:
diff changeset
18 import org.mpi.openmind.search.utils.SAttributeUniqueName;
jurzua
parents:
diff changeset
19 import org.mpi.openmind.search.utils.SEntity;
jurzua
parents:
diff changeset
20 import org.mpi.openmind.search.utils.SRelation;
jurzua
parents:
diff changeset
21 import org.mpi.openmind.search.utils.SRelationMultipleName;
jurzua
parents:
diff changeset
22 import org.mpi.openmind.search.utils.SRelationUniqueName;
jurzua
parents:
diff changeset
23
jurzua
parents:
diff changeset
24 import de.mpiwg.itgroup.ismi.entry.beans.AbstractISMIBean;
jurzua
parents:
diff changeset
25 import de.mpiwg.itgroup.ismi.entry.beans.SessionBean;
jurzua
parents:
diff changeset
26 import de.mpiwg.itgroup.ismi.util.guiComponents.Calendar;
jurzua
parents:
diff changeset
27
jurzua
parents:
diff changeset
28 public class AdvancedSearchBean extends AbstractISMIBean implements Serializable{
jurzua
parents:
diff changeset
29
jurzua
parents:
diff changeset
30 private static Logger logger = Logger.getLogger(AdvancedSearchBean.class);
jurzua
parents:
diff changeset
31
jurzua
parents:
diff changeset
32 private static final long serialVersionUID = 1L;
jurzua
parents:
diff changeset
33
jurzua
parents:
diff changeset
34 private String currentTemplate;
jurzua
parents:
diff changeset
35 private static List<SelectItem> templateList;
jurzua
parents:
diff changeset
36
jurzua
parents:
diff changeset
37 private transient Witness4TitleQuery witness4TitleQuery;
jurzua
parents:
diff changeset
38 //private SampleSearch06 sample06;
jurzua
parents:
diff changeset
39 private SampleSearch07 sample07;
jurzua
parents:
diff changeset
40 private Titles4PersonQuery titles4PersonQuery;
jurzua
parents:
diff changeset
41 private CodexOwnershipQuery codexOwnershipQuery;
jurzua
parents:
diff changeset
42
jurzua
parents:
diff changeset
43 static{
jurzua
parents:
diff changeset
44 templateList = new ArrayList<SelectItem>();
jurzua
parents:
diff changeset
45 //templateList.add(new SelectItem("sample01"));
jurzua
parents:
diff changeset
46 templateList.add(new SelectItem("witness4Title", "Witnesses for a title"));
jurzua
parents:
diff changeset
47 //templateList.add(new SelectItem("sample03"));
jurzua
parents:
diff changeset
48 //templateList.add(new SelectItem("sample04"));
jurzua
parents:
diff changeset
49 //templateList.add(new SelectItem("sample05"));
jurzua
parents:
diff changeset
50 templateList.add(new SelectItem("titles4Person", "Titles for a person"));
jurzua
parents:
diff changeset
51 templateList.add(new SelectItem("codexOwnership", "Codex ownership"));
jurzua
parents:
diff changeset
52 //templateList.add(new SelectItem("sample07"));
jurzua
parents:
diff changeset
53 //templateList.add(new SelectItem("sample08"));
jurzua
parents:
diff changeset
54 //templateList.add(new SelectItem("sample09"));
jurzua
parents:
diff changeset
55 }
jurzua
parents:
diff changeset
56
jurzua
parents:
diff changeset
57 public AdvancedSearchBean(){
jurzua
parents:
diff changeset
58 //logger.info("AdvancedSearchBean");
jurzua
parents:
diff changeset
59 this.reset();
jurzua
parents:
diff changeset
60 }
jurzua
parents:
diff changeset
61
jurzua
parents:
diff changeset
62 public void reset(){
jurzua
parents:
diff changeset
63 //logger.info("AdvancedSearchBean.reset()");
jurzua
parents:
diff changeset
64 this.witness4TitleQuery = new Witness4TitleQuery(getAppBean());
jurzua
parents:
diff changeset
65 this.titles4PersonQuery = new Titles4PersonQuery(getAppBean());
jurzua
parents:
diff changeset
66 this.sample07 = new SampleSearch07(getAppBean());
jurzua
parents:
diff changeset
67 this.codexOwnershipQuery = new CodexOwnershipQuery(getAppBean());
jurzua
parents:
diff changeset
68 currentTemplate = "witness4Title";
jurzua
parents:
diff changeset
69 }
jurzua
parents:
diff changeset
70
jurzua
parents:
diff changeset
71 public void listenerChange(ValueChangeEvent event){
jurzua
parents:
diff changeset
72 /*
jurzua
parents:
diff changeset
73 logger.info(event.getOldValue());
jurzua
parents:
diff changeset
74 logger.info(event.getNewValue());
jurzua
parents:
diff changeset
75 */
jurzua
parents:
diff changeset
76 }
jurzua
parents:
diff changeset
77
jurzua
parents:
diff changeset
78 public String actionSearch(){
jurzua
parents:
diff changeset
79 this.search();
jurzua
parents:
diff changeset
80 return null;
jurzua
parents:
diff changeset
81 }
jurzua
parents:
diff changeset
82
jurzua
parents:
diff changeset
83 public SampleSearch07 getSample07() {
jurzua
parents:
diff changeset
84 return sample07;
jurzua
parents:
diff changeset
85 }
jurzua
parents:
diff changeset
86
jurzua
parents:
diff changeset
87 public CodexOwnershipQuery getCodexOwnershipQuery() {
jurzua
parents:
diff changeset
88 return codexOwnershipQuery;
jurzua
parents:
diff changeset
89 }
jurzua
parents:
diff changeset
90
jurzua
parents:
diff changeset
91 public Witness4TitleQuery getWitness4TitleQuery() {
jurzua
parents:
diff changeset
92 return witness4TitleQuery;
jurzua
parents:
diff changeset
93 }
jurzua
parents:
diff changeset
94
jurzua
parents:
diff changeset
95 public void search(){
jurzua
parents:
diff changeset
96 long start = System.currentTimeMillis();
jurzua
parents:
diff changeset
97
jurzua
parents:
diff changeset
98 List<ResultEntry> rs = sample06();
jurzua
parents:
diff changeset
99
jurzua
parents:
diff changeset
100 //printRs(rs);
jurzua
parents:
diff changeset
101
jurzua
parents:
diff changeset
102 long end = System.currentTimeMillis();
jurzua
parents:
diff changeset
103 logger.info("execution time [ms] = " + (end - start));
jurzua
parents:
diff changeset
104 logger.info("Search resultSet size= " + rs.size());
jurzua
parents:
diff changeset
105 }
jurzua
parents:
diff changeset
106
jurzua
parents:
diff changeset
107
jurzua
parents:
diff changeset
108 private List<ResultEntry> test01(){
jurzua
parents:
diff changeset
109 List<SEntity> entFilters = new ArrayList<SEntity>();
jurzua
parents:
diff changeset
110 List<SRelation> relFilters = new ArrayList<SRelation>();
jurzua
parents:
diff changeset
111
jurzua
parents:
diff changeset
112 SEntity e1 = new SEntity(0, "PERSON");
jurzua
parents:
diff changeset
113 e1.addAtt(new SAttributeUniqueName("name_translit", "abu"));
jurzua
parents:
diff changeset
114 entFilters.add(e1);
jurzua
parents:
diff changeset
115
jurzua
parents:
diff changeset
116 SEntity e2 = new SEntity(1, "ROLE");
jurzua
parents:
diff changeset
117 e2.addAtt(new SAttributeUniqueName("name", "Author"));
jurzua
parents:
diff changeset
118 entFilters.add(e2);
jurzua
parents:
diff changeset
119
jurzua
parents:
diff changeset
120 SEntity e3 = new SEntity(2, "PLACE");
jurzua
parents:
diff changeset
121 e3.addAtt(new SAttributeUniqueName("name", "Spain"));
jurzua
parents:
diff changeset
122 entFilters.add(e3);
jurzua
parents:
diff changeset
123
jurzua
parents:
diff changeset
124 SEntity e4 = new SEntity(3, "ALIAS");
jurzua
parents:
diff changeset
125 e4.addAtt(new SAttributeUniqueName("alias", "Samuel"));
jurzua
parents:
diff changeset
126 entFilters.add(e4);
jurzua
parents:
diff changeset
127
jurzua
parents:
diff changeset
128 SRelationUniqueName has_role = new SRelationUniqueName(e1.getIndex(), e2.getIndex(), "has_role");
jurzua
parents:
diff changeset
129 SRelationUniqueName was_born_in = new SRelationUniqueName(e1.getIndex(), e3.getIndex(), "was_born_in");
jurzua
parents:
diff changeset
130 SRelationUniqueName is_prime_alias_name_of = new SRelationUniqueName(e4.getIndex(), e1.getIndex(), "is_prime_alias_name_of");
jurzua
parents:
diff changeset
131 relFilters.add(has_role);
jurzua
parents:
diff changeset
132 relFilters.add(was_born_in);
jurzua
parents:
diff changeset
133 relFilters.add(is_prime_alias_name_of);
jurzua
parents:
diff changeset
134
jurzua
parents:
diff changeset
135 return getAppBean().getSS().search(entFilters, relFilters);
jurzua
parents:
diff changeset
136
jurzua
parents:
diff changeset
137 }
jurzua
parents:
diff changeset
138
jurzua
parents:
diff changeset
139 private List<ResultEntry> test02(){
jurzua
parents:
diff changeset
140 List<SEntity> entFilters = new ArrayList<SEntity>();
jurzua
parents:
diff changeset
141 List<SRelation> relFilters = new ArrayList<SRelation>();
jurzua
parents:
diff changeset
142
jurzua
parents:
diff changeset
143 SEntity e2 = new SEntity(1, "ALIAS");
jurzua
parents:
diff changeset
144 e2.addAtt(new SAttributeUniqueName("alias", "abu"));
jurzua
parents:
diff changeset
145 entFilters.add(e2);
jurzua
parents:
diff changeset
146
jurzua
parents:
diff changeset
147 SEntity e1 = new SEntity(0, "TEXT");
jurzua
parents:
diff changeset
148 e1.addAtt(new SAttributeUniqueName("full_title_translit", "abu"));
jurzua
parents:
diff changeset
149 entFilters.add(e1);
jurzua
parents:
diff changeset
150
jurzua
parents:
diff changeset
151
jurzua
parents:
diff changeset
152 SRelationMultipleName hasAlias = new SRelationMultipleName(e2.getIndex(), e1.getIndex(),
jurzua
parents:
diff changeset
153 "is_prime_alias_title_of",
jurzua
parents:
diff changeset
154 "is_alias_title_of",
jurzua
parents:
diff changeset
155 "is_alias_incipit_of",
jurzua
parents:
diff changeset
156 "is_alias_explicit_of");
jurzua
parents:
diff changeset
157 relFilters.add(hasAlias);
jurzua
parents:
diff changeset
158
jurzua
parents:
diff changeset
159 return getAppBean().getSS().search(entFilters, relFilters);
jurzua
parents:
diff changeset
160 }
jurzua
parents:
diff changeset
161
jurzua
parents:
diff changeset
162 private List<ResultEntry> sample01(){
jurzua
parents:
diff changeset
163
jurzua
parents:
diff changeset
164 List<SEntity> entFilters = new ArrayList<SEntity>();
jurzua
parents:
diff changeset
165 List<SRelation> relFilters = new ArrayList<SRelation>();
jurzua
parents:
diff changeset
166
jurzua
parents:
diff changeset
167 SEntity role = new SEntity(0, "ROLE");
jurzua
parents:
diff changeset
168 role.addAtt(new SAttributeUniqueName("name", "Author"));
jurzua
parents:
diff changeset
169 entFilters.add(role);
jurzua
parents:
diff changeset
170
jurzua
parents:
diff changeset
171 //alias, "is_prime_alias_name_of", "PERSON"
jurzua
parents:
diff changeset
172 //alias, "is_alias_name_of", "PERSON"
jurzua
parents:
diff changeset
173 SEntity person = new SEntity(1, "PERSON");
jurzua
parents:
diff changeset
174 person.addAtt(new SAttributeMultipleName("a", "name_translit", "name"));
jurzua
parents:
diff changeset
175 entFilters.add(person);
jurzua
parents:
diff changeset
176
jurzua
parents:
diff changeset
177 /*
jurzua
parents:
diff changeset
178 SEntity alias = new SEntity(1, "ALIAS");
jurzua
parents:
diff changeset
179 alias.addAtt(new SAttributeUniqueName("alias", "abu"));
jurzua
parents:
diff changeset
180 entFilters.add(alias);
jurzua
parents:
diff changeset
181 */
jurzua
parents:
diff changeset
182
jurzua
parents:
diff changeset
183 SEntity title = new SEntity(2, "TEXT");
jurzua
parents:
diff changeset
184 //title.addAtt(new SAttributeMultipleName("abu", "full_title_translit", "full_title"));
jurzua
parents:
diff changeset
185 entFilters.add(title);
jurzua
parents:
diff changeset
186
jurzua
parents:
diff changeset
187
jurzua
parents:
diff changeset
188 SRelationUniqueName has_role = new SRelationUniqueName(person, role, "has_role");
jurzua
parents:
diff changeset
189 SRelationUniqueName was_created_by = new SRelationUniqueName(title, person, "was_created_by");
jurzua
parents:
diff changeset
190 relFilters.add(was_created_by);
jurzua
parents:
diff changeset
191 relFilters.add(has_role);
jurzua
parents:
diff changeset
192
jurzua
parents:
diff changeset
193 List<ResultEntry> rs = getAppBean().getSS().search(entFilters, relFilters);
jurzua
parents:
diff changeset
194
jurzua
parents:
diff changeset
195 return rs;
jurzua
parents:
diff changeset
196 }
jurzua
parents:
diff changeset
197
jurzua
parents:
diff changeset
198 /**
jurzua
parents:
diff changeset
199 * 5) List of all people who had other “roles” associated with a title (e.g. copyists , owners, patrons, teachers, students, etc.)
jurzua
parents:
diff changeset
200 * @return
jurzua
parents:
diff changeset
201 */
jurzua
parents:
diff changeset
202 private List<ResultEntry> sample05(){
jurzua
parents:
diff changeset
203
jurzua
parents:
diff changeset
204 List<SEntity> entFilters = new ArrayList<SEntity>();
jurzua
parents:
diff changeset
205 List<SRelation> relFilters = new ArrayList<SRelation>();
jurzua
parents:
diff changeset
206
jurzua
parents:
diff changeset
207 SEntity role = new SEntity(0, "ROLE");
jurzua
parents:
diff changeset
208 role.addAtt(new SAttributeMultipleValue("name", "Annotator", "Copyist", "Corrector", "Dedicatee", "Illuminator", "Illustrator", "Owner", "Patron", "inspector"));
jurzua
parents:
diff changeset
209 entFilters.add(role);
jurzua
parents:
diff changeset
210
jurzua
parents:
diff changeset
211 //alias, "is_prime_alias_name_of", "PERSON"
jurzua
parents:
diff changeset
212 //alias, "is_alias_name_of", "PERSON"
jurzua
parents:
diff changeset
213 SEntity person = new SEntity(1, "PERSON");
jurzua
parents:
diff changeset
214 person.addAtt(new SAttributeMultipleName("a", "name_translit", "name"));
jurzua
parents:
diff changeset
215 entFilters.add(person);
jurzua
parents:
diff changeset
216
jurzua
parents:
diff changeset
217 /*
jurzua
parents:
diff changeset
218 SEntity alias = new SEntity(1, "ALIAS");
jurzua
parents:
diff changeset
219 alias.addAtt(new SAttributeUniqueName("alias", "abu"));
jurzua
parents:
diff changeset
220 entFilters.add(alias);
jurzua
parents:
diff changeset
221 */
jurzua
parents:
diff changeset
222
jurzua
parents:
diff changeset
223 SEntity title = new SEntity(2, "TEXT");
jurzua
parents:
diff changeset
224 //title.addAtt(new SAttributeMultipleName("abu", "full_title_translit", "full_title"));
jurzua
parents:
diff changeset
225 entFilters.add(title);
jurzua
parents:
diff changeset
226
jurzua
parents:
diff changeset
227
jurzua
parents:
diff changeset
228 SRelationUniqueName has_role = new SRelationUniqueName(person, role, "has_role");
jurzua
parents:
diff changeset
229 SRelationMultipleName title_to_person = new SRelationMultipleName(title, person, "had_patron", "was_dedicated_to", "was_created_by");
jurzua
parents:
diff changeset
230 relFilters.add(title_to_person);
jurzua
parents:
diff changeset
231 relFilters.add(has_role);
jurzua
parents:
diff changeset
232
jurzua
parents:
diff changeset
233 List<ResultEntry> rs = getAppBean().getSS().search(entFilters, relFilters);
jurzua
parents:
diff changeset
234
jurzua
parents:
diff changeset
235 return rs;
jurzua
parents:
diff changeset
236 }
jurzua
parents:
diff changeset
237
jurzua
parents:
diff changeset
238 /**
jurzua
parents:
diff changeset
239 * 6) Bring up people associated with a particular title (not just one huge list of people, but be able to distinguish author, student, teacher)
jurzua
parents:
diff changeset
240 * @return
jurzua
parents:
diff changeset
241 */
jurzua
parents:
diff changeset
242 private List<ResultEntry> sample06(){
jurzua
parents:
diff changeset
243
jurzua
parents:
diff changeset
244 List<SEntity> entFilters = new ArrayList<SEntity>();
jurzua
parents:
diff changeset
245 List<SRelation> relFilters = new ArrayList<SRelation>();
jurzua
parents:
diff changeset
246
jurzua
parents:
diff changeset
247 //The user can select between:
jurzua
parents:
diff changeset
248 //"Author", "Annotator", "Copyist", "Corrector", "Dedicatee", "Illuminator", "Illustrator", "Owner", "Patron", "inspector"
jurzua
parents:
diff changeset
249 SEntity role = new SEntity(0, "ROLE");
jurzua
parents:
diff changeset
250 role.addAtt(new SAttributeUniqueName("name", "Annotator"));
jurzua
parents:
diff changeset
251 entFilters.add(role);
jurzua
parents:
diff changeset
252
jurzua
parents:
diff changeset
253 //alias, "is_prime_alias_name_of", "PERSON"
jurzua
parents:
diff changeset
254 //alias, "is_alias_name_of", "PERSON"
jurzua
parents:
diff changeset
255 SEntity person = new SEntity(1, "PERSON");
jurzua
parents:
diff changeset
256 person.addAtt(new SAttributeMultipleName("a", "name_translit", "name"));
jurzua
parents:
diff changeset
257 entFilters.add(person);
jurzua
parents:
diff changeset
258
jurzua
parents:
diff changeset
259 /*
jurzua
parents:
diff changeset
260 SEntity alias = new SEntity(1, "ALIAS");
jurzua
parents:
diff changeset
261 alias.addAtt(new SAttributeUniqueName("alias", "abu"));
jurzua
parents:
diff changeset
262 entFilters.add(alias);
jurzua
parents:
diff changeset
263 */
jurzua
parents:
diff changeset
264
jurzua
parents:
diff changeset
265 SEntity title = new SEntity(2, "TEXT");
jurzua
parents:
diff changeset
266 title.addAtt(new SAttributeMultipleName("abu", "full_title_translit", "full_title"));
jurzua
parents:
diff changeset
267 entFilters.add(title);
jurzua
parents:
diff changeset
268
jurzua
parents:
diff changeset
269
jurzua
parents:
diff changeset
270 SRelationUniqueName has_role = new SRelationUniqueName(person, role, "has_role");
jurzua
parents:
diff changeset
271 SRelationMultipleName title_to_person = new SRelationMultipleName(title, person, "had_patron", "was_dedicated_to", "was_created_by");
jurzua
parents:
diff changeset
272 relFilters.add(title_to_person);
jurzua
parents:
diff changeset
273 relFilters.add(has_role);
jurzua
parents:
diff changeset
274
jurzua
parents:
diff changeset
275 List<ResultEntry> rs = getAppBean().getSS().search(entFilters, relFilters);
jurzua
parents:
diff changeset
276
jurzua
parents:
diff changeset
277 return rs;
jurzua
parents:
diff changeset
278
jurzua
parents:
diff changeset
279 }
jurzua
parents:
diff changeset
280
jurzua
parents:
diff changeset
281 /**
jurzua
parents:
diff changeset
282 * 7) Bring up people associated with a particular witness (not just one huge list of people, but be able to distinguish owner, say, from commentator)
jurzua
parents:
diff changeset
283 * @return
jurzua
parents:
diff changeset
284 */
jurzua
parents:
diff changeset
285 private List<ResultEntry> sample07(){
jurzua
parents:
diff changeset
286
jurzua
parents:
diff changeset
287 List<SEntity> entFilters = new ArrayList<SEntity>();
jurzua
parents:
diff changeset
288 List<SRelation> relFilters = new ArrayList<SRelation>();
jurzua
parents:
diff changeset
289
jurzua
parents:
diff changeset
290 //The user can select between:
jurzua
parents:
diff changeset
291 //"Author", "Annotator", "Copyist", "Corrector", "Dedicatee", "Illuminator", "Illustrator", "Owner", "Patron", "inspector"
jurzua
parents:
diff changeset
292 SEntity role = new SEntity(0, "ROLE");
jurzua
parents:
diff changeset
293 role.addAtt(new SAttributeUniqueName("name", "Owner"));
jurzua
parents:
diff changeset
294 entFilters.add(role);
jurzua
parents:
diff changeset
295
jurzua
parents:
diff changeset
296 //alias, "is_prime_alias_name_of", "PERSON"
jurzua
parents:
diff changeset
297 //alias, "is_alias_name_of", "PERSON"
jurzua
parents:
diff changeset
298 SEntity person = new SEntity(1, "PERSON");
jurzua
parents:
diff changeset
299 person.addAtt(new SAttributeMultipleName("a", "name_translit", "name"));
jurzua
parents:
diff changeset
300 entFilters.add(person);
jurzua
parents:
diff changeset
301
jurzua
parents:
diff changeset
302 /*
jurzua
parents:
diff changeset
303 SEntity alias = new SEntity(1, "ALIAS");
jurzua
parents:
diff changeset
304 alias.addAtt(new SAttributeUniqueName("alias", "abu"));
jurzua
parents:
diff changeset
305 entFilters.add(alias);
jurzua
parents:
diff changeset
306 */
jurzua
parents:
diff changeset
307
jurzua
parents:
diff changeset
308 SEntity witness = new SEntity(2, "WITNESS");
jurzua
parents:
diff changeset
309 //witness.addAtt(new SAttributeMultipleName("abu", "full_title_translit", "full_title"));
jurzua
parents:
diff changeset
310 entFilters.add(witness);
jurzua
parents:
diff changeset
311
jurzua
parents:
diff changeset
312
jurzua
parents:
diff changeset
313 SRelationUniqueName has_role = new SRelationUniqueName(person, role, "has_role");
jurzua
parents:
diff changeset
314 SRelationMultipleName witness_to_person = new SRelationMultipleName(witness, person, "had_patron", "was_copied_by", "was_created_by", "was_studied_by");
jurzua
parents:
diff changeset
315 relFilters.add(witness_to_person);
jurzua
parents:
diff changeset
316 relFilters.add(has_role);
jurzua
parents:
diff changeset
317
jurzua
parents:
diff changeset
318 List<ResultEntry> rs = getAppBean().getSS().search(entFilters, relFilters);
jurzua
parents:
diff changeset
319
jurzua
parents:
diff changeset
320 return rs;
jurzua
parents:
diff changeset
321
jurzua
parents:
diff changeset
322 }
jurzua
parents:
diff changeset
323
jurzua
parents:
diff changeset
324 /**
jurzua
parents:
diff changeset
325 * 9) Bring up all owners of a particular codex
jurzua
parents:
diff changeset
326 * @return
jurzua
parents:
diff changeset
327 */
jurzua
parents:
diff changeset
328 private List<ResultEntry> sample08(){
jurzua
parents:
diff changeset
329
jurzua
parents:
diff changeset
330 List<SEntity> entFilters = new ArrayList<SEntity>();
jurzua
parents:
diff changeset
331 List<SRelation> relFilters = new ArrayList<SRelation>();
jurzua
parents:
diff changeset
332
jurzua
parents:
diff changeset
333 //The user can select between:
jurzua
parents:
diff changeset
334 //"Author", "Annotator", "Copyist", "Corrector", "Dedicatee", "Illuminator", "Illustrator", "Owner", "Patron", "inspector"
jurzua
parents:
diff changeset
335 SEntity role = new SEntity(0, "ROLE");
jurzua
parents:
diff changeset
336 role.addAtt(new SAttributeUniqueName("name", "Owner"));
jurzua
parents:
diff changeset
337 entFilters.add(role);
jurzua
parents:
diff changeset
338
jurzua
parents:
diff changeset
339 //alias, "is_prime_alias_name_of", "PERSON"
jurzua
parents:
diff changeset
340 //alias, "is_alias_name_of", "PERSON"
jurzua
parents:
diff changeset
341 SEntity person = new SEntity(1, "PERSON");
jurzua
parents:
diff changeset
342 person.addAtt(new SAttributeMultipleName("a", "name_translit", "name"));
jurzua
parents:
diff changeset
343 entFilters.add(person);
jurzua
parents:
diff changeset
344
jurzua
parents:
diff changeset
345 /*
jurzua
parents:
diff changeset
346 SEntity alias = new SEntity(1, "ALIAS");
jurzua
parents:
diff changeset
347 alias.addAtt(new SAttributeUniqueName("alias", "abu"));
jurzua
parents:
diff changeset
348 entFilters.add(alias);
jurzua
parents:
diff changeset
349 */
jurzua
parents:
diff changeset
350
jurzua
parents:
diff changeset
351 SEntity codex = new SEntity(2, "CODEX");
jurzua
parents:
diff changeset
352 //witness.addAtt(new SAttributeMultipleName("abu", "full_title_translit", "full_title"));
jurzua
parents:
diff changeset
353 entFilters.add(codex);
jurzua
parents:
diff changeset
354
jurzua
parents:
diff changeset
355 SRelationUniqueName has_role = new SRelationUniqueName(person, role, "has_role");
jurzua
parents:
diff changeset
356 SRelationUniqueName was_owned_by = new SRelationUniqueName(codex, person, "was_owned_by");
jurzua
parents:
diff changeset
357 relFilters.add(was_owned_by);
jurzua
parents:
diff changeset
358 relFilters.add(has_role);
jurzua
parents:
diff changeset
359
jurzua
parents:
diff changeset
360 List<ResultEntry> rs = getAppBean().getSS().search(entFilters, relFilters);
jurzua
parents:
diff changeset
361
jurzua
parents:
diff changeset
362 return rs;
jurzua
parents:
diff changeset
363
jurzua
parents:
diff changeset
364 }
jurzua
parents:
diff changeset
365
jurzua
parents:
diff changeset
366 /*
jurzua
parents:
diff changeset
367 private void printRs(List<ResultEntry> rs){
jurzua
parents:
diff changeset
368 logger.info("--------------");
jurzua
parents:
diff changeset
369 for(ResultEntry entry : rs){
jurzua
parents:
diff changeset
370 for(Entry<Integer, Long> ent : entry.getEntMap().entrySet()){
jurzua
parents:
diff changeset
371 logger.info(ent.getKey() + ") " + getWrapper().getEntityById(ent.getValue()).toSmallString());
jurzua
parents:
diff changeset
372 }
jurzua
parents:
diff changeset
373 }
jurzua
parents:
diff changeset
374 logger.info("--------------");
jurzua
parents:
diff changeset
375 }*/
jurzua
parents:
diff changeset
376
jurzua
parents:
diff changeset
377 public String getCurrentTemplate() {
jurzua
parents:
diff changeset
378 return currentTemplate;
jurzua
parents:
diff changeset
379 }
jurzua
parents:
diff changeset
380
jurzua
parents:
diff changeset
381 public void setCurrentTemplate(String currentTemplate) {
jurzua
parents:
diff changeset
382 this.currentTemplate = currentTemplate;
jurzua
parents:
diff changeset
383 }
jurzua
parents:
diff changeset
384
jurzua
parents:
diff changeset
385 public List<SelectItem> getTemplateList() {
jurzua
parents:
diff changeset
386 return templateList;
jurzua
parents:
diff changeset
387 }
jurzua
parents:
diff changeset
388
jurzua
parents:
diff changeset
389 public Titles4PersonQuery getTitles4PersonQuery() {
jurzua
parents:
diff changeset
390 return titles4PersonQuery;
jurzua
parents:
diff changeset
391 }
jurzua
parents:
diff changeset
392 }