labelingsystem-server  Version 0.1.0.0
Retcat_Getty Class Reference

Static Public Member Functions

static Map< String, SuggestionItem > queryAAT (String searchword) throws IOException, RepositoryException, MalformedQueryException, QueryEvaluationException, SesameSparqlException, ResourceNotAvailableException, ParseException, link.labeling.retcat.exceptions.ResourceNotAvailableException
 
static Map< String, SuggestionItem > queryTGN (String searchword) throws IOException, RepositoryException, MalformedQueryException, QueryEvaluationException, SesameSparqlException, ResourceNotAvailableException, ParseException, link.labeling.retcat.exceptions.ResourceNotAvailableException
 
static Map< String, SuggestionItem > queryULAN (String searchword) throws IOException, RepositoryException, MalformedQueryException, QueryEvaluationException, SesameSparqlException, ResourceNotAvailableException, ParseException, link.labeling.retcat.exceptions.ResourceNotAvailableException
 
static JSONObject info (String url) throws IOException, RepositoryException, MalformedQueryException, QueryEvaluationException, SesameSparqlException, ResourceNotAvailableException, ParseException, RetcatException
 

Member Function Documentation

◆ info()

static JSONObject info ( String  url) throws IOException, RepositoryException, MalformedQueryException, QueryEvaluationException, SesameSparqlException, ResourceNotAvailableException, ParseException, RetcatException
static
412  {
413  try {
414  String sparqlendpoint = "http://vocab.getty.edu/sparql";
415  String sparql = "SELECT * { "
416  + "<" + url + "> gvp:prefLabelGVP [xl:literalForm ?prefLabel]. "
417  + "<" + url + "> skos:inScheme ?scheme. "
418  + "?scheme rdfs:label ?schemeTitle. ";
419  if (url.contains("aat") || url.contains("ulan")) {
420  sparql += "OPTIONAL {<" + url + "> skos:scopeNote [dct:language gvp_lang:" + "en" + "; rdf:value ?scopeNote]} . ";
421  } else if (url.contains("tgn")) {
422  sparql += "OPTIONAL {<" + url + "> gvp:parentString ?scopeNote . } ";
423  }
424  sparql += "OPTIONAL {<" + url + "> gvp:broaderPreferred ?BroaderPreferred . ?BroaderPreferred gvp:prefLabelGVP [xl:literalForm ?BroaderPreferredTerm].} . ";
425  sparql += "OPTIONAL {?NarrowerPreferred gvp:broaderPreferred <" + url + "> . ?NarrowerPreferred gvp:prefLabelGVP [xl:literalForm ?NarrowerPreferredTerm].} . ";
426  sparql += " }";
427  URL obj = new URL(sparqlendpoint);
428  HttpURLConnection con = (HttpURLConnection) obj.openConnection();
429  con.setRequestMethod("POST");
430  con.setRequestProperty("Accept", "application/sparql-results+json");
431  String urlParameters = "query=" + sparql;
432  con.setDoOutput(true);
433  DataOutputStream wr = new DataOutputStream(con.getOutputStream());
434  wr.writeBytes(urlParameters);
435  wr.flush();
436  wr.close();
437  BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF8"));
438  String inputLine;
439  StringBuilder response = new StringBuilder();
440  while ((inputLine = in.readLine()) != null) {
441  response.append(inputLine);
442  }
443  in.close();
444  // init output
445  JSONObject jsonOut = new JSONObject();
446  // parse SPARQL results json
447  JSONObject jsonObject = (JSONObject) new JSONParser().parse(response.toString());
448  JSONObject resultsObject = (JSONObject) jsonObject.get("results");
449  JSONArray bindingsArray = (JSONArray) resultsObject.get("bindings");
450  // create unique list of ids
451  for (Object element : bindingsArray) {
452  JSONObject tmpElement = (JSONObject) element;
453  JSONObject prefLabel = (JSONObject) tmpElement.get("prefLabel");
454  String labelValue = (String) prefLabel.get("value");
455  String labelLang = (String) prefLabel.get("xml:lang");
456  jsonOut.put("label", labelValue);
457  jsonOut.put("lang", labelLang);
458  }
459  for (Object element : bindingsArray) {
460  JSONObject tmpElement = (JSONObject) element;
461  JSONObject scopeNote = (JSONObject) tmpElement.get("scopeNote");
462  String descValue = "";
463  if (scopeNote != null) {
464  descValue = (String) scopeNote.get("value");
465  }
466  jsonOut.put("description", descValue);
467  }
468  for (Object element : bindingsArray) {
469  JSONObject tmpElement = (JSONObject) element;
470  JSONObject scopeNote = (JSONObject) tmpElement.get("schemeTitle");
471  String descValue = (String) scopeNote.get("value");
472  jsonOut.put("scheme", descValue);
473  }
474  HashMap<String, String> hmBroader = new HashMap();
475  for (Object element : bindingsArray) {
476  JSONObject tmpElement = (JSONObject) element;
477  JSONObject bpObj = (JSONObject) tmpElement.get("BroaderPreferred");
478  JSONObject bptObj = (JSONObject) tmpElement.get("BroaderPreferredTerm");
479  if (bpObj != null) {
480  String bp = (String) bpObj.get("value");
481  String bpt = (String) bptObj.get("value");
482  hmBroader.put(bpt, bp);
483  }
484  }
485  JSONArray tmpArrayBroader = new JSONArray();
486  Iterator itB = hmBroader.entrySet().iterator();
487  while (itB.hasNext()) {
488  Map.Entry pair = (Map.Entry) itB.next();
489  JSONObject tmpObject = new JSONObject();
490  tmpObject.put("label", pair.getKey());
491  tmpObject.put("uri", pair.getValue());
492  tmpArrayBroader.add(tmpObject);
493  itB.remove();
494  }
495  jsonOut.put("broaderTerms", tmpArrayBroader);
496  HashMap<String, String> hmNarrower = new HashMap();
497  for (Object element : bindingsArray) {
498  JSONObject tmpElement = (JSONObject) element;
499  JSONObject npObj = (JSONObject) tmpElement.get("NarrowerPreferred");
500  JSONObject nptObj = (JSONObject) tmpElement.get("NarrowerPreferredTerm");
501  if (npObj != null) {
502  String np = (String) npObj.get("value");
503  String npt = (String) nptObj.get("value");
504  hmNarrower.put(npt, np);
505  }
506  }
507  JSONArray tmpArrayNarrower = new JSONArray();
508  Iterator itN = hmNarrower.entrySet().iterator();
509  while (itN.hasNext()) {
510  Map.Entry pair = (Map.Entry) itN.next();
511  JSONObject tmpObject = new JSONObject();
512  tmpObject.put("label", pair.getKey());
513  tmpObject.put("uri", pair.getValue());
514  tmpArrayNarrower.add(tmpObject);
515  itN.remove();
516  }
517  jsonOut.put("narrowerTerms", tmpArrayNarrower);
518  // get retcat info
519  String type = "getty";
520  String quality = "";
521  String group = "";
522  for (RetcatItem item : LocalRetcatItems.getLocalCatalogue()) {
523  if (item.getType().equals(type)) {
524  quality = item.getQuality();
525  group = item.getGroup();
526  }
527  }
528  jsonOut.put("type", type);
529  jsonOut.put("quality", quality);
530  jsonOut.put("group", group);
531  jsonOut.put("uri", url);
532  if (jsonOut.get("label") != null && !jsonOut.get("label").equals("")) {
533  return jsonOut;
534  } else {
535  throw new RetcatException("no label for this uri available");
536  }
537  } catch (Exception e) {
538  return new JSONObject();
539  }
540  }

