Skip to content
This repository was archived by the owner on Mar 29, 2023. It is now read-only.

Commit 12a1e01

Browse files
feat: use https://www.npmjs.com/package/rdf-string for serialization/deserialization (#9)
1 parent 65c54ef commit 12a1e01

File tree

3 files changed

+28
-11
lines changed

3 files changed

+28
-11
lines changed

package.json

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,22 +26,23 @@
2626
"publish": "yarn run build && npm publish --access public"
2727
},
2828
"dependencies": {
29+
"@dexagod/rdf-retrieval": "^1.0.2",
30+
"@rdfjs/data-model": "^1.3.2",
31+
"@types/node": "^15.14.1",
32+
"@types/yargs": "^17.0.0",
2933
"express": "^4.17.1",
3034
"mqtt": "^4.2.8",
3135
"node-fetch": "^2.6.1",
3236
"rdf-parse": "^1.8.1",
37+
"rdf-serialize": "^1.1.0",
38+
"rdf-string": "^1.5.0",
3339
"rxjs": "^7.2.0",
3440
"sequelize": "^6.6.4",
3541
"sqlite3": "^5.0.2",
42+
"streamify-array": "^1.0.1",
3643
"streamify-string": "^1.0.1",
3744
"typescript": "^4.0.5",
38-
"rdf-serialize": "^1.1.0",
39-
"streamify-array": "^1.0.1",
40-
"yargs": "^17.0.1",
41-
"@dexagod/rdf-retrieval": "^1.0.2",
42-
"@rdfjs/data-model": "^1.3.2",
43-
"@types/node": "^15.14.1",
44-
"@types/yargs": "^17.0.0"
45+
"yargs": "^17.0.1"
4546
},
4647
"devDependencies": {
4748
"kill-port": "^1.6.1",

src/lib/Page.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { IPage } from '../util/Util';
22
import type * as RDF from 'rdf-js';
3+
import * as RdfString from "rdf-string";
34
import rdfSerializer from "rdf-serialize";
45
import * as f from "@dexagod/rdf-retrieval"
56

@@ -30,4 +31,16 @@ export class Page implements IPage {
3031

3132
return rdfSerializer.serialize(tripleStream, {contentType: contentType});
3233
}
34+
35+
public serialize(): object {
36+
let serialized: object = {}
37+
let triples = []
38+
let metadata = []
39+
40+
this.triples.forEach(triple => {triples.push(RdfString.quadToStringQuad(triple))})
41+
serialized['triples'] = triples;
42+
this.metadata.forEach(metadata_quad => {metadata.push(RdfString.quadToStringQuad(metadata_quad))})
43+
serialized['metadata'] = metadata;
44+
return serialized;
45+
}
3346
}

src/lib/Source.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { Page } from "./Page";
33
import { Readable } from 'stream';
44

55
import type * as RDF from 'rdf-js';
6+
import * as RdfString from "rdf-string";
67
import { literal, namedNode, quad } from '@rdfjs/data-model';
78

89
export abstract class Source implements ISource {
@@ -49,7 +50,7 @@ export abstract class Source implements ISource {
4950
private async importPagesWithoutIndex(pages: Page[]): Promise<void> {
5051
let amount = await this.databaseModel.count();
5152
pages.forEach(async page => {
52-
let pageJSON = JSON.stringify(page)
53+
let pageJSON = JSON.stringify(page.serialize())
5354

5455
let id = (amount + 1).toString();
5556
amount++;
@@ -60,7 +61,7 @@ export abstract class Source implements ISource {
6061

6162
private async importPagesWithIndex(pages: Map<string, Page>): Promise<void> {
6263
for (const [id, page] of pages.entries()) {
63-
let pageJSON = JSON.stringify(page)
64+
let pageJSON = JSON.stringify(page.serialize())
6465

6566
await this.databaseModel.create({ id: id, page: pageJSON });
6667
};
@@ -71,10 +72,12 @@ export abstract class Source implements ISource {
7172
let metadata: RDF.Quad[] = [];
7273

7374
json['triples'].forEach(quad_ => {
74-
triples.push(quad(namedNode(quad_['subject']['value']), namedNode(quad_['predicate']['value']), namedNode(quad_['object']['value'])))
75+
triples.push(RdfString.stringQuadToQuad(quad_))
76+
//triples.push(quad(namedNode(quad_['subject']['value']), namedNode(quad_['predicate']['value']), namedNode(quad_['object']['value'])))
7577
});
7678
json['metadata'].forEach(quad_ => {
77-
metadata.push(quad(namedNode(quad_['subject']['value']), namedNode(quad_['predicate']['value']), namedNode(quad_['object']['value'])))
79+
metadata.push(RdfString.stringQuadToQuad(quad_))
80+
//metadata.push(quad(namedNode(quad_['subject']['value']), namedNode(quad_['predicate']['value']), namedNode(quad_['object']['value'])))
7881
});
7982

8083
return new Page(triples, metadata);

0 commit comments

Comments
 (0)