graph-explorer
Version:
Graph Explorer can be used to explore and RDF graphs in SPARQL endpoints or on the web.
38 lines (34 loc) • 1.01 kB
text/typescript
import * as N3 from "n3";
import * as RDF from "@rdfjs/types";
import { RdfNode, Triple } from "./sparqlModels";
export function parseTurtleText(turtleText: string): Promise<Triple[]> {
return new Promise<Triple[]>((resolve, reject) => {
const triples: Triple[] = [];
new N3.Parser().parse(turtleText, (error, triple, _hash) => {
if (error) {
reject(error);
} else if (triple) {
triples.push({
subject: n3toRdfNode(triple.subject),
predicate: n3toRdfNode(triple.predicate),
object: n3toRdfNode(triple.object),
});
} else {
resolve(triples);
}
});
});
}
export function n3toRdfNode(entity: RDF.Term): RdfNode {
if (N3.Util.isLiteral(entity)) {
const literal = entity as RDF.Literal;
return {
type: "literal",
value: literal.value,
datatype: literal.datatype.value,
"xml:lang": literal.language,
};
} else {
return { type: "uri", value: entity.value };
}
}