rdflib 2.2.35 → 2.2.36

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 (90) hide show
  1. package/dist/rdflib.min.js +1 -1
  2. package/dist/rdflib.min.js.LICENSE.txt +0 -2
  3. package/dist/rdflib.min.js.map +1 -1
  4. package/esm/blank-node.js +57 -82
  5. package/esm/class-order.js +1 -1
  6. package/esm/collection.js +70 -103
  7. package/esm/default-graph.js +13 -30
  8. package/esm/empty.js +8 -23
  9. package/esm/factories/canonical-data-factory.js +33 -29
  10. package/esm/factories/extended-term-factory.js +18 -13
  11. package/esm/factories/factory-types.js +1 -1
  12. package/esm/factories/rdflib-data-factory.js +9 -11
  13. package/esm/fetcher.js +1366 -1651
  14. package/esm/formula.js +631 -736
  15. package/esm/index.js +31 -48
  16. package/esm/jsonldparser.js +19 -26
  17. package/esm/jsonparser.js +1 -1
  18. package/esm/lists.js +38 -86
  19. package/esm/literal.js +120 -154
  20. package/esm/log.js +7 -7
  21. package/esm/n3parser.js +1009 -1086
  22. package/esm/named-node.js +69 -96
  23. package/esm/namespace.js +2 -4
  24. package/esm/node-internal.js +73 -96
  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 +15 -16
  29. package/esm/rdfaparser.js +775 -841
  30. package/esm/rdfxmlparser.js +348 -364
  31. package/esm/serialize.js +2 -2
  32. package/esm/serializer.js +835 -877
  33. package/esm/statement.js +52 -71
  34. package/esm/store.js +853 -957
  35. package/esm/types.js +21 -21
  36. package/esm/update-manager.js +965 -1100
  37. package/esm/updates-via.js +104 -132
  38. package/esm/uri.js +3 -3
  39. package/esm/utils/default-graph-uri.js +2 -2
  40. package/esm/utils/terms.js +4 -5
  41. package/esm/utils-js.js +5 -5
  42. package/esm/utils.js +6 -6
  43. package/esm/variable.js +32 -55
  44. package/esm/xsd.js +2 -2
  45. package/lib/blank-node.js +57 -80
  46. package/lib/class-order.js +1 -1
  47. package/lib/collection.js +70 -101
  48. package/lib/default-graph.js +14 -29
  49. package/lib/empty.js +9 -22
  50. package/lib/factories/canonical-data-factory.js +35 -31
  51. package/lib/factories/extended-term-factory.js +18 -13
  52. package/lib/factories/factory-types.js +1 -1
  53. package/lib/factories/rdflib-data-factory.js +9 -11
  54. package/lib/fetcher.js +1375 -1654
  55. package/lib/formula.js +632 -735
  56. package/lib/index.js +80 -84
  57. package/lib/jsonldparser.js +21 -32
  58. package/lib/jsonparser.js +1 -1
  59. package/lib/lists.js +47 -87
  60. package/lib/literal.js +121 -153
  61. package/lib/log.js +7 -7
  62. package/lib/n3parser.js +1012 -1090
  63. package/lib/named-node.js +70 -95
  64. package/lib/namespace.js +2 -4
  65. package/lib/node-internal.js +73 -94
  66. package/lib/node.js +1 -1
  67. package/lib/parse.js +5 -6
  68. package/lib/patch-parser.js +1 -1
  69. package/lib/query.js +20 -18
  70. package/lib/rdfaparser.js +778 -843
  71. package/lib/rdfxmlparser.js +351 -365
  72. package/lib/serialize.js +2 -2
  73. package/lib/serializer.js +840 -880
  74. package/lib/statement.js +55 -73
  75. package/lib/store.js +860 -958
  76. package/lib/types.js +21 -21
  77. package/lib/update-manager.js +970 -1102
  78. package/lib/updates-via.js +107 -132
  79. package/lib/uri.js +3 -3
  80. package/lib/utils/default-graph-uri.js +2 -2
  81. package/lib/utils/terms.js +4 -6
  82. package/lib/utils-js.js +8 -9
  83. package/lib/utils.js +6 -6
  84. package/lib/variable.js +35 -57
  85. package/lib/xsd.js +2 -2
  86. package/package.json +2 -2
  87. package/src/n3parser.js +1 -1
  88. package/src/serializer.js +1 -1
  89. package/src/update-manager.ts +2 -1
  90. package/.babelrc +0 -20
@@ -1,5 +1,3 @@
1
- import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
- import _createClass from "@babel/runtime/helpers/createClass";
3
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
4
2
  /**
5
3
  * RDF/XML PARSER
@@ -59,13 +57,12 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
59
57
  *
60
58
  */
61
59
  import * as uriUtil from './uri';
