labelingsystem-server  Version 0.1.0.0
LabelsResource Class Reference

Public Member Functions

Response getLabels ( @HeaderParam("Accept") String acceptHeader, @HeaderParam("Accept-Encoding") String acceptEncoding, @QueryParam("pretty") boolean pretty, @QueryParam("sort") String sort, @QueryParam("fields") String fields, @QueryParam("offset") String offset, @QueryParam("limit") String limit, @QueryParam("creator") String creator, @QueryParam("releaseType") String releaseType, @QueryParam("prefLabel") String prefLabel, @QueryParam("vocab") String vocab, @QueryParam("equalConcepts") String equalConcepts, @QueryParam("revisions") String revisions, @QueryParam("creatorInfo") String creatorInfo, @QueryParam("draft") String draft) throws IOException, JDOMException, ConfigException, ParserConfigurationException, TransformerException
 
Response getLabel (@PathParam("label") String label, @HeaderParam("Accept") String acceptHeader, @QueryParam("pretty") boolean pretty, @QueryParam("equalConcepts") String equalConcepts, @QueryParam("revisions") String revisions, @QueryParam("creatorInfo") String creatorInfo, @HeaderParam("Accept-Encoding") String acceptEncoding) throws IOException, JDOMException, RdfException, ParserConfigurationException, TransformerException
 
Response getLabel_JSON (@PathParam("label") String label, @QueryParam("pretty") boolean pretty, @QueryParam("equalConcepts") String equalConcepts, @QueryParam("revisions") String revisions, @QueryParam("creatorInfo") String creatorInfo, @HeaderParam("Accept-Encoding") String acceptEncoding) throws IOException, JDOMException, TransformerException, ParserConfigurationException
 
Response getLabel_XML (@PathParam("label") String label) throws IOException, JDOMException, TransformerException, ParserConfigurationException
 
Response getLabelRDF_XML (@PathParam("label") String label) throws IOException, JDOMException, RdfException, ParserConfigurationException, TransformerException
 
Response getLabelRDF_Turtle (@PathParam("label") String label) throws IOException, JDOMException, TransformerException, ParserConfigurationException
 
Response getLabelRDF_N3 (@PathParam("label") String label) throws IOException, JDOMException, TransformerException, ParserConfigurationException
 
Response getLabelRDF_JSONRDF (@PathParam("label") String label, @QueryParam("pretty") boolean pretty) throws IOException, JDOMException, TransformerException, ParserConfigurationException
 
Response getLabelRDF_JSONLD (@PathParam("label") String label, @QueryParam("pretty") boolean pretty) throws IOException, JDOMException, TransformerException, ParserConfigurationException
 
Response getLabel_BNR (@PathParam("label") String label) throws IOException, JDOMException, TransformerException, ParserConfigurationException
 
Response getLabel_Relations (@PathParam("label") String label) throws IOException, JDOMException, TransformerException, ParserConfigurationException
 
Response postLabel (String json) throws IOException, JDOMException, ConfigException, ParserConfigurationException, TransformerException
 
Response updateLabel (@PathParam("label") String label, String json) throws IOException, JDOMException, RdfException, ParserConfigurationException, TransformerException
 
Response deleteLabel (@PathParam("label") String label) throws IOException, JDOMException, RdfException, ParserConfigurationException, TransformerException
 

Static Private Member Functions

static String createLabelSPARQLUPDATE (String item, String itemid, String creator, String vocabID) throws ConfigException, IOException, UniqueIdentifierException
 
static String modifySPARQLUPDATE (String item, String itemid) throws ConfigException, IOException, UniqueIdentifierException
 
static String revisionSPARQLUPDATE (String item, String itemid, HashMap< String, String > revisions) throws ConfigException, IOException, UniqueIdentifierException, RepositoryException, MalformedQueryException, QueryEvaluationException, SparqlQueryException, SparqlParseException, org.linkedgeodesy.rdf4j.exceptions.SparqlParseException, org.linkedgeodesy.rdf4j.exceptions.SparqlQueryException
 
static String deleteItemsSPARQLUPDATE (String id) throws IOException
 
static String deleteLabelSPARQLUPDATE (String id) throws IOException
 
static List< InheritFromVocabgetInheritedFromVocabList () throws IOException, RepositoryException, MalformedQueryException, QueryEvaluationException, SparqlQueryException, SparqlParseException, org.linkedgeodesy.rdf4j.exceptions.SparqlQueryException, org.linkedgeodesy.rdf4j.exceptions.SparqlParseException
 
static OutputStream GZIP (String input, OutputStream baos) throws IOException
 

Member Function Documentation

◆ createLabelSPARQLUPDATE()

static String createLabelSPARQLUPDATE ( String  item,
String  itemid,
String  creator,
String  vocabID 
) throws ConfigException, IOException, UniqueIdentifierException
staticprivate
951  {
952  Calendar calender = Calendar.getInstance();
953  Date d = calender.getTime();
954  DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
955  String date = formatter.format(d);
956  RDF rdf = new RDF();
957  String prefixes = rdf.getPREFIXSPARQL();
958  String triples = prefixes + "INSERT DATA { ";
959  triples += item + ":" + itemid + " a ls:Label . ";
960  triples += item + ":" + itemid + " a skos:Concept . ";
961  triples += item + ":" + itemid + " dc:creator \"" + creator + "\"" + " . ";
962  triples += item + ":" + itemid + " dct:creator ls_age:" + creator + " . ";
963  triples += item + ":" + itemid + " dc:identifier \"" + itemid + "\"" + " . ";
964  triples += item + ":" + itemid + " dc:created \"" + date + "\"" + " . ";
965  triples += item + ":" + itemid + " dc:modified \"" + date + "\"" + " . ";
966  triples += item + ":" + itemid + " skos:inScheme ls_voc:" + vocabID + " . ";
967  triples += " }";
968  return triples;
969  }

◆ deleteItemsSPARQLUPDATE()

static String deleteItemsSPARQLUPDATE ( String  id) throws IOException
staticprivate
1154  {
1155  RDF rdf = new RDF();
1156  String prefixes = rdf.getPREFIXSPARQL();
1157  String update = prefixes
1158  + "DELETE { ?label ?p ?o. ?resource skos:broader ?label . ?resource skos:narrower ?label . ?resource skos:related ?label . } "
1159  + "WHERE { "
1160  + "?label ?p ?o. "
1161  + "?label dc:identifier ?identifier. "
1162  // filter delete all broader,narrower,related wo ?label das OBJECT ist
1163  + "OPTIONAL { ?resource skos:broader ?label . } "
1164  + "OPTIONAL { ?resource skos:narrower ?label . } "
1165  + "OPTIONAL { ?resource skos:related ?label . } "
1166  + "FILTER (?identifier=\"$identifier\") "
1167  + "FILTER (?p IN (skos:prefLabel,skos:scopeNote,ls:thumbnail,ls:hasReleaseType,dct:license,dc:language,skos:related,skos:broader,skos:narrower,skos:closeMatch,skos:exactMatch,skos:relatedMatch,skos:narrowMatch,skos:broadMatch,rdfs:seeAlso)) "
1168  + "}";
1169  update = update.replace("$identifier", id);
1170  return update;
1171  }

◆ deleteLabel()

Response deleteLabel ( @PathParam("label") String  label) throws IOException, JDOMException, RdfException, ParserConfigurationException, TransformerException
922  {
923  try {
924  String item = "ls_lab";
925  // check if resource exists
926  String queryExist = GeneralFunctions.getAllElementsForItemID(item, label);
927  List<BindingSet> resultExist = RDF4J_20.SPARQLquery(ConfigProperties.getPropertyParam("repository"), ConfigProperties.getPropertyParam("ts_server"), queryExist);
928  if (resultExist.size() < 1) {
929  throw new ResourceNotAvailableException("resource " + label + " is not available");
930  }
931  // get vocabulary id
932  RDF rdf = new RDF();
933  String query = rdf.getPREFIXSPARQL();
934  query += "SELECT ?vid WHERE { ?l dc:identifier ?id. ?l skos:inScheme ?v . ?v dc:identifier ?vid . FILTER (?id = \"" + label + "\") }";
935  List<BindingSet> result = RDF4J_20.SPARQLquery(ConfigProperties.getPropertyParam("repository"), ConfigProperties.getPropertyParam("ts_server"), query);
936  List<String> vidList = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "vid");
937  String vid = vidList.get(0);
938  // delete data
939  RDF4J_20.SPARQLupdate(ConfigProperties.getPropertyParam("repository"), ConfigProperties.getPropertyParam("ts_server"), deleteLabelSPARQLUPDATE(label));
940  // trigger for create statistics
941  Transformer.writeVocabularyStatisticsToDatabase(vid);
942  // get result as json
943  String out = Transformer.empty_JSON("label").toJSONString();
944  return Response.status(Response.Status.CREATED).entity(out).build();
945  } catch (Exception e) {
946  return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(Logging.getMessageJSON(e, "v1.rest.LabelsResource"))
947  .header("Content-Type", "application/json;charset=UTF-8").build();
948  }
949  }

References Transformer.empty_JSON(), GeneralFunctions.getAllElementsForItemID(), Logging.getMessageJSON(), ConfigProperties.getPropertyParam(), and Transformer.writeVocabularyStatisticsToDatabase().

◆ deleteLabelSPARQLUPDATE()

