@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
@@ -457,8 +457,8 @@ class InternalRDFSerializer extends _openhps_core__WEBPACK_IMPORTED_MODULE_0__.S
457
457
  /* harmony import */ var _openhps_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @openhps/core */ "@openhps/core");
458
458
  /* harmony import */ var _InternalRDFSerializer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./InternalRDFSerializer */ "./dist/esm/rdf/InternalRDFSerializer.js");
459
459
  /* harmony import */ var _InternalRDFDeserializer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./InternalRDFDeserializer */ "./dist/esm/rdf/InternalRDFDeserializer.js");
460
- /* harmony import */ var n3__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! n3 */ "./node_modules/n3/src/N3DataFactory.js");
461
- /* harmony import */ var n3__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! n3 */ "./node_modules/n3/src/N3Store.js");
460
+ /* harmony import */ var n3__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! n3 */ "./node_modules/n3/src/N3Store.js");
461
+ /* harmony import */ var n3__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! n3 */ "./node_modules/n3/src/N3DataFactory.js");
462
462
  /* harmony import */ var n3__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! n3 */ "./node_modules/n3/src/N3Writer.js");
463
463
  /* harmony import */ var _namespaces__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../namespaces */ "./dist/esm/namespaces.js");
464
464
  /* harmony import */ var _vocab__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../vocab */ "./dist/esm/vocab/index.js");
@@ -535,23 +535,70 @@ class RDFSerializer extends _openhps_core__WEBPACK_IMPORTED_MODULE_0__.DataSeria
535
535
  const thing = quadsToThing(subject, store);
536
536
  return this.deserialize(thing);
537
537
  }
538
+ static serializeToSubjects(data, baseUri) {
539
+ const quads = RDFSerializer.serializeToQuads(data, baseUri);
540
+ const store = new n3__WEBPACK_IMPORTED_MODULE_4__["default"](quads);
541
+ const quadSubjects = store.getSubjects(null, null, null);
542
+ function serializePredicates(quadSubject) {
543
+ const quadPredicates = store.getPredicates(quadSubject, null, null);
544
+ return quadPredicates
545
+ .map((quadPredicate) => {
546
+ const quadObjects = store.getObjects(quadSubject, quadPredicate, null);
547
+ const literals = quadObjects
548
+ .filter((obj) => obj instanceof n3__WEBPACK_IMPORTED_MODULE_5__.Literal)
549
+ .filter((obj) => obj.language === '')
550
+ .map((obj) => ({ [obj.datatype.value]: [obj.value] }))
551
+ .reduce((a, b) => (Object.assign(Object.assign({}, a), b)), {});
552
+ const langStrings = quadObjects
553
+ .filter((obj) => obj instanceof n3__WEBPACK_IMPORTED_MODULE_5__.Literal)
554
+ .filter((obj) => obj.language !== '')
555
+ .map((obj) => ({ [obj.language]: [obj.value] }))
556
+ .reduce((a, b) => (Object.assign(Object.assign({}, a), b)), {});
557
+ const namedNodes = quadObjects
558
+ .filter((obj) => obj instanceof n3__WEBPACK_IMPORTED_MODULE_5__.NamedNode)
559
+ .map((obj) => obj.value);
560
+ const blankNodes = quadObjects
561
+ .filter((obj) => obj instanceof n3__WEBPACK_IMPORTED_MODULE_5__.BlankNode)
562
+ .map((obj) => serializePredicates(n3__WEBPACK_IMPORTED_MODULE_5__["default"].blankNode(obj.value)));
563
+ return {
564
+ [quadPredicate.value]: {
565
+ namedNodes,
566
+ blankNodes,
567
+ literals,
568
+ langStrings,
569
+ },
570
+ };
571
+ })
572
+ .reduce((a, b) => (Object.assign(Object.assign({}, a), b)), {});
573
+ }
574
+ const subjects = quadSubjects
575
+ .filter((quadSubject) => quadSubject instanceof n3__WEBPACK_IMPORTED_MODULE_5__.NamedNode)
576
+ .map((quadSubject) => {
577
+ return {
578
+ type: 'Subject',
579
+ url: quadSubject.value,
580
+ predicates: serializePredicates(quadSubject),
581
+ };
582
+ });
583
+ return subjects;
584
+ }
538
585
  static serializeToQuads(data, baseUri) {
539
586
  const thing = data['predicates'] !== undefined ? data : this.serialize(data, baseUri);
540
587
  const subject = thing.termType === 'BlankNode'
541
- ? n3__WEBPACK_IMPORTED_MODULE_4__["default"].blankNode(thing.value)
542
- : n3__WEBPACK_IMPORTED_MODULE_4__["default"].namedNode(thing.value);
588
+ ? n3__WEBPACK_IMPORTED_MODULE_5__["default"].blankNode(thing.value)
589
+ : n3__WEBPACK_IMPORTED_MODULE_5__["default"].namedNode(thing.value);
543
590
  return Object.keys(thing.predicates)
544
591
  .map((predicateIri) => {
545
- const predicate = n3__WEBPACK_IMPORTED_MODULE_4__["default"].namedNode(predicateIri);
592
+ const predicate = n3__WEBPACK_IMPORTED_MODULE_5__["default"].namedNode(predicateIri);
546
593
  return thing.predicates[predicateIri].map((object) => {
547
594
  if (object['predicates'] !== undefined) {
548
595
  return [
549
- n3__WEBPACK_IMPORTED_MODULE_4__["default"].quad(subject, predicate, object),
596
+ n3__WEBPACK_IMPORTED_MODULE_5__["default"].quad(subject, predicate, object),
550
597
  ...this.serializeToQuads(object),
551
598
  ];
552
599
  }
553
600
  else {
554
- return [n3__WEBPACK_IMPORTED_MODULE_4__["default"].quad(subject, predicate, object)];
601
+ return [n3__WEBPACK_IMPORTED_MODULE_5__["default"].quad(subject, predicate, object)];
555
602
  }
556
603
  });
557
604
  })
@@ -562,7 +609,7 @@ class RDFSerializer extends _openhps_core__WEBPACK_IMPORTED_MODULE_0__.DataSeria
562
609
  return __awaiter(this, void 0, void 0, function* () {
563
610
  return new Promise((resolve, reject) => {
564
611
  const quads = this.serializeToQuads(thing, options.baseUri);
565
- const store = new n3__WEBPACK_IMPORTED_MODULE_5__["default"](quads);
612
+ const store = new n3__WEBPACK_IMPORTED_MODULE_4__["default"](quads);
566
613
  const prefixes = Object.assign({ xsd: 'http://www.w3.org/2001/XMLSchema#' }, _namespaces__WEBPACK_IMPORTED_MODULE_6__.namespaces);
567
614
  const ns = Object.keys(prefixes)
568
615
  .map((k) => {
@@ -685,7 +732,7 @@ class RDFSerializer extends _openhps_core__WEBPACK_IMPORTED_MODULE_0__.DataSeria
685
732
  if (identifierMember) {
686
733
  const rdfOptions = identifierMember.options.rdf;
687
734
  uri = rdfOptions.serializer ? rdfOptions.serializer(identifier, dataType) : identifier;
688
- uri = uri && !uri.startsWith('http') && baseUri ? baseUri + uri : n3__WEBPACK_IMPORTED_MODULE_4__["default"].blankNode(uri).value;
735
+ uri = uri && !uri.startsWith('http') && baseUri ? baseUri + uri : n3__WEBPACK_IMPORTED_MODULE_5__["default"].blankNode(uri).value;
689
736
  }
690
737
  else {
691
738
  return baseUri;