annotate src/main/java/de/mpiwg/itgroup/ismi/search/beans/AdvancedSearchBean.java @ 153:3c83f42a8a39 public_by_author

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