sysmledgraph 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (309) hide show
  1. package/README.md +71 -0
  2. package/dist/bin/cli.d.ts +6 -0
  3. package/dist/bin/cli.d.ts.map +1 -0
  4. package/dist/bin/cli.js +61 -0
  5. package/dist/bin/cli.js.map +1 -0
  6. package/dist/mcp/index.d.ts +3 -0
  7. package/dist/mcp/index.d.ts.map +1 -0
  8. package/dist/mcp/index.js +8 -0
  9. package/dist/mcp/index.js.map +1 -0
  10. package/dist/src/cli/commands.d.ts +22 -0
  11. package/dist/src/cli/commands.d.ts.map +1 -0
  12. package/dist/src/cli/commands.js +87 -0
  13. package/dist/src/cli/commands.js.map +1 -0
  14. package/dist/src/discovery/find-sysml.d.ts +16 -0
  15. package/dist/src/discovery/find-sysml.d.ts.map +1 -0
  16. package/dist/src/discovery/find-sysml.js +30 -0
  17. package/dist/src/discovery/find-sysml.js.map +1 -0
  18. package/dist/src/discovery/load-order.d.ts +11 -0
  19. package/dist/src/discovery/load-order.d.ts.map +1 -0
  20. package/dist/src/discovery/load-order.js +85 -0
  21. package/dist/src/discovery/load-order.js.map +1 -0
  22. package/dist/src/graph/connection.d.ts +6 -0
  23. package/dist/src/graph/connection.d.ts.map +1 -0
  24. package/dist/src/graph/connection.js +7 -0
  25. package/dist/src/graph/connection.js.map +1 -0
  26. package/dist/src/graph/graph-store.d.ts +37 -0
  27. package/dist/src/graph/graph-store.d.ts.map +1 -0
  28. package/dist/src/graph/graph-store.js +108 -0
  29. package/dist/src/graph/graph-store.js.map +1 -0
  30. package/dist/src/graph/schema.d.ts +13 -0
  31. package/dist/src/graph/schema.d.ts.map +1 -0
  32. package/dist/src/graph/schema.js +21 -0
  33. package/dist/src/graph/schema.js.map +1 -0
  34. package/dist/src/index.d.ts +14 -0
  35. package/dist/src/index.d.ts.map +1 -0
  36. package/dist/src/index.js +14 -0
  37. package/dist/src/index.js.map +1 -0
  38. package/dist/src/indexer/indexer.d.ts +20 -0
  39. package/dist/src/indexer/indexer.d.ts.map +1 -0
  40. package/dist/src/indexer/indexer.js +56 -0
  41. package/dist/src/indexer/indexer.js.map +1 -0
  42. package/dist/src/indexer/pipeline-phases.d.ts +8 -0
  43. package/dist/src/indexer/pipeline-phases.d.ts.map +1 -0
  44. package/dist/src/indexer/pipeline-phases.js +14 -0
  45. package/dist/src/indexer/pipeline-phases.js.map +1 -0
  46. package/dist/src/mcp/resources/context.d.ts +6 -0
  47. package/dist/src/mcp/resources/context.d.ts.map +1 -0
  48. package/dist/src/mcp/resources/context.js +45 -0
  49. package/dist/src/mcp/resources/context.js.map +1 -0
  50. package/dist/src/mcp/resources/schema.d.ts +6 -0
  51. package/dist/src/mcp/resources/schema.d.ts.map +1 -0
  52. package/dist/src/mcp/resources/schema.js +14 -0
  53. package/dist/src/mcp/resources/schema.js.map +1 -0
  54. package/dist/src/mcp/server.d.ts +8 -0
  55. package/dist/src/mcp/server.d.ts.map +1 -0
  56. package/dist/src/mcp/server.js +175 -0
  57. package/dist/src/mcp/server.js.map +1 -0
  58. package/dist/src/mcp/tools/clean-index.d.ts +12 -0
  59. package/dist/src/mcp/tools/clean-index.d.ts.map +1 -0
  60. package/dist/src/mcp/tools/clean-index.js +22 -0
  61. package/dist/src/mcp/tools/clean-index.js.map +1 -0
  62. package/dist/src/mcp/tools/context.d.ts +14 -0
  63. package/dist/src/mcp/tools/context.d.ts.map +1 -0
  64. package/dist/src/mcp/tools/context.js +51 -0
  65. package/dist/src/mcp/tools/context.js.map +1 -0
  66. package/dist/src/mcp/tools/cypher.d.ts +13 -0
  67. package/dist/src/mcp/tools/cypher.d.ts.map +1 -0
  68. package/dist/src/mcp/tools/cypher.js +25 -0
  69. package/dist/src/mcp/tools/cypher.js.map +1 -0
  70. package/dist/src/mcp/tools/generate-map.d.ts +13 -0
  71. package/dist/src/mcp/tools/generate-map.d.ts.map +1 -0
  72. package/dist/src/mcp/tools/generate-map.js +96 -0
  73. package/dist/src/mcp/tools/generate-map.js.map +1 -0
  74. package/dist/src/mcp/tools/impact.d.ts +14 -0
  75. package/dist/src/mcp/tools/impact.d.ts.map +1 -0
  76. package/dist/src/mcp/tools/impact.js +47 -0
  77. package/dist/src/mcp/tools/impact.js.map +1 -0
  78. package/dist/src/mcp/tools/index-db-graph.d.ts +14 -0
  79. package/dist/src/mcp/tools/index-db-graph.d.ts.map +1 -0
  80. package/dist/src/mcp/tools/index-db-graph.js +32 -0
  81. package/dist/src/mcp/tools/index-db-graph.js.map +1 -0
  82. package/dist/src/mcp/tools/list-indexed.d.ts +9 -0
  83. package/dist/src/mcp/tools/list-indexed.d.ts.map +1 -0
  84. package/dist/src/mcp/tools/list-indexed.js +14 -0
  85. package/dist/src/mcp/tools/list-indexed.js.map +1 -0
  86. package/dist/src/mcp/tools/query.d.ts +14 -0
  87. package/dist/src/mcp/tools/query.d.ts.map +1 -0
  88. package/dist/src/mcp/tools/query.js +47 -0
  89. package/dist/src/mcp/tools/query.js.map +1 -0
  90. package/dist/src/mcp/tools/rename.d.ts +19 -0
  91. package/dist/src/mcp/tools/rename.d.ts.map +1 -0
  92. package/dist/src/mcp/tools/rename.js +46 -0
  93. package/dist/src/mcp/tools/rename.js.map +1 -0
  94. package/dist/src/parser/lsp-client.d.ts +52 -0
  95. package/dist/src/parser/lsp-client.d.ts.map +1 -0
  96. package/dist/src/parser/lsp-client.js +230 -0
  97. package/dist/src/parser/lsp-client.js.map +1 -0
  98. package/dist/src/parser/lsp-server-path.d.ts +10 -0
  99. package/dist/src/parser/lsp-server-path.d.ts.map +1 -0
  100. package/dist/src/parser/lsp-server-path.js +29 -0
  101. package/dist/src/parser/lsp-server-path.js.map +1 -0
  102. package/dist/src/parser/symbols.d.ts +13 -0
  103. package/dist/src/parser/symbols.d.ts.map +1 -0
  104. package/dist/src/parser/symbols.js +150 -0
  105. package/dist/src/parser/symbols.js.map +1 -0
  106. package/dist/src/parser/sysml-mcp-client.d.ts +109 -0
  107. package/dist/src/parser/sysml-mcp-client.d.ts.map +1 -0
  108. package/dist/src/parser/sysml-mcp-client.js +185 -0
  109. package/dist/src/parser/sysml-mcp-client.js.map +1 -0
  110. package/dist/src/storage/clean.d.ts +15 -0
  111. package/dist/src/storage/clean.d.ts.map +1 -0
  112. package/dist/src/storage/clean.js +44 -0
  113. package/dist/src/storage/clean.js.map +1 -0
  114. package/dist/src/storage/list.d.ts +9 -0
  115. package/dist/src/storage/list.d.ts.map +1 -0
  116. package/dist/src/storage/list.js +12 -0
  117. package/dist/src/storage/list.js.map +1 -0
  118. package/dist/src/storage/location.d.ts +22 -0
  119. package/dist/src/storage/location.d.ts.map +1 -0
  120. package/dist/src/storage/location.js +36 -0
  121. package/dist/src/storage/location.js.map +1 -0
  122. package/dist/src/storage/registry.d.ts +14 -0
  123. package/dist/src/storage/registry.d.ts.map +1 -0
  124. package/dist/src/storage/registry.js +59 -0
  125. package/dist/src/storage/registry.js.map +1 -0
  126. package/dist/src/symbol-to-graph/mapping.d.ts +17 -0
  127. package/dist/src/symbol-to-graph/mapping.d.ts.map +1 -0
  128. package/dist/src/symbol-to-graph/mapping.js +102 -0
  129. package/dist/src/symbol-to-graph/mapping.js.map +1 -0
  130. package/dist/src/types.d.ts +40 -0
  131. package/dist/src/types.d.ts.map +1 -0
  132. package/dist/src/types.js +35 -0
  133. package/dist/src/types.js.map +1 -0
  134. package/dist/src/worker/client.d.ts +21 -0
  135. package/dist/src/worker/client.d.ts.map +1 -0
  136. package/dist/src/worker/client.js +126 -0
  137. package/dist/src/worker/client.js.map +1 -0
  138. package/dist/src/worker/gateway.d.ts +79 -0
  139. package/dist/src/worker/gateway.d.ts.map +1 -0
  140. package/dist/src/worker/gateway.js +93 -0
  141. package/dist/src/worker/gateway.js.map +1 -0
  142. package/dist/src/worker/graph-worker.d.ts +7 -0
  143. package/dist/src/worker/graph-worker.d.ts.map +1 -0
  144. package/dist/src/worker/graph-worker.js +91 -0
  145. package/dist/src/worker/graph-worker.js.map +1 -0
  146. package/dist/src/worker/protocol.d.ts +21 -0
  147. package/dist/src/worker/protocol.d.ts.map +1 -0
  148. package/dist/src/worker/protocol.js +9 -0
  149. package/dist/src/worker/protocol.js.map +1 -0
  150. package/docs/INSTALL.md +16 -0
  151. package/docs/MCP_CLIENT_TEMPLATE_ANALYSIS.md +196 -0
  152. package/docs/MCP_INTERACTION_GUIDE.md +201 -0
  153. package/docs/MCP_SERVER_FOR_CURSOR.md +124 -0
  154. package/docs/PLAN.md +58 -0
  155. package/docs/PLAN_INDEPENDENT_LSP.md +145 -0
  156. package/docs/SKILL_DESIGN_PATTERNS.md +305 -0
  157. package/docs/TOOLS.md +317 -0
  158. package/lsp/README.md +41 -0
  159. package/lsp/node_modules/.bin/sysml-mcp +12 -0
  160. package/lsp/node_modules/.bin/sysml-mcp.cmd +9 -0
  161. package/lsp/node_modules/.bin/sysml-mcp.ps1 +16 -0
  162. package/lsp/node_modules/.package-lock.json +22 -0
  163. package/lsp/node_modules/sysml-v2-lsp/CHANGELOG.md +188 -0
  164. package/lsp/node_modules/sysml-v2-lsp/LICENSE +21 -0
  165. package/lsp/node_modules/sysml-v2-lsp/README.md +172 -0
  166. package/lsp/node_modules/sysml-v2-lsp/dist/server/mcpServer.js +167 -0
  167. package/lsp/node_modules/sysml-v2-lsp/dist/server/server.js +142 -0
  168. package/lsp/node_modules/sysml-v2-lsp/index.cjs +23 -0
  169. package/lsp/node_modules/sysml-v2-lsp/package.json +131 -0
  170. package/lsp/node_modules/sysml-v2-lsp/sysml.library/.project +17 -0
  171. package/lsp/node_modules/sysml-v2-lsp/sysml.library/.settings/org.eclipse.jdt.core.prefs +11 -0
  172. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Analysis/.meta.json +10 -0
  173. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Analysis/.project.json +27 -0
  174. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Analysis/AnalysisTooling.sysml +34 -0
  175. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Analysis/SampledFunctions.sysml +119 -0
  176. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Analysis/StateSpaceRepresentation.sysml +143 -0
  177. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Analysis/TradeStudies.sysml +171 -0
  178. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Cause and Effect/.meta.json +8 -0
  179. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Cause and Effect/.project.json +23 -0
  180. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Cause and Effect/CausationConnections.sysml +83 -0
  181. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Cause and Effect/CauseAndEffect.sysml +81 -0
  182. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Geometry/.meta.json +8 -0
  183. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Geometry/.project.json +27 -0
  184. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Geometry/ShapeItems.sysml +899 -0
  185. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Geometry/SpatialItems.sysml +168 -0
  186. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Metadata/.meta.json +10 -0
  187. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Metadata/.project.json +19 -0
  188. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Metadata/ImageMetadata.sysml +78 -0
  189. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Metadata/ModelingMetadata.sysml +143 -0
  190. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Metadata/ParametersOfInterestMetadata.sysml +39 -0
  191. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Metadata/RiskMetadata.sysml +100 -0
  192. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/.meta.json +29 -0
  193. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/.project.json +23 -0
  194. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQ.sysml +42 -0
  195. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQAcoustics.sysml +439 -0
  196. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQAtomicNuclear.sysml +2726 -0
  197. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQBase.sysml +206 -0
  198. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQCharacteristicNumbers.sysml +1991 -0
  199. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQChemistryMolecular.sysml +1353 -0
  200. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQCondensedMatter.sysml +1223 -0
  201. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQElectromagnetism.sysml +2333 -0
  202. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQInformation.sysml +958 -0
  203. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQLight.sysml +1537 -0
  204. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQMechanics.sysml +1564 -0
  205. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQSpaceTime.sysml +1169 -0
  206. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQThermodynamics.sysml +1256 -0
  207. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/MeasurementRefCalculations.sysml +30 -0
  208. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/MeasurementReferences.sysml +526 -0
  209. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/Quantities.sysml +107 -0
  210. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/QuantityCalculations.sysml +70 -0
  211. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/SI.sysml +378 -0
  212. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/SIPrefixes.sysml +48 -0
  213. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/TensorCalculations.sysml +50 -0
  214. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/Time.sysml +274 -0
  215. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/USCustomaryUnits.sysml +260 -0
  216. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/VectorCalculations.sysml +62 -0
  217. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Requirement Derivation/.meta.json +8 -0
  218. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Requirement Derivation/.project.json +19 -0
  219. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Requirement Derivation/DerivationConnections.sysml +63 -0
  220. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Requirement Derivation/RequirementDerivation.sysml +39 -0
  221. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Data Type Library/.meta.json +9 -0
  222. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Data Type Library/.project.json +11 -0
  223. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Data Type Library/Collections.kerml +147 -0
  224. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Data Type Library/ScalarValues.kerml +23 -0
  225. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Data Type Library/VectorValues.kerml +64 -0
  226. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/.meta.json +23 -0
  227. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/.project.json +15 -0
  228. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/BaseFunctions.kerml +80 -0
  229. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/BooleanFunctions.kerml +22 -0
  230. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/CollectionFunctions.kerml +68 -0
  231. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/ComplexFunctions.kerml +47 -0
  232. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/ControlFunctions.kerml +117 -0
  233. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/DataFunctions.kerml +43 -0
  234. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/IntegerFunctions.kerml +43 -0
  235. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/NaturalFunctions.kerml +27 -0
  236. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/NumericalFunctions.kerml +43 -0
  237. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/OccurrenceFunctions.kerml +154 -0
  238. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/RationalFunctions.kerml +49 -0
  239. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/RealFunctions.kerml +56 -0
  240. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/ScalarFunctions.kerml +33 -0
  241. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/SequenceFunctions.kerml +111 -0
  242. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/StringFunctions.kerml +25 -0
  243. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/TrigFunctions.kerml +35 -0
  244. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/VectorFunctions.kerml +273 -0
  245. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/.meta.json +22 -0
  246. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/.project.json +15 -0
  247. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Base.kerml +95 -0
  248. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Clocks.kerml +156 -0
  249. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/ControlPerformances.kerml +135 -0
  250. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/FeatureReferencingPerformances.kerml +190 -0
  251. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/KerML.kerml +483 -0
  252. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Links.kerml +67 -0
  253. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Metaobjects.kerml +58 -0
  254. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Objects.kerml +212 -0
  255. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Observation.kerml +161 -0
  256. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Occurrences.kerml +992 -0
  257. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Performances.kerml +293 -0
  258. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/SpatialFrames.kerml +197 -0
  259. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/StatePerformances.kerml +145 -0
  260. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Transfers.kerml +281 -0
  261. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/TransitionPerformances.kerml +66 -0
  262. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Triggers.kerml +188 -0
  263. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/.meta.json +27 -0
  264. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/.project.json +19 -0
  265. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Actions.sysml +552 -0
  266. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Allocations.sysml +29 -0
  267. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/AnalysisCases.sysml +38 -0
  268. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Attributes.sysml +25 -0
  269. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Calculations.sysml +37 -0
  270. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Cases.sysml +71 -0
  271. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Connections.sysml +60 -0
  272. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Constraints.sysml +44 -0
  273. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Flows.sysml +126 -0
  274. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Interfaces.sysml +89 -0
  275. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Items.sysml +153 -0
  276. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Metadata.sysml +32 -0
  277. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Parts.sysml +81 -0
  278. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Ports.sysml +54 -0
  279. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Requirements.sysml +194 -0
  280. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/StandardViewDefinitions.sysml +123 -0
  281. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/States.sysml +103 -0
  282. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/SysML.sysml +539 -0
  283. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/UseCases.sysml +57 -0
  284. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/VerificationCases.sysml +103 -0
  285. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Views.sysml +164 -0
  286. package/lsp/package-lock.json +30 -0
  287. package/lsp/package.json +15 -0
  288. package/lsp/test-server.mjs +120 -0
  289. package/package.json +61 -0
  290. package/scripts/access-sysml-mcp.mjs +45 -0
  291. package/scripts/check-sysml-v2-lsp-version.mjs +39 -0
  292. package/scripts/clean.mjs +14 -0
  293. package/scripts/compare-mcp-vs-lsp-symbols.mjs +76 -0
  294. package/scripts/debug-index.mjs +23 -0
  295. package/scripts/debug-lsp-symbols.mjs +62 -0
  296. package/scripts/deploy-skills.mjs +43 -0
  297. package/scripts/example-sysml-mcp.mjs +27 -0
  298. package/scripts/export-graph.mjs +80 -0
  299. package/scripts/generate-map.mjs +110 -0
  300. package/scripts/index-and-map.mjs +43 -0
  301. package/scripts/index-and-query.mjs +39 -0
  302. package/scripts/query-one.mjs +34 -0
  303. package/scripts/setup-lsp.mjs +36 -0
  304. package/scripts/test-lsp.mjs +55 -0
  305. package/scripts/test-mcp-debug.mjs +32 -0
  306. package/scripts/test-mcp-sysml.mjs +75 -0
  307. package/scripts/test-mcp-tools.mjs +185 -0
  308. package/scripts/test-sysml-mcp-from-node_modules.mjs +56 -0
  309. package/scripts/validate-sysml-file.mjs +69 -0