static String deleteLabelSPARQLUPDATE ( String  id) throws IOException
staticprivate
1173  {
1174  RDF rdf = new RDF();
1175  String prefixes = rdf.getPREFIXSPARQL();
1176  String update = prefixes
1177  + "DELETE { ?label ?p ?o. ?resource skos:broader ?label . ?resource skos:narrower ?label . ?resource skos:related ?label . } "
1178  + "WHERE { "
1179  + "?label ?p ?o. "
1180  + "?label dc:identifier ?identifier. "
1181  // filter delete all broader,narrower,related wo ?label das OBJECT ist
1182  + "OPTIONAL { ?resource skos:broader ?label . } "
1183  + "OPTIONAL { ?resource skos:narrower ?label . } "
1184  + "OPTIONAL { ?resource skos:related ?label . } "
1185  + "FILTER (?identifier=\"$identifier\") "
1186  + "}";
1187  update = update.replace("$identifier", id);
1188  return update;
1189  }

◆ getInheritedFromVocabList()

static List<InheritFromVocab> getInheritedFromVocabList ( ) throws IOException, RepositoryException, MalformedQueryException, QueryEvaluationException, SparqlQueryException, SparqlParseException, org.linkedgeodesy.rdf4j.exceptions.SparqlQueryException, org.linkedgeodesy.rdf4j.exceptions.SparqlParseException
staticprivate
1191  {
1192  RDF rdf2 = new RDF();
1193  String queryRL = rdf2.getPREFIXSPARQL();
1194  queryRL += "SELECT * WHERE { ?scheme a ls:Vocabulary. ?scheme dc:identifier ?id. OPTIONAL { ?scheme dct:license ?license. } OPTIONAL { ?scheme ls:released ?released } OPTIONAL { ?scheme dc:rights ?rights } }";
1195  List<BindingSet> resultRL = RDF4J_20.SPARQLquery(ConfigProperties.getPropertyParam("repository"), ConfigProperties.getPropertyParam("ts_server"), queryRL);
1196  List<String> id = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(resultRL, "id");
1197  List<String> license = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(resultRL, "license");
1198  List<String> released = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(resultRL, "released");
1199  List<String> rights = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(resultRL, "rights");
1200  List<InheritFromVocab> vocabList = new ArrayList();
1201  for (int i = 0; i < id.size(); i++) {
1202  vocabList.add(new InheritFromVocab(id.get(i), license.get(i), released.get(i), rights.get(i)));
1203  }
1204  return vocabList;
1205  }

References RDF.getPREFIXSPARQL(), and ConfigProperties.getPropertyParam().

◆ getLabel()

Response getLabel ( @PathParam("label") String  label,
@HeaderParam("Accept") String  acceptHeader,
@QueryParam("pretty") boolean  pretty,
@QueryParam("equalConcepts") String  equalConcepts,
@QueryParam("revisions") String  revisions,
@QueryParam("creatorInfo") String  creatorInfo,
@HeaderParam("Accept-Encoding") String  acceptEncoding 
) throws IOException, JDOMException, RdfException, ParserConfigurationException, TransformerException
285  {
286  try {
287  String OUTSTRING = "";
288  RDF rdf = new RDF();
289  List<RetcatItem> retcatlist = LocalRetcatItems.getLocalCatalogue();
290  String item = "ls_lab";
291  String query = GeneralFunctions.getAllElementsForItemID(item, label);
292  List<BindingSet> result = RDF4J_20.SPARQLquery(ConfigProperties.getPropertyParam("repository"), ConfigProperties.getPropertyParam("ts_server"), query);
293  List<String> predicates = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "p");
294  List<String> objects = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "o");
295  if (result.size() < 1) {
296  throw new ResourceNotAvailableException("resource " + label + " is not available");
297  }
298  for (int i = 0; i < predicates.size(); i++) {
299  rdf.setModelTriple(item + ":" + label, predicates.get(i), objects.get(i));
300  }
301  // get inherited data
302  List<InheritFromVocab> inheritFromVocab = getInheritedFromVocabList();
303  // set result
304  if (acceptHeader.contains("application/json")) {
305  String out = Transformer.label_GET(rdf.getModel("RDF/JSON"), label, null, retcatlist, equalConcepts, revisions, creatorInfo, inheritFromVocab).toJSONString();
306  if (pretty) {
307  JsonParser parser = new JsonParser();
308  JsonObject json = parser.parse(out).getAsJsonObject();
309  Gson gson = new GsonBuilder().setPrettyPrinting().create();
310  return Response.ok(gson.toJson(json)).build();
311  } else {
312  OUTSTRING = out.toString();
313  if (acceptEncoding.contains("gzip")) {
314  // set outputstream
315  final String OUTSTRING_FINAL = OUTSTRING;
316  StreamingOutput stream;
317  stream = new StreamingOutput() {
318  @Override
319  public void write(OutputStream output) throws IOException, WebApplicationException {
320  try {
321  output = GZIP(OUTSTRING_FINAL, output);
322  } catch (Exception e) {
323  System.out.println(e.toString());
324  }
325  }
326  };
327  return Response.ok(stream).header("Content-Type", "application/json;charset=UTF-8").header("Content-Encoding", "gzip").build();
328  } else {
329  return Response.ok(OUTSTRING).header("Content-Type", "application/json;charset=UTF-8").build();
330  }
331  }
332  } else if (acceptHeader.contains("application/rdf+json")) {
333  return Response.ok(rdf.getModel("RDF/JSON")).header("Content-Type", "application/json;charset=UTF-8").build();
334  } else if (acceptHeader.contains("text/html")) {
335  String out = Transformer.label_GET(rdf.getModel("RDF/JSON"), label, null, retcatlist, equalConcepts, revisions, creatorInfo, inheritFromVocab).toJSONString();
336  if (pretty) {
337  JsonParser parser = new JsonParser();
338  JsonObject json = parser.parse(out).getAsJsonObject();
339  Gson gson = new GsonBuilder().setPrettyPrinting().create();
340  return Response.ok(gson.toJson(json)).header("Content-Type", "application/json;charset=UTF-8").build();
341  } else {
342  OUTSTRING = out.toString();
343  if (acceptEncoding.contains("gzip")) {
344  // set outputstream
345  final String OUTSTRING_FINAL = OUTSTRING;
346  StreamingOutput stream;
347  stream = new StreamingOutput() {
348  @Override
349  public void write(OutputStream output) throws IOException, WebApplicationException {
350  try {
351  output = GZIP(OUTSTRING_FINAL, output);
352  } catch (Exception e) {
353  System.out.println(e.toString());
354  }
355  }
356  };
357  return Response.ok(stream).header("Content-Type", "application/json;charset=UTF-8").header("Content-Encoding", "gzip").build();
358  } else {
359  return Response.ok(OUTSTRING).header("Content-Type", "application/json;charset=UTF-8").build();
360  }
361  }
362  } else if (acceptHeader.contains("application/xml")) {
363  return Response.ok(rdf.getModel("RDF/XML")).build();
364  } else if (acceptHeader.contains("application/rdf+xml")) {
365  return Response.ok(rdf.getModel("RDF/XML")).build();
366  } else if (acceptHeader.contains("text/turtle")) {
367  return Response.ok(rdf.getModel("Turtle")).build();
368  } else if (acceptHeader.contains("text/n3")) {
369  return Response.ok(rdf.getModel("N-Triples")).build();
370  } else if (acceptHeader.contains("application/ld+json")) {
371  return Response.ok(rdf.getModel("JSON-LD")).build();
372  } else {
373  String out = Transformer.label_GET(rdf.getModel("RDF/JSON"), label, null, retcatlist, equalConcepts, revisions, creatorInfo, inheritFromVocab).toJSONString();
374  if (pretty) {
375  JsonParser parser = new JsonParser();
376  JsonObject json = parser.parse(out).getAsJsonObject();
377  Gson gson = new GsonBuilder().setPrettyPrinting().create();
378  return Response.ok(gson.toJson(json)).header("Content-Type", "application/json;charset=UTF-8").build();
379  } else {
380  OUTSTRING = out.toString();
381  if (acceptEncoding.contains("gzip")) {
382  // set outputstream
383  final String OUTSTRING_FINAL = OUTSTRING;
384  StreamingOutput stream;
385  stream = new StreamingOutput() {
386  @Override
387  public void write(OutputStream output) throws IOException, WebApplicationException {
388  try {
389  output = GZIP(OUTSTRING_FINAL, output);
390  } catch (Exception e) {
391  System.out.println(e.toString());
392  }
393  }
394  };
395  return Response.ok(stream).header("Content-Type", "application/json;charset=UTF-8").header("Content-Encoding", "gzip").build();
396  } else {
397  return Response.ok(OUTSTRING).header("Content-Type", "application/json;charset=UTF-8").build();
398  }
399  }
400  }
401  } catch (Exception e) {
402  if (e.toString().contains("ResourceNotAvailableException")) {
403  JSONArray outArray = new JSONArray();
404  return Response.ok(outArray).header("Content-Type", "application/json;charset=UTF-8").build();
405  } else {
406  return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(Logging.getMessageJSON(e, "v1.rest.LabelsResource"))
407  .header("Content-Type", "application/json;charset=UTF-8").build();
408  }
409  }
410  }

References GeneralFunctions.getAllElementsForItemID(), LocalRetcatItems.getLocalCatalogue(), Logging.getMessageJSON(), ConfigProperties.getPropertyParam(), and Transformer.label_GET().

◆ getLabel_BNR()

