rdflib 2.2.22-2f49e8ef → 2.2.22-53d65d90

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/dist/rdflib.min.js +1 -1
  2. package/dist/rdflib.min.js.LICENSE.txt +4 -0
  3. package/dist/rdflib.min.js.map +1 -1
  4. package/esm/blank-node.js +90 -61
  5. package/esm/class-order.js +1 -1
  6. package/esm/collection.js +106 -70
  7. package/esm/default-graph.js +33 -13
  8. package/esm/empty.js +26 -8
  9. package/esm/factories/canonical-data-factory.js +30 -33
  10. package/esm/factories/extended-term-factory.js +14 -18
  11. package/esm/factories/factory-types.js +1 -1
  12. package/esm/factories/rdflib-data-factory.js +11 -9
  13. package/esm/fetcher.js +1644 -1355
  14. package/esm/formula.js +740 -632
  15. package/esm/index.js +52 -33
  16. package/esm/jsonldparser.js +35 -19
  17. package/esm/jsonparser.js +1 -1
  18. package/esm/lists.js +86 -38
  19. package/esm/literal.js +157 -120
  20. package/esm/log.js +7 -7
  21. package/esm/n3parser.js +1085 -1008
  22. package/esm/named-node.js +99 -69
  23. package/esm/namespace.js +4 -2
  24. package/esm/node-internal.js +98 -74
  25. package/esm/node.js +1 -1
  26. package/esm/parse.js +3 -3
  27. package/esm/patch-parser.js +1 -1
  28. package/esm/query.js +16 -15
  29. package/esm/rdfaparser.js +846 -781
  30. package/esm/rdfxmlparser.js +365 -348
  31. package/esm/serialize.js +4 -11
  32. package/esm/serializer.js +886 -821
  33. package/esm/statement.js +72 -52
  34. package/esm/store.js +924 -822
  35. package/esm/types.js +21 -21
  36. package/esm/update-manager.js +983 -882
  37. package/esm/updates-via.js +134 -104
  38. package/esm/uri.js +3 -3
  39. package/esm/utils/default-graph-uri.js +2 -2
  40. package/esm/utils/terms.js +5 -4
  41. package/esm/utils-js.js +5 -5
  42. package/esm/utils.js +6 -6
  43. package/esm/variable.js +58 -32
  44. package/esm/xsd.js +2 -2
  45. package/lib/blank-node.js +88 -60
  46. package/lib/class-order.js +1 -1
  47. package/lib/collection.js +104 -69
  48. package/lib/default-graph.js +32 -13
  49. package/lib/empty.js +25 -8
  50. package/lib/factories/canonical-data-factory.js +32 -35
  51. package/lib/factories/extended-term-factory.js +14 -18
  52. package/lib/factories/factory-types.js +1 -1
  53. package/lib/factories/rdflib-data-factory.js +11 -9
  54. package/lib/fetcher.js +1646 -1385
  55. package/lib/formula.d.ts +1 -1
  56. package/lib/formula.js +739 -632
  57. package/lib/index.d.ts +1 -2
  58. package/lib/index.js +88 -70
  59. package/lib/jsonldparser.js +35 -19
  60. package/lib/jsonparser.js +1 -1
  61. package/lib/lists.js +86 -54
  62. package/lib/literal.js +156 -120
  63. package/lib/log.js +7 -7
  64. package/lib/n3parser.js +1089 -1010
  65. package/lib/named-node.js +98 -69
  66. package/lib/namespace.js +4 -2
  67. package/lib/node-internal.js +96 -73
  68. package/lib/node.js +1 -1
  69. package/lib/parse.js +6 -5
  70. package/lib/patch-parser.js +1 -1
  71. package/lib/query.js +18 -19
  72. package/lib/rdfaparser.js +848 -783
  73. package/lib/rdfxmlparser.js +366 -350
  74. package/lib/serialize.d.ts +1 -1
  75. package/lib/serialize.js +4 -13
  76. package/lib/serializer.d.ts +1 -0
  77. package/lib/serializer.js +890 -825
  78. package/lib/statement.js +74 -54
  79. package/lib/store.d.ts +1 -1
  80. package/lib/store.js +926 -844
  81. package/lib/types.js +21 -21
  82. package/lib/update-manager.d.ts +1 -1
  83. package/lib/update-manager.js +959 -865
  84. package/lib/updates-via.js +134 -105
  85. package/lib/uri.js +3 -3
  86. package/lib/utils/default-graph-uri.js +2 -2
  87. package/lib/utils/terms.js +6 -4
  88. package/lib/utils-js.js +9 -8
  89. package/lib/utils.js +6 -6
  90. package/lib/variable.js +60 -34
  91. package/lib/xsd.js +2 -2
  92. package/package.json +9 -8
  93. package/src/index.ts +0 -2
  94. package/src/jsonldparser.js +13 -4
  95. package/src/serialize.ts +4 -11
  96. package/src/serializer.js +24 -0
  97. package/src/update-manager.ts +8 -2
  98. package/esm/convert.js +0 -60
  99. package/lib/convert.d.ts +0 -2
  100. package/lib/convert.js +0 -71
  101. package/src/convert.js +0 -70
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "rdflib",
3
3
  "description": "an RDF library for node.js. Suitable for client and server side.",
