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);
55 BufferedReader in =
new BufferedReader(
new InputStreamReader(con.getInputStream(),
"UTF8"));
57 StringBuilder response =
new StringBuilder();
58 while ((inputLine = in.readLine()) !=
null) {
59 response.append(inputLine);
63 JSONArray outArray =
new JSONArray();
65 JSONObject jsonObject = (JSONObject)
new JSONParser().parse(response.toString());
66 JSONObject resultsObject = (JSONObject) jsonObject.get(
"results");
67 JSONArray bindingsArray = (JSONArray) resultsObject.get(
"bindings");
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);
77 Map<String, SuggestionItem> autosuggests =
new HashMap<String, SuggestionItem>();
78 for (String element : uris) {
79 autosuggests.put(element,
new SuggestionItem(element));
82 for (Object element : bindingsArray) {
83 JSONObject tmpElement = (JSONObject) element;
85 JSONObject subject = (JSONObject) tmpElement.get(
"Subject");
86 String subjectValue = (String) subject.get(
"value");
88 SuggestionItem tmpAutosuggest = autosuggests.get(subjectValue);
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);
96 JSONObject schemeObject = (JSONObject) tmpElement.get(
"schemeTitle");
97 String schemeValue = (String) schemeObject.get(
"value");
98 tmpAutosuggest.setSchemeTitle(schemeValue);
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);
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(
">",
"");
115 JSONObject broaderURIObject = (JSONObject) tmpElement.get(
"BroaderPreferred");
116 if (broaderURIObject !=
null) {
117 broaderURI = (String) broaderURIObject.get(
"value");
119 if (!broaderURI.equals(
"")) {
120 HashMap<String, String> hstmpBroader =
new HashMap<String, String>();
121 hstmpBroader.put(broaderURI, broaderVL);
122 tmpAutosuggest.setBroaderTerm(hstmpBroader);
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(
">",
"");
133 JSONObject narrowerURIObject = (JSONObject) tmpElement.get(
"NarrowerPreferred");
134 if (narrowerURIObject !=
null) {
135 narrowerURI = (String) narrowerURIObject.get(
"value");
137 if (!narrowerURI.equals(
"")) {
138 HashMap<String, String> hstmpNarrower =
new HashMap<String, String>();
139 hstmpNarrower.put(narrowerURI, narrowerVL);
140 tmpAutosuggest.setNarrowerTerm(hstmpNarrower);
143 String type =
"getty";
146 for (RetcatItem item : LocalRetcatItems.getLocalCatalogue()) {
147 if (item.getType().equals(type)) {
148 quality = item.getQuality();
149 group = item.getGroup();
152 tmpAutosuggest.setType(type);
153 tmpAutosuggest.setQuality(quality);
154 tmpAutosuggest.setGroup(group);