Skip to content

Commit 682e70b

Browse files
committed
Wire up new SparqlToSpinConverterNode
1 parent 510b7ed commit 682e70b

File tree

4 files changed

+29
-5
lines changed

4 files changed

+29
-5
lines changed
Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
package org.foerderfunke.sem_ops_server;
2+
import org.springframework.web.bind.annotation.CrossOrigin;
23
import org.springframework.web.bind.annotation.GetMapping;
34
import org.springframework.web.bind.annotation.RequestParam;
45
import org.springframework.web.bind.annotation.RestController;
@@ -8,8 +9,10 @@ public class Controller {
89

910
Converter converter = new Converter();
1011

11-
@GetMapping("/sparqlToSpin")
12-
public String sparqlToSpin(@RequestParam(name = "sparql") String sparql) {
12+
@CrossOrigin(origins = "*")
13+
@GetMapping(value = "/sparqlToSpin", produces = "text/turtle")
14+
public String sparqlToSpin(@RequestParam String sparql) {
15+
System.out.println("Received sparqlToSpin request");
1316
return converter.sparqlToSpin(sparql);
1417
}
1518
}

src/contextmenu.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
// Adapted from ChatGPT
2-
31
const canvasCtxMenuItems = [
42
{
53
label: "Input",
@@ -53,6 +51,7 @@ const canvasCtxMenuItems = [
5351
submenu: [
5452
{ label: "Turtle to JSON-LD", action: "TurtleToJsonLdConverterNode" },
5553
{ label: "JSON-LD to Turtle", action: "JsonLdToTurtleConverterNode" },
54+
{ label: "SPARQL to SPIN", action: "SparqlToSpinConverterNode" },
5655
]
5756
},
5857
{
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import { CodeNode } from "../CodeNode.js"
2+
import { PORT, TYPE } from "../../nodeFactory.js"
3+
4+
export class SparqlToSpinConverterNode extends CodeNode {
5+
constructor(initialValues, graph) {
6+
super(initialValues, graph, [ PORT.SPARQL ], [ PORT.TURTLE ], TYPE.CONVERTER)
7+
}
8+
9+
async processIncomingData() {
10+
let sparql = this.incomingData[0].data
11+
async function convert(sparql) {
12+
const url = new URL("http://localhost:8080/sparqlToSpin")
13+
url.searchParams.set("sparql", sparql)
14+
const res = await fetch(url, { headers: { "Accept": "text/turtle" } })
15+
if (!res.ok) throw new Error(`HTTP ${res.status}`)
16+
return await res.text()
17+
}
18+
return await convert(sparql)
19+
}
20+
}

src/graph/nodeFactory.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import { JavaScriptExecNode } from "./node/processor/JavaScriptExecNode.js"
2525
import { TurtleToJsonLdConverterNode } from "./node/converter/TurtleToJsonLdConverterNode.js"
2626
import { JsonLdToTurtleConverterNode } from "./node/converter/JsonLdToTurtleConverterNode.js"
2727
import { JsonLdInputNode } from "./node/input/JsonLdInputNode.js"
28+
import { SparqlToSpinConverterNode } from "./node/converter/SparqlToSpinConverterNode.js"
2829

2930
export const TYPE = {
3031
INPUT: 0,
@@ -79,7 +80,8 @@ const nodeClasses = {
7980
"JavaScriptInputNode": JavaScriptInputNode,
8081
"TurtleToJsonLdConverterNode": TurtleToJsonLdConverterNode,
8182
"JsonLdToTurtleConverterNode": JsonLdToTurtleConverterNode,
82-
"JsonLdInputNode": JsonLdInputNode
83+
"JsonLdInputNode": JsonLdInputNode,
84+
"SparqlToSpinConverterNode": SparqlToSpinConverterNode
8385
}
8486

8587
export const exampleData = {

0 commit comments

Comments
 (0)