Skip to content

Commit e896fa9

Browse files
committed
Support RDF-star when writing Turtle
1 parent 3d8f013 commit e896fa9

1 file changed

Lines changed: 12 additions & 3 deletions

File tree

src/utils.js

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Parser, QueryEngine, rdf, Store, Validator, sparqlValidations, slugify, formatsPretty } from "./assets/bundle.js"
1+
import { Parser, Writer, QueryEngine, rdf, Store, Validator, sparqlValidations, slugify, formatsPretty } from "./assets/bundle.js"
22

33
export async function fetchAsset(relPath) {
44
const response = await fetch("assets/" + relPath, {
@@ -128,11 +128,20 @@ export async function serializeStoreToTurtle(store) {
128128

129129
export async function serializeDatasetToTurtle(dataset) {
130130
// do both of the next steps once initially? TODO
131-
rdf.formats.import(formatsPretty)
131+
/*rdf.formats.import(formatsPretty)
132132
const prefixesArr = Object.entries(prefixes).map(
133133
([prefix, iri]) => [prefix, rdf.namedNode(iri)]
134134
)
135-
return await rdf.io.dataset.toText("text/turtle", dataset, { prefixes: prefixesArr })
135+
return await rdf.io.dataset.toText("text/turtle", dataset, { prefixes: prefixesArr })*/
136+
// this supports RDF-star, but adds all prefixes and check blank node handling TODO
137+
return await new Promise((resolve, reject) => {
138+
const writer = new Writer({ format: "turtle*", prefixes })
139+
writer.addQuads([...dataset])
140+
writer.end((err, result) => {
141+
if (err) return reject(err)
142+
resolve(result)
143+
})
144+
})
136145
}
137146

138147
export async function runValidationOnStore(store, debug = false, details = false) {

0 commit comments

Comments
 (0)