Response getLabel_BNR ( @PathParam("label") String  label) throws IOException, JDOMException, TransformerException, ParserConfigurationException
674  {
675  try {
676  String query = GeneralFunctions.getHierarchyForLabelsOneStep(label);
677  List<BindingSet> result = RDF4J_20.SPARQLquery(ConfigProperties.getPropertyParam("repository"), ConfigProperties.getPropertyParam("ts_server"), query);
678  HashSet<String> nT = RDF4J_20.getValuesFromBindingSet_UNIQUESET(result, "narrowerTerm");
679  HashSet<String> bT = RDF4J_20.getValuesFromBindingSet_UNIQUESET(result, "broaderTerm");
680  HashSet<String> rT = RDF4J_20.getValuesFromBindingSet_UNIQUESET(result, "relatedTerm");
681  JSONObject jsonOut = new JSONObject();
682  JSONArray ntArray = new JSONArray();
683  for (String item : nT) {
684  if (item != null) {
685  ntArray.add(item);
686  }
687  }
688  jsonOut.put("narrower", ntArray);
689  JSONArray btArray = new JSONArray();
690  for (String item : bT) {
691  if (item != null) {
692  btArray.add(item);
693  }
694  }
695  jsonOut.put("broader", btArray);
696  JSONArray rtArray = new JSONArray();
697  for (String item : rT) {
698  if (item != null) {
699  rtArray.add(item);
700  }
701  }
702  jsonOut.put("related", rtArray);
703  return Response.ok(jsonOut.toJSONString()).header("Content-Type", "application/json;charset=UTF-8").build();
704  } catch (Exception e) {
705  return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(Logging.getMessageJSON(e, "v1.rest.LabelsResource"))
706  .header("Content-Type", "application/json;charset=UTF-8").build();
707  }
708  }

References GeneralFunctions.getHierarchyForLabelsOneStep(), Logging.getMessageJSON(), and ConfigProperties.getPropertyParam().

◆ getLabel_JSON()

Response getLabel_JSON ( @PathParam("label") String  label,
@QueryParam("pretty") boolean  pretty,
@QueryParam("equalConcepts") String  equalConcepts,
@QueryParam("revisions") String  revisions,
@QueryParam("creatorInfo") String  creatorInfo,
@HeaderParam("Accept-Encoding") String  acceptEncoding 
) throws IOException, JDOMException, TransformerException, ParserConfigurationException
421  {
422  try {
423  String OUTSTRING = "";
424  RDF rdf = new RDF();
425  List<RetcatItem> retcatlist = LocalRetcatItems.getLocalCatalogue();
426  String item = "ls_lab";
427  String query = GeneralFunctions.getAllElementsForItemID(item, label);
428  List<BindingSet> result = RDF4J_20.SPARQLquery(ConfigProperties.getPropertyParam("repository"), ConfigProperties.getPropertyParam("ts_server"), query);
429  List<String> predicates = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "p");
430  List<String> objects = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "o");
431  if (result.size() < 1) {
432  throw new ResourceNotAvailableException("resource " + label + " is not available");
433  }
434  for (int i = 0; i < predicates.size(); i++) {
435  rdf.setModelTriple(item + ":" + label, predicates.get(i), objects.get(i));
436  }
437  // get inherited data
438  List<InheritFromVocab> inheritFromVocab = getInheritedFromVocabList();
439  // set result
440  String out = Transformer.label_GET(rdf.getModel("RDF/JSON"), label, null, retcatlist, equalConcepts, revisions, creatorInfo, inheritFromVocab).toJSONString();
441  if (pretty) {
442  JsonParser parser = new JsonParser();
443  JsonObject json = parser.parse(out).getAsJsonObject();
444  Gson gson = new GsonBuilder().setPrettyPrinting().create();
445  return Response.ok(gson.toJson(json)).header("Content-Type", "application/json;charset=UTF-8").build();
446  } else {
447  OUTSTRING = out.toString();
448  if (acceptEncoding.contains("gzip")) {
449  // set outputstream
450  final String OUTSTRING_FINAL = OUTSTRING;
451  StreamingOutput stream;
452  stream = new StreamingOutput() {
453  @Override
454  public void write(OutputStream output) throws IOException, WebApplicationException {
455  try {
456  output = GZIP(OUTSTRING_FINAL, output);
457  } catch (Exception e) {
458  System.out.println(e.toString());
459  }
460  }
461  };
462  return Response.ok(stream).header("Content-Type", "application/json;charset=UTF-8").header("Content-Encoding", "gzip").build();
463  } else {
464  return Response.ok(OUTSTRING).header("Content-Type", "application/json;charset=UTF-8").build();
465  }
466  }
467  } catch (Exception e) {
468  if (e.toString().contains("ResourceNotAvailableException")) {
469  return Response.status(Response.Status.NOT_FOUND).entity(Logging.getMessageJSON(e, "v1.rest.LabelsResource"))
470  .header("Content-Type", "application/json;charset=UTF-8").build();
471  } else {
472  return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(Logging.getMessageJSON(e, "v1.rest.LabelsResource"))
473  .header("Content-Type", "application/json;charset=UTF-8").build();
474  }
475  }
476  }

References GeneralFunctions.getAllElementsForItemID(), LocalRetcatItems.getLocalCatalogue(), Logging.getMessageJSON(), ConfigProperties.getPropertyParam(), and Transformer.label_GET().

◆ getLabel_Relations()

Response getLabel_Relations ( @PathParam("label") String  label) throws IOException, JDOMException, TransformerException, ParserConfigurationException
713  {
714  try {
715  String query = GeneralFunctions.getRelationsForLabelsByCreator(label);
716  List<BindingSet> result = RDF4J_20.SPARQLquery(ConfigProperties.getPropertyParam("repository"), ConfigProperties.getPropertyParam("ts_server"), query);
717  HashSet<String> nT = RDF4J_20.getValuesFromBindingSet_UNIQUESET(result, "nt");
718  HashSet<String> bT = RDF4J_20.getValuesFromBindingSet_UNIQUESET(result, "bt");
719  HashSet<String> rT = RDF4J_20.getValuesFromBindingSet_UNIQUESET(result, "rt");
720  HashSet<String> nmT = RDF4J_20.getValuesFromBindingSet_UNIQUESET(result, "nmt");
721  HashSet<String> bmT = RDF4J_20.getValuesFromBindingSet_UNIQUESET(result, "bmt");
722  HashSet<String> rmT = RDF4J_20.getValuesFromBindingSet_UNIQUESET(result, "rmt");
723  HashSet<String> cmT = RDF4J_20.getValuesFromBindingSet_UNIQUESET(result, "cmt");
724  HashSet<String> emT = RDF4J_20.getValuesFromBindingSet_UNIQUESET(result, "emt");
725  JSONObject jsonOut = new JSONObject();
726  JSONArray ntArray = new JSONArray();
727  for (String item : nT) {
728  if (item != null) {
729  ntArray.add(item);
730  }
731  }
732  jsonOut.put("narrower", ntArray);
733  JSONArray btArray = new JSONArray();
734  for (String item : bT) {
735  if (item != null) {
736  btArray.add(item);
737  }
738  }
739  jsonOut.put("broader", btArray);
740  JSONArray rtArray = new JSONArray();
741  for (String item : rT) {
742  if (item != null) {
743  rtArray.add(item);
744  }
745  }
746  jsonOut.put("related", rtArray);
747  JSONArray nmtArray = new JSONArray();
748  for (String item : nmT) {
749  if (item != null) {
750  nmtArray.add(item);
751  }
752  }
753  jsonOut.put("narrowMatch", nmtArray);
754  JSONArray bmtArray = new JSONArray();
755  for (String item : bmT) {
756  if (item != null) {
757  bmtArray.add(item);
758  }
759  }
760  jsonOut.put("broadMatch", bmtArray);
761  JSONArray rmtArray = new JSONArray();
762  for (String item : rmT) {
763  if (item != null) {
764  rmtArray.add(item);
765  }
766  }
767  jsonOut.put("relatedMatch", rmtArray);
768  JSONArray cmtArray = new JSONArray();
769  for (String item : cmT) {
770  if (item != null) {
771  cmtArray.add(item);
772  }
773  }
774  jsonOut.put("closeMatch", cmtArray);
775  JSONArray emtArray = new JSONArray();
776  for (String item : emT) {
777  if (item != null) {
778  emtArray.add(item);
779  }
780  }
781  jsonOut.put("exactMatch", emtArray);
782  return Response.ok(jsonOut.toJSONString()).header("Content-Type", "application/json;charset=UTF-8").build();
783  } catch (Exception e) {
784  return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(Logging.getMessageJSON(e, "v1.rest.LabelsResource"))
785  .header("Content-Type", "application/json;charset=UTF-8").build();
786  }
787  }

References Logging.getMessageJSON(), ConfigProperties.getPropertyParam(), and GeneralFunctions.getRelationsForLabelsByCreator().

◆ getLabel_XML()