62
- var RDFParser = /*#__PURE__*/function () {
60
+ export default class RDFParser {
63
61
  /*
64
62
  * @constructor
65
63
  * @param {RDFStore} store An RDFStore object
66
64
  */
67
- function RDFParser(store) {
68
- _classCallCheck(this, RDFParser);
65
+ constructor(store) {
69
66
  /** Our triple store reference @private */
70
67
 
71
68
  this.store = store; /** Our identified blank nodes @private */
@@ -77,398 +74,386 @@ var RDFParser = /*#__PURE__*/function () {
77
74
  /** Standard namespaces that we know how to handle @final
78
75
  * @member RDFParser
79
76
  */
80
- return _createClass(RDFParser, [{
81
- key: "frameFactory",
82
- value:
83
- /**
84
- * Frame class for namespace and base URI lookups
85
- * Base lookups will always resolve because the parser knows
86
- * the default base.
87
- *
88
- * @private
89
- */
90
77
 
91
- function frameFactory(parser, parent, element) {
92
- return {
93
- 'NODE': 1,
94
- 'ARC': 2,
95
- 'parent': parent,
96
- 'parser': parser,
97
- 'store': parser.store,
98
- 'element': element,
99
- 'lastChild': 0,
100
- 'base': null,
101
- 'lang': null,
102
- 'node': null,
103
- 'nodeType': null,
104
- 'listIndex': 1,
105
- 'rdfid': null,
106
- 'datatype': null,
107
- 'collection': false,
108
- /** Terminate the frame and notify the store that we're done */
109
- 'terminateFrame': function terminateFrame() {
110
- if (this.collection) {
111
- this.node.close();
112
- }
113
- },
114
- /** Add a symbol of a certain type to the this frame */'addSymbol': function addSymbol(type, uri) {
115
- uri = uriUtil.join(uri, this.base);
116
- this.node = this.store.sym(uri);
117
- this.nodeType = type;
118
- },
119
- /** Load any constructed triples into the store */'loadTriple': function loadTriple() {
120
- if (this.parent.parent.collection) {
121
- this.parent.parent.node.append(this.node);
122
- } else {
123
- this.store.add(this.parent.parent.node, this.parent.node, this.node, this.parser.why);
124
- }
125
- if (this.parent.rdfid != null) {
126
- // reify
127
- var triple = this.store.sym(uriUtil.join('#' + this.parent.rdfid, this.base));
128
- this.store.add(triple, this.store.sym(RDFParser.ns.RDF + 'type'), this.store.sym(RDFParser.ns.RDF + 'Statement'), this.parser.why);
129
- this.store.add(triple, this.store.sym(RDFParser.ns.RDF + 'subject'), this.parent.parent.node, this.parser.why);
130
- this.store.add(triple, this.store.sym(RDFParser.ns.RDF + 'predicate'), this.parent.node, this.parser.why);
131
- this.store.add(triple, this.store.sym(RDFParser.ns.RDF + 'object'), this.node, this.parser.why);
132
- }
133
- },
134
- /** Check if it's OK to load a triple */'isTripleToLoad': function isTripleToLoad() {
135
- return this.parent != null && this.parent.parent != null && this.nodeType === this.NODE && this.parent.nodeType === this.ARC && this.parent.parent.nodeType === this.NODE;
136
- },
137
- /** Add a symbolic node to this frame */'addNode': function addNode(uri) {
138
- this.addSymbol(this.NODE, uri);
139
- if (this.isTripleToLoad()) {
140
- this.loadTriple();
141
- }
142
- },
143
- /** Add a collection node to this frame */'addCollection': function addCollection() {
144
- this.nodeType = this.NODE;
145
- this.node = this.store.collection();
146
- this.collection = true;
147
- if (this.isTripleToLoad()) {
148
- this.loadTriple();
149
- }
150
- },
151
- /** Add a collection arc to this frame */'addCollectionArc': function addCollectionArc() {
152
- this.nodeType = this.ARC;
153
- },
154
- /** Add a bnode to this frame */'addBNode': function addBNode(id) {
155
- if (id != null) {
156
- if (this.parser.bnodes[id] != null) {
157
- this.node = this.parser.bnodes[id];
158
- } else {
159
- this.node = this.parser.bnodes[id] = this.store.bnode();
160
- }
161
- } else {
162
- this.node = this.store.bnode();
163
- }
164
- this.nodeType = this.NODE;
165
- if (this.isTripleToLoad()) {
166
- this.loadTriple();
167
- }
168
- },
169
- /** Add an arc or property to this frame */'addArc': function addArc(uri) {
170
- if (uri === RDFParser.ns.RDF + 'li') {
171
- uri = RDFParser.ns.RDF + '_' + this.parent.listIndex;
172
- this.parent.listIndex++;
173
- }
174
- this.addSymbol(this.ARC, uri);
175
- },
176
- /** Add a literal to this frame */'addLiteral': function addLiteral(value) {
177
- if (this.parent.datatype && this.parent.datatype !== RDFParser.ns.RDF + 'langString') {
178
- this.node = this.store.literal(value, this.store.sym(this.parent.datatype));
78
+ /**
79
+ * Frame class for namespace and base URI lookups
80
+ * Base lookups will always resolve because the parser knows
81
+ * the default base.
82
+ *
83
+ * @private
84
+ */
85
+
86
+ frameFactory(parser, parent, element) {
87
+ return {
88
+ 'NODE': 1,
89
+ 'ARC': 2,
90
+ 'parent': parent,
91
+ 'parser': parser,
92
+ 'store': parser.store,
93
+ 'element': element,
94
+ 'lastChild': 0,
95
+ 'base': null,
96
+ 'lang': null,
97
+ 'node': null,
98
+ 'nodeType': null,
99
+ 'listIndex': 1,
100
+ 'rdfid': null,
101
+ 'datatype': null,
102
+ 'collection': false,
103
+ /** Terminate the frame and notify the store that we're done */
104
+ 'terminateFrame': function () {
105
+ if (this.collection) {
106
+ this.node.close();
107
+ }
108
+ },
109
+ /** Add a symbol of a certain type to the this frame */'addSymbol': function (type, uri) {
110
+ uri = uriUtil.join(uri, this.base);
111
+ this.node = this.store.sym(uri);
112
+ this.nodeType = type;
113
+ },
114
+ /** Load any constructed triples into the store */'loadTriple': function () {
115
+ if (this.parent.parent.collection) {
116
+ this.parent.parent.node.append(this.node);
117
+ } else {
118
+ this.store.add(this.parent.parent.node, this.parent.node, this.node, this.parser.why);
119
+ }
120
+ if (this.parent.rdfid != null) {
121
+ // reify
122
+ var triple = this.store.sym(uriUtil.join('#' + this.parent.rdfid, this.base));
123
+ this.store.add(triple, this.store.sym(RDFParser.ns.RDF + 'type'), this.store.sym(RDFParser.ns.RDF + 'Statement'), this.parser.why);
124
+ this.store.add(triple, this.store.sym(RDFParser.ns.RDF + 'subject'), this.parent.parent.node, this.parser.why);
125
+ this.store.add(triple, this.store.sym(RDFParser.ns.RDF + 'predicate'), this.parent.node, this.parser.why);
126
+ this.store.add(triple, this.store.sym(RDFParser.ns.RDF + 'object'), this.node, this.parser.why);
127
+ }
128
+ },
129
+ /** Check if it's OK to load a triple */'isTripleToLoad': function () {
130
+ return this.parent != null && this.parent.parent != null && this.nodeType === this.NODE && this.parent.nodeType === this.ARC && this.parent.parent.nodeType === this.NODE;
131
+ },
132
+ /** Add a symbolic node to this frame */'addNode': function (uri) {
133
+ this.addSymbol(this.NODE, uri);
134
+ if (this.isTripleToLoad()) {
135
+ this.loadTriple();
136
+ }
137
+ },
138
+ /** Add a collection node to this frame */'addCollection': function () {
139
+ this.nodeType = this.NODE;
140
+ this.node = this.store.collection();
141
+ this.collection = true;
142
+ if (this.isTripleToLoad()) {
143
+ this.loadTriple();
144
+ }
145
+ },
146
+ /** Add a collection arc to this frame */'addCollectionArc': function () {
147
+ this.nodeType = this.ARC;
148
+ },
149
+ /** Add a bnode to this frame */'addBNode': function (id) {
150
+ if (id != null) {
151
+ if (this.parser.bnodes[id] != null) {
152
+ this.node = this.parser.bnodes[id];
179
153
  } else {
180
- this.node = this.store.literal(value, this.lang);
181
- }
182
- this.nodeType = this.NODE;
183
- if (this.isTripleToLoad()) {
184
- this.loadTriple();
154
+ this.node = this.parser.bnodes[id] = this.store.bnode();
185
155
  }
156
+ } else {
157
+ this.node = this.store.bnode();
186
158
  }
187
- };
188
- }
189
-
190
- // from the OpenLayers source .. needed to get around IE problems.
191
- }, {
192
- key: "getAttributeNodeNS",
193
- value: function getAttributeNodeNS(node, uri, name) {
194
- var attributeNode = null;
195
- if (node.getAttributeNodeNS) {
196
- attributeNode = node.getAttributeNodeNS(uri, name);
197
- } else {
198
- var attributes = node.attributes;
199
- var potentialNode, fullName;
200
- for (var i = 0; i < attributes.length; ++i) {
201
- potentialNode = attributes[i];
202
- if (potentialNode.namespaceURI === uri) {
203
- fullName = potentialNode.prefix ? potentialNode.prefix + ':' + name : name;
204
- if (fullName === potentialNode.nodeName) {
205
- attributeNode = potentialNode;
206
- break;
207
- }
208
- }
159
+ this.nodeType = this.NODE;
160
+ if (this.isTripleToLoad()) {
161
+ this.loadTriple();
162
+ }
163
+ },
164
+ /** Add an arc or property to this frame */'addArc': function (uri) {
165
+ if (uri === RDFParser.ns.RDF + 'li') {
166
+ uri = RDFParser.ns.RDF + '_' + this.parent.listIndex;
167
+ this.parent.listIndex++;
168
+ }
169
+ this.addSymbol(this.ARC, uri);
170
+ },
171
+ /** Add a literal to this frame */'addLiteral': function (value) {
172
+ if (this.parent.datatype && this.parent.datatype !== RDFParser.ns.RDF + 'langString') {
173
+ this.node = this.store.literal(value, this.store.sym(this.parent.datatype));
174
+ } else {
175
+ this.node = this.store.literal(value, this.lang);
176
+ }
177
+ this.nodeType = this.NODE;
178
+ if (this.isTripleToLoad()) {
179
+ this.loadTriple();
209
180
  }
210
181
  }
211
- return attributeNode;
212
- }
182
+ };
183
+ }
213
184
 
214
- /**
215
- * Build our initial scope frame and parse the DOM into triples
216
- * @param {HTMLDocument} document The DOM to parse
217
- * @param {String} base The base URL to use
218
- * @param {Object} why The context to which this resource belongs
219
- */
220
- }, {
221
- key: "parse",
222
- value: function parse(document, base, why) {
223
- var children = document.childNodes; // clean up for the next run
224
- this.cleanParser(); // figure out the root element
225
- var root;
226
- if (document.nodeType === RDFParser.nodeType.DOCUMENT) {
227
- for (var c = 0; c < children.length; c++) {
228
- if (children[c].nodeType === RDFParser.nodeType.ELEMENT) {
229
- root = children[c];
185
+ // from the OpenLayers source .. needed to get around IE problems.
186
+ getAttributeNodeNS(node, uri, name) {
187
+ var attributeNode = null;
188
+ if (node.getAttributeNodeNS) {
189
+ attributeNode = node.getAttributeNodeNS(uri, name);
190
+ } else {
191
+ var attributes = node.attributes;
192
+ var potentialNode, fullName;
193
+ for (var i = 0; i < attributes.length; ++i) {
194
+ potentialNode = attributes[i];
195
+ if (potentialNode.namespaceURI === uri) {
196
+ fullName = potentialNode.prefix ? potentialNode.prefix + ':' + name : name;
197
+ if (fullName === potentialNode.nodeName) {
198
+ attributeNode = potentialNode;
230
199
  break;
231
200
  }
232
201
  }
233
- } else if (document.nodeType === RDFParser.nodeType.ELEMENT) {
234
- root = document;
235
- } else {
236
- throw new Error("RDFParser: can't find root in " + base + '. Halting. ');
237
- // return false
238
202
  }
239
- this.why = why; // our topmost frame
240
- var f = this.frameFactory(this);
241
- this.base = base;
242
- f.base = base;
243
- f.lang = null; // was '' but can't have langs like that 2015 (!)
244
- this.parseDOM(this.buildFrame(f, root));
245
- return true;
246
203
  }
247
- }, {
248
- key: "parseDOM",
249
- value: function parseDOM(frame) {
250
- // a DOM utility function used in parsing
251
- var rdfid;
252
- var elementURI = function (el) {
253
- var result = '';
254
- if (el.namespaceURI == null) {
255
- throw new Error('RDF/XML syntax error: No namespace for ' + el.localName + ' in ' + this.base);
204
+ return attributeNode;
205
+ }
206
+
207
+ /**
208
+ * Build our initial scope frame and parse the DOM into triples
209
+ * @param {HTMLDocument} document The DOM to parse
210
+ * @param {String} base The base URL to use
211
+ * @param {Object} why The context to which this resource belongs
212
+ */
213
+
214
+ parse(document, base, why) {
215
+ var children = document.childNodes; // clean up for the next run
216
+ this.cleanParser(); // figure out the root element
217
+ var root;
218
+ if (document.nodeType === RDFParser.nodeType.DOCUMENT) {
219
+ for (var c = 0; c < children.length; c++) {
220
+ if (children[c].nodeType === RDFParser.nodeType.ELEMENT) {
221
+ root = children[c];
222
+ break;
256
223
  }
257
- if (el.namespaceURI) {
258
- result = result + el.namespaceURI;
224
+ }
225
+ } else if (document.nodeType === RDFParser.nodeType.ELEMENT) {
226
+ root = document;
227
+ } else {
228
+ throw new Error("RDFParser: can't find root in " + base + '. Halting. ');
229
+ // return false
230
+ }
231
+ this.why = why; // our topmost frame
232
+ var f = this.frameFactory(this);
233
+ this.base = base;
234
+ f.base = base;
235
+ f.lang = null; // was '' but can't have langs like that 2015 (!)
236
+ this.parseDOM(this.buildFrame(f, root));
237
+ return true;
238
+ }
239
+ parseDOM(frame) {
240
+ // a DOM utility function used in parsing
241
+ var rdfid;
242
+ var elementURI = function (el) {
243
+ var result = '';
244
+ if (el.namespaceURI == null) {
245
+ throw new Error('RDF/XML syntax error: No namespace for ' + el.localName + ' in ' + this.base);
246
+ }
247
+ if (el.namespaceURI) {
248
+ result = result + el.namespaceURI;
249
+ }
250
+ if (el.localName) {
251
+ result = result + el.localName;
252
+ } else if (el.nodeName) {
253
+ if (el.nodeName.indexOf(':') >= 0) result = result + el.nodeName.split(':')[1];else result = result + el.nodeName;
254
+ }
255
+ return result;
256
+ }.bind(this);
257
+ var dig = true; // if we'll dig down in the tree on the next iter
258
+ while (frame.parent) {
259
+ var dom = frame.element;
260
+ var attrs = dom.attributes;
261
+ if (dom.nodeType === RDFParser.nodeType.TEXT || dom.nodeType === RDFParser.nodeType.CDATA_SECTION) {
262
+ // we have a literal
263
+ if (frame.parent.nodeType === frame.NODE) {
264
+ // must have had attributes, store as rdf:value
265
+ frame.addArc(RDFParser.ns.RDF + 'value');
266
+ frame = this.buildFrame(frame);
259
267
  }
260
- if (el.localName) {
261
- result = result + el.localName;
262
- } else if (el.nodeName) {
263
- if (el.nodeName.indexOf(':') >= 0) result = result + el.nodeName.split(':')[1];else result = result + el.nodeName;
268
+ frame.addLiteral(dom.nodeValue);
269
+ } else if (elementURI(dom) !== RDFParser.ns.RDF + 'RDF') {
270
+ // not root
271
+ if (frame.parent && frame.parent.collection) {
272
+ // we're a collection element
273
+ frame.addCollectionArc();
274
+ frame = this.buildFrame(frame, frame.element);
275
+ frame.parent.element = null;
264
276
  }
265
- return result;
266
- }.bind(this);
267
- var dig = true; // if we'll dig down in the tree on the next iter
268
- while (frame.parent) {
269
- var dom = frame.element;
270
- var attrs = dom.attributes;
271
- if (dom.nodeType === RDFParser.nodeType.TEXT || dom.nodeType === RDFParser.nodeType.CDATA_SECTION) {
272
- // we have a literal
273
- if (frame.parent.nodeType === frame.NODE) {
274
- // must have had attributes, store as rdf:value
275
- frame.addArc(RDFParser.ns.RDF + 'value');
276
- frame = this.buildFrame(frame);
277
- }
278
- frame.addLiteral(dom.nodeValue);
279
- } else if (elementURI(dom) !== RDFParser.ns.RDF + 'RDF') {
280
- // not root
281
- if (frame.parent && frame.parent.collection) {
282
- // we're a collection element
283
- frame.addCollectionArc();
284
- frame = this.buildFrame(frame, frame.element);
285
- frame.parent.element = null;
277
+ if (!frame.parent || !frame.parent.nodeType || frame.parent.nodeType === frame.ARC) {
278
+ // we need a node
279
+ var about = this.getAttributeNodeNS(dom, RDFParser.ns.RDF, 'about');
280
+ rdfid = this.getAttributeNodeNS(dom, RDFParser.ns.RDF, 'ID');
281
+ if (about && rdfid) {
282
+ throw new Error('RDFParser: ' + dom.nodeName + ' has both rdf:id and rdf:about.' + ' Halting. Only one of these' + ' properties may be specified on a' + ' node.');
286
283
  }
287
- if (!frame.parent || !frame.parent.nodeType || frame.parent.nodeType === frame.ARC) {
288
- // we need a node
289
- var about = this.getAttributeNodeNS(dom, RDFParser.ns.RDF, 'about');
290
- rdfid = this.getAttributeNodeNS(dom, RDFParser.ns.RDF, 'ID');
291
- if (about && rdfid) {
292
- throw new Error('RDFParser: ' + dom.nodeName + ' has both rdf:id and rdf:about.' + ' Halting. Only one of these' + ' properties may be specified on a' + ' node.');
293
- }
294
- if (!about && rdfid) {
295
- frame.addNode('#' + rdfid.nodeValue);
296
- dom.removeAttributeNode(rdfid);
297
- } else if (about == null && rdfid == null) {
298
- var bnid = this.getAttributeNodeNS(dom, RDFParser.ns.RDF, 'nodeID');
299
- if (bnid) {
300
- frame.addBNode(bnid.nodeValue);
301
- dom.removeAttributeNode(bnid);
302
- } else {
303
- frame.addBNode();
304
- }
284
+ if (!about && rdfid) {
285
+ frame.addNode('#' + rdfid.nodeValue);
286
+ dom.removeAttributeNode(rdfid);
287
+ } else if (about == null && rdfid == null) {
288
+ var bnid = this.getAttributeNodeNS(dom, RDFParser.ns.RDF, 'nodeID');
289
+ if (bnid) {
290
+ frame.addBNode(bnid.nodeValue);
291
+ dom.removeAttributeNode(bnid);
305
292
  } else {
306
- frame.addNode(about.nodeValue);
307
- dom.removeAttributeNode(about);
308
- }
309
- // Typed nodes
310
- var rdftype = this.getAttributeNodeNS(dom, RDFParser.ns.RDF, 'type');
311
- if (RDFParser.ns.RDF + 'Description' !== elementURI(dom)) {
312
- rdftype = {
313
- 'nodeValue': elementURI(dom)
314
- };
315
- }
316
- if (rdftype != null) {
317
- this.store.add(frame.node, this.store.sym(RDFParser.ns.RDF + 'type'), this.store.sym(uriUtil.join(rdftype.nodeValue, frame.base)), this.why);
318
- if (rdftype.nodeName) {
319
- dom.removeAttributeNode(rdftype);
320
- }
321
- }
322
- // Property Attributes
323
- for (var x = attrs.length - 1; x >= 0; x--) {
324
- this.store.add(frame.node, this.store.sym(elementURI(attrs[x])), this.store.literal(attrs[x].nodeValue, frame.lang), this.why);
293
+ frame.addBNode();
325
294
  }
326
295
  } else {
327
- // we should add an arc (or implicit bnode+arc)
328
- frame.addArc(elementURI(dom)); // save the arc's rdf:ID if it has one
329
- if (this.reify) {
330
- rdfid = this.getAttributeNodeNS(dom, RDFParser.ns.RDF, 'ID');
331
- if (rdfid) {
332
- frame.rdfid = rdfid.nodeValue;
333
- dom.removeAttributeNode(rdfid);
334
- }
296
+ frame.addNode(about.nodeValue);
297
+ dom.removeAttributeNode(about);
298
+ }
299
+ // Typed nodes
300
+ var rdftype = this.getAttributeNodeNS(dom, RDFParser.ns.RDF, 'type');
301
+ if (RDFParser.ns.RDF + 'Description' !== elementURI(dom)) {
302
+ rdftype = {
303
+ 'nodeValue': elementURI(dom)
304
+ };
305
+ }
306
+ if (rdftype != null) {
307
+ this.store.add(frame.node, this.store.sym(RDFParser.ns.RDF + 'type'), this.store.sym(uriUtil.join(rdftype.nodeValue, frame.base)), this.why);
308
+ if (rdftype.nodeName) {
309
+ dom.removeAttributeNode(rdftype);
310
+ }
311
+ }
312
+ // Property Attributes
313
+ for (var x = attrs.length - 1; x >= 0; x--) {
314
+ this.store.add(frame.node, this.store.sym(elementURI(attrs[x])), this.store.literal(attrs[x].nodeValue, frame.lang), this.why);
315
+ }
316
+ } else {
317
+ // we should add an arc (or implicit bnode+arc)
318
+ frame.addArc(elementURI(dom)); // save the arc's rdf:ID if it has one
319
+ if (this.reify) {
320
+ rdfid = this.getAttributeNodeNS(dom, RDFParser.ns.RDF, 'ID');
321
+ if (rdfid) {
322
+ frame.rdfid = rdfid.nodeValue;
323
+ dom.removeAttributeNode(rdfid);
335
324
  }
336
- var parsetype = this.getAttributeNodeNS(dom, RDFParser.ns.RDF, 'parseType');
337
- var datatype = this.getAttributeNodeNS(dom, RDFParser.ns.RDF, 'datatype');
338
- if (datatype) {
339
- frame.datatype = datatype.nodeValue;
340
- dom.removeAttributeNode(datatype);
325
+ }
326
+ var parsetype = this.getAttributeNodeNS(dom, RDFParser.ns.RDF, 'parseType');
327
+ var datatype = this.getAttributeNodeNS(dom, RDFParser.ns.RDF, 'datatype');
328
+ if (datatype) {
329
+ frame.datatype = datatype.nodeValue;
330
+ dom.removeAttributeNode(datatype);
331
+ }
332
+ if (parsetype) {
333
+ var nv = parsetype.nodeValue;
334
+ if (nv === 'Literal') {
335
+ frame.datatype = RDFParser.ns.RDF + 'XMLLiteral';
336
+ frame = this.buildFrame(frame);
337
+ // Don't include the literal node, only its children
338
+ // see https://github.com/linkeddata/rdflib.js/issues/75
339
+ frame.addLiteral(dom.innerHTML || dom.childNodes);
340
+ dig = false;
341
+ } else if (nv === 'Resource') {
342
+ frame = this.buildFrame(frame, frame.element);
343
+ frame.parent.element = null;
344
+ frame.addBNode();
345
+ } else if (nv === 'Collection') {
346
+ frame = this.buildFrame(frame, frame.element);
347
+ frame.parent.element = null;
348
+ frame.addCollection();
341
349
  }
342
- if (parsetype) {
343
- var nv = parsetype.nodeValue;
344
- if (nv === 'Literal') {
345
- frame.datatype = RDFParser.ns.RDF + 'XMLLiteral';
346
- frame = this.buildFrame(frame);
347
- // Don't include the literal node, only its children
348
- // see https://github.com/linkeddata/rdflib.js/issues/75
349
- frame.addLiteral(dom.innerHTML || dom.childNodes);
350
- dig = false;
351
- } else if (nv === 'Resource') {
352
- frame = this.buildFrame(frame, frame.element);
353
- frame.parent.element = null;
350
+ dom.removeAttributeNode(parsetype);
351
+ }
352
+ if (attrs.length !== 0) {
353
+ var resource = this.getAttributeNodeNS(dom, RDFParser.ns.RDF, 'resource');
354
+ var bnid2 = this.getAttributeNodeNS(dom, RDFParser.ns.RDF, 'nodeID');
355
+ frame = this.buildFrame(frame);
356
+ if (resource) {
357
+ frame.addNode(resource.nodeValue);
358
+ dom.removeAttributeNode(resource);
359
+ } else {
360
+ if (bnid2) {
361
+ frame.addBNode(bnid2.nodeValue);
362
+ dom.removeAttributeNode(bnid2);
363
+ } else {
354
364
  frame.addBNode();
355
- } else if (nv === 'Collection') {
356
- frame = this.buildFrame(frame, frame.element);
357
- frame.parent.element = null;
358
- frame.addCollection();
359
365
  }
360
- dom.removeAttributeNode(parsetype);
361
366
  }
362
- if (attrs.length !== 0) {
363
- var resource = this.getAttributeNodeNS(dom, RDFParser.ns.RDF, 'resource');
364
- var bnid2 = this.getAttributeNodeNS(dom, RDFParser.ns.RDF, 'nodeID');
365
- frame = this.buildFrame(frame);
366
- if (resource) {
367
- frame.addNode(resource.nodeValue);
368
- dom.removeAttributeNode(resource);
367
+ for (var x1 = attrs.length - 1; x1 >= 0; x1--) {
368
+ var f = this.buildFrame(frame);
369
+ f.addArc(elementURI(attrs[x1]));
370
+ if (elementURI(attrs[x1]) === RDFParser.ns.RDF + 'type') {
371
+ this.buildFrame(f).addNode(attrs[x1].nodeValue);
369
372
  } else {
370
- if (bnid2) {
371
- frame.addBNode(bnid2.nodeValue);
372
- dom.removeAttributeNode(bnid2);
373
- } else {
374
- frame.addBNode();
375
- }
376
- }
377
- for (var x1 = attrs.length - 1; x1 >= 0; x1--) {
378
- var f = this.buildFrame(frame);
379
- f.addArc(elementURI(attrs[x1]));
380
- if (elementURI(attrs[x1]) === RDFParser.ns.RDF + 'type') {
381
- this.buildFrame(f).addNode(attrs[x1].nodeValue);
382
- } else {
383
- this.buildFrame(f).addLiteral(attrs[x1].nodeValue);
384
- }
373
+ this.buildFrame(f).addLiteral(attrs[x1].nodeValue);
385
374
  }
386
- } else if (dom.childNodes.length === 0) {
387
- this.buildFrame(frame).addLiteral('');
388
375
  }
376
+ } else if (dom.childNodes.length === 0) {
377
+ this.buildFrame(frame).addLiteral('');
389
378
  }
390
- } // rdf:RDF
391
- // dig dug
392
- dom = frame.element;
393
- while (frame.parent) {
394
- var pframe = frame;
395
- while (dom == null) {
396
- frame = frame.parent;
397
- dom = frame.element;
398
- }
399
- var candidate = dom.childNodes && dom.childNodes[frame.lastChild];
400
- if (!candidate || !dig) {
401
- frame.terminateFrame();
402
- if (!(frame = frame.parent)) {
403
- break;
404
- } // done
405
- dom = frame.element;
406
- dig = true;
407
- } else if (candidate.nodeType !== RDFParser.nodeType.ELEMENT && candidate.nodeType !== RDFParser.nodeType.TEXT && candidate.nodeType !== RDFParser.nodeType.CDATA_SECTION || (candidate.nodeType === RDFParser.nodeType.TEXT || candidate.nodeType === RDFParser.nodeType.CDATA_SECTION) && dom.childNodes.length !== 1) {
408
- frame.lastChild++;
409
- } else {
410
- // not a leaf
411
- frame.lastChild++;
412
- frame = this.buildFrame(pframe, dom.childNodes[frame.lastChild - 1]);
379
+ }
380
+ } // rdf:RDF
381
+ // dig dug
382
+ dom = frame.element;
383
+ while (frame.parent) {
384
+ var pframe = frame;
385
+ while (dom == null) {
386
+ frame = frame.parent;
387
+ dom = frame.element;
388
+ }
389
+ var candidate = dom.childNodes && dom.childNodes[frame.lastChild];
390
+ if (!candidate || !dig) {
391
+ frame.terminateFrame();
392
+ if (!(frame = frame.parent)) {
413
393
  break;
414
- }
394
+ } // done
395
+ dom = frame.element;
396
+ dig = true;
397
+ } else if (candidate.nodeType !== RDFParser.nodeType.ELEMENT && candidate.nodeType !== RDFParser.nodeType.TEXT && candidate.nodeType !== RDFParser.nodeType.CDATA_SECTION || (candidate.nodeType === RDFParser.nodeType.TEXT || candidate.nodeType === RDFParser.nodeType.CDATA_SECTION) && dom.childNodes.length !== 1) {
398
+ frame.lastChild++;
399
+ } else {
400
+ // not a leaf
401
+ frame.lastChild++;
402
+ frame = this.buildFrame(pframe, dom.childNodes[frame.lastChild - 1]);
403
+ break;
415
404
  }
416
- } // while
417
- }
405
+ }
406
+ } // while
407
+ }
418
408
 
419
- /**
420
- * Cleans out state from a previous parse run
421
- * @private
422
- */
423
- }, {
424
- key: "cleanParser",
425
- value: function cleanParser() {
426
- this.bnodes = {};
427
- this.why = null;
428
- }
409
+ /**
410
+ * Cleans out state from a previous parse run
411
+ * @private
412
+ */
413
+ cleanParser() {
414
+ this.bnodes = {};
415
+ this.why = null;
416
+ }
429
417
 
430
- /**
431
- * Builds scope frame
432
- * @private
433
- */
434
- }, {
435
- key: "buildFrame",
436
- value: function buildFrame(parent, element) {
437
- var frame = this.frameFactory(this, parent, element);
438
- if (parent) {
439
- frame.base = parent.base;
440
- frame.lang = parent.lang;
441
- }
442
- if (!element || element.nodeType === RDFParser.nodeType.TEXT || element.nodeType === RDFParser.nodeType.CDATA_SECTION) {
443
- return frame;
444
- }
445
- var attrs = element.attributes;
446
- var base = element.getAttributeNode('xml:base');
447
- if (base != null) {
448
- frame.base = base.nodeValue;
449
- element.removeAttribute('xml:base');
450
- }
451
- var lang = element.getAttributeNode('xml:lang');
452
- if (lang != null) {
453
- frame.lang = lang.nodeValue;
454
- element.removeAttribute('xml:lang');
455
- }
456
- // remove all extraneous xml and xmlns attributes
457
- for (var x = attrs.length - 1; x >= 0; x--) {
458
- if (attrs[x].nodeName.substr(0, 3) === 'xml') {
459
- if (attrs[x].name.slice(0, 6) === 'xmlns:') {
460
- var uri = attrs[x].nodeValue; // alert('base for namespac attr:'+this.base)
461
- if (this.base) uri = uriUtil.join(uri, this.base);
462
- this.store.setPrefixForURI(attrs[x].name.slice(6), uri);
463
- }
464
- // alert('rdfparser: xml atribute: '+attrs[x].name) //@@
465
- element.removeAttributeNode(attrs[x]);
418
+ /**
419
+ * Builds scope frame
420
+ * @private
421
+ */
422
+ buildFrame(parent, element) {
423
+ var frame = this.frameFactory(this, parent, element);
424
+ if (parent) {
425
+ frame.base = parent.base;
426
+ frame.lang = parent.lang;
427
+ }
428
+ if (!element || element.nodeType === RDFParser.nodeType.TEXT || element.nodeType === RDFParser.nodeType.CDATA_SECTION) {
429
+ return frame;
430
+ }
431
+ var attrs = element.attributes;
432
+ var base = element.getAttributeNode('xml:base');
433
+ if (base != null) {
434
+ frame.base = base.nodeValue;
435
+ element.removeAttribute('xml:base');
436
+ }
437
+ var lang = element.getAttributeNode('xml:lang');
438
+ if (lang != null) {
439
+ frame.lang = lang.nodeValue;
440
+ element.removeAttribute('xml:lang');
441
+ }
442
+ // remove all extraneous xml and xmlns attributes
443
+ for (var x = attrs.length - 1; x >= 0; x--) {
444
+ if (attrs[x].nodeName.substr(0, 3) === 'xml') {
445
+ if (attrs[x].name.slice(0, 6) === 'xmlns:') {
446
+ var uri = attrs[x].nodeValue; // alert('base for namespac attr:'+this.base)
447
+ if (this.base) uri = uriUtil.join(uri, this.base);
448
+ this.store.setPrefixForURI(attrs[x].name.slice(6), uri);
466
449
  }
450
+ // alert('rdfparser: xml atribute: '+attrs[x].name) //@@
451
+ element.removeAttributeNode(attrs[x]);
467
452
  }
468
- return frame;
469
453
  }
470
- }]);
471
- }();
454
+ return frame;
455
+ }
456
+ }
472
457
  _defineProperty(RDFParser, "ns", {
473
458
  'RDF': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#',
474
459
  'RDFS': 'http://www.w3.org/2000/01/rdf-schema#'
@@ -489,5 +474,4 @@ _defineProperty(RDFParser, "nodeType", {
489
474
  'DOCUMENT_TYPE': 10,
490
475
  'DOCUMENT_FRAGMENT': 11,
491
476
  'NOTATION': 12
492
- });
493
- export { RDFParser as default };
477
+ });