Skip to content
Snippets Groups Projects
Commit 62692a05 authored by User expired's avatar User expired
Browse files

model and rest endpoint (Post and Get) for Constraints, Graph and Result

parent 203c6a61
No related branches found
No related tags found
1 merge request!6Maybe useful to have enpoint placeholders in master
package com.kgshape.app.model.demo; package com.kgshape.app.model;
import jakarta.xml.bind.annotation.XmlRootElement;
import java.util.List;
@XmlRootElement
public class Constraints { public class Constraints {
private long id;
//we get the constraints by query of the Graph
private Graph graph;
// e.g. Person
private String typeName;
// e.g ["anna","carol"]
private List<String> nodes;
// e.g. [hasAge,hasName]
private List<String> properties;
@Override
public String toString() {
return "Constraints{" +
"id=" + id +
", graph=" + graph +
", typeName='" + typeName + '\'' +
", nodes=" + nodes +
", properties=" + properties +
'}';
}
public Constraints(){}
public Constraints(long id, Graph graph, String typeName, List<String> nodes, List<String> properties) {
this.id = id;
this.graph = graph;
this.typeName = typeName;
this.nodes = nodes;
this.properties = properties;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public Graph getGraph() {
return graph;
}
public void setGraph(Graph graph) {
this.graph = graph;
}
public String getTypeName() {
return typeName;
}
public void setTypeName(String typeName) {
this.typeName = typeName;
}
public List<String> getNodes() {
return nodes;
}
public void setNodes(List<String> nodes) {
this.nodes = nodes;
}
public List<String> getProperties() {
return properties;
}
public void setProperties(List<String> properties) {
this.properties = properties;
}
} }
package com.kgshape.app.model.demo; package com.kgshape.app.model;
import jakarta.xml.bind.annotation.XmlRootElement; import jakarta.xml.bind.annotation.XmlRootElement;
...@@ -8,14 +8,19 @@ public class Graph { ...@@ -8,14 +8,19 @@ public class Graph {
private long id; private long id;
// e.g. RiverBodyOfWater or Airport or Person // e.g. RiverBodyOfWater or Airport or Person
private String rdfType; private String rdfType;
private String graphFileLocation; private String graphFileLocation;
private String query;
public Graph(){} public Graph(){}
public Graph(long id, String rdfType, String graphFileLocation) { public Graph(long id, String rdfType, String graphFileLocation, String query) {
this.id = id; this.id = id;
this.rdfType = rdfType; this.rdfType = rdfType;
this.graphFileLocation = graphFileLocation; this.graphFileLocation = graphFileLocation;
this.query = query;
} }
@Override @Override
...@@ -50,4 +55,12 @@ public class Graph { ...@@ -50,4 +55,12 @@ public class Graph {
public void setGraphFileLocation(String graphFileLocation) { public void setGraphFileLocation(String graphFileLocation) {
this.graphFileLocation = graphFileLocation; this.graphFileLocation = graphFileLocation;
} }
public String getQuery() {
return query;
}
public void setQuery(String query) {
this.query = query;
}
} }
package com.kgshape.app.model;public class Result { package com.kgshape.app.model;
import jakarta.xml.bind.annotation.XmlRootElement;
import java.util.List;
@XmlRootElement
public class Result {
private long id;
// output of KG verificator
private boolean verified;
// e.g. age
private List<String> missingProperties;
// unmodified contraints
private Constraints constraints;
// contstaints that the user has modified
private Constraints modifiedConstraints;
public Result(){}
public Result(long id, boolean verified, List<String> missingProperties, Constraints constraints, Constraints modifiedConstraints) {
this.id = id;
this.verified = verified;
this.missingProperties = missingProperties;
this.constraints = constraints;
this.modifiedConstraints = modifiedConstraints;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public boolean isVerified() {
return verified;
}
public void setVerified(boolean verified) {
this.verified = verified;
}
public List<String> getMissingProperties() {
return missingProperties;
}
public void setMissingProperties(List<String> missingProperties) {
this.missingProperties = missingProperties;
}
public Constraints getConstraints() {
return constraints;
}
public void setConstraints(Constraints constraints) {
this.constraints = constraints;
}
public Constraints getModifiedConstraints() {
return modifiedConstraints;
}
public void setModifiedConstraints(Constraints modifiedConstraints) {
this.modifiedConstraints = modifiedConstraints;
}
} }
package com.kgshape.app.model; package com.kgshape.app.model.demo;
import jakarta.xml.bind.annotation.XmlRootElement; import jakarta.xml.bind.annotation.XmlRootElement;
......
package com.kgshape.app.rest;public class ConstraintsEndpoint { package com.kgshape.app.rest;
import com.kgshape.app.model.Constraints;
import com.kgshape.app.model.Graph;
import jakarta.enterprise.context.RequestScoped;
import jakarta.ws.rs.*;
import jakarta.ws.rs.core.MediaType;
import java.util.ArrayList;
import java.util.List;
@RequestScoped
@Path("/constraints")
public class ConstraintsEndpoint {
@GET
@Produces(MediaType.APPLICATION_JSON)
public Constraints getConstraints() {
List<String> nodes = new ArrayList<>();
List<String> properties = new ArrayList<>();
nodes.add("carol");
nodes.add("anna");
properties.add("hasAge");
return new Constraints(1,new Graph(), "Person",nodes,properties);
}
@POST
@Consumes(MediaType.APPLICATION_JSON)
public Constraints createConstraintsbyGraph(Graph graph){
Constraints constraints = new Constraints();
constraints.setGraph(graph);
// todo use kgShaper on the graph to get constraints
//constraints.setTypeName("...");
//constraints.setNodes(...);
//constraints.setProperties(...);
return constraints;
}
} }
package com.kgshape.app.rest;public class GraphEndpoint { package com.kgshape.app.rest;
import jakarta.enterprise.context.RequestScoped;
import jakarta.ws.rs.*;
import com.kgshape.app.model.Graph;
import jakarta.ws.rs.core.MediaType;
@RequestScoped
@Path("/graph")
public class GraphEndpoint {
@GET
@Produces(MediaType.APPLICATION_JSON)
public Graph getGraph() {
return new Graph(1, "myRiverBody","hihi","myquery");
}
// post request that takes in a rdfType (e.g. RiverBodyOfWater) and fetches that data type
// from sparql for local use.
// Returns result of sparql query (i.e. graph)
@POST
@Consumes(MediaType.APPLICATION_JSON)
public Graph createGraph(String rdfType){
Graph graphToCreate = new Graph();
graphToCreate.setRdfType(rdfType);
graphToCreate.setQuery("queryHardCoded");
graphToCreate.setGraphFileLocation("somethingHardCoded");
// todo run query on rdf Type, this will do some stuff
// return Response.accepted().build();
return graphToCreate;
}
} }
package com.kgshape.app.rest;public class ResultEndpoint { package com.kgshape.app.rest;
import com.kgshape.app.model.Constraints;
import com.kgshape.app.model.Graph;
import com.kgshape.app.model.Result;
import jakarta.enterprise.context.RequestScoped;
import jakarta.ws.rs.*;
import jakarta.ws.rs.core.MediaType;
@RequestScoped
@Path("/result")
public class ResultEndpoint {
@GET
@Produces(MediaType.APPLICATION_JSON)
public Result getResult() {
return new Result();
}
@POST
@Consumes(MediaType.APPLICATION_JSON)
public Result createResult(Constraints constraints){
Result result = new Result();
result.setConstraints(constraints);
// todo use kgVerificator on constraints to get result
//result.setVerified(false);
//result.setMissingProperties(...);
return result;
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment