glossarist 0.4.50 → 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 -57
- 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 -172
- package/src/concept-parser.ts +0 -235
- package/src/concept-reader.d.ts +0 -13
- package/src/concept-serializer.ts +0 -110
- package/src/concept-writer.d.ts +0 -7
- package/src/concept-writer.ts +0 -47
- package/src/diff/canonical-json.ts +0 -29
- package/src/diff/change.ts +0 -175
- package/src/diff/collection-diff.ts +0 -245
- package/src/diff/concept-diff.ts +0 -853
- package/src/diff/diff-patch.ts +0 -276
- package/src/diff/diff-renderer.ts +0 -348
- 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 -512
- package/src/gcr-writer.d.ts +0 -22
- package/src/gcr-writer.ts +0 -99
- package/src/index.d.ts +0 -124
- package/src/managed-concept-collection.ts +0 -130
- 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 -137
- 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 -46
- 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 -202
- 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 -190
- 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 -179
- package/src/reference-mention.ts +0 -114
- package/src/reference-resolver.ts +0 -361
- package/src/render-classification.ts +0 -85
- 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 -66
- package/src/validators/asset-index.ts +0 -72
- 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 -76
- 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 -382
- 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,101 +0,0 @@
|
|
|
1
|
-
// HyperedgeIndex — directional index over a hyperedge set.
|
|
2
|
-
//
|
|
3
|
-
// A hyperedge is 1→N (one comprehensive, many members). The forward
|
|
4
|
-
// query ("which hyperedges have X as comprehensive?") and the reverse
|
|
5
|
-
// query ("which hyperedges have Y as a member?") are both useful. The
|
|
6
|
-
// reverse query is the load-bearing one: OIML V 2-200:2010 concept
|
|
7
|
-
// 5.13 is a member of one of 5.1's hyperedges AND the comprehensive
|
|
8
|
-
// of its own 2 hyperedges — without an index, every "find hyperedges
|
|
9
|
-
// mentioning X" turns into an O(N) walk over every hyperedge.
|
|
10
|
-
//
|
|
11
|
-
// The index is built on demand from a flat hyperedge list (typically
|
|
12
|
-
// Concept.relations or the union of all concepts' relations in a
|
|
13
|
-
// collection). It does not store state on Concept — Concept stays a
|
|
14
|
-
// simple value object.
|
|
15
|
-
//
|
|
16
|
-
// Identity key matches HyperedgeRegistry / ConceptRef conventions:
|
|
17
|
-
// `${source}:${id}` (empty source or id is rejected)
|
|
18
|
-
|
|
19
|
-
import type { AbstractHyperedge } from './abstract-hyperedge.js';
|
|
20
|
-
|
|
21
|
-
interface HyperedgeLike {
|
|
22
|
-
comprehensive?: { source?: string | null; id?: string | null } | null;
|
|
23
|
-
members?: ReadonlyArray<{ ref?: { source?: string | null; id?: string | null } | null }>;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
export class HyperedgeIndex {
|
|
27
|
-
private readonly _byComprehensive: Map<string, HyperedgeLike[]>;
|
|
28
|
-
private readonly _byMember: Map<string, HyperedgeLike[]>;
|
|
29
|
-
|
|
30
|
-
constructor(hyperedges: ReadonlyArray<HyperedgeLike> = []) {
|
|
31
|
-
this._byComprehensive = new Map();
|
|
32
|
-
this._byMember = new Map();
|
|
33
|
-
|
|
34
|
-
for (const h of hyperedges) {
|
|
35
|
-
const cKey = _qualifiedId(h?.comprehensive);
|
|
36
|
-
if (cKey) _addToMapList(this._byComprehensive, cKey, h);
|
|
37
|
-
const members = Array.isArray(h?.members) ? h.members : [];
|
|
38
|
-
for (const m of members) {
|
|
39
|
-
const mKey = _qualifiedId(m?.ref ?? m);
|
|
40
|
-
if (mKey) _addToMapList(this._byMember, mKey, h);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
// Hyperedges where the given concept is the comprehensive (the "1" side).
|
|
46
|
-
forComprehensive(qualifiedId: string): HyperedgeLike[] {
|
|
47
|
-
return this._byComprehensive.get(qualifiedId) ?? [];
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
// Hyperedges where the given concept appears as a member (the "many" side).
|
|
51
|
-
forMember(qualifiedId: string): HyperedgeLike[] {
|
|
52
|
-
return this._byMember.get(qualifiedId) ?? [];
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
// All concepts that appear as a comprehensive in any indexed hyperedge.
|
|
56
|
-
comprehensives(): string[] {
|
|
57
|
-
return [...this._byComprehensive.keys()];
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
// All concepts that appear as a member in any indexed hyperedge.
|
|
61
|
-
members(): string[] {
|
|
62
|
-
return [...this._byMember.keys()];
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
get size(): number {
|
|
66
|
-
return this._byComprehensive.size;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* Build a HyperedgeIndex across multiple Concepts' relations arrays
|
|
72
|
-
* (a dataset-wide view). Each Concept contributes its own .relations.
|
|
73
|
-
* Helper for the most common pattern: index once at collection load,
|
|
74
|
-
* query many times.
|
|
75
|
-
*/
|
|
76
|
-
export function buildDatasetIndex(
|
|
77
|
-
concepts: ReadonlyArray<{ relations?: ReadonlyArray<AbstractHyperedge | HyperedgeLike> }> = [],
|
|
78
|
-
): HyperedgeIndex {
|
|
79
|
-
const all: HyperedgeLike[] = [];
|
|
80
|
-
for (const concept of concepts) {
|
|
81
|
-
for (const h of concept.relations ?? []) {
|
|
82
|
-
all.push(h as HyperedgeLike);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
return new HyperedgeIndex(all);
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
function _qualifiedId(
|
|
89
|
-
ref: { source?: string | null; id?: string | null } | null | undefined,
|
|
90
|
-
): string | null {
|
|
91
|
-
if (!ref) return null;
|
|
92
|
-
const source = ref.source ?? '';
|
|
93
|
-
const id = ref.id ?? '';
|
|
94
|
-
if (!source && !id) return null;
|
|
95
|
-
return `${source}:${id}`;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
function _addToMapList<T>(map: Map<string, T[]>, key: string, value: T): void {
|
|
99
|
-
if (!map.has(key)) map.set(key, []);
|
|
100
|
-
map.get(key)?.push(value);
|
|
101
|
-
}
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
// HyperedgeMember — abstract base shape for the members of any directed
|
|
2
|
-
// 1→N hyperedge (PartitiveMember, GenericMember, future AssociativeMember,
|
|
3
|
-
// SequentialMember).
|
|
4
|
-
//
|
|
5
|
-
// Carries ONLY the dimensions shared by every hyperedge member type:
|
|
6
|
-
// ref — ConceptRef [1] (the member concept)
|
|
7
|
-
// presence — 'required' | 'optional' (default: required)
|
|
8
|
-
// count — 'exactly_one' | 'at_least_one' | 'multiple' (default: exactly_one)
|
|
9
|
-
//
|
|
10
|
-
// These three form the ISO 704:2022 MECE pair (presence × count). The
|
|
11
|
-
// pair is the shared invariant across all hyperedge types — that's
|
|
12
|
-
// why it lives on the base.
|
|
13
|
-
//
|
|
14
|
-
// Type-specific extensions live on the leaves:
|
|
15
|
-
// PartitiveMember — is_delimiting (rake-diagram semantics, ISO 704 §5.5.4.2.2)
|
|
16
|
-
// GenericMember — delimitingCharacteristic (intension difference, ISO 704 §5.5.4.2.1)
|
|
17
|
-
//
|
|
18
|
-
// See docs/design/abstract-hyperedge.md (concept-model repo).
|
|
19
|
-
|
|
20
|
-
import { GlossaristModel } from './base.js';
|
|
21
|
-
import { ConceptRef } from './concept-ref.js';
|
|
22
|
-
import type { ConceptRefJson } from './concept-ref.js';
|
|
23
|
-
import { PARTITIVE_PRESENCE_VALUES, DEFAULT_PRESENCE, isValidPresence } from './partitive-presence.js';
|
|
24
|
-
import type { PartitivePresence } from './partitive-presence.js';
|
|
25
|
-
import { PARTITIVE_COUNT_VALUES, DEFAULT_COUNT, isValidCount } from './partitive-count.js';
|
|
26
|
-
import type { PartitiveCount } from './partitive-count.js';
|
|
27
|
-
import { multiplicityFromPair } from './multiplicity.js';
|
|
28
|
-
|
|
29
|
-
export interface HyperedgeMemberJson {
|
|
30
|
-
ref: ConceptRefJson | ConceptRef;
|
|
31
|
-
presence?: PartitivePresence;
|
|
32
|
-
count?: PartitiveCount;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
export abstract class HyperedgeMember extends GlossaristModel {
|
|
36
|
-
readonly ref: ConceptRef;
|
|
37
|
-
readonly presence: PartitivePresence;
|
|
38
|
-
readonly count: PartitiveCount;
|
|
39
|
-
|
|
40
|
-
constructor(data: HyperedgeMemberJson = { ref: {} }) {
|
|
41
|
-
super();
|
|
42
|
-
this.ref = _ensureRef(data.ref);
|
|
43
|
-
this.presence = _resolvePresence(data.presence);
|
|
44
|
-
this.count = _resolveCount(data.count);
|
|
45
|
-
|
|
46
|
-
_assertValidPair(this.presence, this.count);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
get isRequired(): boolean { return this.presence === 'required'; }
|
|
50
|
-
get isOptional(): boolean { return this.presence === 'optional'; }
|
|
51
|
-
|
|
52
|
-
override identity(): string {
|
|
53
|
-
return HyperedgeMember.identityOf(this);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
override toJSON(): HyperedgeMemberJson {
|
|
57
|
-
const obj: HyperedgeMemberJson = { ref: this.ref.toJSON() };
|
|
58
|
-
if (this.presence !== DEFAULT_PRESENCE) obj.presence = this.presence;
|
|
59
|
-
if (this.count !== DEFAULT_COUNT) obj.count = this.count;
|
|
60
|
-
return obj;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
static identityOf(
|
|
64
|
-
value: { ref?: { source?: string | null; id?: string | null } | null } | null | undefined,
|
|
65
|
-
): string {
|
|
66
|
-
const v = value ?? {};
|
|
67
|
-
const ref = v.ref ?? {};
|
|
68
|
-
return `${ref.source ?? ''}:${ref.id ?? ''}`;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
static override fromJSON(_data: HyperedgeMemberJson): HyperedgeMember {
|
|
72
|
-
// Abstract base — subclasses MUST override. The base
|
|
73
|
-
// implementation is a typed marker that dispatches to the wrong
|
|
74
|
-
// class would surface as a runtime error rather than silently
|
|
75
|
-
// returning a mis-typed instance.
|
|
76
|
-
throw new Error(
|
|
77
|
-
'HyperedgeMember.fromJSON must be overridden by a subclass',
|
|
78
|
-
);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
function _ensureRef(value: ConceptRefJson | ConceptRef | null | undefined): ConceptRef {
|
|
83
|
-
const ref = value instanceof ConceptRef ? value : new ConceptRef(value ?? {});
|
|
84
|
-
if (!ref.source && !ref.id && !ref.text) {
|
|
85
|
-
throw new Error(
|
|
86
|
-
'HyperedgeMember.ref must be a non-empty ConceptRef ' +
|
|
87
|
-
'(source, id, or text required)',
|
|
88
|
-
);
|
|
89
|
-
}
|
|
90
|
-
return ref;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
function _resolvePresence(value: PartitivePresence | null | undefined): PartitivePresence {
|
|
94
|
-
const p = value ?? DEFAULT_PRESENCE;
|
|
95
|
-
if (!isValidPresence(p)) {
|
|
96
|
-
throw new Error(
|
|
97
|
-
`invalid presence ${JSON.stringify(value)}; ` +
|
|
98
|
-
`must be one of: ${PARTITIVE_PRESENCE_VALUES.join(', ')}`,
|
|
99
|
-
);
|
|
100
|
-
}
|
|
101
|
-
return p;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
function _resolveCount(value: PartitiveCount | null | undefined): PartitiveCount {
|
|
105
|
-
const c = value ?? DEFAULT_COUNT;
|
|
106
|
-
if (!isValidCount(c)) {
|
|
107
|
-
throw new Error(
|
|
108
|
-
`invalid count ${JSON.stringify(value)}; ` +
|
|
109
|
-
`must be one of: ${PARTITIVE_COUNT_VALUES.join(', ')}`,
|
|
110
|
-
);
|
|
111
|
-
}
|
|
112
|
-
return c;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
function _assertValidPair(presence: PartitivePresence, count: PartitiveCount): void {
|
|
116
|
-
// Delegate to the multiplicity SSOT. The canonical error string
|
|
117
|
-
// lives in one place: multiplicity.ts. Calling multiplicityFromPair
|
|
118
|
-
// throws on the invalid combination; we don't need to duplicate the
|
|
119
|
-
// error message here.
|
|
120
|
-
multiplicityFromPair(presence, count);
|
|
121
|
-
}
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
// HyperedgeRegistry — single source of truth for hyperedge type dispatch.
|
|
2
|
-
//
|
|
3
|
-
// Each hyperedge leaf class (PartitiveHyperedge, GenericHyperedge, future
|
|
4
|
-
// TemporalHyperedge, AssociativeHyperedge, etc.) registers itself once at
|
|
5
|
-
// module load. External systems (parser, serializer, diff, RDF emitter,
|
|
6
|
-
// validators) read from this registry instead of branching on instanceof
|
|
7
|
-
// or hardcoding per-type tables.
|
|
8
|
-
//
|
|
9
|
-
// Adding a new hyperedge type:
|
|
10
|
-
// 1. Declare the leaf class with the 6-field metadata block
|
|
11
|
-
// (wireKey, typeTag, rdfType, memberClass, v1WireKeys, kindLabel).
|
|
12
|
-
// 2. Call HyperedgeRegistry.register(MyClass) at the bottom of the file.
|
|
13
|
-
//
|
|
14
|
-
// Nothing else in the codebase changes. That is the OCP contract.
|
|
15
|
-
//
|
|
16
|
-
// Three indexes support three lookup patterns:
|
|
17
|
-
// byWireKey — parser/serializer/diff-patch dispatch by YAML/JSON key
|
|
18
|
-
// byTypeTag — per-file loader dispatch by `type: ...` discriminator
|
|
19
|
-
// byRdfType — RDF emitter dispatch by ontology class IRI
|
|
20
|
-
//
|
|
21
|
-
// The abstract base (AbstractHyperedge) has no wireKey and is skipped
|
|
22
|
-
// by register() — it cannot be instantiated through the registry.
|
|
23
|
-
|
|
24
|
-
import type { AbstractHyperedge } from './abstract-hyperedge.js';
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Shape a registered hyperedge class must satisfy. Every leaf class
|
|
28
|
-
* in src/models/ matches this shape (declared as static fields).
|
|
29
|
-
*/
|
|
30
|
-
export interface HyperedgeClass {
|
|
31
|
-
readonly wireKey: string;
|
|
32
|
-
readonly typeTag: string;
|
|
33
|
-
readonly rdfType: string;
|
|
34
|
-
readonly memberClass: new (...args: never[]) => unknown;
|
|
35
|
-
readonly v1WireKeys?: ReadonlyArray<string>;
|
|
36
|
-
readonly kindLabel?: string;
|
|
37
|
-
readonly name: string;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
class HyperedgeRegistry {
|
|
41
|
-
static _byWireKey: Map<string, HyperedgeClass> = new Map();
|
|
42
|
-
static _byTypeTag: Map<string, HyperedgeClass> = new Map();
|
|
43
|
-
static _byRdfType: Map<string, HyperedgeClass> = new Map();
|
|
44
|
-
|
|
45
|
-
static register(cls: HyperedgeClass | undefined): boolean {
|
|
46
|
-
if (!cls || !cls.wireKey || !cls.typeTag || !cls.rdfType) return false;
|
|
47
|
-
if (this._byWireKey.has(cls.wireKey)) {
|
|
48
|
-
throw new Error(
|
|
49
|
-
`HyperedgeRegistry: duplicate wireKey '${cls.wireKey}' ` +
|
|
50
|
-
`(trying to register ${cls.name}; already registered to ` +
|
|
51
|
-
`${this._byWireKey.get(cls.wireKey)?.name})`,
|
|
52
|
-
);
|
|
53
|
-
}
|
|
54
|
-
if (this._byTypeTag.has(cls.typeTag)) {
|
|
55
|
-
throw new Error(
|
|
56
|
-
`HyperedgeRegistry: duplicate typeTag '${cls.typeTag}' ` +
|
|
57
|
-
`(trying to register ${cls.name})`,
|
|
58
|
-
);
|
|
59
|
-
}
|
|
60
|
-
if (this._byRdfType.has(cls.rdfType)) {
|
|
61
|
-
throw new Error(
|
|
62
|
-
`HyperedgeRegistry: duplicate rdfType '${cls.rdfType}' ` +
|
|
63
|
-
`(trying to register ${cls.name})`,
|
|
64
|
-
);
|
|
65
|
-
}
|
|
66
|
-
this._byWireKey.set(cls.wireKey, cls);
|
|
67
|
-
this._byTypeTag.set(cls.typeTag, cls);
|
|
68
|
-
this._byRdfType.set(cls.rdfType, cls);
|
|
69
|
-
return true;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* Test-only. Removes a class from all three indexes. Used by the OCP
|
|
74
|
-
* spec to clean up mock types it adds during a test run.
|
|
75
|
-
*/
|
|
76
|
-
static unregister(cls: HyperedgeClass | undefined): boolean {
|
|
77
|
-
if (!cls) return false;
|
|
78
|
-
const r1 = this._byWireKey.delete(cls.wireKey);
|
|
79
|
-
const r2 = this._byTypeTag.delete(cls.typeTag);
|
|
80
|
-
const r3 = this._byRdfType.delete(cls.rdfType);
|
|
81
|
-
return r1 || r2 || r3;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
static forWireKey(key: string): HyperedgeClass | null {
|
|
85
|
-
return this._byWireKey.get(key) ?? null;
|
|
86
|
-
}
|
|
87
|
-
static forTypeTag(tag: string): HyperedgeClass | null {
|
|
88
|
-
return this._byTypeTag.get(tag) ?? null;
|
|
89
|
-
}
|
|
90
|
-
static forRdfType(type: string): HyperedgeClass | null {
|
|
91
|
-
return this._byRdfType.get(type) ?? null;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
static allClasses(): HyperedgeClass[] {
|
|
95
|
-
// Dedup in case the same class is reachable via multiple indexes.
|
|
96
|
-
const seen = new Set<HyperedgeClass>();
|
|
97
|
-
const out: HyperedgeClass[] = [];
|
|
98
|
-
for (const cls of this._byTypeTag.values()) {
|
|
99
|
-
if (!seen.has(cls)) {
|
|
100
|
-
seen.add(cls);
|
|
101
|
-
out.push(cls);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
return out;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
static allWireKeys(): string[] { return [...this._byWireKey.keys()]; }
|
|
108
|
-
static allTypeTags(): string[] { return [...this._byTypeTag.keys()]; }
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
* Snapshot of every registered wire-shape identifier (v2 wireKey plus
|
|
112
|
-
* any v1 legacy keys). Used by the parser to reserve STRUCTURAL_KEYS
|
|
113
|
-
* and to know which top-level YAML keys to walk for hyperedge data.
|
|
114
|
-
*/
|
|
115
|
-
static allWireAndLegacyKeys(): string[] {
|
|
116
|
-
const out: string[] = [];
|
|
117
|
-
for (const cls of this.allClasses()) {
|
|
118
|
-
out.push(cls.wireKey);
|
|
119
|
-
for (const k of cls.v1WireKeys ?? []) out.push(k);
|
|
120
|
-
}
|
|
121
|
-
return out;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
/**
|
|
126
|
-
* Helper: partition a unified hyperedge array by wire key. Used by
|
|
127
|
-
* Concept.toJSON, ConceptSerializer, and diff-patch to emit per-type
|
|
128
|
-
* wire keys without per-type branching in those files. Adding a new
|
|
129
|
-
* hyperedge type "just works" because the group is keyed by the
|
|
130
|
-
* class's static wireKey.
|
|
131
|
-
*/
|
|
132
|
-
export function groupHyperedgesByWireKey(
|
|
133
|
-
hyperedges: ReadonlyArray<AbstractHyperedge> | null | undefined,
|
|
134
|
-
): Record<string, AbstractHyperedge[]> {
|
|
135
|
-
const out: Record<string, AbstractHyperedge[]> = {};
|
|
136
|
-
for (const h of hyperedges ?? []) {
|
|
137
|
-
const key = (h?.constructor as unknown as HyperedgeClass | undefined)?.wireKey;
|
|
138
|
-
if (!key) continue;
|
|
139
|
-
if (!out[key]) out[key] = [];
|
|
140
|
-
out[key].push(h);
|
|
141
|
-
}
|
|
142
|
-
return out;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
export { HyperedgeRegistry };
|