Response getLabel_XML ( @PathParam("label") String  label) throws IOException, JDOMException, TransformerException, ParserConfigurationException
481  {
482  try {
483  String OUTSTRING = "";
484  RDF rdf = new RDF();
485  String item = "ls_lab";
486  String query = GeneralFunctions.getAllElementsForItemID(item, label);
487  List<BindingSet> result = RDF4J_20.SPARQLquery(ConfigProperties.getPropertyParam("repository"), ConfigProperties.getPropertyParam("ts_server"), query);
488  List<String> predicates = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "p");
489  List<String> objects = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "o");
490  if (result.size() < 1) {
491  throw new ResourceNotAvailableException("resource " + label + " is not available");
492  }
493  for (int i = 0; i < predicates.size(); i++) {
494  rdf.setModelTriple(item + ":" + label, predicates.get(i), objects.get(i));
495  }
496  String RDFoutput = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" + rdf.getModel("RDF/XML");
497  return Response.ok(RDFoutput).build();
498  } catch (Exception e) {
499  if (e.toString().contains("ResourceNotAvailableException")) {
500  return Response.status(Response.Status.NOT_FOUND).entity(Logging.getMessageJSON(e, "v1.rest.LabelsResource"))
501  .header("Content-Type", "application/json;charset=UTF-8").build();
502  } else {
503  return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(Logging.getMessageJSON(e, "v1.rest.LabelsResource"))
504  .header("Content-Type", "application/json;charset=UTF-8").build();
505  }
506  }
507  }

References GeneralFunctions.getAllElementsForItemID(), Logging.getMessageJSON(), and ConfigProperties.getPropertyParam().

◆ getLabelRDF_JSONLD()

Response getLabelRDF_JSONLD ( @PathParam("label") String  label,
@QueryParam("pretty") boolean  pretty 
) throws IOException, JDOMException, TransformerException, ParserConfigurationException
637  {
638  try {
639  RDF rdf = new RDF();
640  String item = "ls_lab";
641  String query = GeneralFunctions.getAllElementsForItemID(item, label);
642  List<BindingSet> result = RDF4J_20.SPARQLquery(ConfigProperties.getPropertyParam("repository"), ConfigProperties.getPropertyParam("ts_server"), query);
643  List<String> predicates = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "p");
644  List<String> objects = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "o");
645  if (result.size() < 1) {
646  throw new ResourceNotAvailableException("resource " + label + " is not available");
647  }
648  for (int i = 0; i < predicates.size(); i++) {
649  rdf.setModelTriple(item + ":" + label, predicates.get(i), objects.get(i));
650  }
651  String out = rdf.getModel("JSON-LD");
652  if (pretty) {
653  JsonParser parser = new JsonParser();
654  JsonObject json = parser.parse(out).getAsJsonObject();
655  Gson gson = new GsonBuilder().setPrettyPrinting().create();
656  return Response.ok(gson.toJson(json)).header("Content-Type", "application/json;charset=UTF-8").build();
657  } else {
658  return Response.ok(out).header("Content-Type", "application/json;charset=UTF-8").build();
659  }
660  } catch (Exception e) {
661  if (e.toString().contains("ResourceNotAvailableException")) {
662  return Response.status(Response.Status.NOT_FOUND).entity(Logging.getMessageJSON(e, "v1.rest.LabelsResource"))
663  .header("Content-Type", "application/json;charset=UTF-8").build();
664  } else {
665  return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(Logging.getMessageJSON(e, "v1.rest.LabelsResource"))
666  .header("Content-Type", "application/json;charset=UTF-8").build();
667  }
668  }
669  }

References GeneralFunctions.getAllElementsForItemID(), Logging.getMessageJSON(), and ConfigProperties.getPropertyParam().

◆ getLabelRDF_JSONRDF()

Response getLabelRDF_JSONRDF ( @PathParam("label") String  label,
@QueryParam("pretty") boolean  pretty 
) throws IOException, JDOMException, TransformerException, ParserConfigurationException
600  {
601  try {
602  RDF rdf = new RDF();
603  String item = "ls_lab";
604  String query = GeneralFunctions.getAllElementsForItemID(item, label);
605  List<BindingSet> result = RDF4J_20.SPARQLquery(ConfigProperties.getPropertyParam("repository"), ConfigProperties.getPropertyParam("ts_server"), query);
606  List<String> predicates = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "p");
607  List<String> objects = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "o");
608  if (result.size() < 1) {
609  throw new ResourceNotAvailableException("resource " + label + " is not available");
610  }
611  for (int i = 0; i < predicates.size(); i++) {
612  rdf.setModelTriple(item + ":" + label, predicates.get(i), objects.get(i));
613  }
614  String out = rdf.getModel("RDF/JSON");
615  if (pretty) {
616  JsonParser parser = new JsonParser();
617  JsonObject json = parser.parse(out).getAsJsonObject();
618  Gson gson = new GsonBuilder().setPrettyPrinting().create();
619  return Response.ok(gson.toJson(json)).header("Content-Type", "application/json;charset=UTF-8").build();
620  } else {
621  return Response.ok(out).header("Content-Type", "application/json;charset=UTF-8").build();
622  }
623  } catch (Exception e) {
624  if (e.toString().contains("ResourceNotAvailableException")) {
625  return Response.status(Response.Status.NOT_FOUND).entity(Logging.getMessageJSON(e, "v1.rest.LabelsResource"))
626  .header("Content-Type", "application/json;charset=UTF-8").build();
627  } else {
628  return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(Logging.getMessageJSON(e, "v1.rest.LabelsResource"))
629  .header("Content-Type", "application/json;charset=UTF-8").build();
630  }
631  }
632  }

References GeneralFunctions.getAllElementsForItemID(), Logging.getMessageJSON(), and ConfigProperties.getPropertyParam().

◆ getLabelRDF_N3()

Response getLabelRDF_N3 ( @PathParam("label") String  label) throws IOException, JDOMException, TransformerException, ParserConfigurationException
571  {
572  try {
573  RDF rdf = new RDF();
574  String item = "ls_lab";
575  String query = GeneralFunctions.getAllElementsForItemID(item, label);
576  List<BindingSet> result = RDF4J_20.SPARQLquery(ConfigProperties.getPropertyParam("repository"), ConfigProperties.getPropertyParam("ts_server"), query);
577  List<String> predicates = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "p");
578  List<String> objects = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "o");
579  if (result.size() < 1) {
580  throw new ResourceNotAvailableException("resource " + label + " is not available");
581  }
582  for (int i = 0; i < predicates.size(); i++) {
583  rdf.setModelTriple(item + ":" + label, predicates.get(i), objects.get(i));
584  }
585  return Response.ok(rdf.getModel("N-Triples")).build();
586  } catch (Exception e) {
587  if (e.toString().contains("ResourceNotAvailableException")) {
588  return Response.status(Response.Status.NOT_FOUND).entity(Logging.getMessageJSON(e, "v1.rest.LabelsResource"))
589  .header("Content-Type", "application/json;charset=UTF-8").build();
590  } else {
591  return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(Logging.getMessageJSON(e, "v1.rest.LabelsResource"))
592  .header("Content-Type", "application/json;charset=UTF-8").build();
593  }
594  }
595  }

References GeneralFunctions.getAllElementsForItemID(), Logging.getMessageJSON(), and ConfigProperties.getPropertyParam().

◆ getLabelRDF_Turtle()

Response getLabelRDF_Turtle ( @PathParam("label") String  label) throws IOException, JDOMException, TransformerException, ParserConfigurationException
542  {
543  try {
544  RDF rdf = new RDF();
545  String item = "ls_lab";
546  String query = GeneralFunctions.getAllElementsForItemID(item, label);
547  List<BindingSet> result = RDF4J_20.SPARQLquery(ConfigProperties.getPropertyParam("repository"), ConfigProperties.getPropertyParam("ts_server"), query);
548  List<String> predicates = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "p");
549  List<String> objects = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "o");
550  if (result.size() < 1) {
551  throw new ResourceNotAvailableException("resource " + label + " is not available");
552  }
553  for (int i = 0; i < predicates.size(); i++) {
554  rdf.setModelTriple(item + ":" + label, predicates.get(i), objects.get(i));
555  }
556  return Response.ok(rdf.getModel("Turtle")).build();
557  } catch (Exception e) {
558  if (e.toString().contains("ResourceNotAvailableException")) {
559  return Response.status(Response.Status.NOT_FOUND).entity(Logging.getMessageJSON(e, "v1.rest.LabelsResource"))
560  .header("Content-Type", "application/json;charset=UTF-8").build();
561  } else {
562  return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(Logging.getMessageJSON(e, "v1.rest.LabelsResource"))
563  .header("Content-Type", "application/json;charset=UTF-8").build();
564  }
565  }
566  }

References GeneralFunctions.getAllElementsForItemID(), Logging.getMessageJSON(), and ConfigProperties.getPropertyParam().

◆ getLabelRDF_XML()

Response getLabelRDF_XML ( @PathParam("label") String  label) throws IOException, JDOMException, RdfException, ParserConfigurationException, TransformerException
512  {
513  try {
514  RDF rdf = new RDF();
515  String item = "ls_lab";
516  String query = GeneralFunctions.getAllElementsForItemID(item, label);
517  List<BindingSet> result = RDF4J_20.SPARQLquery(ConfigProperties.getPropertyParam("repository"), ConfigProperties.getPropertyParam("ts_server"), query);
518  List<String> predicates = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "p");
519  List<String> objects = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "o");
520  if (result.size() < 1) {
521  throw new ResourceNotAvailableException("resource " + label + " is not available");
522  }
523  for (int i = 0; i < predicates.size(); i++) {
524  rdf.setModelTriple(item + ":" + label, predicates.get(i), objects.get(i));
525  }
526  String RDFoutput = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" + rdf.getModel("RDF/XML");
527  return Response.ok(RDFoutput).build();
528  } catch (Exception e) {
529  if (e.toString().contains("ResourceNotAvailableException")) {
530  return Response.status(Response.Status.NOT_FOUND).entity(Logging.getMessageJSON(e, "v1.rest.LabelsResource"))
531  .header("Content-Type", "application/json;charset=UTF-8").build();
532  } else {
533  return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(Logging.getMessageJSON(e, "v1.rest.LabelsResource"))
534  .header("Content-Type", "application/json;charset=UTF-8").build();
535  }
536  }
537  }

