@openhps/rdf 0.1.10 → 0.1.13

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 (53) hide show
  1. package/.eslintrc.js +39 -0
  2. package/.prettierrc.js +8 -0
  3. package/commitlint.config.js +1 -0
  4. package/dist/cjs/rdf/RDFSerializer.d.ts +2 -1
  5. package/dist/cjs/rdf/RDFSerializer.js +47 -0
  6. package/dist/cjs/rdf/RDFSerializer.js.map +1 -1
  7. package/dist/cjs/rdf/SerializableNamedNode.d.ts +0 -2
  8. package/dist/cjs/rdf/SerializableNamedNode.js +1 -8
  9. package/dist/cjs/rdf/SerializableNamedNode.js.map +1 -1
  10. package/dist/cjs/rdf/types.d.ts +10 -0
  11. package/dist/esm/rdf/RDFSerializer.d.ts +2 -1
  12. package/dist/esm/rdf/RDFSerializer.js +47 -0
  13. package/dist/esm/rdf/RDFSerializer.js.map +1 -1
  14. package/dist/esm/rdf/SerializableNamedNode.d.ts +0 -2
  15. package/dist/esm/rdf/SerializableNamedNode.js +1 -8
  16. package/dist/esm/rdf/SerializableNamedNode.js.map +1 -1
  17. package/dist/esm/rdf/types.d.ts +10 -0
  18. package/dist/types/rdf/RDFSerializer.d.ts +2 -1
  19. package/dist/types/rdf/SerializableNamedNode.d.ts +0 -2
  20. package/dist/types/rdf/types.d.ts +10 -0
  21. package/dist/web/openhps-rdf.all.es.js +57 -17
  22. package/dist/web/openhps-rdf.all.es.js.map +1 -1
  23. package/dist/web/openhps-rdf.all.es.min.js +1 -1
  24. package/dist/web/openhps-rdf.all.es.min.js.map +1 -1
  25. package/dist/web/openhps-rdf.all.js +57 -17
  26. package/dist/web/openhps-rdf.all.js.map +1 -1
  27. package/dist/web/openhps-rdf.all.min.js +1 -1
  28. package/dist/web/openhps-rdf.all.min.js.map +1 -1
  29. package/dist/web/openhps-rdf.serialization.es.js +60 -18
  30. package/dist/web/openhps-rdf.serialization.es.js.map +1 -1
  31. package/dist/web/openhps-rdf.serialization.es.min.js +1 -1
  32. package/dist/web/openhps-rdf.serialization.es.min.js.map +1 -1
  33. package/dist/web/openhps-rdf.serialization.js +60 -18
  34. package/dist/web/openhps-rdf.serialization.js.map +1 -1
  35. package/dist/web/openhps-rdf.serialization.min.js +1 -1
  36. package/dist/web/openhps-rdf.serialization.min.js.map +1 -1
  37. package/dist/web/openhps-rdf.sparql.es.js +56 -9
  38. package/dist/web/openhps-rdf.sparql.es.js.map +1 -1
  39. package/dist/web/openhps-rdf.sparql.es.min.js +1 -1
  40. package/dist/web/openhps-rdf.sparql.es.min.js.map +1 -1
  41. package/dist/web/openhps-rdf.sparql.js +56 -9
  42. package/dist/web/openhps-rdf.sparql.js.map +1 -1
  43. package/dist/web/openhps-rdf.sparql.min.js +1 -1
  44. package/dist/web/openhps-rdf.sparql.min.js.map +1 -1
  45. package/package.json +4 -2
  46. package/serialization.d.ts +1 -0
  47. package/serialization.js +1 -0
  48. package/src/rdf/RDFSerializer.ts +53 -1
  49. package/src/rdf/SerializableNamedNode.ts +3 -7
  50. package/src/rdf/types.ts +13 -0
  51. package/vocab.d.ts +1 -0
  52. package/vocab.js +1 -0
  53. package/webpack.config.js +87 -0
