glossarist 0.4.49 → 0.4.51
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.
- package/dist/compiled-format.d.ts +43 -0
- package/dist/compiled-format.d.ts.map +1 -0
- package/{src/compiled-format.ts → dist/compiled-format.js} +28 -46
- package/dist/compiled-format.js.map +1 -0
- package/dist/concept-collection.d.ts +39 -0
- package/dist/concept-collection.d.ts.map +1 -0
- package/dist/concept-collection.js +127 -0
- package/dist/concept-collection.js.map +1 -0
- package/dist/concept-diff.d.ts +14 -0
- package/dist/concept-diff.d.ts.map +1 -0
- package/{src/concept-diff.ts → dist/concept-diff.js} +2 -20
- package/dist/concept-diff.js.map +1 -0
- package/dist/concept-parser.d.ts +11 -0
- package/dist/concept-parser.d.ts.map +1 -0
- package/dist/concept-parser.js +209 -0
- package/dist/concept-parser.js.map +1 -0
- package/dist/concept-reader.d.ts +55 -0
- package/dist/concept-reader.d.ts.map +1 -0
- package/{src/concept-reader.ts → dist/concept-reader.js} +70 -76
- package/dist/concept-reader.js.map +1 -0
- package/dist/concept-serializer.d.ts +9 -0
- package/dist/concept-serializer.d.ts.map +1 -0
- package/dist/concept-serializer.js +87 -0
- package/dist/concept-serializer.js.map +1 -0
- package/dist/concept-writer.d.ts +10 -0
- package/dist/concept-writer.d.ts.map +1 -0
- package/dist/concept-writer.js +28 -0
- package/dist/concept-writer.js.map +1 -0
- package/dist/dataset-asset.d.ts +49 -0
- package/dist/dataset-asset.d.ts.map +1 -0
- package/{src/dataset-asset.ts → dist/dataset-asset.js} +16 -33
- package/dist/dataset-asset.js.map +1 -0
- package/dist/diff/canonical-json.d.ts +7 -0
- package/dist/diff/canonical-json.d.ts.map +1 -0
- package/dist/diff/canonical-json.js +28 -0
- package/dist/diff/canonical-json.js.map +1 -0
- package/dist/diff/change.d.ts +67 -0
- package/dist/diff/change.d.ts.map +1 -0
- package/dist/diff/change.js +131 -0
- package/dist/diff/change.js.map +1 -0
- package/dist/diff/collection-diff.d.ts +50 -0
- package/dist/diff/collection-diff.d.ts.map +1 -0
- package/dist/diff/collection-diff.js +182 -0
- package/dist/diff/collection-diff.js.map +1 -0
- package/dist/diff/concept-diff.d.ts +188 -0
- package/dist/diff/concept-diff.d.ts.map +1 -0
- package/dist/diff/concept-diff.js +624 -0
- package/dist/diff/concept-diff.js.map +1 -0
- package/dist/diff/diff-patch.d.ts +7 -0
- package/dist/diff/diff-patch.d.ts.map +1 -0
- package/dist/diff/diff-patch.js +225 -0
- package/dist/diff/diff-patch.js.map +1 -0
- package/dist/diff/diff-renderer.d.ts +44 -0
- package/dist/diff/diff-renderer.d.ts.map +1 -0
- package/dist/diff/diff-renderer.js +263 -0
- package/dist/diff/diff-renderer.js.map +1 -0
- package/dist/diff/identity.d.ts +2 -0
- package/dist/diff/identity.d.ts.map +1 -0
- package/dist/diff/identity.js +29 -0
- package/dist/diff/identity.js.map +1 -0
- package/dist/diff/index.d.ts +8 -0
- package/dist/diff/index.d.ts.map +1 -0
- package/dist/diff/index.js +8 -0
- package/dist/diff/index.js.map +1 -0
- package/dist/diff/list-diff.d.ts +36 -0
- package/dist/diff/list-diff.d.ts.map +1 -0
- package/dist/diff/list-diff.js +185 -0
- package/dist/diff/list-diff.js.map +1 -0
- package/dist/diff/similarity.d.ts +4 -0
- package/dist/diff/similarity.d.ts.map +1 -0
- package/dist/diff/similarity.js +20 -0
- package/dist/diff/similarity.js.map +1 -0
- package/dist/diff/text-diff.d.ts +42 -0
- package/dist/diff/text-diff.d.ts.map +1 -0
- package/dist/diff/text-diff.js +134 -0
- package/dist/diff/text-diff.js.map +1 -0
- package/dist/entity-directory.d.ts +13 -0
- package/dist/entity-directory.d.ts.map +1 -0
- package/dist/entity-directory.js +35 -0
- package/dist/entity-directory.js.map +1 -0
- package/dist/errors.d.ts +15 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +23 -0
- package/dist/errors.js.map +1 -0
- package/dist/gcr-reader.d.ts +57 -0
- package/dist/gcr-reader.d.ts.map +1 -0
- package/dist/gcr-reader.js +264 -0
- package/dist/gcr-reader.js.map +1 -0
- package/dist/gcr-writer.d.ts +23 -0
- package/dist/gcr-writer.d.ts.map +1 -0
- package/dist/gcr-writer.js +84 -0
- package/dist/gcr-writer.js.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/{src/index.ts → dist/index.js} +6 -66
- package/dist/index.js.map +1 -0
- package/dist/managed-concept-collection.d.ts +31 -0
- package/dist/managed-concept-collection.d.ts.map +1 -0
- package/dist/managed-concept-collection.js +87 -0
- package/dist/managed-concept-collection.js.map +1 -0
- package/dist/migration/hyperedge-migrator.d.ts +33 -0
- package/dist/migration/hyperedge-migrator.d.ts.map +1 -0
- package/dist/migration/hyperedge-migrator.js +70 -0
- package/dist/migration/hyperedge-migrator.js.map +1 -0
- package/dist/models/abstract-hyperedge.d.ts +35 -0
- package/dist/models/abstract-hyperedge.d.ts.map +1 -0
- package/dist/models/abstract-hyperedge.js +112 -0
- package/dist/models/abstract-hyperedge.js.map +1 -0
- package/dist/models/base.d.ts +58 -0
- package/dist/models/base.d.ts.map +1 -0
- package/dist/models/base.js +77 -0
- package/dist/models/base.js.map +1 -0
- package/dist/models/bibliography-data.d.ts +20 -0
- package/dist/models/bibliography-data.d.ts.map +1 -0
- package/dist/models/bibliography-data.js +43 -0
- package/dist/models/bibliography-data.js.map +1 -0
- package/dist/models/bibliography-entry.d.ts +19 -0
- package/dist/models/bibliography-entry.d.ts.map +1 -0
- package/dist/models/bibliography-entry.js +34 -0
- package/dist/models/bibliography-entry.js.map +1 -0
- package/dist/models/citation.d.ts +40 -0
- package/dist/models/citation.d.ts.map +1 -0
- package/dist/models/citation.js +82 -0
- package/dist/models/citation.js.map +1 -0
- package/dist/models/completeness.d.ts +9 -0
- package/dist/models/completeness.d.ts.map +1 -0
- package/{src/models/completeness.ts → dist/models/completeness.js} +4 -9
- package/dist/models/completeness.js.map +1 -0
- package/dist/models/concept-date.d.ts +20 -0
- package/dist/models/concept-date.d.ts.map +1 -0
- package/dist/models/concept-date.js +36 -0
- package/dist/models/concept-date.js.map +1 -0
- package/dist/models/concept-ref.d.ts +32 -0
- package/dist/models/concept-ref.d.ts.map +1 -0
- package/dist/models/concept-ref.js +53 -0
- package/dist/models/concept-ref.js.map +1 -0
- package/dist/models/concept-reference.d.ts +22 -0
- package/dist/models/concept-reference.d.ts.map +1 -0
- package/dist/models/concept-reference.js +39 -0
- package/dist/models/concept-reference.js.map +1 -0
- package/dist/models/concept-source.d.ts +53 -0
- package/dist/models/concept-source.d.ts.map +1 -0
- package/dist/models/concept-source.js +66 -0
- package/dist/models/concept-source.js.map +1 -0
- package/dist/models/concept-system-type.d.ts +6 -0
- package/dist/models/concept-system-type.d.ts.map +1 -0
- package/dist/models/concept-system-type.js +22 -0
- package/dist/models/concept-system-type.js.map +1 -0
- package/dist/models/concept-system.d.ts +44 -0
- package/dist/models/concept-system.d.ts.map +1 -0
- package/dist/models/concept-system.js +115 -0
- package/dist/models/concept-system.js.map +1 -0
- package/dist/models/concept-type.d.ts +7 -0
- package/dist/models/concept-type.d.ts.map +1 -0
- package/{src/models/concept-type.ts → dist/models/concept-type.js} +8 -19
- package/dist/models/concept-type.js.map +1 -0
- package/dist/models/concept.d.ts +94 -0
- package/dist/models/concept.d.ts.map +1 -0
- package/dist/models/concept.js +368 -0
- package/dist/models/concept.js.map +1 -0
- package/dist/models/dataset-color.d.ts +28 -0
- package/dist/models/dataset-color.d.ts.map +1 -0
- package/dist/models/dataset-color.js +74 -0
- package/dist/models/dataset-color.js.map +1 -0
- package/dist/models/definition-type.d.ts +9 -0
- package/dist/models/definition-type.d.ts.map +1 -0
- package/{src/models/definition-type.ts → dist/models/definition-type.js} +6 -15
- package/dist/models/definition-type.js.map +1 -0
- package/dist/models/designation-relationship.d.ts +17 -0
- package/dist/models/designation-relationship.d.ts.map +1 -0
- package/dist/models/designation-relationship.js +30 -0
- package/dist/models/designation-relationship.js.map +1 -0
- package/dist/models/designation.d.ts +110 -0
- package/dist/models/designation.d.ts.map +1 -0
- package/dist/models/designation.js +224 -0
- package/dist/models/designation.js.map +1 -0
- package/dist/models/detailed-definition.d.ts +34 -0
- package/dist/models/detailed-definition.d.ts.map +1 -0
- package/dist/models/detailed-definition.js +63 -0
- package/dist/models/detailed-definition.js.map +1 -0
- package/dist/models/enum.d.ts +21 -0
- package/dist/models/enum.d.ts.map +1 -0
- package/dist/models/enum.js +39 -0
- package/dist/models/enum.js.map +1 -0
- package/dist/models/equivalence-degree.d.ts +7 -0
- package/dist/models/equivalence-degree.d.ts.map +1 -0
- package/dist/models/equivalence-degree.js +20 -0
- package/dist/models/equivalence-degree.js.map +1 -0
- package/dist/models/figure.d.ts +40 -0
- package/dist/models/figure.d.ts.map +1 -0
- package/dist/models/figure.js +82 -0
- package/dist/models/figure.js.map +1 -0
- package/dist/models/formula.d.ts +15 -0
- package/dist/models/formula.d.ts.map +1 -0
- package/dist/models/formula.js +27 -0
- package/dist/models/formula.js.map +1 -0
- package/dist/models/gcr-metadata.d.ts +62 -0
- package/dist/models/gcr-metadata.d.ts.map +1 -0
- package/dist/models/gcr-metadata.js +102 -0
- package/dist/models/gcr-metadata.js.map +1 -0
- package/dist/models/gcr-statistics.d.ts +30 -0
- package/dist/models/gcr-statistics.d.ts.map +1 -0
- package/dist/models/gcr-statistics.js +53 -0
- package/dist/models/gcr-statistics.js.map +1 -0
- package/dist/models/generic-hyperedge.d.ts +32 -0
- package/dist/models/generic-hyperedge.d.ts.map +1 -0
- package/dist/models/generic-hyperedge.js +51 -0
- package/dist/models/generic-hyperedge.js.map +1 -0
- package/dist/models/generic-member.d.ts +14 -0
- package/dist/models/generic-member.d.ts.map +1 -0
- package/dist/models/generic-member.js +51 -0
- package/dist/models/generic-member.js.map +1 -0
- package/dist/models/grammar-info.d.ts +34 -0
- package/dist/models/grammar-info.d.ts.map +1 -0
- package/dist/models/grammar-info.js +59 -0
- package/dist/models/grammar-info.js.map +1 -0
- package/dist/models/hyperedge-colors.d.ts +19 -0
- package/dist/models/hyperedge-colors.d.ts.map +1 -0
- package/dist/models/hyperedge-colors.js +61 -0
- package/dist/models/hyperedge-colors.js.map +1 -0
- package/dist/models/hyperedge-index.d.ts +34 -0
- package/dist/models/hyperedge-index.d.ts.map +1 -0
- package/dist/models/hyperedge-index.js +85 -0
- package/dist/models/hyperedge-index.js.map +1 -0
- package/dist/models/hyperedge-member.d.ts +28 -0
- package/dist/models/hyperedge-member.d.ts.map +1 -0
- package/dist/models/hyperedge-member.js +92 -0
- package/dist/models/hyperedge-member.js.map +1 -0
- package/dist/models/hyperedge-registry.d.ts +47 -0
- package/dist/models/hyperedge-registry.d.ts.map +1 -0
- package/dist/models/hyperedge-registry.js +118 -0
- package/dist/models/hyperedge-registry.js.map +1 -0
- package/dist/models/index.d.ts +53 -0
- package/dist/models/index.d.ts.map +1 -0
- package/{src/models/index.ts → dist/models/index.js} +11 -63
- package/dist/models/index.js.map +1 -0
- package/dist/models/locality.d.ts +17 -0
- package/dist/models/locality.d.ts.map +1 -0
- package/dist/models/locality.js +26 -0
- package/dist/models/locality.js.map +1 -0
- package/dist/models/localized-concept.d.ts +102 -0
- package/dist/models/localized-concept.d.ts.map +1 -0
- package/dist/models/localized-concept.js +195 -0
- package/dist/models/localized-concept.js.map +1 -0
- package/dist/models/localized-string.d.ts +5 -0
- package/dist/models/localized-string.d.ts.map +1 -0
- package/dist/models/localized-string.js +20 -0
- package/dist/models/localized-string.js.map +1 -0
- package/dist/models/multiplicity.d.ts +42 -0
- package/dist/models/multiplicity.d.ts.map +1 -0
- package/dist/models/multiplicity.js +84 -0
- package/dist/models/multiplicity.js.map +1 -0
- package/dist/models/non-verb-rep.d.ts +20 -0
- package/dist/models/non-verb-rep.d.ts.map +1 -0
- package/dist/models/non-verb-rep.js +32 -0
- package/dist/models/non-verb-rep.js.map +1 -0
- package/dist/models/non-verbal-entity.d.ts +30 -0
- package/dist/models/non-verbal-entity.d.ts.map +1 -0
- package/dist/models/non-verbal-entity.js +48 -0
- package/dist/models/non-verbal-entity.js.map +1 -0
- package/dist/models/non-verbal-reference.d.ts +23 -0
- package/dist/models/non-verbal-reference.d.ts.map +1 -0
- package/dist/models/non-verbal-reference.js +44 -0
- package/dist/models/non-verbal-reference.js.map +1 -0
- package/dist/models/non-verbal-references.d.ts +12 -0
- package/dist/models/non-verbal-references.d.ts.map +1 -0
- package/dist/models/non-verbal-references.js +20 -0
- package/dist/models/non-verbal-references.js.map +1 -0
- package/dist/models/partitive-count.d.ts +10 -0
- package/dist/models/partitive-count.d.ts.map +1 -0
- package/{src/models/partitive-count.ts → dist/models/partitive-count.js} +5 -9
- package/dist/models/partitive-count.js.map +1 -0
- package/dist/models/partitive-enumeration.d.ts +5 -0
- package/dist/models/partitive-enumeration.d.ts.map +1 -0
- package/dist/models/partitive-enumeration.js +16 -0
- package/dist/models/partitive-enumeration.js.map +1 -0
- package/dist/models/partitive-hyperedge.d.ts +43 -0
- package/dist/models/partitive-hyperedge.d.ts.map +1 -0
- package/dist/models/partitive-hyperedge.js +63 -0
- package/dist/models/partitive-hyperedge.js.map +1 -0
- package/dist/models/partitive-member.d.ts +14 -0
- package/dist/models/partitive-member.d.ts.map +1 -0
- package/dist/models/partitive-member.js +44 -0
- package/dist/models/partitive-member.js.map +1 -0
- package/dist/models/partitive-presence.d.ts +9 -0
- package/dist/models/partitive-presence.d.ts.map +1 -0
- package/{src/models/partitive-presence.ts → dist/models/partitive-presence.js} +4 -8
- package/dist/models/partitive-presence.js.map +1 -0
- package/dist/models/plurality-marker.d.ts +5 -0
- package/dist/models/plurality-marker.d.ts.map +1 -0
- package/dist/models/plurality-marker.js +20 -0
- package/dist/models/plurality-marker.js.map +1 -0
- package/dist/models/pronunciation.d.ts +19 -0
- package/dist/models/pronunciation.d.ts.map +1 -0
- package/dist/models/pronunciation.js +34 -0
- package/dist/models/pronunciation.js.map +1 -0
- package/dist/models/register.d.ts +104 -0
- package/dist/models/register.d.ts.map +1 -0
- package/dist/models/register.js +297 -0
- package/dist/models/register.js.map +1 -0
- package/dist/models/registrable.d.ts +25 -0
- package/dist/models/registrable.d.ts.map +1 -0
- package/dist/models/registrable.js +23 -0
- package/dist/models/registrable.js.map +1 -0
- package/dist/models/related-concept.d.ts +33 -0
- package/dist/models/related-concept.d.ts.map +1 -0
- package/dist/models/related-concept.js +95 -0
- package/dist/models/related-concept.js.map +1 -0
- package/dist/models/relation-categories.d.ts +38 -0
- package/dist/models/relation-categories.d.ts.map +1 -0
- package/dist/models/relation-categories.js +135 -0
- package/dist/models/relation-categories.js.map +1 -0
- package/dist/models/relation-colors.d.ts +35 -0
- package/dist/models/relation-colors.d.ts.map +1 -0
- package/dist/models/relation-colors.js +68 -0
- package/dist/models/relation-colors.js.map +1 -0
- package/dist/models/relation-loader.d.ts +41 -0
- package/dist/models/relation-loader.d.ts.map +1 -0
- package/dist/models/relation-loader.js +101 -0
- package/dist/models/relation-loader.js.map +1 -0
- package/dist/models/section.d.ts +22 -0
- package/dist/models/section.d.ts.map +1 -0
- package/dist/models/section.js +47 -0
- package/dist/models/section.js.map +1 -0
- package/dist/models/sequential-hyperedge.d.ts +32 -0
- package/dist/models/sequential-hyperedge.d.ts.map +1 -0
- package/dist/models/sequential-hyperedge.js +49 -0
- package/dist/models/sequential-hyperedge.js.map +1 -0
- package/dist/models/sequential-member.d.ts +8 -0
- package/dist/models/sequential-member.d.ts.map +1 -0
- package/{src/models/sequential-member.ts → dist/models/sequential-member.js} +4 -9
- package/dist/models/sequential-member.js.map +1 -0
- package/dist/models/shared-non-verbal-entity.d.ts +16 -0
- package/dist/models/shared-non-verbal-entity.d.ts.map +1 -0
- package/dist/models/shared-non-verbal-entity.js +28 -0
- package/dist/models/shared-non-verbal-entity.js.map +1 -0
- package/dist/models/table.d.ts +15 -0
- package/dist/models/table.d.ts.map +1 -0
- package/dist/models/table.js +27 -0
- package/dist/models/table.js.map +1 -0
- package/dist/rdf/agents-emitter.d.ts +37 -0
- package/dist/rdf/agents-emitter.d.ts.map +1 -0
- package/dist/rdf/agents-emitter.js +107 -0
- package/dist/rdf/agents-emitter.js.map +1 -0
- package/dist/rdf/bibliography-emitter.d.ts +16 -0
- package/dist/rdf/bibliography-emitter.d.ts.map +1 -0
- package/dist/rdf/bibliography-emitter.js +84 -0
- package/dist/rdf/bibliography-emitter.js.map +1 -0
- package/dist/rdf/bnode-id.d.ts +2 -0
- package/dist/rdf/bnode-id.d.ts.map +1 -0
- package/dist/rdf/bnode-id.js +57 -0
- package/dist/rdf/bnode-id.js.map +1 -0
- package/dist/rdf/build-activity-emitter.d.ts +42 -0
- package/dist/rdf/build-activity-emitter.d.ts.map +1 -0
- package/dist/rdf/build-activity-emitter.js +103 -0
- package/dist/rdf/build-activity-emitter.js.map +1 -0
- package/dist/rdf/curie.d.ts +7 -0
- package/dist/rdf/curie.d.ts.map +1 -0
- package/dist/rdf/curie.js +45 -0
- package/dist/rdf/curie.js.map +1 -0
- package/dist/rdf/dataset-emitter.d.ts +37 -0
- package/dist/rdf/dataset-emitter.d.ts.map +1 -0
- package/dist/rdf/dataset-emitter.js +126 -0
- package/dist/rdf/dataset-emitter.js.map +1 -0
- package/dist/rdf/deterministic-id.d.ts +3 -0
- package/dist/rdf/deterministic-id.d.ts.map +1 -0
- package/dist/rdf/deterministic-id.js +68 -0
- package/dist/rdf/deterministic-id.js.map +1 -0
- package/dist/rdf/document-writer.d.ts +11 -0
- package/dist/rdf/document-writer.d.ts.map +1 -0
- package/dist/rdf/document-writer.js +77 -0
- package/dist/rdf/document-writer.js.map +1 -0
- package/dist/rdf/gloss-concept.d.ts +27 -0
- package/dist/rdf/gloss-concept.d.ts.map +1 -0
- package/dist/rdf/gloss-concept.js +95 -0
- package/dist/rdf/gloss-concept.js.map +1 -0
- package/dist/rdf/gloss-designation.d.ts +17 -0
- package/dist/rdf/gloss-designation.d.ts.map +1 -0
- package/dist/rdf/gloss-designation.js +46 -0
- package/dist/rdf/gloss-designation.js.map +1 -0
- package/dist/rdf/gloss-detailed-definition.d.ts +14 -0
- package/dist/rdf/gloss-detailed-definition.d.ts.map +1 -0
- package/dist/rdf/gloss-detailed-definition.js +53 -0
- package/dist/rdf/gloss-detailed-definition.js.map +1 -0
- package/dist/rdf/gloss-generic-hyperedge.d.ts +27 -0
- package/dist/rdf/gloss-generic-hyperedge.d.ts.map +1 -0
- package/{src/rdf/gloss-generic-hyperedge.ts → dist/rdf/gloss-generic-hyperedge.js} +36 -50
- package/dist/rdf/gloss-generic-hyperedge.js.map +1 -0
- package/dist/rdf/gloss-localized-concept.d.ts +24 -0
- package/dist/rdf/gloss-localized-concept.d.ts.map +1 -0
- package/dist/rdf/gloss-localized-concept.js +71 -0
- package/dist/rdf/gloss-localized-concept.js.map +1 -0
- package/dist/rdf/gloss-non-verbal-rep.d.ts +33 -0
- package/dist/rdf/gloss-non-verbal-rep.d.ts.map +1 -0
- package/dist/rdf/gloss-non-verbal-rep.js +163 -0
- package/dist/rdf/gloss-non-verbal-rep.js.map +1 -0
- package/dist/rdf/gloss-partitive-member.d.ts +8 -0
- package/dist/rdf/gloss-partitive-member.d.ts.map +1 -0
- package/{src/rdf/gloss-partitive-member.ts → dist/rdf/gloss-partitive-member.js} +23 -41
- package/dist/rdf/gloss-partitive-member.js.map +1 -0
- package/dist/rdf/gloss-partitive-relation.d.ts +26 -0
- package/dist/rdf/gloss-partitive-relation.d.ts.map +1 -0
- package/dist/rdf/gloss-partitive-relation.js +73 -0
- package/dist/rdf/gloss-partitive-relation.js.map +1 -0
- package/dist/rdf/gloss-source.d.ts +23 -0
- package/dist/rdf/gloss-source.d.ts.map +1 -0
- package/dist/rdf/gloss-source.js +52 -0
- package/dist/rdf/gloss-source.js.map +1 -0
- package/dist/rdf/group-emitter.d.ts +46 -0
- package/dist/rdf/group-emitter.d.ts.map +1 -0
- package/dist/rdf/group-emitter.js +107 -0
- package/dist/rdf/group-emitter.js.map +1 -0
- package/dist/rdf/image-variant-emitter.d.ts +12 -0
- package/dist/rdf/image-variant-emitter.d.ts.map +1 -0
- package/dist/rdf/image-variant-emitter.js +55 -0
- package/dist/rdf/image-variant-emitter.js.map +1 -0
- package/dist/rdf/index.d.ts +26 -0
- package/dist/rdf/index.d.ts.map +1 -0
- package/{src/rdf/index.ts → dist/rdf/index.js} +8 -37
- package/dist/rdf/index.js.map +1 -0
- package/dist/rdf/normalize-enum.d.ts +3 -0
- package/dist/rdf/normalize-enum.d.ts.map +1 -0
- package/{src/rdf/normalize-enum.ts → dist/rdf/normalize-enum.js} +11 -10
- package/dist/rdf/normalize-enum.js.map +1 -0
- package/dist/rdf/predicates.d.ts +277 -0
- package/dist/rdf/predicates.d.ts.map +1 -0
- package/dist/rdf/predicates.js +279 -0
- package/dist/rdf/predicates.js.map +1 -0
- package/dist/rdf/prefixes.d.ts +16 -0
- package/dist/rdf/prefixes.d.ts.map +1 -0
- package/{src/rdf/prefixes.ts → dist/rdf/prefixes.js} +10 -12
- package/dist/rdf/prefixes.js.map +1 -0
- package/dist/rdf/provenance-emitter.d.ts +28 -0
- package/dist/rdf/provenance-emitter.d.ts.map +1 -0
- package/dist/rdf/provenance-emitter.js +74 -0
- package/dist/rdf/provenance-emitter.js.map +1 -0
- package/dist/rdf/sections-builder.d.ts +17 -0
- package/dist/rdf/sections-builder.d.ts.map +1 -0
- package/dist/rdf/sections-builder.js +137 -0
- package/dist/rdf/sections-builder.js.map +1 -0
- package/dist/rdf/shacl-entry.d.ts +2 -0
- package/dist/rdf/shacl-entry.d.ts.map +1 -0
- package/{src/rdf/shacl-entry.ts → dist/rdf/shacl-entry.js} +1 -1
- package/dist/rdf/shacl-entry.js.map +1 -0
- package/dist/rdf/shacl.d.ts +10 -0
- package/dist/rdf/shacl.d.ts.map +1 -0
- package/{src/rdf/shacl.ts → dist/rdf/shacl.js} +38 -56
- package/dist/rdf/shacl.js.map +1 -0
- package/dist/rdf/terms.d.ts +10 -0
- package/dist/rdf/terms.d.ts.map +1 -0
- package/{src/rdf/terms.ts → dist/rdf/terms.js} +6 -3
- package/dist/rdf/terms.js.map +1 -0
- package/dist/rdf/version-emitter.d.ts +57 -0
- package/dist/rdf/version-emitter.d.ts.map +1 -0
- package/dist/rdf/version-emitter.js +68 -0
- package/dist/rdf/version-emitter.js.map +1 -0
- package/dist/rdf/vocabulary-emitter.d.ts +32 -0
- package/dist/rdf/vocabulary-emitter.d.ts.map +1 -0
- package/dist/rdf/vocabulary-emitter.js +46 -0
- package/dist/rdf/vocabulary-emitter.js.map +1 -0
- package/dist/rdf/write-turtle-sync.d.ts +7 -0
- package/dist/rdf/write-turtle-sync.d.ts.map +1 -0
- package/dist/rdf/write-turtle-sync.js +130 -0
- package/dist/rdf/write-turtle-sync.js.map +1 -0
- package/dist/reference-mention.d.ts +49 -0
- package/dist/reference-mention.d.ts.map +1 -0
- package/dist/reference-mention.js +98 -0
- package/dist/reference-mention.js.map +1 -0
- package/dist/reference-resolver.d.ts +52 -0
- package/dist/reference-resolver.d.ts.map +1 -0
- package/dist/reference-resolver.js +311 -0
- package/dist/reference-resolver.js.map +1 -0
- package/dist/render-classification.d.ts +19 -0
- package/dist/render-classification.d.ts.map +1 -0
- package/dist/render-classification.js +82 -0
- package/dist/render-classification.js.map +1 -0
- package/dist/sort.d.ts +5 -0
- package/dist/sort.d.ts.map +1 -0
- package/dist/sort.js +25 -0
- package/dist/sort.js.map +1 -0
- package/dist/transforms/concept-to-gloss.transform.d.ts +32 -0
- package/dist/transforms/concept-to-gloss.transform.d.ts.map +1 -0
- package/dist/transforms/concept-to-gloss.transform.js +60 -0
- package/dist/transforms/concept-to-gloss.transform.js.map +1 -0
- package/dist/transforms/index.d.ts +2 -0
- package/dist/transforms/index.d.ts.map +1 -0
- package/{src/transforms/index.ts → dist/transforms/index.js} +1 -0
- package/dist/transforms/index.js.map +1 -0
- package/dist/utils/assertions.d.ts +4 -0
- package/dist/utils/assertions.d.ts.map +1 -0
- package/dist/utils/assertions.js +17 -0
- package/dist/utils/assertions.js.map +1 -0
- package/dist/uuid.d.ts +4 -0
- package/dist/uuid.d.ts.map +1 -0
- package/dist/uuid.js +23 -0
- package/dist/uuid.js.map +1 -0
- package/dist/v1-reader.d.ts +8 -0
- package/dist/v1-reader.d.ts.map +1 -0
- package/dist/v1-reader.js +56 -0
- package/dist/v1-reader.js.map +1 -0
- package/dist/validators/asset-index.d.ts +23 -0
- package/dist/validators/asset-index.d.ts.map +1 -0
- package/dist/validators/asset-index.js +58 -0
- package/dist/validators/asset-index.js.map +1 -0
- package/dist/validators/binary-has-part-redundancy-rule.d.ts +8 -0
- package/dist/validators/binary-has-part-redundancy-rule.d.ts.map +1 -0
- package/dist/validators/binary-has-part-redundancy-rule.js +57 -0
- package/dist/validators/binary-has-part-redundancy-rule.js.map +1 -0
- package/dist/validators/concept-validator.d.ts +21 -0
- package/dist/validators/concept-validator.d.ts.map +1 -0
- package/dist/validators/concept-validator.js +76 -0
- package/dist/validators/concept-validator.js.map +1 -0
- package/dist/validators/delimiting-coherence-rule.d.ts +8 -0
- package/dist/validators/delimiting-coherence-rule.d.ts.map +1 -0
- package/dist/validators/delimiting-coherence-rule.js +72 -0
- package/dist/validators/delimiting-coherence-rule.js.map +1 -0
- package/dist/validators/external-concept-shape-rule.d.ts +8 -0
- package/dist/validators/external-concept-shape-rule.d.ts.map +1 -0
- package/dist/validators/external-concept-shape-rule.js +48 -0
- package/dist/validators/external-concept-shape-rule.js.map +1 -0
- package/dist/validators/gcr-validator.d.ts +11 -0
- package/dist/validators/gcr-validator.d.ts.map +1 -0
- package/dist/validators/gcr-validator.js +76 -0
- package/dist/validators/gcr-validator.js.map +1 -0
- package/dist/validators/hyperedge-coherence-rule.d.ts +9 -0
- package/dist/validators/hyperedge-coherence-rule.d.ts.map +1 -0
- package/dist/validators/hyperedge-coherence-rule.js +78 -0
- package/dist/validators/hyperedge-coherence-rule.js.map +1 -0
- package/dist/validators/index.d.ts +21 -0
- package/dist/validators/index.d.ts.map +1 -0
- package/{src/validators/index.ts → dist/validators/index.js} +25 -51
- package/dist/validators/index.js.map +1 -0
- package/dist/validators/partitive-relation-coherence-rule.d.ts +2 -0
- package/dist/validators/partitive-relation-coherence-rule.d.ts.map +1 -0
- package/{src/validators/partitive-relation-coherence-rule.ts → dist/validators/partitive-relation-coherence-rule.js} +1 -1
- package/dist/validators/partitive-relation-coherence-rule.js.map +1 -0
- package/dist/validators/ref-keys.d.ts +8 -0
- package/dist/validators/ref-keys.d.ts.map +1 -0
- package/dist/validators/ref-keys.js +27 -0
- package/dist/validators/ref-keys.js.map +1 -0
- package/dist/validators/register-validator.d.ts +10 -0
- package/dist/validators/register-validator.d.ts.map +1 -0
- package/dist/validators/register-validator.js +18 -0
- package/dist/validators/register-validator.js.map +1 -0
- package/dist/validators/relationship-type-rule.d.ts +13 -0
- package/dist/validators/relationship-type-rule.d.ts.map +1 -0
- package/dist/validators/relationship-type-rule.js +34 -0
- package/dist/validators/relationship-type-rule.js.map +1 -0
- package/dist/validators/sourced-from-locality-rule.d.ts +8 -0
- package/dist/validators/sourced-from-locality-rule.d.ts.map +1 -0
- package/dist/validators/sourced-from-locality-rule.js +37 -0
- package/dist/validators/sourced-from-locality-rule.js.map +1 -0
- package/dist/validators/v3-rules.d.ts +60 -0
- package/dist/validators/v3-rules.d.ts.map +1 -0
- package/dist/validators/v3-rules.js +327 -0
- package/dist/validators/v3-rules.js.map +1 -0
- package/dist/validators/validation-error.d.ts +13 -0
- package/dist/validators/validation-error.d.ts.map +1 -0
- package/dist/validators/validation-error.js +17 -0
- package/dist/validators/validation-error.js.map +1 -0
- package/dist/validators/validation-result.d.ts +17 -0
- package/dist/validators/validation-result.d.ts.map +1 -0
- package/dist/validators/validation-result.js +47 -0
- package/dist/validators/validation-result.js.map +1 -0
- package/dist/validators/validation-rule.d.ts +10 -0
- package/dist/validators/validation-rule.d.ts.map +1 -0
- package/dist/validators/validation-rule.js +17 -0
- package/dist/validators/validation-rule.js.map +1 -0
- package/package.json +37 -42
- package/src/concept-collection.ts +0 -166
- package/src/concept-parser.ts +0 -229
- package/src/concept-reader.d.ts +0 -13
- package/src/concept-serializer.ts +0 -99
- package/src/concept-writer.d.ts +0 -7
- package/src/concept-writer.ts +0 -43
- package/src/diff/canonical-json.ts +0 -29
- package/src/diff/change.ts +0 -175
- package/src/diff/collection-diff.ts +0 -197
- package/src/diff/concept-diff.ts +0 -702
- package/src/diff/diff-patch.ts +0 -260
- package/src/diff/diff-renderer.ts +0 -293
- package/src/diff/identity.ts +0 -33
- package/src/diff/index.d.ts +0 -242
- package/src/diff/index.ts +0 -50
- package/src/diff/list-diff.ts +0 -231
- package/src/diff/similarity.ts +0 -20
- package/src/diff/text-diff.ts +0 -167
- package/src/entity-directory.ts +0 -43
- package/src/errors.d.ts +0 -11
- package/src/errors.ts +0 -24
- package/src/gcr-reader.d.ts +0 -65
- package/src/gcr-reader.ts +0 -487
- package/src/gcr-writer.d.ts +0 -22
- package/src/gcr-writer.ts +0 -97
- package/src/index.d.ts +0 -124
- package/src/managed-concept-collection.ts +0 -95
- package/src/migration/hyperedge-migrator.ts +0 -104
- package/src/models/abstract-hyperedge.ts +0 -164
- package/src/models/base.ts +0 -110
- package/src/models/bibliography-data.ts +0 -64
- package/src/models/bibliography-entry.ts +0 -40
- package/src/models/citation.ts +0 -98
- package/src/models/concept-date.ts +0 -48
- package/src/models/concept-ref.ts +0 -64
- package/src/models/concept-reference.ts +0 -50
- package/src/models/concept-source.ts +0 -96
- package/src/models/concept-system-type.ts +0 -39
- package/src/models/concept-system.ts +0 -152
- package/src/models/concept.ts +0 -499
- package/src/models/dataset-color.ts +0 -88
- package/src/models/designation-relationship.ts +0 -39
- package/src/models/designation.ts +0 -297
- package/src/models/detailed-definition.ts +0 -92
- package/src/models/enum.ts +0 -60
- package/src/models/equivalence-degree.ts +0 -34
- package/src/models/figure.ts +0 -110
- package/src/models/formula.ts +0 -36
- package/src/models/gcr-metadata.ts +0 -118
- package/src/models/gcr-statistics.ts +0 -76
- package/src/models/generic-hyperedge.ts +0 -72
- package/src/models/generic-member.ts +0 -80
- package/src/models/grammar-info.ts +0 -78
- package/src/models/hyperedge-colors.ts +0 -87
- package/src/models/hyperedge-index.ts +0 -101
- package/src/models/hyperedge-member.ts +0 -121
- package/src/models/hyperedge-registry.ts +0 -145
- package/src/models/index.d.ts +0 -586
- package/src/models/locality.ts +0 -34
- package/src/models/localized-concept.ts +0 -284
- package/src/models/localized-string.ts +0 -32
- package/src/models/multiplicity.ts +0 -134
- package/src/models/non-verb-rep.ts +0 -48
- package/src/models/non-verbal-entity.ts +0 -65
- package/src/models/non-verbal-reference.ts +0 -73
- package/src/models/non-verbal-references.ts +0 -29
- package/src/models/partitive-enumeration.ts +0 -27
- package/src/models/partitive-hyperedge.ts +0 -90
- package/src/models/partitive-member.ts +0 -56
- package/src/models/plurality-marker.ts +0 -31
- package/src/models/pronunciation.ts +0 -40
- package/src/models/register.ts +0 -315
- package/src/models/registrable.ts +0 -48
- package/src/models/related-concept.ts +0 -117
- package/src/models/relation-categories.ts +0 -167
- package/src/models/relation-colors.ts +0 -90
- package/src/models/relation-loader.ts +0 -115
- package/src/models/section.ts +0 -61
- package/src/models/sequential-hyperedge.ts +0 -70
- package/src/models/shared-non-verbal-entity.ts +0 -36
- package/src/models/table.ts +0 -36
- package/src/rdf/agents-emitter.ts +0 -134
- package/src/rdf/bibliography-emitter.ts +0 -126
- package/src/rdf/bnode-id.ts +0 -55
- package/src/rdf/build-activity-emitter.ts +0 -129
- package/src/rdf/curie.ts +0 -47
- package/src/rdf/dataset-emitter.ts +0 -170
- package/src/rdf/deterministic-id.ts +0 -69
- package/src/rdf/document-writer.ts +0 -87
- package/src/rdf/gloss-concept.ts +0 -115
- package/src/rdf/gloss-designation.ts +0 -72
- package/src/rdf/gloss-detailed-definition.ts +0 -69
- package/src/rdf/gloss-localized-concept.ts +0 -79
- package/src/rdf/gloss-non-verbal-rep.ts +0 -192
- package/src/rdf/gloss-partitive-relation.ts +0 -89
- package/src/rdf/gloss-source.ts +0 -56
- package/src/rdf/group-emitter.ts +0 -133
- package/src/rdf/image-variant-emitter.ts +0 -80
- package/src/rdf/index.d.ts +0 -371
- package/src/rdf/predicates.d.ts +0 -527
- package/src/rdf/predicates.ts +0 -287
- package/src/rdf/provenance-emitter.ts +0 -87
- package/src/rdf/sections-builder.ts +0 -178
- package/src/rdf/shacl-entry.d.ts +0 -6
- package/src/rdf/version-emitter.ts +0 -97
- package/src/rdf/vocabulary-emitter.ts +0 -67
- package/src/rdf/write-turtle-sync.ts +0 -167
- package/src/reference-mention.ts +0 -114
- package/src/reference-resolver.ts +0 -331
- package/src/render-classification.ts +0 -76
- package/src/sort.ts +0 -22
- package/src/transforms/concept-to-gloss.transform.ts +0 -81
- package/src/transforms/index.d.ts +0 -26
- package/src/uuid.ts +0 -32
- package/src/v1-reader.ts +0 -64
- package/src/validators/asset-index.ts +0 -67
- package/src/validators/binary-has-part-redundancy-rule.ts +0 -67
- package/src/validators/concept-validator.ts +0 -93
- package/src/validators/delimiting-coherence-rule.ts +0 -105
- package/src/validators/external-concept-shape-rule.ts +0 -60
- package/src/validators/gcr-validator.ts +0 -75
- package/src/validators/hyperedge-coherence-rule.ts +0 -98
- package/src/validators/index.d.ts +0 -43
- package/src/validators/ref-keys.ts +0 -31
- package/src/validators/register-validator.ts +0 -18
- package/src/validators/relationship-type-rule.ts +0 -39
- package/src/validators/sourced-from-locality-rule.ts +0 -53
- package/src/validators/v3-rules.ts +0 -378
- package/src/validators/validation-error.ts +0 -19
- package/src/validators/validation-result.ts +0 -52
- package/src/validators/validation-rule.ts +0 -21
|
@@ -1,192 +0,0 @@
|
|
|
1
|
-
// @ts-nocheck — TEMPORARY during TS migration. TODO(Phase 2e): remove and type fully.
|
|
2
|
-
// NonVerbal entity → RDF quads. Mirrors the v3.1.0 concept-model
|
|
3
|
-
// NonVerbal class hierarchy. Two distinct shapes:
|
|
4
|
-
//
|
|
5
|
-
// 1. Legacy `gloss:NonVerbalRepresentation` (NonVerbRep) — a child of
|
|
6
|
-
// LocalizedConcept with a positional bnode subject. Carries
|
|
7
|
-
// `representationType`, `representationRef`, `representationText`.
|
|
8
|
-
//
|
|
9
|
-
// 2. Dataset-level `gloss:Figure` / `gloss:Table` / `gloss:Formula`
|
|
10
|
-
// (SharedNonVerbalEntity subtypes) — first-class resources with
|
|
11
|
-
// their own URIs. Carries caption, description, altText, sources,
|
|
12
|
-
// plus subtype-specific fields (Figure: images + subfigures;
|
|
13
|
-
// Table: content + format; Formula: expression + notation +
|
|
14
|
-
// latexForm).
|
|
15
|
-
//
|
|
16
|
-
// The dispatch on the entity's `rdfClass()` follows the same OCP
|
|
17
|
-
// pattern as Designation — a new subtype registers without editing
|
|
18
|
-
// this emitter.
|
|
19
|
-
import { PRED, PREFIXES } from './predicates.js';
|
|
20
|
-
import { WELL_KNOWN } from './prefixes.js';
|
|
21
|
-
import { deterministicBnode } from './deterministic-id.js';
|
|
22
|
-
import { namedNode, literal, quad } from './terms.js';
|
|
23
|
-
import { conceptSourceToQuads } from './gloss-source.js';
|
|
24
|
-
|
|
25
|
-
const DCTERMS_DESCRIPTION = `${PREFIXES.dcterms}description`;
|
|
26
|
-
const DCTERMS_FORMAT = `${PREFIXES.dcterms}format`;
|
|
27
|
-
const XSD_STRING = `${PREFIXES.xsd}string`;
|
|
28
|
-
|
|
29
|
-
// ── Legacy NonVerbRep (concept-local, positional) ──────────────────────
|
|
30
|
-
|
|
31
|
-
// Emits a `gloss:NonVerbalRepresentation` blank node linked from the
|
|
32
|
-
// parent localized concept via `gloss:hasNonVerbalRep`. Mirrors the
|
|
33
|
-
// Ruby `Rdf::GlossNonVerbalRep` shape: type/ref/text plus sources.
|
|
34
|
-
export function* nonVerbalRepToQuads(nvr, { parentUri, index, language = null }) {
|
|
35
|
-
const subject = deterministicBnode(parentUri, 'nvr', index);
|
|
36
|
-
|
|
37
|
-
yield quad(namedNode(parentUri), namedNode(PRED.gloss.hasNonVerbalRep), namedNode(subject));
|
|
38
|
-
yield quad(namedNode(subject), namedNode(WELL_KNOWN.rdfType), namedNode(`${PRED.gloss.$ns}${nvr.rdfClass()}`));
|
|
39
|
-
|
|
40
|
-
if (nvr.type) {
|
|
41
|
-
yield quad(namedNode(subject), namedNode(PRED.gloss.representationType), literal(nvr.type, XSD_STRING));
|
|
42
|
-
}
|
|
43
|
-
for (const image of nvr.images ?? []) {
|
|
44
|
-
if (image.src) {
|
|
45
|
-
yield quad(namedNode(subject), namedNode(PRED.gloss.image), literal(image.src, XSD_STRING));
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
if (nvr.caption) {
|
|
49
|
-
yield quad(namedNode(subject), namedNode(PRED.gloss.caption), literal(nvr.caption, language));
|
|
50
|
-
}
|
|
51
|
-
if (nvr.description) {
|
|
52
|
-
yield quad(namedNode(subject), namedNode(DCTERMS_DESCRIPTION), literal(nvr.description, language));
|
|
53
|
-
}
|
|
54
|
-
if (nvr.alt) {
|
|
55
|
-
yield quad(namedNode(subject), namedNode(PRED.gloss.altText), literal(nvr.alt, language));
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
let srcIndex = 0;
|
|
59
|
-
for (const source of nvr.sources ?? []) {
|
|
60
|
-
yield* conceptSourceToQuads(source, { subjectUri: subject, index: srcIndex });
|
|
61
|
-
srcIndex += 1;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
// ── Dataset-level Figure / Table / Formula ────────────────────────────
|
|
66
|
-
|
|
67
|
-
// URI scheme: `<uriBase>/<registerId>/<kind>/<id>` where `kind` is the
|
|
68
|
-
// entity's rdfClass() lowercased (figure/table/formula). Stable across
|
|
69
|
-
// runs and consumers.
|
|
70
|
-
export function nonVerbalEntityUri(entity, { registerId, uriBase }) {
|
|
71
|
-
const id = String(entity.id ?? entity.identifier ?? '');
|
|
72
|
-
const kind = String(entity.rdfClass() ?? 'NonVerbalEntity').toLowerCase();
|
|
73
|
-
const base = String(uriBase ?? '').replace(/\/+$/, '');
|
|
74
|
-
return `${base}/${registerId}/${kind}/${id}`;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
// Emits a dataset-level NonVerbalEntity (Figure/Table/Formula) as a
|
|
78
|
-
// first-class resource. Calls into subtype-specific emitters via the
|
|
79
|
-
// entity's class identity — OCP: a new subtype adds a branch in
|
|
80
|
-
// `subtypeQuadsFor` without changing the public entry point.
|
|
81
|
-
export function* nonVerbalEntityToQuads(entity, options) {
|
|
82
|
-
const subjectUri = nonVerbalEntityUri(entity, options);
|
|
83
|
-
const s = namedNode(subjectUri);
|
|
84
|
-
|
|
85
|
-
yield quad(s, namedNode(WELL_KNOWN.rdfType), namedNode(`${PRED.gloss.$ns}${entity.rdfClass()}`));
|
|
86
|
-
|
|
87
|
-
if (entity.caption) {
|
|
88
|
-
yield quad(s, namedNode(PRED.gloss.caption), literal(entity.caption, null));
|
|
89
|
-
}
|
|
90
|
-
if (entity.description) {
|
|
91
|
-
yield quad(s, namedNode(DCTERMS_DESCRIPTION), literal(entity.description, null));
|
|
92
|
-
}
|
|
93
|
-
if (entity.alt) {
|
|
94
|
-
yield quad(s, namedNode(PRED.gloss.altText), literal(entity.alt, null));
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
yield* subtypeQuadsFor(entity, s, options);
|
|
98
|
-
|
|
99
|
-
let srcIndex = 0;
|
|
100
|
-
for (const source of entity.sources ?? []) {
|
|
101
|
-
yield* conceptSourceToQuads(source, { subjectUri, index: srcIndex });
|
|
102
|
-
srcIndex += 1;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
// Dispatch table: maps the entity's rdfClass() local name to a
|
|
107
|
-
// subtype-specific quad generator. Adding a new subtype = adding a
|
|
108
|
-
// branch here + an rdfClass() override on the model class.
|
|
109
|
-
function* subtypeQuadsFor(entity, s, options) {
|
|
110
|
-
switch (entity.rdfClass()) {
|
|
111
|
-
case 'Figure': yield* figureQuads(entity, s, options); break;
|
|
112
|
-
case 'Table': yield* tableQuads(entity, s); break;
|
|
113
|
-
case 'Formula': yield* formulaQuads(entity, s); break;
|
|
114
|
-
// NonVerbalEntity base or unknown — no subtype-specific quads.
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
function* figureQuads(figure, s, options) {
|
|
119
|
-
let imgIndex = 0;
|
|
120
|
-
for (const image of figure.images ?? []) {
|
|
121
|
-
const imgSubject = deterministicBnode(s.value, 'image', imgIndex);
|
|
122
|
-
yield quad(s, namedNode(PRED.gloss.image), namedNode(imgSubject));
|
|
123
|
-
yield quad(namedNode(imgSubject), namedNode(WELL_KNOWN.rdfType), namedNode(PRED.gloss.FigureImage));
|
|
124
|
-
if (image.src) {
|
|
125
|
-
yield quad(namedNode(imgSubject), namedNode(PRED.gloss.src), literal(image.src, XSD_STRING));
|
|
126
|
-
}
|
|
127
|
-
if (image.format) {
|
|
128
|
-
yield quad(namedNode(imgSubject), namedNode(DCTERMS_FORMAT), literal(image.format, XSD_STRING));
|
|
129
|
-
}
|
|
130
|
-
if (image.role) {
|
|
131
|
-
yield quad(namedNode(imgSubject), namedNode(PRED.gloss.role), literal(image.role, XSD_STRING));
|
|
132
|
-
}
|
|
133
|
-
imgIndex += 1;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
let subIndex = 0;
|
|
137
|
-
for (const sub of figure.subfigures ?? []) {
|
|
138
|
-
const subSubject = deterministicBnode(s.value, 'subfig', subIndex);
|
|
139
|
-
yield quad(s, namedNode(PRED.gloss.hasSubfigure), namedNode(subSubject));
|
|
140
|
-
// Subfigures recurse as their own Figure bnodes — same shape,
|
|
141
|
-
// different subject. We inline the base + subtype quads so the
|
|
142
|
-
// subfigure's images also resolve.
|
|
143
|
-
yield* subfigureQuads(sub, subSubject, options);
|
|
144
|
-
subIndex += 1;
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
// Sub-figure emitter — mirrors `nonVerbalEntityToQuads` but with a
|
|
149
|
-
// pre-assigned bnode subject (subfigures don't get their own URI).
|
|
150
|
-
function* subfigureQuads(figure, subjectUri, _options) {
|
|
151
|
-
const s = namedNode(subjectUri);
|
|
152
|
-
yield quad(s, namedNode(WELL_KNOWN.rdfType), namedNode(`${PRED.gloss.$ns}${figure.rdfClass()}`));
|
|
153
|
-
|
|
154
|
-
if (figure.caption) {
|
|
155
|
-
yield quad(s, namedNode(PRED.gloss.caption), literal(figure.caption, null));
|
|
156
|
-
}
|
|
157
|
-
if (figure.description) {
|
|
158
|
-
yield quad(s, namedNode(DCTERMS_DESCRIPTION), literal(figure.description, null));
|
|
159
|
-
}
|
|
160
|
-
if (figure.alt) {
|
|
161
|
-
yield quad(s, namedNode(PRED.gloss.altText), literal(figure.alt, null));
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
let imgIndex = 0;
|
|
165
|
-
for (const image of figure.images ?? []) {
|
|
166
|
-
const imgSubject = deterministicBnode(s.value, 'image', imgIndex);
|
|
167
|
-
yield quad(s, namedNode(PRED.gloss.image), namedNode(imgSubject));
|
|
168
|
-
yield quad(namedNode(imgSubject), namedNode(WELL_KNOWN.rdfType), namedNode(PRED.gloss.FigureImage));
|
|
169
|
-
if (image.src) {
|
|
170
|
-
yield quad(namedNode(imgSubject), namedNode(PRED.gloss.src), literal(image.src, XSD_STRING));
|
|
171
|
-
}
|
|
172
|
-
imgIndex += 1;
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
function* tableQuads(table, s) {
|
|
177
|
-
if (table.content) {
|
|
178
|
-
yield quad(s, namedNode(PRED.gloss.content), literal(table.content, null));
|
|
179
|
-
}
|
|
180
|
-
if (table.format) {
|
|
181
|
-
yield quad(s, namedNode(PRED.gloss.format), literal(table.format, XSD_STRING));
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
function* formulaQuads(formula, s) {
|
|
186
|
-
if (formula.expression) {
|
|
187
|
-
yield quad(s, namedNode(PRED.gloss.expression), literal(formula.expression, null));
|
|
188
|
-
}
|
|
189
|
-
if (formula.notation) {
|
|
190
|
-
yield quad(s, namedNode(PRED.gloss.latexForm), literal(formula.notation, XSD_STRING));
|
|
191
|
-
}
|
|
192
|
-
}
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
// PartitiveHyperedge → RDF quads.
|
|
2
|
-
//
|
|
3
|
-
// Shape (per concept-model ontology, v3.2.0):
|
|
4
|
-
//
|
|
5
|
-
// <base>/partitive-relation/<carrying-id>/<comprehensive-id>
|
|
6
|
-
// rdf:type gloss:PartitiveHyperedge
|
|
7
|
-
// gloss:comprehensive <base>/concept/<comprehensive-id> (named node)
|
|
8
|
-
// gloss:hasPartitive <base>/concept/<partitive-id> (named node, one per member)
|
|
9
|
-
// gloss:completeness <.../completeness/complete|partial> (named node, SKOS)
|
|
10
|
-
// gloss:criterion "..."@lang (literal, one per language)
|
|
11
|
-
//
|
|
12
|
-
// Per-member multiplicity + is_delimiting are emitted by the
|
|
13
|
-
// `partitiveMemberToQuads` helper in `gloss-partitive-member.js`.
|
|
14
|
-
//
|
|
15
|
-
// The carrying concept links via `gloss:hasPartitiveRelation`.
|
|
16
|
-
//
|
|
17
|
-
// Per
|
|
18
|
-
// TODO.partitive-relation-v2 item 01.
|
|
19
|
-
// Cross-repo alignment with glossarist-ruby's Rdf::GlossPartitiveRelation.
|
|
20
|
-
//
|
|
21
|
-
// JSON-LD `@type: @id` invariant: `multiplicity` and `completeness`
|
|
22
|
-
// are URI references into SKOS taxonomies (per
|
|
23
|
-
// `data/concept-model/glossarist.context.jsonld`), not literals.
|
|
24
|
-
// `criterion` is `@container: @language` (one literal per language).
|
|
25
|
-
// `isDelimiting` is `xsd:boolean` literal.
|
|
26
|
-
|
|
27
|
-
import { PRED } from './predicates.js';
|
|
28
|
-
import { WELL_KNOWN } from './prefixes.js';
|
|
29
|
-
import { partitiveMemberToQuads } from './gloss-partitive-member.js';
|
|
30
|
-
import { namedNode, literal, quad } from './terms.js';
|
|
31
|
-
|
|
32
|
-
const COMPLETENESS_NS = 'https://www.glossarist.org/ontologies/completeness/';
|
|
33
|
-
|
|
34
|
-
export function* partitiveRelationToQuads(relation, { parentUri, index }) {
|
|
35
|
-
const subjectUri = partitiveRelationSubjectUri(parentUri, relation, index);
|
|
36
|
-
const s = namedNode(subjectUri);
|
|
37
|
-
|
|
38
|
-
yield quad(s, namedNode(WELL_KNOWN.rdfType), namedNode(PRED.gloss.PartitiveHyperedge));
|
|
39
|
-
|
|
40
|
-
const comp = relation.comprehensive;
|
|
41
|
-
if (comp && (comp.source || comp.id)) {
|
|
42
|
-
yield quad(s, namedNode(PRED.gloss.comprehensive),
|
|
43
|
-
namedNode(conceptRefUri(comp, parentUri)));
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
const members = Array.isArray(relation.partitives) ? relation.partitives : [];
|
|
47
|
-
for (const member of members) {
|
|
48
|
-
const ref = member?.ref ?? member;
|
|
49
|
-
if (!ref || (!ref.source && !ref.id)) continue;
|
|
50
|
-
const memberUri = conceptRefUri(ref, parentUri);
|
|
51
|
-
yield quad(s, namedNode(PRED.gloss.hasPartitive), namedNode(memberUri));
|
|
52
|
-
yield* partitiveMemberToQuads(member, { memberUri });
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
if (relation.completeness) {
|
|
56
|
-
yield quad(s, namedNode(PRED.gloss.completeness),
|
|
57
|
-
namedNode(COMPLETENESS_NS + relation.completeness));
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
if (relation.criterion && typeof relation.criterion === 'object') {
|
|
61
|
-
for (const [lang, text] of Object.entries(relation.criterion)) {
|
|
62
|
-
if (typeof text !== 'string') continue;
|
|
63
|
-
yield quad(s, namedNode(PRED.gloss.criterion), literal(text, lang));
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
// Subject URI scheme: `<base>/partitive-relation/<carrying-id>/<comprehensive-id>`.
|
|
69
|
-
// Matches the Ruby emitter's scheme. Falls back to an index suffix if
|
|
70
|
-
// the comprehensive has no id, so two relations on the same concept
|
|
71
|
-
// never collide.
|
|
72
|
-
export function partitiveRelationSubjectUri(parentUri, relation, index) {
|
|
73
|
-
const base = parentUri.replace(/\/concept\/[^/]+$/, '');
|
|
74
|
-
const carrierId = parentUri.split('/concept/')[1] ?? `carrier-${index}`;
|
|
75
|
-
const compId = relation?.comprehensive?.id ?? `comp-${index}`;
|
|
76
|
-
return `${base}/partitive-relation/${carrierId}/${compId}`;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
// ConceptRef URI resolution: `<base>/concept/<id>` for any ref with an
|
|
80
|
-
// id. Source is dropped (matches Ruby). Falls back to a stable urn:/
|
|
81
|
-
// form for refs with only a source (rare).
|
|
82
|
-
function conceptRefUri(ref, parentUri) {
|
|
83
|
-
const id = ref?.id;
|
|
84
|
-
if (id) {
|
|
85
|
-
const base = parentUri.split('/concept/')[0];
|
|
86
|
-
return `${base}/concept/${id}`;
|
|
87
|
-
}
|
|
88
|
-
return `urn:glossarist:${ref?.source ?? 'unknown'}:`;
|
|
89
|
-
}
|
package/src/rdf/gloss-source.ts
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
// ConceptSource → RDF quads. Mirrors glossarist-ruby's
|
|
2
|
-
// `Rdf::GlossConceptSource` + `Rdf::GlossCitation`. Sources are reified
|
|
3
|
-
// resources linked from their parent (concept or localized concept or
|
|
4
|
-
// definition) via `gloss:hasSource`.
|
|
5
|
-
import { PRED } from './predicates.js';
|
|
6
|
-
import { WELL_KNOWN } from './prefixes.js';
|
|
7
|
-
import { deterministicBnode } from './deterministic-id.js';
|
|
8
|
-
import { normalizeEnum } from './normalize-enum.js';
|
|
9
|
-
import { namedNode, literal, quad } from './terms.js';
|
|
10
|
-
|
|
11
|
-
export function* conceptSourceToQuads(source, { subjectUri, index }) {
|
|
12
|
-
const srcSubject = deterministicBnode(subjectUri, 'source', index);
|
|
13
|
-
|
|
14
|
-
yield quad(namedNode(subjectUri), namedNode(PRED.gloss.hasSource), namedNode(srcSubject));
|
|
15
|
-
yield quad(namedNode(srcSubject), namedNode(WELL_KNOWN.rdfType), namedNode(PRED.gloss.ConceptSource));
|
|
16
|
-
|
|
17
|
-
const statusToken = normalizeEnum(source.status);
|
|
18
|
-
if (statusToken) {
|
|
19
|
-
yield quad(namedNode(srcSubject), namedNode(PRED.gloss.sourceStatus), namedNode(`${PRED.gloss.$ns}srcstatus/${statusToken}`));
|
|
20
|
-
}
|
|
21
|
-
const typeToken = normalizeEnum(source.type);
|
|
22
|
-
if (typeToken) {
|
|
23
|
-
yield quad(namedNode(srcSubject), namedNode(PRED.gloss.sourceType), namedNode(`${PRED.gloss.$ns}srctype/${typeToken}`));
|
|
24
|
-
}
|
|
25
|
-
if (source.modification) {
|
|
26
|
-
yield quad(namedNode(srcSubject), namedNode(PRED.gloss.modification), literal(source.modification));
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
if (source.origin) {
|
|
30
|
-
yield* citationToQuads(source.origin, { subjectUri: srcSubject, predicate: PRED.gloss.sourceOrigin, bnodeKey: 'origin' });
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
const sourcedFrom = source.sourcedFrom ?? source.sourced_from ?? [];
|
|
34
|
-
for (let i = 0; i < sourcedFrom.length; i++) {
|
|
35
|
-
yield* citationToQuads(sourcedFrom[i], { subjectUri: srcSubject, predicate: PRED.gloss.sourcedFrom, bnodeKey: 'sourced_from', index: i });
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
function* citationToQuads(citation, { subjectUri, predicate, bnodeKey, index = 0 }) {
|
|
40
|
-
const citSubject = deterministicBnode(subjectUri, bnodeKey, index);
|
|
41
|
-
yield quad(namedNode(subjectUri), namedNode(predicate), namedNode(citSubject));
|
|
42
|
-
yield quad(namedNode(citSubject), namedNode(WELL_KNOWN.rdfType), namedNode(PRED.gloss.Citation));
|
|
43
|
-
|
|
44
|
-
if (citation.original) {
|
|
45
|
-
yield quad(namedNode(citSubject), namedNode(PRED.gloss.citationOriginal), literal(citation.original));
|
|
46
|
-
}
|
|
47
|
-
if (citation.link) {
|
|
48
|
-
yield quad(namedNode(citSubject), namedNode(PRED.gloss.citationLink), literal(citation.link));
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
if (citation.ref) {
|
|
52
|
-
if (citation.ref.source) yield quad(namedNode(citSubject), namedNode(PRED.gloss.citationRefSource), literal(citation.ref.source));
|
|
53
|
-
if (citation.ref.id) yield quad(namedNode(citSubject), namedNode(PRED.gloss.citationRefId), literal(citation.ref.id));
|
|
54
|
-
if (citation.ref.version) yield quad(namedNode(citSubject), namedNode(PRED.gloss.citationRefVersion), literal(citation.ref.version));
|
|
55
|
-
}
|
|
56
|
-
}
|
package/src/rdf/group-emitter.ts
DELETED
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
// Group emitter — emits dcat:DatasetSeries (lineage) or dcat:Catalog
|
|
2
|
-
// (topic/family/collection) for dataset groups. Mirrors concept-browser's
|
|
3
|
-
// group-emitter.ts.
|
|
4
|
-
//
|
|
5
|
-
// A lineage group (editions of the same vocabulary) is rendered as
|
|
6
|
-
// dcat:DatasetSeries with hasVersion links to each member edition.
|
|
7
|
-
// The current edition is linked via hasCurrentVersion.
|
|
8
|
-
//
|
|
9
|
-
// Other group kinds (topic, family, collection) are rendered as
|
|
10
|
-
// dcat:Catalog with dcat:dataset links to each member.
|
|
11
|
-
//
|
|
12
|
-
// Both kinds are also typed as skos:ConceptScheme for SKOS interop.
|
|
13
|
-
|
|
14
|
-
import { namedNode, literal, quad } from './terms.js';
|
|
15
|
-
import { PREFIXES } from './prefixes.js';
|
|
16
|
-
import { RDF_TYPE } from './curie.js';
|
|
17
|
-
|
|
18
|
-
// Namespace IRIs from canonical PREFIXES.
|
|
19
|
-
const DCAT_NS = PREFIXES.dcat ?? 'http://www.w3.org/ns/dcat#';
|
|
20
|
-
const DCTERMS_NS = PREFIXES.dcterms;
|
|
21
|
-
const SKOS_NS = PREFIXES.skos;
|
|
22
|
-
const PROV_NS = PREFIXES.prov;
|
|
23
|
-
|
|
24
|
-
const DCAT = {
|
|
25
|
-
DatasetSeries: `${DCAT_NS}DatasetSeries`,
|
|
26
|
-
Catalog: `${DCAT_NS}Catalog`,
|
|
27
|
-
ConceptScheme: `${SKOS_NS}ConceptScheme`,
|
|
28
|
-
hasVersion: `${DCAT_NS}hasVersion`,
|
|
29
|
-
hasCurrentVersion: `${DCAT_NS}hasCurrentVersion`,
|
|
30
|
-
dataset: `${DCAT_NS}dataset`,
|
|
31
|
-
theme: `${DCAT_NS}theme`,
|
|
32
|
-
keyword: `${DCAT_NS}keyword`,
|
|
33
|
-
contactPoint: `${DCAT_NS}contactPoint`,
|
|
34
|
-
};
|
|
35
|
-
const DCTERMS = {
|
|
36
|
-
title: `${DCTERMS_NS}title`,
|
|
37
|
-
description: `${DCTERMS_NS}description`,
|
|
38
|
-
identifier: `${DCTERMS_NS}identifier`,
|
|
39
|
-
subject: `${DCTERMS_NS}subject`,
|
|
40
|
-
publisher: `${DCTERMS_NS}publisher`,
|
|
41
|
-
};
|
|
42
|
-
const PROV = {
|
|
43
|
-
wasDerivedFrom: `${PROV_NS}wasDerivedFrom`,
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* @typedef {'lineage' | 'topic' | 'family' | 'collection' | 'default'} DatasetGroupKind
|
|
48
|
-
*/
|
|
49
|
-
/**
|
|
50
|
-
* @typedef {Object} GroupEmitInput
|
|
51
|
-
* @property {string} groupId
|
|
52
|
-
* @property {string} groupIri
|
|
53
|
-
* @property {DatasetGroupKind} kind
|
|
54
|
-
* @property {string} title
|
|
55
|
-
* @property {string} [description]
|
|
56
|
-
* @property {readonly string[]} memberIris
|
|
57
|
-
* @property {string} [currentMemberIri]
|
|
58
|
-
* @property {string} [subject]
|
|
59
|
-
* @property {readonly string[]} [themes]
|
|
60
|
-
* @property {readonly string[]} [keywords]
|
|
61
|
-
* @property {string} [publisher]
|
|
62
|
-
* @property {string} [contact]
|
|
63
|
-
* @property {string} [sourceRepo]
|
|
64
|
-
*/
|
|
65
|
-
|
|
66
|
-
// Returns the RDF class IRIs for a group kind. Empty for 'default'
|
|
67
|
-
// (no semantics — group is purely a presentation concern).
|
|
68
|
-
function rdfClassesForKind(kind) {
|
|
69
|
-
switch (kind) {
|
|
70
|
-
case 'lineage': return [DCAT.DatasetSeries, DCAT.ConceptScheme];
|
|
71
|
-
case 'topic':
|
|
72
|
-
case 'family':
|
|
73
|
-
case 'collection': return [DCAT.Catalog, DCAT.ConceptScheme];
|
|
74
|
-
default: return [];
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Emits dcat:DatasetSeries or dcat:Catalog quads for one group.
|
|
80
|
-
*
|
|
81
|
-
* Returns an empty generator (no quads) for 'default' kind — those
|
|
82
|
-
* groups have no RDF semantics.
|
|
83
|
-
*
|
|
84
|
-
* @param {GroupEmitInput} input
|
|
85
|
-
* @returns {Generator<Quad, void, unknown>}
|
|
86
|
-
*/
|
|
87
|
-
export function* groupToQuads(input) {
|
|
88
|
-
const classes = rdfClassesForKind(input.kind);
|
|
89
|
-
if (classes.length === 0) return;
|
|
90
|
-
|
|
91
|
-
const g = namedNode(input.groupIri);
|
|
92
|
-
|
|
93
|
-
for (const cls of classes) {
|
|
94
|
-
yield quad(g, namedNode(RDF_TYPE), namedNode(cls));
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
yield quad(g, namedNode(DCTERMS.title), literal(input.title));
|
|
98
|
-
yield quad(g, namedNode(DCTERMS.identifier), literal(input.groupId));
|
|
99
|
-
if (input.description) {
|
|
100
|
-
yield quad(g, namedNode(DCTERMS.description), literal(input.description));
|
|
101
|
-
}
|
|
102
|
-
if (input.subject) {
|
|
103
|
-
yield quad(g, namedNode(DCTERMS.subject), literal(input.subject));
|
|
104
|
-
}
|
|
105
|
-
for (const theme of input.themes ?? []) {
|
|
106
|
-
yield quad(g, namedNode(DCAT.theme), namedNode(theme));
|
|
107
|
-
}
|
|
108
|
-
for (const kw of input.keywords ?? []) {
|
|
109
|
-
yield quad(g, namedNode(DCAT.keyword), literal(kw));
|
|
110
|
-
}
|
|
111
|
-
if (input.publisher) {
|
|
112
|
-
yield quad(g, namedNode(DCTERMS.publisher), namedNode(input.publisher));
|
|
113
|
-
}
|
|
114
|
-
if (input.contact) {
|
|
115
|
-
yield quad(g, namedNode(DCAT.contactPoint), namedNode(input.contact));
|
|
116
|
-
}
|
|
117
|
-
if (input.sourceRepo) {
|
|
118
|
-
yield quad(g, namedNode(PROV.wasDerivedFrom), namedNode(input.sourceRepo));
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
if (input.kind === 'lineage') {
|
|
122
|
-
for (const memberIri of input.memberIris ?? []) {
|
|
123
|
-
yield quad(g, namedNode(DCAT.hasVersion), namedNode(memberIri));
|
|
124
|
-
}
|
|
125
|
-
if (input.currentMemberIri) {
|
|
126
|
-
yield quad(g, namedNode(DCAT.hasCurrentVersion), namedNode(input.currentMemberIri));
|
|
127
|
-
}
|
|
128
|
-
} else {
|
|
129
|
-
for (const memberIri of input.memberIris ?? []) {
|
|
130
|
-
yield quad(g, namedNode(DCAT.dataset), namedNode(memberIri));
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
}
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
// Image variant emitter — emits foaf:Image per format/language variant
|
|
2
|
-
// of a dataset figure. Mirrors concept-browser's image-variant-emitter.ts.
|
|
3
|
-
//
|
|
4
|
-
// Each variant becomes a foaf:Image with:
|
|
5
|
-
// - dcterms:format (MIME type)
|
|
6
|
-
// - dcterms:language (when localized)
|
|
7
|
-
// - dcat:byteSize (when known)
|
|
8
|
-
// - dcat:downloadURL (canonical download)
|
|
9
|
-
|
|
10
|
-
import { namedNode, literal, quad } from './terms.js';
|
|
11
|
-
import { PREFIXES } from './prefixes.js';
|
|
12
|
-
import { RDF_TYPE } from './curie.js';
|
|
13
|
-
|
|
14
|
-
const FOAF_NS = PREFIXES.foaf ?? 'http://xmlns.com/foaf/0.1/';
|
|
15
|
-
const DCTERMS_NS = PREFIXES.dcterms;
|
|
16
|
-
const DCAT_NS = PREFIXES.dcat ?? 'http://www.w3.org/ns/dcat#';
|
|
17
|
-
const XSD_NS = PREFIXES.xsd;
|
|
18
|
-
|
|
19
|
-
const FOAF = {
|
|
20
|
-
Image: `${FOAF_NS}Image`,
|
|
21
|
-
};
|
|
22
|
-
const DCTERMS = {
|
|
23
|
-
format: `${DCTERMS_NS}format`,
|
|
24
|
-
language: `${DCTERMS_NS}language`,
|
|
25
|
-
};
|
|
26
|
-
const DCAT = {
|
|
27
|
-
byteSize: `${DCAT_NS}byteSize`,
|
|
28
|
-
downloadURL: `${DCAT_NS}downloadURL`,
|
|
29
|
-
};
|
|
30
|
-
const XSD_INTEGER = `${XSD_NS}integer`;
|
|
31
|
-
|
|
32
|
-
// No hardcoded default base URI. Callers MUST pass baseUri explicitly.
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* @typedef {'svg' | 'png' | 'webp' | 'jpg' | 'gif'} ImageFormat
|
|
36
|
-
*/
|
|
37
|
-
/**
|
|
38
|
-
* @typedef {Object} ImageVariantInput
|
|
39
|
-
* @property {string} registerId
|
|
40
|
-
* @property {string} figureId
|
|
41
|
-
* @property {string} [lang]
|
|
42
|
-
* @property {ImageFormat} format
|
|
43
|
-
* @property {number} [byteSize]
|
|
44
|
-
* @property {string} downloadUrl
|
|
45
|
-
*/
|
|
46
|
-
|
|
47
|
-
const MIME_BY_FORMAT = Object.freeze({
|
|
48
|
-
svg: 'image/svg+xml',
|
|
49
|
-
png: 'image/png',
|
|
50
|
-
webp: 'image/webp',
|
|
51
|
-
jpg: 'image/jpeg',
|
|
52
|
-
gif: 'image/gif',
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Returns the canonical IRI for an image variant. Includes the lang
|
|
57
|
-
* segment when the variant is localized, otherwise omits it.
|
|
58
|
-
*/
|
|
59
|
-
export function imageVariantIri(input, baseUri) {
|
|
60
|
-
if (!baseUri) throw new Error('imageVariantIri requires baseUri — the deployment canonical URI root.');
|
|
61
|
-
const langSuffix = input.lang ? `${input.lang}.` : '';
|
|
62
|
-
return `${baseUri}/${input.registerId}/image/${input.figureId}/${langSuffix}${input.format}`;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* Emits foaf:Image quads for one image variant.
|
|
67
|
-
*/
|
|
68
|
-
export function* imageVariantToQuads(input, baseUri) {
|
|
69
|
-
if (!baseUri) throw new Error('imageVariantToQuads requires baseUri — the deployment canonical URI root.');
|
|
70
|
-
const img = namedNode(imageVariantIri(input, baseUri));
|
|
71
|
-
yield quad(img, namedNode(RDF_TYPE), namedNode(FOAF.Image));
|
|
72
|
-
yield quad(img, namedNode(DCTERMS.format), literal(MIME_BY_FORMAT[input.format] ?? 'application/octet-stream'));
|
|
73
|
-
if (input.lang) {
|
|
74
|
-
yield quad(img, namedNode(DCTERMS.language), literal(input.lang));
|
|
75
|
-
}
|
|
76
|
-
if (input.byteSize != null) {
|
|
77
|
-
yield quad(img, namedNode(DCAT.byteSize), literal(String(input.byteSize), namedNode(XSD_INTEGER)));
|
|
78
|
-
}
|
|
79
|
-
yield quad(img, namedNode(DCAT.downloadURL), namedNode(input.downloadUrl));
|
|
80
|
-
}
|