References LocalRetcatItems.getLocalCatalogue().

Referenced by RetcatResource.getInfoGetty(), RetcatResource.getQueryResultsGettyAAT(), RetcatResource.getQueryResultsGettyTGN(), and RetcatResource.getQueryResultsGettyULAN().

◆ queryAAT()

static Map<String, SuggestionItem> queryAAT ( String  searchword) throws IOException, RepositoryException, MalformedQueryException, QueryEvaluationException, SesameSparqlException, ResourceNotAvailableException, ParseException, link.labeling.retcat.exceptions.ResourceNotAvailableException
static
30  {
31  String lang = "en"; // language for scopeNote
32  String url = "http://vocab.getty.edu/sparql";
33  String sparql = "SELECT ?Subject ?prefLabel ?scopeNote ?BroaderPreferredTerm ?BroaderPreferred ?NarrowerPreferredTerm ?NarrowerPreferred ?schemeTitle { "
34  + "?Subject a skos:Concept. "
35  + "?Subject luc:term '" + searchword + "' . "
36  + "?Subject skos:inScheme aat: . "
37  + "?Subject skos:inScheme ?scheme . "
38  + "?scheme rdfs:label ?schemeTitle . "
39  + "?Subject gvp:prefLabelGVP [xl:literalForm ?prefLabel]. "
40  + "OPTIONAL {?Subject skos:scopeNote [dct:language gvp_lang:" + lang + "; rdf:value ?scopeNote]} . "
41  + "OPTIONAL {?Subject gvp:broaderPreferred ?BroaderPreferred . ?BroaderPreferred gvp:prefLabelGVP [xl:literalForm ?BroaderPreferredTerm].} . "
42  + "OPTIONAL {?NarrowerPreferred gvp:broaderPreferred ?Subject . ?NarrowerPreferred gvp:prefLabelGVP [xl:literalForm ?NarrowerPreferredTerm].} . "
43  + " } ORDER BY ASC(LCASE(STR(?Term)))";
44  URL obj = new URL(url);
45  HttpURLConnection con = (HttpURLConnection) obj.openConnection();
46  con.setRequestMethod("POST");
47  con.setRequestProperty("Accept", "application/sparql-results+json");
48  String urlParameters = "query=" + sparql;
49  con.setDoOutput(true);
50  DataOutputStream wr = new DataOutputStream(con.getOutputStream());
51  BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(wr, "UTF-8"));
52  writer.write(urlParameters);
53  writer.close();
54  wr.close();
55  BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF8"));
56  String inputLine;
57  StringBuilder response = new StringBuilder();
58  while ((inputLine = in.readLine()) != null) {
59  response.append(inputLine);
60  }
61  in.close();
62  // init output
63  JSONArray outArray = new JSONArray();
64  // parse SPARQL results json
65  JSONObject jsonObject = (JSONObject) new JSONParser().parse(response.toString());
66  JSONObject resultsObject = (JSONObject) jsonObject.get("results");
67  JSONArray bindingsArray = (JSONArray) resultsObject.get("bindings");
68  // create unique list of ids
69  HashSet<String> uris = new HashSet<String>();
70  for (Object element : bindingsArray) {
71  JSONObject tmpElement = (JSONObject) element;
72  JSONObject subject = (JSONObject) tmpElement.get("Subject");
73  String subjectValue = (String) subject.get("value");
74  uris.add(subjectValue);
75  }
76  // create list of autosuggest objects
77  Map<String, SuggestionItem> autosuggests = new HashMap<String, SuggestionItem>();
78  for (String element : uris) {
79  autosuggests.put(element, new SuggestionItem(element));
80  }
81  // fill objects
82  for (Object element : bindingsArray) {
83  JSONObject tmpElement = (JSONObject) element;
84  // get Subject
85  JSONObject subject = (JSONObject) tmpElement.get("Subject");
86  String subjectValue = (String) subject.get("value");
87  // for every subject value get object from list and write values in it
88  SuggestionItem tmpAutosuggest = autosuggests.get(subjectValue);
89  // get Label
90  JSONObject labelObject = (JSONObject) tmpElement.get("prefLabel");
91  String labelValue = (String) labelObject.get("value");
92  String labelLang = (String) labelObject.get("xml:lang");
93  tmpAutosuggest.setLabel(labelValue);
94  tmpAutosuggest.setLanguage(labelLang);
95  // get Scheme
96  JSONObject schemeObject = (JSONObject) tmpElement.get("schemeTitle");
97  String schemeValue = (String) schemeObject.get("value");
98  tmpAutosuggest.setSchemeTitle(schemeValue);
99  // get scopeNote
100  JSONObject scopeNoteObject = (JSONObject) tmpElement.get("scopeNote");
101  if (scopeNoteObject != null) {
102  String scopeNoteValue = (String) scopeNoteObject.get("value");
103  String scopeNoteLang = (String) scopeNoteObject.get("xml:lang");
104  tmpAutosuggest.setDescription(scopeNoteValue);
105  }
106  // get broader
107  String broaderVL = "";
108  String broaderURI = "";
109  JSONObject broaderObject = (JSONObject) tmpElement.get("BroaderPreferredTerm");
110  if (broaderObject != null) {
111  String broaderValue = (String) broaderObject.get("value");
112  String broaderLang = (String) broaderObject.get("xml:lang");
113  broaderVL = broaderValue.replace("<", "").replace(">", "");
114  }
115  JSONObject broaderURIObject = (JSONObject) tmpElement.get("BroaderPreferred");
116  if (broaderURIObject != null) {
117  broaderURI = (String) broaderURIObject.get("value");
118  }
119  if (!broaderURI.equals("")) {
120  HashMap<String, String> hstmpBroader = new HashMap<String, String>();
121  hstmpBroader.put(broaderURI, broaderVL);
122  tmpAutosuggest.setBroaderTerm(hstmpBroader);
123  }
124  // get narrower
125  String narrowerVL = "";
126  String narrowerURI = "";
127  JSONObject narrowerObject = (JSONObject) tmpElement.get("NarrowerPreferredTerm");
128  if (narrowerObject != null) {
129  String narrowerValue = (String) narrowerObject.get("value");
130  String narrowerLang = (String) narrowerObject.get("xml:lang");
131  narrowerVL = narrowerValue.replace("<", "").replace(">", "");
132  }
133  JSONObject narrowerURIObject = (JSONObject) tmpElement.get("NarrowerPreferred");
134  if (narrowerURIObject != null) {
135  narrowerURI = (String) narrowerURIObject.get("value");
136  }
137  if (!narrowerURI.equals("")) {
138  HashMap<String, String> hstmpNarrower = new HashMap<String, String>();
139  hstmpNarrower.put(narrowerURI, narrowerVL);
140  tmpAutosuggest.setNarrowerTerm(hstmpNarrower);
141  }
142  // get retcat info
143  String type = "getty";
144  String quality = "";
145  String group = "";
146  for (RetcatItem item : LocalRetcatItems.getLocalCatalogue()) {
147  if (item.getType().equals(type)) {
148  quality = item.getQuality();
149  group = item.getGroup();
150  }
151  }
152  tmpAutosuggest.setType(type);
153  tmpAutosuggest.setQuality(quality);
154  tmpAutosuggest.setGroup(group);
155  }
156  return autosuggests;
157  }