References GeneralFunctions.getAllElementsForItemID(), Logging.getMessageJSON(), and ConfigProperties.getPropertyParam().

◆ getLabels()

Response getLabels ( @HeaderParam("Accept") String  acceptHeader,
@HeaderParam("Accept-Encoding") String  acceptEncoding,
@QueryParam("pretty") boolean  pretty,
@QueryParam("sort") String  sort,
@QueryParam("fields") String  fields,
@QueryParam("offset") String  offset,
@QueryParam("limit") String  limit,
@QueryParam("creator") String  creator,
@QueryParam("releaseType") String  releaseType,
@QueryParam("prefLabel") String  prefLabel,
@QueryParam("vocab") String  vocab,
@QueryParam("equalConcepts") String  equalConcepts,
@QueryParam("revisions") String  revisions,
@QueryParam("creatorInfo") String  creatorInfo,
@QueryParam("draft") String  draft 
) throws IOException, JDOMException, ConfigException, ParserConfigurationException, TransformerException
84  {
85  try {
86  String OUTSTRING = "";
87  // QUERY STRING
88  RDF rdf = new RDF();
89  List<RetcatItem> retcatlist = LocalRetcatItems.getLocalCatalogue();
90  String query = rdf.getPREFIXSPARQL();
91  query += "SELECT ?s ?p ?o WHERE { "
92  + "?s ?p ?o . "
93  + "?s a ls:Label . "
94  + "?s dc:identifier ?identifier . "
95  + "OPTIONAL { ?s dc:creator ?creator . } " // because of sorting, filtering
96  + "OPTIONAL { ?s skos:prefLabel ?prefLabel . } " // because of sorting, filtering
97  + "?s skos:inScheme ?vocab . " // because of filtering
98  + "OPTIONAL { ?s ls:hasContext ?context . } "; // because of filtering
99  // FILTERING
100  if (draft != null) {
101  if (draft.equals("false")) {
102  query += "?vocab ls:hasReleaseType ls:Public . ";
103  }
104  } else {
105  query += "?vocab ls:hasReleaseType ls:Public . ";
106  }
107  if (creator != null) {
108  query += "FILTER(?creator=\"" + creator + "\") ";
109  }
110  if (vocab != null) {
111  query += "FILTER(?vocab=<" + rdf.getPrefixItem("ls_voc:" + vocab) + ">) ";
112  }
113  query += " } ";
114  // SORTING
115  List<String> sortList = new ArrayList<String>();
116  if (sort != null) {
117  String sortArray[] = sort.split(",");
118  for (String element : sortArray) {
119  if (sort != null) {
120  String sortDirection = element.substring(0, 1);
121  if (sortDirection.equals("+")) {
122  sortDirection = "ASC";
123  } else {
124  sortDirection = "DESC";
125  }
126  element = element.substring(1);
127  sortList.add(sortDirection + "(?" + element + ") ");
128  }
129  }
130  query += "ORDER BY ";
131  for (String element : sortList) {
132  query += element;
133  }
134  }
135  // PAGING
136  if (limit != null && offset != null) {
137  query += "LIMIT " + limit + " OFFSET " + offset;
138  }
139  // QUERY TRIPLESTORE
140  long ctm_start = System.currentTimeMillis();
141  List<BindingSet> result = RDF4J_20.SPARQLquery(ConfigProperties.getPropertyParam("repository"), ConfigProperties.getPropertyParam("ts_server"), query);
142  List<String> s = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "s");
143  List<String> p = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "p");
144  List<String> o = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "o");
145  if (result.size() < 1) {
146  throw new ResourceNotAvailableException("resource is not available");
147  }
148  for (int i = 0; i < s.size(); i++) {
149  rdf.setModelTriple(s.get(i), p.get(i), o.get(i));
150  }
151  // get inherited data
152  List<InheritFromVocab> inheritFromVocab = getInheritedFromVocabList();
153  // set result
154  JSONArray outArray = new JSONArray();
155  if (acceptHeader.contains("application/json") || acceptHeader.contains("text/html")) {
156  JSONObject jsonObject = (JSONObject) new JSONParser().parse(rdf.getModel("RDF/JSON"));
157  Set keys = jsonObject.keySet();
158  Iterator a = keys.iterator();
159  while (a.hasNext()) {
160  String key = (String) a.next();
161  JSONObject tmpObject = (JSONObject) jsonObject.get(key);
162  JSONArray idArray = (JSONArray) tmpObject.get(rdf.getPrefixItem("dc:identifier"));
163  JSONObject idObject = (JSONObject) idArray.get(0);
164  String h = (String) idObject.get("value");
165  JSONObject tmpObject2 = new JSONObject();
166  tmpObject2.put(key, tmpObject);
167  String hh = tmpObject2.toString();
168  JSONObject tmp = Transformer.label_GET(hh, h, fields, retcatlist, equalConcepts, revisions, creatorInfo, inheritFromVocab);
169  outArray.add(tmp);
170  }
171  }
172  if (acceptHeader.contains("application/json")) {
173  if (pretty) {
174  JsonParser parser = new JsonParser();
175  JsonObject json = parser.parse(outArray.toString()).getAsJsonObject();
176  Gson gson = new GsonBuilder().setPrettyPrinting().create();
177  return Response.ok(gson.toJson(json)).build();
178  } else {
179  OUTSTRING = outArray.toString();
180  if (acceptEncoding.contains("gzip")) {
181  // set outputstream
182  final String OUTSTRING_FINAL = OUTSTRING;
183  StreamingOutput stream;
184  stream = new StreamingOutput() {
185  @Override
186  public void write(OutputStream output) throws IOException, WebApplicationException {
187  try {
188  output = GZIP(OUTSTRING_FINAL, output);
189  } catch (Exception e) {
190  System.out.println(e.toString());
191  }
192  }
193  };
194  return Response.ok(stream).header("Content-Type", "application/json;charset=UTF-8").header("Content-Encoding", "gzip").build();
195  } else {
196  return Response.ok(OUTSTRING).header("Content-Type", "application/json;charset=UTF-8").build();
197  }
198  }
199  } else if (acceptHeader.contains("application/rdf+json")) {
200  return Response.ok(rdf.getModel("RDF/JSON")).header("Content-Type", "application/json;charset=UTF-8").build();
201  } else if (acceptHeader.contains("text/html")) {
202  if (pretty) {
203  JsonParser parser = new JsonParser();
204  JsonObject json = parser.parse(outArray.toString()).getAsJsonObject();
205  Gson gson = new GsonBuilder().setPrettyPrinting().create();
206  return Response.ok(gson.toJson(json)).header("Content-Type", "application/json;charset=UTF-8").build();
207  } else {
208  OUTSTRING = outArray.toString();
209  if (acceptEncoding.contains("gzip")) {
210  // set outputstream
211  final String OUTSTRING_FINAL = OUTSTRING;
212  StreamingOutput stream;
213  stream = new StreamingOutput() {
214  @Override
215  public void write(OutputStream output) throws IOException, WebApplicationException {
216  try {
217  output = GZIP(OUTSTRING_FINAL, output);
218  } catch (Exception e) {
219  System.out.println(e.toString());
220  }
221  }
222  };
223  return Response.ok(stream).header("Content-Type", "application/json;charset=UTF-8").header("Content-Encoding", "gzip").build();
224  } else {
225  return Response.ok(OUTSTRING).header("Content-Type", "application/json;charset=UTF-8").build();
226  }
227  }
228  } else if (acceptHeader.contains("application/xml")) {
229  return Response.ok(rdf.getModel("RDF/XML")).build();
230  } else if (acceptHeader.contains("application/rdf+xml")) {
231  return Response.ok(rdf.getModel("RDF/XML")).build();
232  } else if (acceptHeader.contains("text/turtle")) {
233  return Response.ok(rdf.getModel("Turtle")).build();
234  } else if (acceptHeader.contains("text/n3")) {
235  return Response.ok(rdf.getModel("N-Triples")).build();
236  } else if (acceptHeader.contains("application/ld+json")) {
237  return Response.ok(rdf.getModel("JSON-LD")).build();
238  } else if (pretty) {
239  JsonParser parser = new JsonParser();
240  JsonObject json = parser.parse(outArray.toString()).getAsJsonObject();
241  Gson gson = new GsonBuilder().setPrettyPrinting().create();
242  return Response.ok(gson.toJson(json)).header("Content-Type", "application/json;charset=UTF-8").build();
243  } else {
244  OUTSTRING = outArray.toString();
245  if (acceptEncoding.contains("gzip")) {
246  // set outputstream
247  final String OUTSTRING_FINAL = OUTSTRING;
248  StreamingOutput stream;
249  stream = new StreamingOutput() {
250  @Override
251  public void write(OutputStream output) throws IOException, WebApplicationException {
252  try {
253  output = GZIP(OUTSTRING_FINAL, output);
254  } catch (Exception e) {
255  System.out.println(e.toString());
256  }
257  }
258  };
259  return Response.ok(stream).header("Content-Type", "application/json;charset=UTF-8").header("Content-Encoding", "gzip").build();
260  } else {
261  return Response.ok(OUTSTRING).header("Content-Type", "application/json;charset=UTF-8").build();
262  }
263  }
264  } catch (Exception e) {
265  if (e.toString().contains("ResourceNotAvailableException")) {
266  JSONArray outArray = new JSONArray();
267  return Response.ok(outArray).header("Content-Type", "application/json;charset=UTF-8").build();
268  } else {
269  return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(Logging.getMessageJSON(e, "v1.rest.LabelsResource"))
270  .header("Content-Type", "application/json;charset=UTF-8").build();
271  }
272  }
273  }