@@ -477,8 +477,8 @@ class InternalRDFSerializer extends _openhps_core__WEBPACK_IMPORTED_MODULE_0__.S
477
477
  /* harmony import */ var _openhps_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_openhps_core__WEBPACK_IMPORTED_MODULE_0__);
478
478
  /* harmony import */ var _InternalRDFSerializer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./InternalRDFSerializer */ "./dist/esm/rdf/InternalRDFSerializer.js");
479
479
  /* harmony import */ var _InternalRDFDeserializer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./InternalRDFDeserializer */ "./dist/esm/rdf/InternalRDFDeserializer.js");
480
- /* harmony import */ var n3__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! n3 */ "./node_modules/n3/src/N3DataFactory.js");
481
- /* harmony import */ var n3__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! n3 */ "./node_modules/n3/src/N3Store.js");
480
+ /* harmony import */ var n3__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! n3 */ "./node_modules/n3/src/N3Store.js");
481
+ /* harmony import */ var n3__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! n3 */ "./node_modules/n3/src/N3DataFactory.js");
482
482
  /* harmony import */ var n3__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! n3 */ "./node_modules/n3/src/N3Writer.js");
483
483
  /* harmony import */ var _namespaces__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../namespaces */ "./dist/esm/namespaces.js");
484
484
  /* harmony import */ var _vocab__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../vocab */ "./dist/esm/vocab/index.js");
@@ -555,23 +555,70 @@ class RDFSerializer extends _openhps_core__WEBPACK_IMPORTED_MODULE_0__.DataSeria
555
555
  const thing = quadsToThing(subject, store);
556
556
  return this.deserialize(thing);
557
557
  }