References LocalRetcatItems.getLocalCatalogue().

Referenced by RetcatResource.getQueryResultsGettyAAT().

◆ queryTGN()

static Map<String, SuggestionItem> queryTGN ( String  searchword) throws IOException, RepositoryException, MalformedQueryException, QueryEvaluationException, SesameSparqlException, ResourceNotAvailableException, ParseException, link.labeling.retcat.exceptions.ResourceNotAvailableException
static
159  {
160  String url = "http://vocab.getty.edu/sparql";
161  String sparql = "SELECT ?Subject ?prefLabel ?scopeNote ?BroaderPreferredTerm ?BroaderPreferred ?NarrowerPreferredTerm ?NarrowerPreferred ?schemeTitle{ "
162  + "?Subject a skos:Concept. "
163  + "?Subject luc:term '" + searchword + "' . "
164  + "?Subject skos:inScheme tgn: . "
165  + "?Subject skos:inScheme ?scheme . "
166  + "?scheme rdfs:label ?schemeTitle . "
167  + "?Subject gvp:prefLabelGVP [xl:literalForm ?prefLabel]. "
168  + "OPTIONAL {?Subject gvp:parentString ?scopeNote . } "
169  + "OPTIONAL {?Subject gvp:broaderPreferred ?BroaderPreferred . ?BroaderPreferred gvp:prefLabelGVP [xl:literalForm ?BroaderPreferredTerm].} . "
170  + "OPTIONAL {?NarrowerPreferred gvp:broaderPreferred ?Subject . ?NarrowerPreferred gvp:prefLabelGVP [xl:literalForm ?NarrowerPreferredTerm].} . "
171  + " } ORDER BY ASC(LCASE(STR(?Term)))";
172  URL obj = new URL(url);
173  HttpURLConnection con = (HttpURLConnection) obj.openConnection();
174  con.setRequestMethod("POST");
175  con.setRequestProperty("Accept", "application/sparql-results+json");
176  String urlParameters = "query=" + sparql;
177  con.setDoOutput(true);
178  DataOutputStream wr = new DataOutputStream(con.getOutputStream());
179  wr.writeBytes(urlParameters);
180  wr.flush();
181  wr.close();
182  BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF8"));
183  String inputLine;
184  StringBuilder response = new StringBuilder();
185  while ((inputLine = in.readLine()) != null) {
186  response.append(inputLine);
187  }
188  in.close();
189  // init output
190  JSONArray outArray = new JSONArray();
191  // parse SPARQL results json
192  JSONObject jsonObject = (JSONObject) new JSONParser().parse(response.toString());
193  JSONObject resultsObject = (JSONObject) jsonObject.get("results");
194  JSONArray bindingsArray = (JSONArray) resultsObject.get("bindings");
195  // create unique list of ids
196  HashSet<String> uris = new HashSet<String>();
197  for (Object element : bindingsArray) {
198  JSONObject tmpElement = (JSONObject) element;
199  JSONObject subject = (JSONObject) tmpElement.get("Subject");
200  String subjectValue = (String) subject.get("value");
201  uris.add(subjectValue);
202  }
203  // create list of autosuggest objects
204  Map<String, SuggestionItem> autosuggests = new HashMap<String, SuggestionItem>();
205  for (String element : uris) {
206  autosuggests.put(element, new SuggestionItem(element));
207  }
208  // fill objects
209  for (Object element : bindingsArray) {
210  JSONObject tmpElement = (JSONObject) element;
211  // get Subject
212  JSONObject subject = (JSONObject) tmpElement.get("Subject");
213  String subjectValue = (String) subject.get("value");
214  // for every subject value get object from list and write values in it
215  SuggestionItem tmpAutosuggest = autosuggests.get(subjectValue);
216  // get Label
217  JSONObject labelObject = (JSONObject) tmpElement.get("prefLabel");
218  String labelValue = (String) labelObject.get("value");
219  //String labelLang = (String) labelObject.get("xml:lang");
220  tmpAutosuggest.setLabel(labelValue);
221  // get Scheme
222  JSONObject schemeObject = (JSONObject) tmpElement.get("schemeTitle");
223  String schemeValue = (String) schemeObject.get("value");
224  tmpAutosuggest.setSchemeTitle(schemeValue);
225  // get scopeNote
226  JSONObject scopeNoteObject = (JSONObject) tmpElement.get("scopeNote");
227  if (scopeNoteObject != null) {
228  String scopeNoteValue = (String) scopeNoteObject.get("value");
229  //String scopeNoteLang = (String) scopeNoteObject.get("xml:lang");
230  tmpAutosuggest.setDescription(scopeNoteValue);
231  }
232  // get broader
233  String broaderVL = "";
234  String broaderURI = "";
235  JSONObject broaderObject = (JSONObject) tmpElement.get("BroaderPreferredTerm");
236  if (broaderObject != null) {
237  String broaderValue = (String) broaderObject.get("value");
238  //String broaderLang = (String) broaderObject.get("xml:lang");
239  broaderVL = broaderValue.replace("<", "").replace(">", "");
240  }
241  JSONObject broaderURIObject = (JSONObject) tmpElement.get("BroaderPreferred");
242  if (broaderURIObject != null) {
243  broaderURI = (String) broaderURIObject.get("value");
244  }
245  if (!broaderURI.equals("")) {
246  HashMap<String, String> hstmpBroader = new HashMap<String, String>();
247  hstmpBroader.put(broaderURI, broaderVL);
248  tmpAutosuggest.setBroaderTerm(hstmpBroader);
249  }
250  // get narrower
251  String narrowerVL = "";
252  String narrowerURI = "";
253  JSONObject narrowerObject = (JSONObject) tmpElement.get("NarrowerPreferredTerm");
254  if (narrowerObject != null) {
255  String narrowerValue = (String) narrowerObject.get("value");
256  //String narrowerLang = (String) narrowerObject.get("xml:lang");
257  narrowerVL = narrowerValue.replace("<", "").replace(">", "");
258  }
259  JSONObject narrowerURIObject = (JSONObject) tmpElement.get("NarrowerPreferred");
260  if (narrowerURIObject != null) {
261  narrowerURI = (String) narrowerURIObject.get("value");
262  }
263  if (!narrowerURI.equals("")) {
264  HashMap<String, String> hstmpNarrower = new HashMap<String, String>();
265  hstmpNarrower.put(narrowerURI, narrowerVL);
266  tmpAutosuggest.setNarrowerTerm(hstmpNarrower);
267  }
268  // get retcat info
269  String type = "getty";
270  String quality = "";
271  String group = "";
272  for (RetcatItem item : LocalRetcatItems.getLocalCatalogue()) {
273  if (item.getType().equals(type)) {
274  quality = item.getQuality();
275  group = item.getGroup();
276  }
277  }
278  tmpAutosuggest.setType(type);
279  tmpAutosuggest.setQuality(quality);
280  tmpAutosuggest.setGroup(group);
281  }
282  return autosuggests;
283  }