@@ -0,0 +1,958 @@
1
+ standard library package ISQInformation {
2
+ doc
3
+ /*
4
+ * International System of Quantities and Units
5
+ * Generated on 2025-03-13T15:00:05Z from standard IEC-80000-13:2008 "Information science and technology"
6
+ * see also https://www.iso.org/obp/ui/#iso:std:iec:80000:-13:ed-1:v1:en
7
+ *
8
+ * Note 1: In documentation comments, AsciiMath notation (see http://asciimath.org/) is used for mathematical concepts,
9
+ * with Greek letters in Unicode encoding. In running text, AsciiMath is placed between backticks.
10
+ * Note 2: For vector and tensor quantities currently the unit and quantity value type for their (scalar) magnitude is
11
+ * defined, as well as their typical Cartesian 3d VectorMeasurementReference (i.e. coordinate system)
12
+ * or TensorMeasurementReference.
13
+ */
14
+
15
+ private import ScalarValues::Real;
16
+ private import Quantities::*;
17
+ private import MeasurementReferences::*;
18
+ private import ISQBase::*;
19
+
20
+ /* Quantity definitions referenced from other ISQ packages */
21
+ private import ISQMechanics::PowerValue;
22
+ private import ISQSpaceTime::FrequencyValue;
23
+ private import ISQThermodynamics::EnergyValue;
24
+
25
+ /* IEC-80000-13 item 13-1 traffic intensity */
26
+ attribute def TrafficIntensityValue :> ScalarQuantityValue {
27
+ doc
28
+ /*
29
+ * source: item 13-1 traffic intensity
30
+ * symbol(s): `A`
31
+ * application domain: generic
32
+ * name: TrafficIntensity
33
+ * quantity dimension: 1
34
+ * measurement unit(s): E
35
+ * tensor order: 0
36
+ * definition: number of simultaneously busy resources in a particular pool of resources
37
+ * remarks: See IEC 60050-715, item 715-05-02. The name "erlang" was given to the traffic intensity unit in 1946 by the CCIF, in honour of the Danish mathematician, A. K. Erlang (1878-1929), who was the founder of traffic theory in telephony.
38
+ */
39
+ attribute :>> num: Real;
40
+ attribute :>> mRef: TrafficIntensityUnit[1];
41
+ }
42
+
43
+ attribute trafficIntensity: TrafficIntensityValue[*] nonunique :> scalarQuantities;
44
+
45
+ attribute def TrafficIntensityUnit :> DimensionOneUnit {
46
+ }
47
+
48
+ /* IEC-80000-13 item 13-2 traffic offered intensity */
49
+ attribute def TrafficOfferedIntensityValue :> ScalarQuantityValue {
50
+ doc
51
+ /*
52
+ * source: item 13-2 traffic offered intensity
53
+ * symbol(s): `A_o`
54
+ * application domain: generic
55
+ * name: TrafficOfferedIntensity
56
+ * quantity dimension: 1
57
+ * measurement unit(s): E
58
+ * tensor order: 0
59
+ * definition: traffic intensity (item 13-1) of the traffic that would have been generated by the users of a pool of resources if their use had not been limited by the size of the pool
60
+ * remarks: See IEC 60050-715, item 715-05-05. See 13-1 for unit E.
61
+ */
62
+ attribute :>> num: Real;
63
+ attribute :>> mRef: TrafficOfferedIntensityUnit[1];
64
+ }
65
+
66
+ attribute trafficOfferedIntensity: TrafficOfferedIntensityValue[*] nonunique :> scalarQuantities;
67
+
68
+ attribute def TrafficOfferedIntensityUnit :> DimensionOneUnit {
69
+ }
70
+
71
+ /* IEC-80000-13 item 13-3 traffic carried intensity, traffic load */
72
+ attribute def TrafficCarriedIntensityValue :> ScalarQuantityValue {
73
+ doc
74
+ /*
75
+ * source: item 13-3 traffic carried intensity, traffic load
76
+ * symbol(s): `Y`
77
+ * application domain: generic
78
+ * name: TrafficCarriedIntensity
79
+ * quantity dimension: 1
80
+ * measurement unit(s): E
81
+ * tensor order: 0
82
+ * definition: traffic intensity (item 13-1) of the traffic served by a particular pool of resources
83
+ * remarks: General practice is to estimate the traffic intensity as an average over a specified time interval, e.g. the busy hour. See IEC 60050-715, item 715-05-04. See 13-1 for unit E.
84
+ */
85
+ attribute :>> num: Real;
86
+ attribute :>> mRef: TrafficCarriedIntensityUnit[1];
87
+ }
88
+
89
+ attribute trafficCarriedIntensity: TrafficCarriedIntensityValue[*] nonunique :> scalarQuantities;
90
+
91
+ attribute def TrafficCarriedIntensityUnit :> DimensionOneUnit {
92
+ }
93
+
94
+ alias TrafficLoadUnit for TrafficCarriedIntensityUnit;
95
+ alias TrafficLoadValue for TrafficCarriedIntensityValue;
96
+ alias trafficLoad for trafficCarriedIntensity;
97
+
98
+ /* IEC-80000-13 item 13-4 mean queue length */
99
+ attribute def MeanQueueLengthValue :> DimensionOneValue {
100
+ doc
101
+ /*
102
+ * source: item 13-4 mean queue length
103
+ * symbol(s): `L`, `(Ω)`
104
+ * application domain: generic
105
+ * name: MeanQueueLength (specializes DimensionOneQuantity)
106
+ * quantity dimension: 1
107
+ * measurement unit(s): 1
108
+ * tensor order: 0
109
+ * definition: time average of queue length
110
+ * remarks: None.
111
+ */
112
+ }
113
+ attribute meanQueueLength: MeanQueueLengthValue :> scalarQuantities;
114
+
115
+ /* IEC-80000-13 item 13-5 loss probability */
116
+ attribute def LossProbabilityValue :> DimensionOneValue {
117
+ doc
118
+ /*
119
+ * source: item 13-5 loss probability
120
+ * symbol(s): `B`
121
+ * application domain: generic
122
+ * name: LossProbability (specializes DimensionOneQuantity)
123
+ * quantity dimension: 1
124
+ * measurement unit(s): 1
125
+ * tensor order: 0
126
+ * definition: probability for losing a call attempt
127
+ * remarks: None.
128
+ */
129
+ }
130
+ attribute lossProbability: LossProbabilityValue :> scalarQuantities;
131
+
132
+ /* IEC-80000-13 item 13-6 waiting probability */
133
+ attribute def WaitingProbabilityValue :> DimensionOneValue {
134
+ doc
135
+ /*
136
+ * source: item 13-6 waiting probability
137
+ * symbol(s): `W`
138
+ * application domain: generic
139
+ * name: WaitingProbability (specializes DimensionOneQuantity)
140
+ * quantity dimension: 1
141
+ * measurement unit(s): 1
142
+ * tensor order: 0
143
+ * definition: probability for waiting for a resource
144
+ * remarks: None.
145
+ */
146
+ }
147
+ attribute waitingProbability: WaitingProbabilityValue :> scalarQuantities;
148
+
149
+ /* IEC-80000-13 item 13-7 call intensity, calling rate */
150
+ attribute def CallIntensityValue :> ScalarQuantityValue {
151
+ doc
152
+ /*
153
+ * source: item 13-7 call intensity, calling rate
154
+ * symbol(s): `λ`
155
+ * application domain: generic
156
+ * name: CallIntensity
157
+ * quantity dimension: T^-1
158
+ * measurement unit(s): s^-1
159
+ * tensor order: 0
160
+ * definition: number of call attempts over a specified time interval divided by the duration (ISO 80000-3, item 3-7) of this interval
161
+ * remarks: See IEC 60050-715, item 715-03-13.
162
+ */
163
+ attribute :>> num: Real;
164
+ attribute :>> mRef: CallIntensityUnit[1];
165
+ }
166
+
167
+ attribute callIntensity: CallIntensityValue[*] nonunique :> scalarQuantities;
168
+
169
+ attribute def CallIntensityUnit :> DerivedUnit {
170
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -1; }
171
+ attribute :>> quantityDimension { :>> quantityPowerFactors = durationPF; }
172
+ }
173
+
174
+ alias CallingRateUnit for CallIntensityUnit;
175
+ alias CallingRateValue for CallIntensityValue;
176
+ alias callingRate for callIntensity;
177
+
178
+ /* IEC-80000-13 item 13-8 completed call intensity */
179
+ attribute def CompletedCallIntensityValue :> ScalarQuantityValue {
180
+ doc
181
+ /*
182
+ * source: item 13-8 completed call intensity
183
+ * symbol(s): `μ`
184
+ * application domain: generic
185
+ * name: CompletedCallIntensity
186
+ * quantity dimension: T^-1
187
+ * measurement unit(s): s^-1
188
+ * tensor order: 0
189
+ * definition: call intensity (item 13-7) for the call attempts that result in the transmission of an answer signal
190
+ * remarks: For a definition of the complete call attempt, see IEC 60050-715, item 715-03-11.
191
+ */
192
+ attribute :>> num: Real;
193
+ attribute :>> mRef: CompletedCallIntensityUnit[1];
194
+ }
195
+
196
+ attribute completedCallIntensity: CompletedCallIntensityValue[*] nonunique :> scalarQuantities;
197
+
198
+ attribute def CompletedCallIntensityUnit :> DerivedUnit {
199
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -1; }
200
+ attribute :>> quantityDimension { :>> quantityPowerFactors = durationPF; }
201
+ }
202
+
203
+ /* IEC-80000-13 item 13-9 storage capacity, storage size */
204
+ attribute def StorageCapacityValue :> ScalarQuantityValue {
205
+ doc
206
+ /*
207
+ * source: item 13-9 storage capacity, storage size
208
+ * symbol(s): `M`
209
+ * application domain: generic
210
+ * name: StorageCapacity
211
+ * quantity dimension: 1
212
+ * measurement unit(s): bit, o, B, 1
213
+ * tensor order: 0
214
+ * definition: amount of data that can be contained in a storage device, expressed as a number of specified data elements
215
+ * remarks: None.
216
+ */
217
+ attribute :>> num: Real;
218
+ attribute :>> mRef: StorageCapacityUnit[1];
219
+ }
220
+
221
+ attribute storageCapacity: StorageCapacityValue[*] nonunique :> scalarQuantities;
222
+
223
+ attribute def StorageCapacityUnit :> DimensionOneUnit {
224
+ }
225
+
226
+ alias StorageSizeUnit for StorageCapacityUnit;
227
+ alias StorageSizeValue for StorageCapacityValue;
228
+ alias storageSize for storageCapacity;
229
+
230
+ /* IEC-80000-13 item 13-10 equivalent binary storage capacity */
231
+ attribute def EquivalentBinaryStorageCapacityValue :> ScalarQuantityValue {
232
+ doc
233
+ /*
234
+ * source: item 13-10 equivalent binary storage capacity
235
+ * symbol(s): `M_e`
236
+ * application domain: generic
237
+ * name: EquivalentBinaryStorageCapacity
238
+ * quantity dimension: 1
239
+ * measurement unit(s): bit, 1
240
+ * tensor order: 0
241
+ * definition: `M_e = log_2 n` where `n` is the number of possible states of the given device
242
+ * remarks: The minimum storage capacity of a bit-organized storage device which would contain the amount of data in the given storage device is equal to the smallest integer greater than or equal to the equivalent binary storage capacity.
243
+ */
244
+ attribute :>> num: Real;
245
+ attribute :>> mRef: EquivalentBinaryStorageCapacityUnit[1];
246
+ }
247
+
248
+ attribute equivalentBinaryStorageCapacity: EquivalentBinaryStorageCapacityValue[*] nonunique :> scalarQuantities;
249
+
250
+ attribute def EquivalentBinaryStorageCapacityUnit :> DimensionOneUnit {
251
+ }
252
+
253
+ /* IEC-80000-13 item 13-11 transfer rate */
254
+ attribute def TransferRateValue :> ScalarQuantityValue {
255
+ doc
256
+ /*
257
+ * source: item 13-11 transfer rate
258
+ * symbol(s): `r`, `(ν)`
259
+ * application domain: generic
260
+ * name: TransferRate
261
+ * quantity dimension: T^-1
262
+ * measurement unit(s): o/s, B/s, s^-1
263
+ * tensor order: 0
264
+ * definition: quotient of the number of specified data elements transferred in a time interval by the duration of this interval
265
+ * remarks: The symbol `ν` is the Greek letter nu. A subscript referring to a specified data element can be added to the symbol. EXAMPLES: digit rate, `r_d` or `ν_d` (see IEC 60050-702 and 60050-704, items 702-05-23 and 704-16-06); transfer rate for octets (or bytes), `r_o`, `r_B`, `ν_o`, or `ν_B`; binary digit rate or bit rate (item 13-13).
266
+ */
267
+ attribute :>> num: Real;
268
+ attribute :>> mRef: TransferRateUnit[1];
269
+ }
270
+
271
+ attribute transferRate: TransferRateValue[*] nonunique :> scalarQuantities;
272
+
273
+ attribute def TransferRateUnit :> DerivedUnit {
274
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -1; }
275
+ attribute :>> quantityDimension { :>> quantityPowerFactors = durationPF; }
276
+ }
277
+
278
+ /* IEC-80000-13 item 13-12 period of data elements */
279
+ attribute periodOfDataElements: DurationValue :> scalarQuantities {
280
+ doc
281
+ /*
282
+ * source: item 13-12 period of data elements
283
+ * symbol(s): `T`
284
+ * application domain: generic
285
+ * name: PeriodOfDataElements (specializes Duration)
286
+ * quantity dimension: T^1
287
+ * measurement unit(s): s
288
+ * tensor order: 0
289
+ * definition: `T = 1/r`, where `r` is transfer rate (item 13-11) when the data elements are transmitted in series
290
+ * remarks: A subscript referring to a specified data element can be added to the symbol. EXAMPLES: period of digits, `T_d`; period of octets (or bytes), `T_o` or `T_B`.
291
+ */
292
+ }
293
+
294
+ /* IEC-80000-13 item 13-13 binary digit rate, bit rate */
295
+ attribute def BinaryDigitRateValue :> ScalarQuantityValue {
296
+ doc
297
+ /*
298
+ * source: item 13-13 binary digit rate, bit rate
299
+ * symbol(s): `r_b`, `r_"bit"`, `(ν_b)`, `(ν_"bit")`
300
+ * application domain: generic
301
+ * name: BinaryDigitRate
302
+ * quantity dimension: T^-1
303
+ * measurement unit(s): bit/s, s^-1
304
+ * tensor order: 0
305
+ * definition: transfer rate (item 13-11) where the data elements are binary digits
306
+ * remarks: In English, the systematic name would be "transfer rate for binary digits". See IEC 60050-704, item 704-16-07. The bit per second may be combined with prefixes, for example megabit per second, symbol Mbit/s.
307
+ */
308
+ attribute :>> num: Real;
309
+ attribute :>> mRef: BinaryDigitRateUnit[1];
310
+ }
311
+
312
+ attribute binaryDigitRate: BinaryDigitRateValue[*] nonunique :> scalarQuantities;
313
+
314
+ attribute def BinaryDigitRateUnit :> DerivedUnit {
315
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -1; }
316
+ attribute :>> quantityDimension { :>> quantityPowerFactors = durationPF; }
317
+ }
318
+
319
+ alias BitRateUnit for BinaryDigitRateUnit;
320
+ alias BitRateValue for BinaryDigitRateValue;
321
+ alias bitRate for binaryDigitRate;
322
+
323
+ /* IEC-80000-13 item 13-14 period of binary digits, bit period */
324
+ attribute periodOfBinaryDigits: DurationValue :> scalarQuantities {
325
+ doc
326
+ /*
327
+ * source: item 13-14 period of binary digits, bit period
328
+ * symbol(s): `T_b`, `T_"bit"`
329
+ * application domain: generic
330
+ * name: PeriodOfBinaryDigits (specializes Duration)
331
+ * quantity dimension: T^1
332
+ * measurement unit(s): s
333
+ * tensor order: 0
334
+ * definition: `T_b = 1/r_b`, where `r_b` is the binary digit rate (item 13-13) when the binary digits are transmitted in series
335
+ * remarks: None.
336
+ */
337
+ }
338
+
339
+ alias bitPeriod for periodOfBinaryDigits;
340
+
341
+ /* IEC-80000-13 item 13-15 equivalent binary digit rate, equivalent bit rate */
342
+ attribute def EquivalentBinaryDigitRateValue :> ScalarQuantityValue {
343
+ doc
344
+ /*
345
+ * source: item 13-15 equivalent binary digit rate, equivalent bit rate
346
+ * symbol(s): `r_e`, `(ν_e)`
347
+ * application domain: generic
348
+ * name: EquivalentBinaryDigitRate
349
+ * quantity dimension: T^-1
350
+ * measurement unit(s): bit/s, s^-1
351
+ * tensor order: 0
352
+ * definition: binary digit rate (item 13-13) equivalent to a transfer rate (item 13-11) for specified data elements
353
+ * remarks: In English, the systematic name would be "equivalent binary transfer rate". See IEC 60050-704, item 704-17-05.
354
+ */
355
+ attribute :>> num: Real;
356
+ attribute :>> mRef: EquivalentBinaryDigitRateUnit[1];
357
+ }
358
+
359
+ attribute equivalentBinaryDigitRate: EquivalentBinaryDigitRateValue[*] nonunique :> scalarQuantities;
360
+
361
+ attribute def EquivalentBinaryDigitRateUnit :> DerivedUnit {
362
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -1; }
363
+ attribute :>> quantityDimension { :>> quantityPowerFactors = durationPF; }
364
+ }
365
+
366
+ alias EquivalentBitRateUnit for EquivalentBinaryDigitRateUnit;
367
+ alias EquivalentBitRateValue for EquivalentBinaryDigitRateValue;
368
+ alias equivalentBitRate for equivalentBinaryDigitRate;
369
+
370
+ /* IEC-80000-13 item 13-16 modulation rate, line digit rate */
371
+ attribute def ModulationRateValue :> ScalarQuantityValue {
372
+ doc
373
+ /*
374
+ * source: item 13-16 modulation rate, line digit rate
375
+ * symbol(s): `r_m`, `u`
376
+ * application domain: generic
377
+ * name: ModulationRate
378
+ * quantity dimension: T^-1
379
+ * measurement unit(s): Bd, s^-1
380
+ * tensor order: 0
381
+ * definition: inverse of the shortest duration of a signal element
382
+ * remarks: The term “modulation rate” is used in conventional telegraphy and data transmission. In isochronous digital transmission, the term "line digit rate" is generally used. See IEC 60050-704, item 704-17-03. Baud is a special name for the second to the power minus one for this quantity. The baud may be combined with prefixes, for example kilobaud, symbol kBd, megabaud, symbol MBd.
383
+ */
384
+ attribute :>> num: Real;
385
+ attribute :>> mRef: ModulationRateUnit[1];
386
+ }
387
+
388
+ attribute modulationRate: ModulationRateValue[*] nonunique :> scalarQuantities;
389
+
390
+ attribute def ModulationRateUnit :> DerivedUnit {
391
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -1; }
392
+ attribute :>> quantityDimension { :>> quantityPowerFactors = durationPF; }
393
+ }
394
+
395
+ alias LineDigitRateUnit for ModulationRateUnit;
396
+ alias LineDigitRateValue for ModulationRateValue;
397
+ alias lineDigitRate for modulationRate;
398
+
399
+ /* IEC-80000-13 item 13-17 quantizing distortion rate */
400
+ attribute quantizingDistortionRate: PowerValue :> scalarQuantities {
401
+ doc
402
+ /*
403
+ * source: item 13-17 quantizing distortion rate
404
+ * symbol(s): `T_Q`
405
+ * application domain: generic
406
+ * name: QuantizingDistortionRate (specializes Power)
407
+ * quantity dimension: L^2*M^1*T^-3
408
+ * measurement unit(s): W
409
+ * tensor order: 0
410
+ * definition: distortion of a signal resulting from the process of quantizing an original signal when the values to be quantized are within the working range of the quantizer
411
+ * remarks: See IEC 60050-704, item 704-24-13.
412
+ */
413
+ }
414
+
415
+ /* IEC-80000-13 item 13-18 carrier power */
416
+ attribute carrierPower: PowerValue :> scalarQuantities {
417
+ doc
418
+ /*
419
+ * source: item 13-18 carrier power
420
+ * symbol(s): `P_c`, `C`
421
+ * application domain: generic
422
+ * name: CarrierPower (specializes Power)
423
+ * quantity dimension: L^2*M^1*T^-3
424
+ * measurement unit(s): W
425
+ * tensor order: 0
426
+ * definition: power supplied to the antenna feed line by a radio transmitter taken under the condition of no modulation
427
+ * remarks: See IEC 60050-713, item 713-09-20.
428
+ */
429
+ }
430
+
431
+ /* IEC-80000-13 item 13-19 signal energy per binary digit */
432
+ attribute signalEnergyPerBinaryDigit: EnergyValue :> scalarQuantities {
433
+ doc
434
+ /*
435
+ * source: item 13-19 signal energy per binary digit
436
+ * symbol(s): `E_b`, `E_"bit"`
437
+ * application domain: generic
438
+ * name: SignalEnergyPerBinaryDigit (specializes Energy)
439
+ * quantity dimension: L^2*M^1*T^-2
440
+ * measurement unit(s): J
441
+ * tensor order: 0
442
+ * definition: `E_b = P_c*T_b`, where `P_c` is carrier power (item 13-18) and `T_b` is period of binary digits (item 13-14)
443
+ * remarks: None.
444
+ */
445
+ }
446
+
447
+ /* IEC-80000-13 item 13-20 error probability */
448
+ attribute def ErrorProbabilityValue :> DimensionOneValue {
449
+ doc
450
+ /*
451
+ * source: item 13-20 error probability
452
+ * symbol(s): `P`
453
+ * application domain: generic
454
+ * name: ErrorProbability (specializes DimensionOneQuantity)
455
+ * quantity dimension: 1
456
+ * measurement unit(s): 1
457
+ * tensor order: 0
458
+ * definition: probability that a data element be incorrectly received
459
+ * remarks: A subscript referring to a specified data element can be added to the symbol. EXAMPLES: error probability for binary digits or bit error probability, `P_b` or `P_bit`; block error probability, `P_bl`. The measured value is designated as "error ratio", whereas "error rate" is deprecated, for example, bit error ratio (BER), block error ratio. See IEC 60050-704 and IEC 60050-721.
460
+ */
461
+ }
462
+ attribute errorProbability: ErrorProbabilityValue :> scalarQuantities;
463
+
464
+ /* IEC-80000-13 item 13-21 Hamming distance */
465
+ attribute hammingDistance: CountValue :> scalarQuantities {
466
+ doc
467
+ /*
468
+ * source: item 13-21 Hamming distance
469
+ * symbol(s): `d_n`
470
+ * application domain: generic
471
+ * name: HammingDistance (specializes Count)
472
+ * quantity dimension: 1
473
+ * measurement unit(s): 1
474
+ * tensor order: 0
475
+ * definition: number of digit positions in which the corresponding digits of two words of the same length are different
476
+ * remarks: See IEC 60050-721, item 721-08-25.
477
+ */
478
+ }
479
+
480
+ /* IEC-80000-13 item 13-22 clock frequency, clock rate */
481
+ attribute clockFrequency: FrequencyValue :> scalarQuantities {
482
+ doc
483
+ /*
484
+ * source: item 13-22 clock frequency, clock rate
485
+ * symbol(s): `f_"cl"`
486
+ * application domain: generic
487
+ * name: ClockFrequency (specializes Frequency)
488
+ * quantity dimension: T^-1
489
+ * measurement unit(s): Hz
490
+ * tensor order: 0
491
+ * definition: frequency at which a clock oscillates
492
+ * remarks: None.
493
+ */
494
+ }
495
+
496
+ alias clockRate for clockFrequency;
497
+
498
+ /* IEC-80000-13 item 13-23 decision content */
499
+ attribute def DecisionContentValue :> DimensionOneValue {
500
+ doc
501
+ /*
502
+ * source: item 13-23 decision content
503
+ * symbol(s): `D_a`
504
+ * application domain: generic
505
+ * name: DecisionContent (specializes DimensionOneQuantity)
506
+ * quantity dimension: 1
507
+ * measurement unit(s): 1
508
+ * tensor order: 0
509
+ * definition: `D_a` = `log_a n`, where `a` is the number of possibilities at each decision and `n` the number of events
510
+ * remarks: See ISO/IEC 2382-16, item 16.03.01. See also IEC 60027-3. When the same base is used for the same number of events then `D_a = H_0` , where `H_0` is maximum entropy (item 13-28).
511
+ */
512
+ }
513
+ attribute decisionContent: DecisionContentValue :> scalarQuantities;
514
+
515
+ /* IEC-80000-13 item 13-24 information content */
516
+ attribute def InformationContentValue :> ScalarQuantityValue {
517
+ doc
518
+ /*
519
+ * source: item 13-24 information content
520
+ * symbol(s): `I(x)`
521
+ * application domain: generic
522
+ * name: InformationContent
523
+ * quantity dimension: 1
524
+ * measurement unit(s): Sh, Hart, nat
525
+ * tensor order: 0
526
+ * definition: `I(x) = log_2(1/(p(x)))` Sh `= log(1/(p(x)))` Hart `= ln(1/(p(x)))` nat, where `p(x)` is the probability of event `x`
527
+ * remarks: See ISO/IEC 2382-16, item 16.03.02. See also IEC 60027-3.
528
+ */
529
+ attribute :>> num: Real;
530
+ attribute :>> mRef: InformationContentUnit[1];
531
+ }
532
+
533
+ attribute informationContent: InformationContentValue[*] nonunique :> scalarQuantities;
534
+
535
+ attribute def InformationContentUnit :> DimensionOneUnit {
536
+ }
537
+
538
+ /* IEC-80000-13 item 13-25 entropy */
539
+ attribute def EntropyForInformationScienceValue :> ScalarQuantityValue {
540
+ doc
541
+ /*
542
+ * source: item 13-25 entropy
543
+ * symbol(s): `H`
544
+ * application domain: information science
545
+ * name: Entropy
546
+ * quantity dimension: 1
547
+ * measurement unit(s): Sh, Hart, nat
548
+ * tensor order: 0
549
+ * definition: `H(X) = sum_(i=1)^n p(x_i) I(x_i)` for the set `X = {x_1, ..., x_n}`, where `p(x_i)` is the probability and `I(x_i)` is the information content of event `x_i`
550
+ * remarks: See ISO/IEC 2382-16, item 16.03.02. See also IEC 60027-3.
551
+ */
552
+ attribute :>> num: Real;
553
+ attribute :>> mRef: EntropyForInformationScienceUnit[1];
554
+ }
555
+
556
+ attribute entropyForInformationScience: EntropyForInformationScienceValue[*] nonunique :> scalarQuantities;
557
+
558
+ attribute def EntropyForInformationScienceUnit :> DimensionOneUnit {
559
+ }
560
+
561
+ /* IEC-80000-13 item 13-26 maximum entropy */
562
+ attribute def MaximumEntropyValue :> ScalarQuantityValue {
563
+ doc
564
+ /*
565
+ * source: item 13-26 maximum entropy
566
+ * symbol(s): `H_0`, `H_"max"`
567
+ * application domain: information science
568
+ * name: MaximumEntropy
569
+ * quantity dimension: 1
570
+ * measurement unit(s): Sh, Hart, nat
571
+ * tensor order: 0
572
+ * definition: maximum entropy occurs when `p(x_i) = 1/n` for `i = 1, ..., n`
573
+ * remarks: The maximum entropy is sometimes called "decision content" because the value is the same when the base is an integer, for the same number of events. See item 13-23.
574
+ */
575
+ attribute :>> num: Real;
576
+ attribute :>> mRef: MaximumEntropyUnit[1];
577
+ }
578
+
579
+ attribute maximumEntropy: MaximumEntropyValue[*] nonunique :> scalarQuantities;
580
+
581
+ attribute def MaximumEntropyUnit :> DimensionOneUnit {
582
+ }
583
+
584
+ /* IEC-80000-13 item 13-27 relative entropy */
585
+ attribute def RelativeEntropyValue :> DimensionOneValue {
586
+ doc
587
+ /*
588
+ * source: item 13-27 relative entropy
589
+ * symbol(s): `H_r`
590
+ * application domain: information science
591
+ * name: RelativeEntropy (specializes DimensionOneQuantity)
592
+ * quantity dimension: 1
593
+ * measurement unit(s): 1
594
+ * tensor order: 0
595
+ * definition: `H_r = H / H_0`, where `H` is entropy (item 13-25) and `H_0` is maximum entropy (item 13-26)
596
+ * remarks: See ISO/IEC 2382-16, item 16.03.04.
597
+ */
598
+ }
599
+ attribute relativeEntropy: RelativeEntropyValue :> scalarQuantities;
600
+
601
+ /* IEC-80000-13 item 13-28 redundancy */
602
+ attribute def RedundancyValue :> ScalarQuantityValue {
603
+ doc
604
+ /*
605
+ * source: item 13-28 redundancy
606
+ * symbol(s): `R`
607
+ * application domain: information science
608
+ * name: Redundancy
609
+ * quantity dimension: 1
610
+ * measurement unit(s): Sh, Hart, nat
611
+ * tensor order: 0
612
+ * definition: `R = H_0 − H`, where `H` is entropy (item 13-25) and `H_0` is maximum entropy (item 13-26)
613
+ * remarks: See ISO/IEC 2382-16, item 16.03.05.
614
+ */
615
+ attribute :>> num: Real;
616
+ attribute :>> mRef: RedundancyUnit[1];
617
+ }
618
+
619
+ attribute redundancy: RedundancyValue[*] nonunique :> scalarQuantities;
620
+
621
+ attribute def RedundancyUnit :> DimensionOneUnit {
622
+ }
623
+
624
+ /* IEC-80000-13 item 13-29 relative redundancy */
625
+ attribute def RelativeRedundancyValue :> DimensionOneValue {
626
+ doc
627
+ /*
628
+ * source: item 13-29 relative redundancy
629
+ * symbol(s): `r`
630
+ * application domain: information science
631
+ * name: RelativeRedundancy (specializes DimensionOneQuantity)
632
+ * quantity dimension: 1
633
+ * measurement unit(s): 1
634
+ * tensor order: 0
635
+ * definition: `r = R / H_0`, where `R` is redundancy (item 13-28) and `H_0` is maximum entropy (item 13-26)
636
+ * remarks: See ISO/IEC 2382-16, item 16.04.01.
637
+ */
638
+ }
639
+ attribute relativeRedundancy: RelativeRedundancyValue :> scalarQuantities;
640
+
641
+ /* IEC-80000-13 item 13-30 joint information content */
642
+ attribute def JointInformationContentValue :> ScalarQuantityValue {
643
+ doc
644
+ /*
645
+ * source: item 13-30 joint information content
646
+ * symbol(s): `I(x,y)`
647
+ * application domain: generic
648
+ * name: JointInformationContent
649
+ * quantity dimension: 1
650
+ * measurement unit(s): Sh, Hart, nat
651
+ * tensor order: 0
652
+ * definition: `I(x,y) = log_2(1/(p(x,y)))` Sh `= log(1/(p(x,y)))` Hart `= ln(1/(p(x,y)))` nat, where `p(x,y)` is the joint probability of events `x` and `y`
653
+ * remarks: None.
654
+ */
655
+ attribute :>> num: Real;
656
+ attribute :>> mRef: JointInformationContentUnit[1];
657
+ }
658
+
659
+ attribute jointInformationContent: JointInformationContentValue[*] nonunique :> scalarQuantities;
660
+
661
+ attribute def JointInformationContentUnit :> DimensionOneUnit {
662
+ }
663
+
664
+ /* IEC-80000-13 item 13-31 conditional information content */
665
+ attribute def ConditionalInformationContentValue :> ScalarQuantityValue {
666
+ doc
667
+ /*
668
+ * source: item 13-31 conditional information content
669
+ * symbol(s): `I(x|y)`
670
+ * application domain: generic
671
+ * name: ConditionalInformationContent
672
+ * quantity dimension: 1
673
+ * measurement unit(s): Sh, Hart, nat
674
+ * tensor order: 0
675
+ * definition: information content (item 13-2) of event `x` under the condition that `y` has occurred: `I(x|y) = I(x,y) − I( y)`
676
+ * remarks: See ISO/IEC 2382-16, item 16.04.02.
677
+ */
678
+ attribute :>> num: Real;
679
+ attribute :>> mRef: ConditionalInformationContentUnit[1];
680
+ }
681
+
682
+ attribute conditionalInformationContent: ConditionalInformationContentValue[*] nonunique :> scalarQuantities;
683
+
684
+ attribute def ConditionalInformationContentUnit :> DimensionOneUnit {
685
+ }
686
+
687
+ /* IEC-80000-13 item 13-32 conditional entropy, mean conditional information content, average conditional information content */
688
+ attribute def ConditionalEntropyValue :> ScalarQuantityValue {
689
+ doc
690
+ /*
691
+ * source: item 13-32 conditional entropy, mean conditional information content, average conditional information content
692
+ * symbol(s): `H(X|Y)`
693
+ * application domain: generic
694
+ * name: ConditionalEntropy
695
+ * quantity dimension: 1
696
+ * measurement unit(s): Sh, Hart, nat
697
+ * tensor order: 0
698
+ * definition: `H(X|Y) = sum_(i=1)^n sum_(j=1)^m p(x_i,y_j) I(x_i,y_j)` where `p(x_i,y_j)` is the joint probability of events `x_i` and `y_j`, and `I(x_i,y_j)` is conditional information content (item 13-31)
699
+ * remarks: See ISO/IEC 2382-16, item 16.04.04.
700
+ */
701
+ attribute :>> num: Real;
702
+ attribute :>> mRef: ConditionalEntropyUnit[1];
703
+ }
704
+
705
+ attribute conditionalEntropy: ConditionalEntropyValue[*] nonunique :> scalarQuantities;
706
+
707
+ attribute def ConditionalEntropyUnit :> DimensionOneUnit {
708
+ }
709
+
710
+ alias MeanConditionalInformationContentUnit for ConditionalEntropyUnit;
711
+ alias MeanConditionalInformationContentValue for ConditionalEntropyValue;
712
+ alias meanConditionalInformationContent for conditionalEntropy;
713
+
714
+ alias AverageConditionalInformationContentUnit for ConditionalEntropyUnit;
715
+ alias AverageConditionalInformationContentValue for ConditionalEntropyValue;
716
+ alias averageConditionalInformationContent for conditionalEntropy;
717
+
718
+ /* IEC-80000-13 item 13-33 equivocation */
719
+ attribute def EquivocationValue :> ScalarQuantityValue {
720
+ doc
721
+ /*
722
+ * source: item 13-33 equivocation
723
+ * symbol(s): `H(X|Y)`
724
+ * application domain: generic
725
+ * name: Equivocation
726
+ * quantity dimension: 1
727
+ * measurement unit(s): Sh, Hart, nat
728
+ * tensor order: 0
729
+ * definition: conditional entropy (item 13-32) of a set X of emitted characters given the set Y of received characters
730
+ * remarks: Equivocation is a quantitative measure of the loss of information due to noise. See ISO/IEC 2382-16, item 16.04.05.
731
+ */
732
+ attribute :>> num: Real;
733
+ attribute :>> mRef: EquivocationUnit[1];
734
+ }
735
+
736
+ attribute equivocation: EquivocationValue[*] nonunique :> scalarQuantities;
737
+
738
+ attribute def EquivocationUnit :> DimensionOneUnit {
739
+ }
740
+
741
+ /* IEC-80000-13 item 13-34 irrelevance */
742
+ attribute def IrrelevanceValue :> ScalarQuantityValue {
743
+ doc
744
+ /*
745
+ * source: item 13-34 irrelevance
746
+ * symbol(s): `H(Y|X)`
747
+ * application domain: generic
748
+ * name: Irrelevance
749
+ * quantity dimension: 1
750
+ * measurement unit(s): Sh, Hart, nat
751
+ * tensor order: 0
752
+ * definition: conditional entropy (item 13-32) of a set `Y` of received characters given the set `X` of emitted characters: `H(Y|X) = H(X|Y) + H(Y) − H(X)`, where `H(X|Y)` is equivocation (item 13-33) and `H` is entropy (item 13-25)
753
+ * remarks: Irrelevance is a quantitative measure of the information added to the emitted information due to distortion. See ISO/IEC 2382 16, item 16.04.06.
754
+ */
755
+ attribute :>> num: Real;
756
+ attribute :>> mRef: IrrelevanceUnit[1];
757
+ }
758
+
759
+ attribute irrelevance: IrrelevanceValue[*] nonunique :> scalarQuantities;
760
+
761
+ attribute def IrrelevanceUnit :> DimensionOneUnit {
762
+ }
763
+
764
+ /* IEC-80000-13 item 13-35 transinformation content */
765
+ attribute def TransinformationContentValue :> ScalarQuantityValue {
766
+ doc
767
+ /*
768
+ * source: item 13-35 transinformation content
769
+ * symbol(s): `T(x,y)`
770
+ * application domain: generic
771
+ * name: TransinformationContent
772
+ * quantity dimension: 1
773
+ * measurement unit(s): Sh, Hart, nat
774
+ * tensor order: 0
775
+ * definition: `T(x,y) = I(x) + I(y) − I(x,y)`, where `I(x)` and `I(y)` are the information contents (13-24) of events `x` and `y`, respectively, and `I(x,y)` is their joint information content (13-30)
776
+ * remarks: See ISO/IEC 2382-16, item 16.04.07.
777
+ */
778
+ attribute :>> num: Real;
779
+ attribute :>> mRef: TransinformationContentUnit[1];
780
+ }
781
+
782
+ attribute transinformationContent: TransinformationContentValue[*] nonunique :> scalarQuantities;
783
+
784
+ attribute def TransinformationContentUnit :> DimensionOneUnit {
785
+ }
786
+
787
+ /* IEC-80000-13 item 13-36 mean transinformation content */
788
+ attribute def MeanTransinformationContentValue :> ScalarQuantityValue {
789
+ doc
790
+ /*
791
+ * source: item 13-36 mean transinformation content
792
+ * symbol(s): `T`
793
+ * application domain: generic
794
+ * name: MeanTransinformationContent
795
+ * quantity dimension: 1
796
+ * measurement unit(s): Sh, Hart, nat
797
+ * tensor order: 0
798
+ * definition: `T(X,Y) = sum_(i=1)^n sum_(j=1)^m p(x_i,y_j) T(x_i,y_j)` for the sets `X = {x_1, ..., x_n}`, `Y = {y_1, ..., y_m}`, where `p(x_i,y_j)` is the joint probability of events `x_i` and `y_j`, and `T(x_i,y_j)` is their transinformation content (item 13-35)
799
+ * remarks: See ISO/IEC 2382-16, item 16.04.08. In practice, the unit "shannon per character" is generally used, and sometimes the units "hartley per character" and "natural unit per character".
800
+ */
801
+ attribute :>> num: Real;
802
+ attribute :>> mRef: MeanTransinformationContentUnit[1];
803
+ }
804
+
805
+ attribute meanTransinformationContent: MeanTransinformationContentValue[*] nonunique :> scalarQuantities;
806
+
807
+ attribute def MeanTransinformationContentUnit :> DimensionOneUnit {
808
+ }
809
+
810
+ /* IEC-80000-13 item 13-37 character mean entropy */
811
+ attribute def CharacterMeanEntropyValue :> ScalarQuantityValue {
812
+ doc
813
+ /*
814
+ * source: item 13-37 character mean entropy
815
+ * symbol(s): `H'`
816
+ * application domain: generic
817
+ * name: CharacterMeanEntropy
818
+ * quantity dimension: 1
819
+ * measurement unit(s): Sh, Hart, nat
820
+ * tensor order: 0
821
+ * definition: `H' = lim_(m->∞) H_m/m` where `H_m` is the entropy (item 13-3) of the set of all sequences of `m` characters
822
+ * remarks: See ISO/IEC 2382-16, item 16.04.09.
823
+ */
824
+ attribute :>> num: Real;
825
+ attribute :>> mRef: CharacterMeanEntropyUnit[1];
826
+ }
827
+
828
+ attribute characterMeanEntropy: CharacterMeanEntropyValue[*] nonunique :> scalarQuantities;
829
+
830
+ attribute def CharacterMeanEntropyUnit :> DimensionOneUnit {
831
+ }
832
+
833
+ /* IEC-80000-13 item 13-38 average information rate */
834
+ attribute def AverageInformationRateValue :> ScalarQuantityValue {
835
+ doc
836
+ /*
837
+ * source: item 13-38 average information rate
838
+ * symbol(s): `H^"*"`
839
+ * application domain: generic
840
+ * name: AverageInformationRate
841
+ * quantity dimension: T^-1
842
+ * measurement unit(s): Sh/s, Hart/s, nat/s
843
+ * tensor order: 0
844
+ * definition: `H^"*" = (H')/(t(X))`, where `H'` is character mean entropy (item 13-37) and `t(X)` is the mean value of the duration of a character in the set `X`
845
+ * remarks: See ISO/IEC 2382-16, item 16.04.10.
846
+ */
847
+ attribute :>> num: Real;
848
+ attribute :>> mRef: AverageInformationRateUnit[1];
849
+ }
850
+
851
+ attribute averageInformationRate: AverageInformationRateValue[*] nonunique :> scalarQuantities;
852
+
853
+ attribute def AverageInformationRateUnit :> DerivedUnit {
854
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -1; }
855
+ attribute :>> quantityDimension { :>> quantityPowerFactors = durationPF; }
856
+ }
857
+
858
+ /* IEC-80000-13 item 13-39 character mean transinformation content */
859
+ attribute def CharacterMeanTransinformationContentValue :> ScalarQuantityValue {
860
+ doc
861
+ /*
862
+ * source: item 13-39 character mean transinformation content
863
+ * symbol(s): `T'`
864
+ * application domain: generic
865
+ * name: CharacterMeanTransinformationContent
866
+ * quantity dimension: 1
867
+ * measurement unit(s): Sh, Hart, nat
868
+ * tensor order: 0
869
+ * definition: `T' = lim_(m->∞) T_m/m` where `T_m` is the mean transinformation content (item 13-36) for all pairs of input and output sequences of `m` characters
870
+ * remarks: See ISO/IEC 2382-16, item 16.04.11. In practice, the unit "shannon per character" is generally used, and sometimes the units "hartley per character" and "natural unit per character".
871
+ */
872
+ attribute :>> num: Real;
873
+ attribute :>> mRef: CharacterMeanTransinformationContentUnit[1];
874
+ }
875
+
876
+ attribute characterMeanTransinformationContent: CharacterMeanTransinformationContentValue[*] nonunique :> scalarQuantities;
877
+
878
+ attribute def CharacterMeanTransinformationContentUnit :> DimensionOneUnit {
879
+ }
880
+
881
+ /* IEC-80000-13 item 13-40 average transinformation rate */
882
+ attribute def AverageTransinformationRateValue :> ScalarQuantityValue {
883
+ doc
884
+ /*
885
+ * source: item 13-40 average transinformation rate
886
+ * symbol(s): `T^"*"`
887
+ * application domain: generic
888
+ * name: AverageTransinformationRate
889
+ * quantity dimension: T^-1
890
+ * measurement unit(s): Sh/s, Hart/s, nat/s
891
+ * tensor order: 0
892
+ * definition: `T^"*" = (T')/(sum_(i=1)^n sum_(j=1)^m p(x_i,y_j) t(x_i,y_j) )`, where `T'` is character mean transinformation content (item 13-39) and `t(x_i,y_j)` is the mean duration of the pair of characters `(x_i,y_j)` with joint probability `p(x_i,y_j)`
893
+ * remarks: See ISO/IEC 2382-16, item 16.04.12.
894
+ */
895
+ attribute :>> num: Real;
896
+ attribute :>> mRef: AverageTransinformationRateUnit[1];
897
+ }
898
+
899
+ attribute averageTransinformationRate: AverageTransinformationRateValue[*] nonunique :> scalarQuantities;
900
+
901
+ attribute def AverageTransinformationRateUnit :> DerivedUnit {
902
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -1; }
903
+ attribute :>> quantityDimension { :>> quantityPowerFactors = durationPF; }
904
+ }
905
+
906
+ /* IEC-80000-13 item 13-41 channel capacity per character, channel capacity */
907
+ attribute def ChannelCapacityPerCharacterValue :> ScalarQuantityValue {
908
+ doc
909
+ /*
910
+ * source: item 13-41 channel capacity per character, channel capacity
911
+ * symbol(s): `C'`
912
+ * application domain: generic
913
+ * name: ChannelCapacityPerCharacter
914
+ * quantity dimension: 1
915
+ * measurement unit(s): Sh, Hart, nat
916
+ * tensor order: 0
917
+ * definition: `C' = max T'`, where `T'` is character mean transinformation content (item 13-39)
918
+ * remarks: See ISO/IEC 2382-16, item 16.04.13. In practice, the unit "shannon per character" is generally used, and sometimes the units "hartley per character" and "natural unit per character".
919
+ */
920
+ attribute :>> num: Real;
921
+ attribute :>> mRef: ChannelCapacityPerCharacterUnit[1];
922
+ }
923
+
924
+ attribute channelCapacityPerCharacter: ChannelCapacityPerCharacterValue[*] nonunique :> scalarQuantities;
925
+
926
+ attribute def ChannelCapacityPerCharacterUnit :> DimensionOneUnit {
927
+ }
928
+
929
+ alias ChannelCapacityUnit for ChannelCapacityPerCharacterUnit;
930
+ alias ChannelCapacityValue for ChannelCapacityPerCharacterValue;
931
+ alias channelCapacity for channelCapacityPerCharacter;
932
+
933
+ /* IEC-80000-13 item 13-42 channel time capacity */
934
+ attribute def ChannelTimeCapacityValue :> ScalarQuantityValue {
935
+ doc
936
+ /*
937
+ * source: item 13-42 channel time capacity
938
+ * symbol(s): `C^"*"`
939
+ * application domain: generic
940
+ * name: ChannelTimeCapacity
941
+ * quantity dimension: T^-1
942
+ * measurement unit(s): Sh/s, Hart/s, nat/s
943
+ * tensor order: 0
944
+ * definition: `C^"*" = max T^"*"`, where `T^"*"` is average transinformation rate (item 13-40)
945
+ * remarks: See ISO/IEC 2382-16, item 16.04.13. Note for SysML ISQ: Alias "channel capacity", that was present in IEC 80000-12:2008, has been removed as it duplicates the alias of channel capacity per character (item 13-41).
946
+ */
947
+ attribute :>> num: Real;
948
+ attribute :>> mRef: ChannelTimeCapacityUnit[1];
949
+ }
950
+
951
+ attribute channelTimeCapacity: ChannelTimeCapacityValue[*] nonunique :> scalarQuantities;
952
+
953
+ attribute def ChannelTimeCapacityUnit :> DerivedUnit {
954
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -1; }
955
+ attribute :>> quantityDimension { :>> quantityPowerFactors = durationPF; }
956
+ }
957
+
958
+ }