References LocalRetcatItems.getLocalCatalogue(), Logging.getMessageJSON(), ConfigProperties.getPropertyParam(), and Transformer.label_GET().

◆ GZIP()

static OutputStream GZIP ( String  input,
OutputStream  baos 
) throws IOException
staticprivate
1207  {
1208  try (GZIPOutputStream gzos = new GZIPOutputStream(baos)) {
1209  gzos.write(input.getBytes("UTF-8"));
1210  } catch (Exception e) {
1211  System.out.println(e.toString());
1212  }
1213  return baos;
1214  }

◆ modifySPARQLUPDATE()

static String modifySPARQLUPDATE ( String  item,
String  itemid 
) throws ConfigException, IOException, UniqueIdentifierException
staticprivate
971  {
972  RDF rdf = new RDF();
973  String prefixes = rdf.getPREFIXSPARQL();
974  Calendar calender = Calendar.getInstance();
975  Date date = calender.getTime();
976  DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
977  String dateiso = formatter.format(date);
978  String triples = prefixes + "INSERT DATA { ";
979  triples += item + ":" + itemid + " dc:modified \"" + dateiso + "\"" + " . ";
980  triples += " }";
981  return triples;
982  }

◆ postLabel()

Response postLabel ( String  json) throws IOException, JDOMException, ConfigException, ParserConfigurationException, TransformerException
792  {
793  try {
794  // get variables
795  String item = "ls_lab";
796  // validate
797  ValidateJSONObject.validateLabel(json);
798  // set uuid
799  String itemID = UniqueIdentifier.getHashID();
800  // parse data
801  JSONObject jsonObject = (JSONObject) new JSONParser().parse(json);
802  String creator = (String) jsonObject.get("creator");
803  String vocabID = (String) jsonObject.get("vocabID");
804  // create triples
805  json = Transformer.label_POST(json, itemID, creator);
806  String triples = createLabelSPARQLUPDATE(item, itemID, creator, vocabID);
807  // input triples
808  RDF4J_20.inputRDFfromRDFJSONString(ConfigProperties.getPropertyParam("repository"), ConfigProperties.getPropertyParam("ts_server"), json);
809  RDF4J_20.SPARQLupdate(ConfigProperties.getPropertyParam("repository"), ConfigProperties.getPropertyParam("ts_server"), triples);
810  // trigger for create statistics
811  Transformer.writeVocabularyStatisticsToDatabase(vocabID);
812  // get result als json
813  RDF rdf = new RDF();
814  List<RetcatItem> retcatlist = LocalRetcatItems.getLocalCatalogue();
815  String query = GeneralFunctions.getAllElementsForItemID(item, itemID);
816  List<BindingSet> result = RDF4J_20.SPARQLquery(ConfigProperties.getPropertyParam("repository"), ConfigProperties.getPropertyParam("ts_server"), query);
817  List<String> predicates = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "p");
818  List<String> objects = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "o");
819  if (result.size() < 1) {
820  throw new ResourceNotAvailableException("resource " + itemID + " is not available");
821  }
822  for (int i = 0; i < predicates.size(); i++) {
823  rdf.setModelTriple(item + ":" + itemID, predicates.get(i), objects.get(i));
824  }
825  // get inherited data
826  List<InheritFromVocab> inheritFromVocab = getInheritedFromVocabList();
827  // set result
828  String out = Transformer.label_GET(rdf.getModel("RDF/JSON"), itemID, null, retcatlist, "false", "false", "false", inheritFromVocab).toJSONString();
829  return Response.status(Response.Status.CREATED).entity(out).build();
830  } catch (Exception e) {
831  return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(Logging.getMessageJSON(e, "v1.rest.LabelsResource"))
832  .header("Content-Type", "application/json;charset=UTF-8").build();
833  }
834  }

References GeneralFunctions.getAllElementsForItemID(), UniqueIdentifier.getHashID(), LocalRetcatItems.getLocalCatalogue(), Logging.getMessageJSON(), ConfigProperties.getPropertyParam(), Transformer.label_GET(), Transformer.label_POST(), ValidateJSONObject.validateLabel(), and Transformer.writeVocabularyStatisticsToDatabase().

◆ revisionSPARQLUPDATE()