References LocalRetcatItems.getLocalCatalogue().

Referenced by RetcatResource.getQueryResultsGettyTGN().

◆ queryULAN()

static Map<String, SuggestionItem> queryULAN ( String  searchword) throws IOException, RepositoryException, MalformedQueryException, QueryEvaluationException, SesameSparqlException, ResourceNotAvailableException, ParseException, link.labeling.retcat.exceptions.ResourceNotAvailableException
static
285  {
286  String lang = "en"; // language for scopeNote
287  String url = "http://vocab.getty.edu/sparql";
288  String sparql = "SELECT ?Subject ?prefLabel ?scopeNote ?BroaderPreferredTerm ?BroaderPreferred ?NarrowerPreferredTerm ?NarrowerPreferred ?schemeTitle{ "
289  + "?Subject a skos:Concept. "
290  + "?Subject luc:term '" + searchword + "' . "
291  + "?Subject skos:inScheme ulan: . "
292  + "?Subject skos:inScheme ?scheme . "
293  + "?scheme rdfs:label ?schemeTitle . "
294  + "?Subject gvp:prefLabelGVP [xl:literalForm ?prefLabel]. "
295  + "OPTIONAL {?Subject skos:scopeNote [dct:language gvp_lang:" + lang + "; rdf:value ?scopeNote]} . "
296  + "OPTIONAL {?Subject gvp:broaderPreferred ?BroaderPreferred . ?BroaderPreferred gvp:prefLabelGVP [xl:literalForm ?BroaderPreferredTerm].} . "
297  + "OPTIONAL {?NarrowerPreferred gvp:broaderPreferred ?Subject . ?NarrowerPreferred gvp:prefLabelGVP [xl:literalForm ?NarrowerPreferredTerm].} . "
298  + " } ORDER BY ASC(LCASE(STR(?Term)))";
299  URL obj = new URL(url);
300  HttpURLConnection con = (HttpURLConnection) obj.openConnection();
301  con.setRequestMethod("POST");
302  con.setRequestProperty("Accept", "application/sparql-results+json");
303  String urlParameters = "query=" + sparql;
304  con.setDoOutput(true);
305  DataOutputStream wr = new DataOutputStream(con.getOutputStream());
306  wr.writeBytes(urlParameters);
307  wr.flush();
308  wr.close();
309  BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF8"));
310  String inputLine;
311  StringBuilder response = new StringBuilder();
312  while ((inputLine = in.readLine()) != null) {
313  response.append(inputLine);
314  }
315  in.close();
316  // init output
317  JSONArray outArray = new JSONArray();
318  // parse SPARQL results json
319  JSONObject jsonObject = (JSONObject) new JSONParser().parse(response.toString());
320  JSONObject resultsObject = (JSONObject) jsonObject.get("results");
321  JSONArray bindingsArray = (JSONArray) resultsObject.get("bindings");
322  // create unique list of ids
323  HashSet<String> uris = new HashSet<String>();
324  for (Object element : bindingsArray) {
325  JSONObject tmpElement = (JSONObject) element;
326  JSONObject subject = (JSONObject) tmpElement.get("Subject");
327  String subjectValue = (String) subject.get("value");
328  uris.add(subjectValue);
329  }
330  // create list of autosuggest objects
331  Map<String, SuggestionItem> autosuggests = new HashMap<String, SuggestionItem>();
332  for (String element : uris) {
333  autosuggests.put(element, new SuggestionItem(element));
334  }
335  // fill objects
336  for (Object element : bindingsArray) {
337  JSONObject tmpElement = (JSONObject) element;
338  // get Subject
339  JSONObject subject = (JSONObject) tmpElement.get("Subject");
340  String subjectValue = (String) subject.get("value");
341  // for every subject value get object from list and write values in it
342  SuggestionItem tmpAutosuggest = autosuggests.get(subjectValue);
343  // get Label
344  JSONObject labelObject = (JSONObject) tmpElement.get("prefLabel");
345  String labelValue = (String) labelObject.get("value");
346  //String labelLang = (String) labelObject.get("xml:lang");
347  tmpAutosuggest.setLabel(labelValue);
348  // get Scheme
349  JSONObject schemeObject = (JSONObject) tmpElement.get("schemeTitle");
350  String schemeValue = (String) schemeObject.get("value");
351  tmpAutosuggest.setSchemeTitle(schemeValue);
352  // get scopeNote
353  JSONObject scopeNoteObject = (JSONObject) tmpElement.get("scopeNote");
354  if (scopeNoteObject != null) {
355  String scopeNoteValue = (String) scopeNoteObject.get("value");
356  //String scopeNoteLang = (String) scopeNoteObject.get("xml:lang");
357  tmpAutosuggest.setDescription(scopeNoteValue);
358  }
359  // get broader
360  String broaderVL = "";
361  String broaderURI = "";
362  JSONObject broaderObject = (JSONObject) tmpElement.get("BroaderPreferredTerm");
363  if (broaderObject != null) {
364  String broaderValue = (String) broaderObject.get("value");
365  //String broaderLang = (String) broaderObject.get("xml:lang");
366  broaderVL = broaderValue.replace("<", "").replace(">", "");
367  }
368  JSONObject broaderURIObject = (JSONObject) tmpElement.get("BroaderPreferred");
369  if (broaderURIObject != null) {
370  broaderURI = (String) broaderURIObject.get("value");
371  }
372  if (!broaderURI.equals("")) {
373  HashMap<String, String> hstmpBroader = new HashMap<String, String>();
374  hstmpBroader.put(broaderURI, broaderVL);
375  tmpAutosuggest.setBroaderTerm(hstmpBroader);
376  }
377  // get narrower
378  String narrowerVL = "";
379  String narrowerURI = "";
380  JSONObject narrowerObject = (JSONObject) tmpElement.get("NarrowerPreferredTerm");
381  if (narrowerObject != null) {
382  String narrowerValue = (String) narrowerObject.get("value");
383  //String narrowerLang = (String) narrowerObject.get("xml:lang");
384  narrowerVL = narrowerValue.replace("<", "").replace(">", "");
385  }
386  JSONObject narrowerURIObject = (JSONObject) tmpElement.get("NarrowerPreferred");
387  if (narrowerURIObject != null) {
388  narrowerURI = (String) narrowerURIObject.get("value");
389  }
390  if (!narrowerURI.equals("")) {
391  HashMap<String, String> hstmpNarrower = new HashMap<String, String>();
392  hstmpNarrower.put(narrowerURI, narrowerVL);
393  tmpAutosuggest.setNarrowerTerm(hstmpNarrower);
394  }
395  // get retcat info
396  String type = "getty";
397  String quality = "";
398  String group = "";
399  for (RetcatItem item : LocalRetcatItems.getLocalCatalogue()) {
400  if (item.getType().equals(type)) {
401  quality = item.getQuality();
402  group = item.getGroup();
403  }
404  }
405  tmpAutosuggest.setType(type);
406  tmpAutosuggest.setQuality(quality);
407  tmpAutosuggest.setGroup(group);
408  }
409  return autosuggests;
410  }

References LocalRetcatItems.getLocalCatalogue().

Referenced by RetcatResource.getQueryResultsGettyULAN().

Exception