558
+ static serializeToSubjects(data, baseUri) {
559
+ const quads = RDFSerializer.serializeToQuads(data, baseUri);
560
+ const store = new n3__WEBPACK_IMPORTED_MODULE_4__["default"](quads);
561
+ const quadSubjects = store.getSubjects(null, null, null);
562
+ function serializePredicates(quadSubject) {
563
+ const quadPredicates = store.getPredicates(quadSubject, null, null);
564
+ return quadPredicates
565
+ .map((quadPredicate) => {
566
+ const quadObjects = store.getObjects(quadSubject, quadPredicate, null);
567
+ const literals = quadObjects
568
+ .filter((obj) => obj instanceof n3__WEBPACK_IMPORTED_MODULE_5__.Literal)
569
+ .filter((obj) => obj.language === '')
570
+ .map((obj) => ({ [obj.datatype.value]: [obj.value] }))
571
+ .reduce((a, b) => (Object.assign(Object.assign({}, a), b)), {});
572
+ const langStrings = quadObjects
573
+ .filter((obj) => obj instanceof n3__WEBPACK_IMPORTED_MODULE_5__.Literal)
574
+ .filter((obj) => obj.language !== '')
575
+ .map((obj) => ({ [obj.language]: [obj.value] }))
576
+ .reduce((a, b) => (Object.assign(Object.assign({}, a), b)), {});
577
+ const namedNodes = quadObjects
578
+ .filter((obj) => obj instanceof n3__WEBPACK_IMPORTED_MODULE_5__.NamedNode)
579
+ .map((obj) => obj.value);
580
+ const blankNodes = quadObjects
581
+ .filter((obj) => obj instanceof n3__WEBPACK_IMPORTED_MODULE_5__.BlankNode)
582
+ .map((obj) => serializePredicates(n3__WEBPACK_IMPORTED_MODULE_5__["default"].blankNode(obj.value)));
583
+ return {
584
+ [quadPredicate.value]: {
585
+ namedNodes,
586
+ blankNodes,
587
+ literals,
588
+ langStrings,
589
+ },
590
+ };
591
+ })
592
+ .reduce((a, b) => (Object.assign(Object.assign({}, a), b)), {});
593
+ }
594
+ const subjects = quadSubjects
595
+ .filter((quadSubject) => quadSubject instanceof n3__WEBPACK_IMPORTED_MODULE_5__.NamedNode)
596
+ .map((quadSubject) => {
597
+ return {
598
+ type: 'Subject',
599
+ url: quadSubject.value,
600
+ predicates: serializePredicates(quadSubject),
601
+ };
602
+ });
603
+ return subjects;
604
+ }
558
605
  static serializeToQuads(data, baseUri) {
559
606
  const thing = data['predicates'] !== undefined ? data : this.serialize(data, baseUri);
560
607
  const subject = thing.termType === 'BlankNode'
561
- ? n3__WEBPACK_IMPORTED_MODULE_4__["default"].blankNode(thing.value)
562
- : n3__WEBPACK_IMPORTED_MODULE_4__["default"].namedNode(thing.value);
608
+ ? n3__WEBPACK_IMPORTED_MODULE_5__["default"].blankNode(thing.value)
609
+ : n3__WEBPACK_IMPORTED_MODULE_5__["default"].namedNode(thing.value);
563
610
  return Object.keys(thing.predicates)
564
611
  .map((predicateIri) => {
565
- const predicate = n3__WEBPACK_IMPORTED_MODULE_4__["default"].namedNode(predicateIri);
612
+ const predicate = n3__WEBPACK_IMPORTED_MODULE_5__["default"].namedNode(predicateIri);
566
613
  return thing.predicates[predicateIri].map((object) => {
567
614
  if (object['predicates'] !== undefined) {
568
615
  return [
569
- n3__WEBPACK_IMPORTED_MODULE_4__["default"].quad(subject, predicate, object),
616
+ n3__WEBPACK_IMPORTED_MODULE_5__["default"].quad(subject, predicate, object),
570
617
  ...this.serializeToQuads(object),
571
618
  ];
572
619
  }
573
620
  else {
574
- return [n3__WEBPACK_IMPORTED_MODULE_4__["default"].quad(subject, predicate, object)];
621
+ return [n3__WEBPACK_IMPORTED_MODULE_5__["default"].quad(subject, predicate, object)];
575
622
  }
576
623
  });
577
624
  })
@@ -582,7 +629,7 @@ class RDFSerializer extends _openhps_core__WEBPACK_IMPORTED_MODULE_0__.DataSeria
582
629
  return __awaiter(this, void 0, void 0, function* () {
583
630
  return new Promise((resolve, reject) => {
584
631
  const quads = this.serializeToQuads(thing, options.baseUri);
585
- const store = new n3__WEBPACK_IMPORTED_MODULE_5__["default"](quads);
632
+ const store = new n3__WEBPACK_IMPORTED_MODULE_4__["default"](quads);
586
633
  const prefixes = Object.assign({ xsd: 'http://www.w3.org/2001/XMLSchema#' }, _namespaces__WEBPACK_IMPORTED_MODULE_6__.namespaces);
587
634
  const ns = Object.keys(prefixes)
588
635
  .map((k) => {
@@ -705,7 +752,7 @@ class RDFSerializer extends _openhps_core__WEBPACK_IMPORTED_MODULE_0__.DataSeria
705
752
  if (identifierMember) {
706
753
  const rdfOptions = identifierMember.options.rdf;
707
754
  uri = rdfOptions.serializer ? rdfOptions.serializer(identifier, dataType) : identifier;
708
- uri = uri && !uri.startsWith('http') && baseUri ? baseUri + uri : n3__WEBPACK_IMPORTED_MODULE_4__["default"].blankNode(uri).value;
755
+ uri = uri && !uri.startsWith('http') && baseUri ? baseUri + uri : n3__WEBPACK_IMPORTED_MODULE_5__["default"].blankNode(uri).value;
709
756
  }
710
757
  else {
711
758
  return baseUri;