static String revisionSPARQLUPDATE ( String  item,
String  itemid,
HashMap< String, String >  revisions 
) throws ConfigException, IOException, UniqueIdentifierException, RepositoryException, MalformedQueryException, QueryEvaluationException, SparqlQueryException, SparqlParseException, org.linkedgeodesy.rdf4j.exceptions.SparqlParseException, org.linkedgeodesy.rdf4j.exceptions.SparqlQueryException
staticprivate
984  {
985  RDF rdf = new RDF();
986  String prefixes = rdf.getPREFIXSPARQL();
987  String triples = prefixes + "INSERT DATA { ";
988  Calendar calender = Calendar.getInstance();
989  Date date = calender.getTime();
990  DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
991  String dateiso = formatter.format(date);
992  String revID = UniqueIdentifier.getHashID();
993  String revID2 = UniqueIdentifier.getHashID();
994  String revID3 = UniqueIdentifier.getHashID();
995  triples += item + ":" + itemid + " dc:modified \"" + dateiso + "\"" + " . ";
996  if (!revisions.isEmpty()) {
997  triples += item + ":" + itemid + " skos:changeNote ls_rev:" + revID + " . ";
998  triples += "ls_rev" + ":" + revID + " a ls:Revision . ";
999  triples += "ls_rev" + ":" + revID + " a prov:Activity . ";
1000  triples += "ls_rev" + ":" + revID + " dc:identifier \"" + revID + "\"" + " . ";
1001  triples += "ls_rev" + ":" + revID + " ls:action \"" + revisions.get("action") + "\"" + " . ";
1002  triples += "ls_rev" + ":" + revID + " ls:objectType \"" + revisions.get("objectType") + "\"" + " . ";
1003  triples += "ls_rev" + ":" + revID + " ls:valueBefore \"" + revisions.get("valueBefore") + "\"" + " . ";
1004  triples += "ls_rev" + ":" + revID + " ls:valueAfter \"" + revisions.get("valueAfter") + "\"" + " . ";
1005  triples += "ls_rev" + ":" + revID + " prov:startedAtTime \"" + dateiso + "\"" + " . ";
1006  if (revisions.get("action") != null) {
1007  if (revisions.get("bidirectional") != null) { // if bidirectional link
1008  String query = rdf.getPREFIXSPARQL();
1009  query += "SELECT * WHERE { ls_lab:" + revisions.get("bidirectional") + " skos:inScheme ?v. ?v ls:hasReleaseType ?rt . }";
1010  List<BindingSet> result = RDF4J_20.SPARQLquery(ConfigProperties.getPropertyParam("repository"), ConfigProperties.getPropertyParam("ts_server"), query);
1011  List<String> releaseTypeList = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "rt");
1012  if (releaseTypeList.size() > 0) {
1013  String releaseType = releaseTypeList.get(0);
1014  if (releaseType.contains("Public") || releaseType.contains("public")) { // if label is public
1015  if (revisions.get("action").equals("add")) {
1016  if (revisions.get("objectType").equals("narrower")) {
1017  triples += item + ":" + revisions.get("bidirectional") + " skos:changeNote ls_rev:" + revID2 + " . ";
1018  triples += "ls_rev" + ":" + revID2 + " a ls:Revision . ";
1019  triples += "ls_rev" + ":" + revID2 + " a prov:Activity . ";
1020  triples += "ls_rev" + ":" + revID2 + " dc:identifier \"" + revID2 + "\"" + " . ";
1021  triples += "ls_rev" + ":" + revID2 + " ls:action \"" + revisions.get("action") + "\"" + " . ";
1022  triples += "ls_rev" + ":" + revID2 + " ls:objectType \"" + "broader" + "\"" + " . ";
1023  triples += "ls_rev" + ":" + revID2 + " ls:valueBefore \"" + revisions.get("valueBefore") + "\"" + " . ";
1024  triples += "ls_rev" + ":" + revID2 + " ls:valueAfter \"" + revisions.get("valueAfter") + "\"" + " . ";
1025  triples += "ls_rev" + ":" + revID2 + " prov:startedAtTime \"" + dateiso + "\"" + " . ";
1026  }
1027  if (revisions.get("objectType").equals("broader")) {
1028  triples += item + ":" + revisions.get("bidirectional") + " skos:changeNote ls_rev:" + revID2 + " . ";
1029  triples += "ls_rev" + ":" + revID2 + " a ls:Revision . ";
1030  triples += "ls_rev" + ":" + revID2 + " a prov:Activity . ";
1031  triples += "ls_rev" + ":" + revID2 + " dc:identifier \"" + revID2 + "\"" + " . ";
1032  triples += "ls_rev" + ":" + revID2 + " ls:action \"" + revisions.get("action") + "\"" + " . ";
1033  triples += "ls_rev" + ":" + revID2 + " ls:objectType \"" + "narrower" + "\"" + " . ";
1034  triples += "ls_rev" + ":" + revID2 + " ls:valueBefore \"" + revisions.get("valueBefore") + "\"" + " . ";
1035  triples += "ls_rev" + ":" + revID2 + " ls:valueAfter \"" + revisions.get("valueAfter") + "\"" + " . ";
1036  triples += "ls_rev" + ":" + revID2 + " prov:startedAtTime \"" + dateiso + "\"" + " . ";
1037  }
1038  if (revisions.get("objectType").equals("related")) {
1039  triples += item + ":" + revisions.get("bidirectional") + " skos:changeNote ls_rev:" + revID2 + " . ";
1040  triples += "ls_rev" + ":" + revID2 + " a ls:Revision . ";
1041  triples += "ls_rev" + ":" + revID2 + " a prov:Activity . ";
1042  triples += "ls_rev" + ":" + revID2 + " dc:identifier \"" + revID2 + "\"" + " . ";
1043  triples += "ls_rev" + ":" + revID2 + " ls:action \"" + revisions.get("action") + "\"" + " . ";
1044  triples += "ls_rev" + ":" + revID2 + " ls:objectType \"" + "related" + "\"" + " . ";
1045  triples += "ls_rev" + ":" + revID2 + " ls:valueBefore \"" + revisions.get("valueBefore") + "\"" + " . ";
1046  triples += "ls_rev" + ":" + revID2 + " ls:valueAfter \"" + revisions.get("valueAfter") + "\"" + " . ";
1047  triples += "ls_rev" + ":" + revID2 + " prov:startedAtTime \"" + dateiso + "\"" + " . ";
1048  }
1049  } else if (revisions.get("action").equals("delete")) {
1050  if (revisions.get("objectType").equals("narrower")) {
1051  triples += item + ":" + revisions.get("bidirectional") + " skos:changeNote ls_rev:" + revID2 + " . ";
1052  triples += "ls_rev" + ":" + revID2 + " a ls:Revision . ";
1053  triples += "ls_rev" + ":" + revID2 + " a prov:Activity . ";
1054  triples += "ls_rev" + ":" + revID2 + " dc:identifier \"" + revID2 + "\"" + " . ";
1055  triples += "ls_rev" + ":" + revID2 + " ls:action \"" + revisions.get("action") + "\"" + " . ";
1056  triples += "ls_rev" + ":" + revID2 + " ls:objectType \"" + "broader" + "\"" + " . ";
1057  triples += "ls_rev" + ":" + revID2 + " ls:valueBefore \"" + revisions.get("valueBefore") + "\"" + " . ";
1058  triples += "ls_rev" + ":" + revID2 + " ls:valueAfter \"" + revisions.get("valueAfter") + "\"" + " . ";
1059  triples += "ls_rev" + ":" + revID2 + " prov:startedAtTime \"" + dateiso + "\"" + " . ";
1060  }
1061  if (revisions.get("objectType").equals("broader")) {
1062  triples += item + ":" + revisions.get("bidirectional") + " skos:changeNote ls_rev:" + revID2 + " . ";
1063  triples += "ls_rev" + ":" + revID2 + " a ls:Revision . ";
1064  triples += "ls_rev" + ":" + revID2 + " a prov:Activity . ";
1065  triples += "ls_rev" + ":" + revID2 + " dc:identifier \"" + revID2 + "\"" + " . ";
1066  triples += "ls_rev" + ":" + revID2 + " ls:action \"" + revisions.get("action") + "\"" + " . ";
1067  triples += "ls_rev" + ":" + revID2 + " ls:objectType \"" + "narrower" + "\"" + " . ";
1068  triples += "ls_rev" + ":" + revID2 + " ls:valueBefore \"" + revisions.get("valueBefore") + "\"" + " . ";
1069  triples += "ls_rev" + ":" + revID2 + " ls:valueAfter \"" + revisions.get("valueAfter") + "\"" + " . ";
1070  triples += "ls_rev" + ":" + revID2 + " prov:startedAtTime \"" + dateiso + "\"" + " . ";
1071  }
1072  if (revisions.get("objectType").equals("related")) {
1073  triples += item + ":" + revisions.get("bidirectional") + " skos:changeNote ls_rev:" + revID2 + " . ";
1074  triples += "ls_rev" + ":" + revID2 + " a ls:Revision . ";
1075  triples += "ls_rev" + ":" + revID2 + " a prov:Activity . ";
1076  triples += "ls_rev" + ":" + revID2 + " dc:identifier \"" + revID2 + "\"" + " . ";
1077  triples += "ls_rev" + ":" + revID2 + " ls:action \"" + revisions.get("action") + "\"" + " . ";
1078  triples += "ls_rev" + ":" + revID2 + " ls:objectType \"" + "related" + "\"" + " . ";
1079  triples += "ls_rev" + ":" + revID2 + " ls:valueBefore \"" + revisions.get("valueBefore") + "\"" + " . ";
1080  triples += "ls_rev" + ":" + revID2 + " ls:valueAfter \"" + revisions.get("valueAfter") + "\"" + " . ";
1081  triples += "ls_rev" + ":" + revID2 + " prov:startedAtTime \"" + dateiso + "\"" + " . ";
1082  }
1083  } else if (revisions.get("action").equals("modify")) {
1084  if (revisions.get("objectType").equals("narrower")) {
1085  triples += item + ":" + revisions.get("bidirectional-del") + " skos:changeNote ls_rev:" + revID2 + " . ";
1086  triples += "ls_rev" + ":" + revID2 + " a ls:Revision . ";
1087  triples += "ls_rev" + ":" + revID2 + " a prov:Activity . ";
1088  triples += "ls_rev" + ":" + revID2 + " dc:identifier \"" + revID2 + "\"" + " . ";
1089  triples += "ls_rev" + ":" + revID2 + " ls:action \"" + "delete" + "\"" + " . ";
1090  triples += "ls_rev" + ":" + revID2 + " ls:objectType \"" + "broader" + "\"" + " . ";
1091  triples += "ls_rev" + ":" + revID2 + " ls:valueBefore \"" + revisions.get("valueBefore") + "\"" + " . ";
1092  triples += "ls_rev" + ":" + revID2 + " ls:valueAfter \"" + revisions.get("valueAfter") + "\"" + " . ";
1093  triples += "ls_rev" + ":" + revID2 + " prov:startedAtTime \"" + dateiso + "\"" + " . ";
1094  triples += item + ":" + revisions.get("bidirectional-add") + " skos:changeNote ls_rev:" + revID3 + " . ";
1095  triples += "ls_rev" + ":" + revID3 + " a ls:Revision . ";
1096  triples += "ls_rev" + ":" + revID3 + " a prov:Activity . ";
1097  triples += "ls_rev" + ":" + revID3 + " dc:identifier \"" + revID2 + "\"" + " . ";
1098  triples += "ls_rev" + ":" + revID3 + " ls:action \"" + "add" + "\"" + " . ";
1099  triples += "ls_rev" + ":" + revID3 + " ls:objectType \"" + "broader" + "\"" + " . ";
1100  triples += "ls_rev" + ":" + revID3 + " ls:valueBefore \"" + revisions.get("valueBefore") + "\"" + " . ";
1101  triples += "ls_rev" + ":" + revID3 + " ls:valueAfter \"" + revisions.get("valueAfter") + "\"" + " . ";
1102  triples += "ls_rev" + ":" + revID3 + " prov:startedAtTime \"" + dateiso + "\"" + " . ";
1103  }
1104  if (revisions.get("objectType").equals("broader")) {
1105  triples += item + ":" + revisions.get("bidirectional-del") + " skos:changeNote ls_rev:" + revID2 + " . ";
1106  triples += "ls_rev" + ":" + revID2 + " a ls:Revision . ";
1107  triples += "ls_rev" + ":" + revID2 + " a prov:Activity . ";
1108  triples += "ls_rev" + ":" + revID2 + " dc:identifier \"" + revID2 + "\"" + " . ";
1109  triples += "ls_rev" + ":" + revID2 + " ls:action \"" + "delete" + "\"" + " . ";
1110  triples += "ls_rev" + ":" + revID2 + " ls:objectType \"" + "narrower" + "\"" + " . ";
1111  triples += "ls_rev" + ":" + revID2 + " ls:valueBefore \"" + revisions.get("valueBefore") + "\"" + " . ";
1112  triples += "ls_rev" + ":" + revID2 + " ls:valueAfter \"" + revisions.get("valueAfter") + "\"" + " . ";
1113  triples += "ls_rev" + ":" + revID2 + " prov:startedAtTime \"" + dateiso + "\"" + " . ";
1114  triples += item + ":" + revisions.get("bidirectional-add") + " skos:changeNote ls_rev:" + revID3 + " . ";
1115  triples += "ls_rev" + ":" + revID3 + " a ls:Revision . ";
1116  triples += "ls_rev" + ":" + revID3 + " a prov:Activity . ";
1117  triples += "ls_rev" + ":" + revID3 + " dc:identifier \"" + revID2 + "\"" + " . ";
1118  triples += "ls_rev" + ":" + revID3 + " ls:action \"" + "add" + "\"" + " . ";
1119  triples += "ls_rev" + ":" + revID3 + " ls:objectType \"" + "narrower" + "\"" + " . ";
1120  triples += "ls_rev" + ":" + revID3 + " ls:valueBefore \"" + revisions.get("valueBefore") + "\"" + " . ";
1121  triples += "ls_rev" + ":" + revID3 + " ls:valueAfter \"" + revisions.get("valueAfter") + "\"" + " . ";
1122  triples += "ls_rev" + ":" + revID3 + " prov:startedAtTime \"" + dateiso + "\"" + " . ";
1123  }
1124  if (revisions.get("objectType").equals("related")) {
1125  triples += item + ":" + revisions.get("bidirectional-del") + " skos:changeNote ls_rev:" + revID2 + " . ";
1126  triples += "ls_rev" + ":" + revID2 + " a ls:Revision . ";
1127  triples += "ls_rev" + ":" + revID2 + " a prov:Activity . ";
1128  triples += "ls_rev" + ":" + revID2 + " dc:identifier \"" + revID2 + "\"" + " . ";
1129  triples += "ls_rev" + ":" + revID2 + " ls:action \"" + "delete" + "\"" + " . ";
1130  triples += "ls_rev" + ":" + revID2 + " ls:objectType \"" + "related" + "\"" + " . ";
1131  triples += "ls_rev" + ":" + revID2 + " ls:valueBefore \"" + revisions.get("valueBefore") + "\"" + " . ";
1132  triples += "ls_rev" + ":" + revID2 + " ls:valueAfter \"" + revisions.get("valueAfter") + "\"" + " . ";
1133  triples += "ls_rev" + ":" + revID2 + " prov:startedAtTime \"" + dateiso + "\"" + " . ";
1134  triples += item + ":" + revisions.get("bidirectional-add") + " skos:changeNote ls_rev:" + revID3 + " . ";
1135  triples += "ls_rev" + ":" + revID3 + " a ls:Revision . ";
1136  triples += "ls_rev" + ":" + revID3 + " a prov:Activity . ";
1137  triples += "ls_rev" + ":" + revID3 + " dc:identifier \"" + revID2 + "\"" + " . ";
1138  triples += "ls_rev" + ":" + revID3 + " ls:action \"" + "add" + "\"" + " . ";
1139  triples += "ls_rev" + ":" + revID3 + " ls:objectType \"" + "related" + "\"" + " . ";
1140  triples += "ls_rev" + ":" + revID3 + " ls:valueBefore \"" + revisions.get("valueBefore") + "\"" + " . ";
1141  triples += "ls_rev" + ":" + revID3 + " ls:valueAfter \"" + revisions.get("valueAfter") + "\"" + " . ";
1142  triples += "ls_rev" + ":" + revID3 + " prov:startedAtTime \"" + dateiso + "\"" + " . ";
1143  }
1144  }
1145  }
1146  }
1147  }
1148  }
1149  }
1150  triples += " }";
1151  return triples;
1152  }