4
- "version": "2.2.22-2f49e8ef",
4
+ "version": "2.2.22-53d65d90",
5
5
  "private": false,
6
6
  "browserslist": [
7
7
  "> 0.5%"
@@ -45,8 +45,8 @@
45
45
  "bugs": "http://github.com/linkeddata/rdflib.js/issues",
46
46
  "dependencies": {
47
47
  "@babel/runtime": "^7.20.1",
48
+ "@frogcat/ttl2jsonld": "^0.0.9",
48
49
  "@xmldom/xmldom": "^0.8.6",
49
- "async": "^3.2.4",
50
50
  "cross-fetch": "^3.1.5",
51
51
  "jsonld": "^8.1.0",
52
52
  "n3": "^1.16.3",
@@ -81,25 +81,26 @@
81
81
  "sinon-chai": "^3.7.0",
82
82
  "source-map-loader": "^4.0.1",
83
83
  "ts-node": "^10.9.1",
84
- "typedoc": "^0.23.21",
84
+ "typedoc": "^0.23.24",
85
85
  "typescript": "^4.9.3",
86
86
  "webpack": "^5.75.0",
87
87
  "webpack-cli": "^5.0.0",
88
- "webpack-dev-server": "4.11"
88
+ "webpack-dev-server": "^4.11.1"
89
89
  },
90
90
  "scripts": {
91
91
  "build": "babel src --extensions \".ts,.js\" -d lib",
92
92
  "build:esm": "babel src --extensions \".ts,.js\" --env-name esm -d esm",
93
93
  "build:browser": "webpack --progress",
94
94
  "build:types": "tsc --emitDeclarationOnly -d --moduleResolution node --declarationDir lib",
95
+ "build:all": "npm run build && npm run build:types && npm run build:browser && npm run build:esm",
95
96
  "doc": "typedoc --out ./doc ./src/index.ts --excludePrivate --excludeInternal --tsconfig ./tsconfig.json",
96
- "ignore:prepublishOnly": "npm ci && npm run build && npm run build:types && npm run build:browser && npm run build:esm",
97
+ "ignore:prepublishOnly": "npm ci && npm run build:all && npm run doc && npm run test",
97
98
  "postversion": "git push --follow-tags",
98
99
  "start": "webpack serve --port 4800",
99
100
  "test": "npm run test:unit && npm run test:serialize && npm run test:types",
100
101
  "test:clean": "rimraf tests/serialize/,*",
101
102
  "test:serialize": "npm run build && npm run test:serialize:all && npm run test:clean",
102
- "test:serialize:all": "npm run test:serialize:1 && npm run test:serialize:2 && npm run test:serialize:3 && npm run test:serialize:4 && npm run test:serialize:5 && npm run test:serialize:6 && npm run test:serialize:7 && npm run test:serialize:10 && npm run test:serialize:11 && npm run test:serialize:12 && npm run test:serialize:13 && npm run test:serialize:14 && npm run test:serialize:15",
103
+ "test:serialize:all": "npm run test:serialize:1 && npm run test:serialize:2 && npm run test:serialize:3 && npm run test:serialize:4 && npm run test:serialize:5 && npm run test:serialize:6 && npm run test:serialize:7 && npm run test:serialize:8 && npm run test:serialize:10 && npm run test:serialize:11 && npm run test:serialize:12 && npm run test:serialize:13 && npm run test:serialize:14 && npm run test:serialize:15",
103
104
  "test:serialize:1": "cd ./tests/serialize && node ./data.js -in=t1.ttl -format=application/rdf+xml -out=,t1.xml && fs-grep http://www.w3.org/2001/XMLSchema#integer ,t1.xml",
104
105
  "test:serialize:2": "cd ./tests/serialize && node ./data.js -in=t2.ttl -format=application/rdf+xml -out=,t2.xml && node diff ,t2.xml t2-ref.xml",
105
106
  "test:serialize:3": "cd ./tests/serialize && node ./data.js -in=t3.ttl -format=application/rdf+xml -out=,t3.xml && node diff ,t3.xml t3-ref.xml",
@@ -107,14 +108,14 @@
107
108
  "test:serialize:5": "cd ./tests/serialize && node ./data.js -in=t5.n3 -format=text/turtle -out=,t5.ttl && node diff ,t5.ttl t5-ref.ttl",
108
109
  "test:serialize:6": "cd ./tests/serialize && node ./data.js -in=t5.n3 -format=text/n3 -out=,t6.n3 && node diff ,t6.n3 t6-ref.n3",
109
110
  "test:serialize:7": "cd ./tests/serialize && node ./data.js -in=t7.n3 -format=application/n-triples -out=,t7.nt && node diff ,t7.nt t7-ref.nt",
110
- "test:serialize:8": "cd ./tests/serialize && node ./data.js -in=t5.n3 -format=application/n-quads -dump=,t8.nq && node diff ,t8.nq t8-ref.nq",
111
- "test:serialize:9": "cd ./tests/serialize && node ./data.js -in=t7.n3 -format=application/ld+json -out=,t9.json && node diff ,t9.json t9-ref.json",
111
+ "test:serialize:8": "cd ./tests/serialize && node ./data.js -in=t5.n3 -format=application/n-quads -out=,t8.nq && node diff ,t8.nq t8-ref.nq",
112
112
  "test:serialize:10": "cd ./tests/serialize && node ./data.js -in=details.ttl -format=text/turtle -out=,t10.ttl && node diff ,t10.ttl t10-ref.ttl",
113
113
  "test:serialize:11": "cd ./tests/serialize && node ./data.js -in=structures.n3 -format=application/rdf+xml -out=,structures.xml && node diff ,structures.xml t11-ref.xml",
114
114
  "test:serialize:12": "cd ./tests/serialize && node ./data.js -in=structures.n3 -format=text/turtle -out=,structures.ttl && node diff ,structures.ttl t12-ref.ttl",
115
115
  "test:serialize:13": "cd ./tests/serialize && node ./data.js -in=structures.n3 -format=application/n-triples -out=,structures.nt && node ./data.js -format=application/n-triples -in=,structures.nt -format=text/turtle -out=,structures.nt.ttl && node diff ,structures.nt.ttl t13-ref.ttl",
116
116
  "test:serialize:14": "cd ./tests/serialize && node ./data.js -in=t14.html -format=text/turtle -out=,t14.ttl && node diff ,t14.ttl t14-ref.ttl",
117
117
  "test:serialize:15": "cd ./tests/serialize && node ./data.js -in=t15.html -format=text/turtle -out=,t15.ttl && node diff ,t15.ttl t15-ref.ttl",
118
+ "test:serialize:16": "cd ./tests/serialize && node ./data.js -in=t1.ttl -format=application/ld+json -out=,t1.jsonld && node diff ,t1.jsonld t16-ref.jsonld",
118
119
  "test:types": "tsc --noEmit --target es2019 --moduleResolution node tests/types/*.ts",
119
120
  "test:unit": "mocha --growl --require ./tests/babel-register.js tests/unit/**-test.*",
120
121
  "test:unit:egp": "mocha --require ./tests/babel-register.js tests/unit/fetcher-egp-test.js",
package/src/index.ts CHANGED
@@ -2,7 +2,6 @@ import { IRDFlibDataFactory } from './types'
2
2
 
3
3
  import BlankNode from './blank-node'
4
4
  import Collection from './collection'
5
- import * as convert from './convert'
6
5
  import Empty from './empty'
7
6
  import Fetcher from './fetcher'
8
7
  import Formula from './formula'
@@ -66,7 +65,6 @@ export type { AutoInitOptions, ExtendedResponse, FetchError } from './fetcher'
66
65
  export {
67
66
  BlankNode,
68
67
  Collection,
69
- convert,
70
68
  DataFactory,
71
69
  Empty,
72
70
  Fetcher,
@@ -22,7 +22,7 @@ export function jsonldObjectToTerm (kb, obj) {
22
22
  }
23
23
 
24
24
  if (Object.prototype.hasOwnProperty.call(obj, '@id')) {
25
- return kb.rdfFactory.namedNode(obj['@id'])
25
+ return nodeType(kb, obj)
26
26
  }
27
27
 
28
28
  if (Object.prototype.hasOwnProperty.call(obj, '@language')) {
@@ -44,7 +44,7 @@ export function jsonldObjectToTerm (kb, obj) {
44
44
  * Adds the statements in a json-ld list object to {kb}.
45
45
  */
46
46
  function listToStatements (kb, obj) {
47
- const listId = obj['@id'] ? kb.rdfFactory.namedNode(obj['@id']) : kb.rdfFactory.blankNode()
47
+ const listId = obj['@id'] ? nodeType(kb, obj) : kb.rdfFactory.blankNode()
48
48
 
49
49
  const items = obj['@list'].map((listItem => jsonldObjectToTerm(kb, listItem)))
50
50
  const statements = arrayToStatements(kb.rdfFactory, listId, items)
@@ -82,10 +82,19 @@ export default function jsonldParser (str, kb, base, callback) {
82
82
  .catch(callback)
83
83
  }
84
84
 
85
+ function nodeType (kb, obj) {
86
+ if (obj['@id'].startsWith('_:')) {
87
+ // This object is a Blank Node. Pass the id without the `_:` prefix
88
+ return kb.rdfFactory.blankNode(obj['@id'].substring(2));
89
+ } else {
90
+ // This object is a Named Node
91
+ return kb.rdfFactory.namedNode(obj['@id']);
92
+ }
93
+ }
85
94
 
86
95
  function processResource(kb, base, flatResource) {
87
96
  const id = flatResource['@id']
88
- ? kb.rdfFactory.namedNode(flatResource['@id'])
97
+ ? nodeType(kb, flatResource)
89
98
  : kb.rdfFactory.blankNode()
90
99
 
91
100
  for (const property of Object.keys(flatResource)) {
@@ -136,4 +145,4 @@ function createStatement(kb, id, property, value, base) {
136
145
  object = jsonldObjectToTerm(kb, value)
137
146
  }
138
147
  return kb.rdfFactory.quad(id, predicate, object, kb.rdfFactory.namedNode(base))
139
- }
148
+ }
package/src/serialize.ts CHANGED
@@ -1,4 +1,3 @@
1
- import * as convert from './convert'
2
1
  import Formula from './formula'
3
2
  import Serializer from './serializer'
4
3
  import {
@@ -42,7 +41,7 @@ export default function serialize (
42
41
  */
43
42
  namespaces?: Record<string, string>
44
43
  }
45
- ): string | undefined {
44
+ ): string | undefined | Promise<string> {
46
45
  base = base || target?.value
47
46
  const opts = options || {}
48
47
  contentType = contentType || TurtleContentType // text/n3 if complex?
@@ -51,7 +50,6 @@ export default function serialize (
51
50
  var sz = Serializer(kb)
52
51
  if ((opts as any).flags) sz.setFlags((opts as any).flags)
53
52
  var newSts = kb!.statementsMatching(undefined, undefined, undefined, target as NamedNode)
54
- var n3String: string
55
53
 
56
54
  // If an IndexedFormula, use the namespaces from the given graph as suggestions
57
55
  if ('namespaces' in kb) {
@@ -82,19 +80,14 @@ export default function serialize (
82
80
  documentString = sz.statementsToNTriples(newSts)
83
81
  return executeCallback(null, documentString)
84
82
  case JSONLDContentType:
85
- sz.setFlags('deinprstux') // Use adapters to connect to incmpatible parser
86
- n3String = sz.statementsToNTriples(newSts)
87
- // n3String = sz.statementsToN3(newSts)
88
- convert.convertToJson(n3String, callback)
89
- break
83
+ sz.setFlags('si') // use turtle parameters
84
+ documentString = sz.statementsToJsonld(newSts) // convert via turtle
85
+ return executeCallback(null, documentString)
90
86
  case NQuadsContentType:
91
87
  case NQuadsAltContentType: // @@@ just outpout the quads? Does not work for collections
92
88
  sz.setFlags('deinprstux q') // Suppress nice parts of N3 to make ntriples
93
89
  documentString = sz.statementsToNTriples(newSts) // q in flag means actually quads
94
90
  return executeCallback(null, documentString)
95
- // n3String = sz.statementsToN3(newSts)
96
- // documentString = convert.convertToNQuads(n3String, callback)
97
- // break
98
91
  default:
99
92
  throw new Error('Serialize: Content-type ' + contentType + ' not supported for data write.')
100
93
  }
package/src/serializer.js CHANGED
@@ -12,6 +12,8 @@ import * as Util from './utils-js'
12
12
  import CanonicalDataFactory from './factories/canonical-data-factory'
13
13
  import { createXSD } from './xsd'
14
14
  import solidNs from 'solid-namespace'
15
+ // import * as jsonld from 'jsonld'
16
+ import * as ttl2jsonld from '@frogcat/ttl2jsonld'
15
17
 
16
18
 
17
19
  export default function createSerializer(store) {
@@ -1011,6 +1013,28 @@ export class Serializer {
1011
1013
  var tree2 = [str, tree, '</rdf:RDF>'] // @@ namespace declrations
1012
1014
  return XMLtreeToString(tree2, -1)
1013
1015
  } // End @@ body
1016
+
1017
+ statementsToJsonld (sts) {
1018
+ // ttl2jsonld creates context keys for all ttl prefix
1019
+ // context keys must be full IRI
1020
+ function findId (itemObj) {
1021
+ if (itemObj['@id']) {
1022
+ const item = itemObj['@id'].split(':')
1023
+ if (keys[item[0]]) itemObj['@id'] = jsonldObj['@context'][item[0]] + item[1]
1024
+ }
1025
+ const itemValues = Object.values(itemObj)
1026
+ for (const i in itemValues) {
1027
+ if (typeof itemValues[i] !== 'string') { // @list contains array
1028
+ findId(itemValues[i])
1029
+ }
1030
+ }
1031
+ }
1032
+ const turtleDoc = this.statementsToN3(sts)
1033
+ const jsonldObj = ttl2jsonld.parse(turtleDoc)
1034
+
1035
+ return JSON.stringify(jsonldObj, null, 2)
1036
+ }
1037
+
1014
1038
  }
1015
1039
 
1016
1040
  // String escaping utilities
@@ -213,7 +213,7 @@ export default class UpdateManager {
213
213
  * Returns a list of all bnodes occurring in a list of statements
214
214
  * @private
215
215
  */
216
- statementArrayBnodes (sts: Quad[]) {
216
+ statementArrayBnodes (sts: ReadonlyArray<Quad>) {
217
217
  var bnodes: BlankNode[] = []
218
218
  for (let i = 0; i < sts.length; i++) {
219
219
  bnodes = bnodes.concat(this.statementBnodes(sts[i]))
@@ -752,7 +752,13 @@ export default class UpdateManager {
752
752
  // console.log(message)
753
753
  throw new Error(message)
754
754
  }
755
- var control = this.patchControlFor(doc as NamedNode)
755
+ if (doc.termType !== 'NamedNode') {
756
+ let message = 'Error patching: document not a NamedNode:' + ds[0] + ', ' + is[0]
757
+ // console.log(message)
758
+ throw new Error(message)
759
+ }
760
+ var control = this.patchControlFor(doc)
761
+
756
762
  var startTime = Date.now()
757
763
 
758
764
  var props = ['subject', 'predicate', 'object', 'why']
package/esm/convert.js DELETED
@@ -1,60 +0,0 @@
1
- import asyncLib from 'async'; // @@ Goal: remove this dependency
2
- import jsonld from 'jsonld';
3
- import { Parser, Writer } from 'n3'; // @@ Goal: remove this dependency
4
-
5
- export function convertToJson(n3String, jsonCallback) {
6
- var jsonString;
7
- var n3Parser = new Parser();
8
- var n3Writer = new Writer({
9
- format: 'N-Quads'
10
- });
11
- asyncLib.waterfall([function (callback) {
12
- n3Parser.parse(n3String, function (error, quad, prefixes) {
13
- if (error) {
14
- callback(error);
15
- } else if (quad !== null) {
16
- n3Writer.addQuad(quad);
17
- } else {
18
- n3Writer.end(callback);
19
- }
20
- });
21
- }, function (result, callback) {
22
- try {
23
- jsonld.fromRDF(result, {
24
- format: 'application/nquads'
25
- }).then(result => {
26
- callback(null, result);
27
- });
28
- } catch (err) {
29
- callback(err);
30
- }
31
- }, function (json, callback) {
32
- jsonString = JSON.stringify(json);
33
- jsonCallback(null, jsonString);
34
- }], function (err, result) {
35
- jsonCallback(err, jsonString);
36
- });
37
- }
38
- export function convertToNQuads(n3String, nquadCallback) {
39
- var nquadString;
40
- var n3Parser = new Parser();
41
- var n3Writer = new Writer({
42
- format: 'N-Quads'
43
- });
44
- asyncLib.waterfall([function (callback) {
45
- n3Parser.parse(n3String, function (error, triple, prefixes) {
46
- if (error) {
47
- callback(error);
48
- } else if (quad !== null) {
49
- n3Writer.addQuad(quad);
50
- } else {
51
- n3Writer.end(callback);
52
- }
53
- });
54
- }, function (result, callback) {
55
- nquadString = result;
56
- nquadCallback(null, nquadString);
57
- }], function (err, result) {
58
- nquadCallback(err, nquadString);
59
- });
60
- }
package/lib/convert.d.ts DELETED
@@ -1,2 +0,0 @@
1
- export function convertToJson(n3String: any, jsonCallback: any): void;
2
- export function convertToNQuads(n3String: any, nquadCallback: any): void;
package/lib/convert.js DELETED
@@ -1,71 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.convertToJson = convertToJson;
8
- exports.convertToNQuads = convertToNQuads;
9
- var _async = _interopRequireDefault(require("async"));
10
- var _jsonld = _interopRequireDefault(require("jsonld"));
11
- var _n = require("n3");
12
- // @@ Goal: remove this dependency
13
-
14
- // @@ Goal: remove this dependency
15
-
16
- function convertToJson(n3String, jsonCallback) {
17
- var jsonString;
18
- var n3Parser = new _n.Parser();
19
- var n3Writer = new _n.Writer({
20
- format: 'N-Quads'
21
- });
22
- _async.default.waterfall([function (callback) {
23
- n3Parser.parse(n3String, function (error, quad, prefixes) {
24
- if (error) {
25
- callback(error);
26
- } else if (quad !== null) {
27
- n3Writer.addQuad(quad);
28
- } else {
29
- n3Writer.end(callback);
30
- }
31
- });
32
- }, function (result, callback) {
33
- try {
34
- _jsonld.default.fromRDF(result, {
35
- format: 'application/nquads'
36
- }).then(result => {
37
- callback(null, result);
38
- });
39
- } catch (err) {
40
- callback(err);
41
- }
42
- }, function (json, callback) {
43
- jsonString = JSON.stringify(json);
44
- jsonCallback(null, jsonString);
45
- }], function (err, result) {
46
- jsonCallback(err, jsonString);
47
- });
48
- }
49
- function convertToNQuads(n3String, nquadCallback) {
50
- var nquadString;
51
- var n3Parser = new _n.Parser();
52
- var n3Writer = new _n.Writer({
53
- format: 'N-Quads'
54
- });
55
- _async.default.waterfall([function (callback) {
56
- n3Parser.parse(n3String, function (error, triple, prefixes) {
57
- if (error) {
58
- callback(error);
59
- } else if (quad !== null) {
60
- n3Writer.addQuad(quad);
61
- } else {
62
- n3Writer.end(callback);
63
- }
64
- });
65
- }, function (result, callback) {
66
- nquadString = result;
67
- nquadCallback(null, nquadString);
68
- }], function (err, result) {
69
- nquadCallback(err, nquadString);
70
- });
71
- }
package/src/convert.js DELETED
@@ -1,70 +0,0 @@
1
- import asyncLib from 'async' // @@ Goal: remove this dependency
2
- import jsonld from 'jsonld'
3
- import { Parser, Writer } from 'n3' // @@ Goal: remove this dependency
4
-
5
- export function convertToJson (n3String, jsonCallback) {
6
- var jsonString
7
- var n3Parser = new Parser()
8
- var n3Writer = new Writer({
9
- format: 'N-Quads'
10
- })
11
- asyncLib.waterfall([
12
- function (callback) {
13
- n3Parser.parse(n3String, function (error, quad, prefixes) {
14
- if (error) {
15
- callback(error);
16
- } else if (quad !== null) {
17
- n3Writer.addQuad(quad);
18
- } else {
19
- n3Writer.end(callback);
20
- }
21
- });
22
- },
23
- function (result, callback) {
24
- try {
25
- jsonld.fromRDF(result, {
26
- format: 'application/nquads'
27
- }).then((result) => {
28
- callback(null, result)
29
- })
30
- } catch (err) {
31
- callback(err)
32
- }
33
- },
34
- function (json, callback) {
35
- jsonString = JSON.stringify(json)
36
- jsonCallback(null, jsonString)
37
- }
38
- ], function (err, result) {
39
- jsonCallback(err, jsonString)
40
- }
41
- )
42
- }
43
-
44
- export function convertToNQuads (n3String, nquadCallback) {
45
- var nquadString
46
- var n3Parser = new Parser()
47
- var n3Writer = new Writer({
48
- format: 'N-Quads'
49
- })
50
- asyncLib.waterfall([
51
- function (callback) {
52
- n3Parser.parse(n3String, function (error, triple, prefixes) {
53
- if (error) {
54
- callback(error);
55
- } else if (quad !== null) {
56
- n3Writer.addQuad(quad);
57
- } else {
58
- n3Writer.end(callback);
59
- }
60
- });
61
- },
62
- function (result, callback) {
63
- nquadString = result
64
- nquadCallback(null, nquadString)
65
- }
66
- ], function (err, result) {
67
- nquadCallback(err, nquadString)
68
- }
69
- )
70
- }