Skip to content

Commit

Permalink
6603 feat remove unused dkg feature (#6609)
Browse files Browse the repository at this point in the history
  • Loading branch information
YohannParis authored Feb 20, 2025
1 parent 670d6da commit 04d1a49
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 73 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.annotation.Secured;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
Expand All @@ -35,7 +34,6 @@
import software.uncharted.terarium.hmiserver.models.dataservice.model.Model;
import software.uncharted.terarium.hmiserver.models.dataservice.model.configurations.ModelConfiguration;
import software.uncharted.terarium.hmiserver.models.mira.Curies;
import software.uncharted.terarium.hmiserver.models.mira.DKG;
import software.uncharted.terarium.hmiserver.models.mira.EntitySimilarityResult;
import software.uncharted.terarium.hmiserver.models.task.TaskRequest;
import software.uncharted.terarium.hmiserver.models.task.TaskRequest.TaskType;
Expand Down Expand Up @@ -216,28 +214,6 @@ public ResponseEntity<JsonNode> compareModelsConcepts(
return ResponseEntity.ok().body(comparisonResult);
}

@GetMapping("/geoname-search")
@Secured(Roles.USER)
public ResponseEntity<DKG> search(@RequestParam("q") final String q) {
final DKG finalResponse = new DKG(q);
try {
for (String s : q.split("_")) {
ResponseEntity<List<DKG>> response = proxy.search(q, 1, 0);
if (
response.getBody() == null &&
!response.getBody().isEmpty() &&
response.getBody().get(0).getLabels().contains(DKG.GEONAMES)
) {
finalResponse.getLocations().add(response.getBody().get(0).getCurie());
}
}
} catch (final FeignException e) {
throw handleMiraFeignException(e, "concepts", "query", q, "mira.concept.bad-query");
}

return new ResponseEntity<>(finalResponse, HttpStatus.OK);
}

@PostMapping("/amr-to-mmt")
@Secured(Roles.USER)
@Operation(summary = "convert AMR to MIRA model template")
Expand Down Expand Up @@ -491,57 +467,34 @@ public ResponseEntity<Void> cancelTask(@PathVariable("task-id") final UUID taskI
return ResponseEntity.ok().build();
}

// This rebuilds the semantics ODE via MIRA
// 1. Send AMR to MIRA => MIRANet
// 2. Send MIRANet to MIRA to convert back to AMR Petrinet
// 3. Send AMR back
@PostMapping("/reconstruct-ode-semantics")
@Secured(Roles.USER)
public ResponseEntity<JsonNode> reconstructODESemantics(final Object amr) {
final ResponseEntity<JsonNode> response;
try {
response = proxy.reconstructODESemantics(amr);
} catch (final FeignException e) {
throw handleMiraFeignException(e, "ODE", "model", "", "mira.ode.bad-model");
}

return new ResponseEntity<>(response.getBody(), response.getStatusCode());
}

@PostMapping("/entity-similarity")
@Secured(Roles.USER)
public ResponseEntity<List<EntitySimilarityResult>> entitySimilarity(@RequestBody final Curies obj) {
final ResponseEntity<List<EntitySimilarityResult>> response;
try {
response = proxy.entitySimilarity(obj);
} catch (final FeignException e) {
throw handleMiraFeignException(e, "entity similarities", "curies", "", "mira.similarity.bad-curies");
throw handleMiraFeignException(e);
}

return new ResponseEntity<>(response.getBody(), response.getStatusCode());
}

private ResponseStatusException handleMiraFeignException(
final FeignException e,
final String returnType,
final String inputType,
final String input,
final String errorMessageCode
) {
private ResponseStatusException handleMiraFeignException(final FeignException e) {
final HttpStatus statusCode = HttpStatus.resolve(e.status());
if (statusCode != null && statusCode.is4xxClientError()) {
log.warn(String.format("MIRA did not return valid %s based on %s: %s", returnType, inputType, input));
return new ResponseStatusException(statusCode, messages.get(errorMessageCode));
log.warn(String.format("MIRA did not return valid %s based on %s: %s", "entity similarities", "curies", ""));
return new ResponseStatusException(statusCode, messages.get("mira.similarity.bad-curies"));
} else if (statusCode == HttpStatus.SERVICE_UNAVAILABLE) {
log.warn("MIRA is currently unavailable");
return new ResponseStatusException(statusCode, messages.get("mira.service-unavailable"));
} else if (statusCode != null && statusCode.is5xxServerError()) {
log.error(
String.format(
"An error occurred while MIRA was trying to determine %s based on %s: %s",
returnType,
inputType,
input
"entity similarities",
"curies",
""
)
);
return new ResponseStatusException(statusCode, messages.get("mira.internal-error"));
Expand All @@ -551,9 +504,9 @@ private ResponseStatusException handleMiraFeignException(
log.error(
String.format(
"An unknown error occurred while MIRA was trying to determine %s based on %s: %s",
returnType,
inputType,
input
"entity similarities",
"curies",
""
)
);
return new ResponseStatusException(httpStatus, messages.get("generic.unknown"));
Expand Down
Original file line number Diff line number Diff line change
@@ -1,32 +1,16 @@
package software.uncharted.terarium.hmiserver.proxies.mira;

import com.fasterxml.jackson.databind.JsonNode;
import feign.FeignException;
import java.util.List;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import software.uncharted.terarium.hmiserver.models.dataservice.model.Model;
import software.uncharted.terarium.hmiserver.models.mira.Curies;
import software.uncharted.terarium.hmiserver.models.mira.DKG;
import software.uncharted.terarium.hmiserver.models.mira.EntitySimilarityResult;

@FeignClient(name = "mira-api", url = "${mira-api.url}", path = "/api")
public interface MIRAProxy {
// This returns a MIRANet, not an AMR
@PostMapping("/reconstruct_ode_semantics")
ResponseEntity<JsonNode> reconstructODESemantics(@RequestBody final Object amr) throws FeignException;

// This converts MIRANet (Petrinet) to AMR
@PostMapping("/to_petrinet")
ResponseEntity<Model> toPetrinet(@RequestBody Object obj) throws FeignException;

@PostMapping("/entity_similarity")
ResponseEntity<List<EntitySimilarityResult>> entitySimilarity(@RequestBody Curies obj) throws FeignException;

@PostMapping("/search")
ResponseEntity<List<DKG>> search(@RequestBody String q, @RequestParam Integer limit, @RequestParam Integer offset)
throws FeignException;
}

0 comments on commit 04d1a49

Please sign in to comment.