References UniqueIdentifier.getHashID(), and ConfigProperties.getPropertyParam().

◆ updateLabel()

Response updateLabel ( @PathParam("label") String  label,
String  json 
) throws IOException, JDOMException, RdfException, ParserConfigurationException, TransformerException
841  {
842  try {
843  String item = "ls_lab";
844  // validate
845  ValidateJSONObject.validateLabel(json);
846  // check if resource exists
847  String queryExist = GeneralFunctions.getAllElementsForItemID(item, label);
848  List<BindingSet> resultExist = RDF4J_20.SPARQLquery(ConfigProperties.getPropertyParam("repository"), ConfigProperties.getPropertyParam("ts_server"), queryExist);
849  if (resultExist.size() < 1) {
850  throw new ResourceNotAvailableException("resource " + label + " is not available");
851  }
852  // get info
853  JSONObject requestObject = (JSONObject) new JSONParser().parse(json);
854  String user = (String) requestObject.get("creator");
855  String vocabID = (String) requestObject.get("vocabID");
856  // insert data
857  String json_new = json;
858  json = Transformer.label_POST(json, label, user);
859  // get json old
860  RDF rdf = new RDF();
861  String query = GeneralFunctions.getAllElementsForItemID(item, label);
862  List<BindingSet> result = RDF4J_20.SPARQLquery(ConfigProperties.getPropertyParam("repository"), ConfigProperties.getPropertyParam("ts_server"), query);
863  List<String> predicates = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "p");
864  List<String> objects = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "o");
865  if (result.size() < 1) {
866  throw new ResourceNotAvailableException("resource " + label + " is not available");
867  }
868  for (int i = 0; i < predicates.size(); i++) {
869  rdf.setModelTriple(item + ":" + label, predicates.get(i), objects.get(i));
870  }
871  List<RetcatItem> retcatlist = LocalRetcatItems.getLocalCatalogue();
872  // get inherited data
873  List<InheritFromVocab> inheritFromVocab = getInheritedFromVocabList();
874  // set result
875  String json_old = Transformer.label_GET(rdf.getModel("RDF/JSON"), label, null, retcatlist, "false", "false", "false", inheritFromVocab).toJSONString();
876  // set revision
877  // get release type of vocabulary
878  query = rdf.getPREFIXSPARQL();
879  query += "SELECT * WHERE { ls_voc:" + vocabID + " ls:hasReleaseType ?rt . }";
880  result = RDF4J_20.SPARQLquery(ConfigProperties.getPropertyParam("repository"), ConfigProperties.getPropertyParam("ts_server"), query);
881  List<String> releaseTypeList = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "rt");
882  String releaseType = releaseTypeList.get(0);
883  if (releaseType != null) {
884  if (releaseType.contains("Public") || releaseType.contains("public")) {
885  // get difference
886  HashMap<String, String> revisions = Transformer.getLabelDifference(json_old, json_new);
887  RDF4J_20.SPARQLupdate(ConfigProperties.getPropertyParam("repository"), ConfigProperties.getPropertyParam("ts_server"), revisionSPARQLUPDATE(item, label, revisions));
888  } else {
889  RDF4J_20.SPARQLupdate(ConfigProperties.getPropertyParam("repository"), ConfigProperties.getPropertyParam("ts_server"), modifySPARQLUPDATE(item, label));
890  }
891  } else {
892  RDF4J_20.SPARQLupdate(ConfigProperties.getPropertyParam("repository"), ConfigProperties.getPropertyParam("ts_server"), modifySPARQLUPDATE(item, label));
893  }
894  // general label action
895  RDF4J_20.SPARQLupdate(ConfigProperties.getPropertyParam("repository"), ConfigProperties.getPropertyParam("ts_server"), deleteItemsSPARQLUPDATE(label));
896  RDF4J_20.inputRDFfromRDFJSONString(ConfigProperties.getPropertyParam("repository"), ConfigProperties.getPropertyParam("ts_server"), json);
897  // trigger for create statistics
898  Transformer.writeVocabularyStatisticsToDatabase(vocabID);
899  // get result als json
900  rdf = new RDF();
901  query = GeneralFunctions.getAllElementsForItemID(item, label);
902  result = RDF4J_20.SPARQLquery(ConfigProperties.getPropertyParam("repository"), ConfigProperties.getPropertyParam("ts_server"), query);
903  predicates = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "p");
904  objects = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "o");
905  if (result.size() < 1) {
906  throw new ResourceNotAvailableException("resource " + label + " is not available");
907  }
908  for (int i = 0; i < predicates.size(); i++) {
909  rdf.setModelTriple(item + ":" + label, predicates.get(i), objects.get(i));
910  }
911  String out = Transformer.label_GET(rdf.getModel("RDF/JSON"), label, null, retcatlist, "false", "false", "false", inheritFromVocab).toJSONString();
912  return Response.status(Response.Status.CREATED).entity(out).build();
913  } catch (Exception e) {
914  return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(Logging.getMessageJSON(e, "v1.rest.LabelsResource"))
915  .header("Content-Type", "application/json;charset=UTF-8").build();
916  }
917  }

References GeneralFunctions.getAllElementsForItemID(), Transformer.getLabelDifference(), LocalRetcatItems.getLocalCatalogue(), Logging.getMessageJSON(), ConfigProperties.getPropertyParam(), Transformer.label_GET(), Transformer.label_POST(), ValidateJSONObject.validateLabel(), and Transformer.writeVocabularyStatisticsToDatabase().

v1.rest.LabelsResource.getInheritedFromVocabList
static List< InheritFromVocab > getInheritedFromVocabList()
Definition: LabelsResource.java:1191
v1.rest.LabelsResource.deleteLabelSPARQLUPDATE
static String deleteLabelSPARQLUPDATE(String id)
Definition: LabelsResource.java:1173
rdf
Definition: RDF.java:1
v1.rest.LabelsResource.deleteItemsSPARQLUPDATE
static String deleteItemsSPARQLUPDATE(String id)
Definition: LabelsResource.java:1154
v1.rest.LabelsResource.modifySPARQLUPDATE
static String modifySPARQLUPDATE(String item, String itemid)
Definition: LabelsResource.java:971
Exception
v1.rest.LabelsResource.createLabelSPARQLUPDATE
static String createLabelSPARQLUPDATE(String item, String itemid, String creator, String vocabID)
Definition: LabelsResource.java:951
v1.rest.LabelsResource.revisionSPARQLUPDATE
static String revisionSPARQLUPDATE(String item, String itemid, HashMap< String, String > revisions)
Definition: LabelsResource.java:984
v1.rest.LabelsResource.GZIP
static OutputStream GZIP(String input, OutputStream baos)
Definition: LabelsResource.java:1207