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,1169 @@
1
+ standard library package ISQSpaceTime {
2
+ doc
3
+ /*
4
+ * International System of Quantities and Units
5
+ * Generated on 2025-03-13T15:00:05Z from standard ISO-80000-3:2019 "Space and Time"
6
+ * see also https://www.iso.org/standard/64974.html
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
+ /* ISO-80000-3 item 3-1.1 length */
21
+ /* See package ISQBase for the declarations of LengthValue and LengthUnit */
22
+
23
+ /* ISO-80000-3 item 3-1.2 width, breadth */
24
+ attribute width: LengthValue :> scalarQuantities {
25
+ doc
26
+ /*
27
+ * source: item 3-1.2 width, breadth
28
+ * symbol(s): `b`, `B`
29
+ * application domain: generic
30
+ * name: Width (specializes Length)
31
+ * quantity dimension: L^1
32
+ * measurement unit(s): m
33
+ * tensor order: 0
34
+ * definition: minimum length of a straight line segment between two parallel straight lines (in two dimensions) or planes (in three dimensions) that enclose a given geometrical shape
35
+ * remarks: This quantity is non-negative.
36
+ */
37
+ }
38
+
39
+ alias breadth for width;
40
+
41
+ /* ISO-80000-3 item 3-1.3 height, depth, altitude */
42
+ attribute height: LengthValue :> scalarQuantities {
43
+ doc
44
+ /*
45
+ * source: item 3-1.3 height, depth, altitude
46
+ * symbol(s): `h`, `H`
47
+ * application domain: generic
48
+ * name: Height (specializes Length)
49
+ * quantity dimension: L^1
50
+ * measurement unit(s): m
51
+ * tensor order: 0
52
+ * definition: minimum length of a straight line segment between a point and a reference line or reference surface
53
+ * remarks: This quantity is usually signed. The sign expresses the position of the particular point with respect to the reference line or surface and is chosen by convention. The symbol `H` is often used to denote altitude, i.e. height above sea level.
54
+ */
55
+ }
56
+
57
+ alias depth for height;
58
+
59
+ alias altitude for height;
60
+
61
+ /* ISO-80000-3 item 3-1.4 thickness */
62
+ attribute thickness: LengthValue :> scalarQuantities {
63
+ doc
64
+ /*
65
+ * source: item 3-1.4 thickness
66
+ * symbol(s): `d`, `δ`
67
+ * application domain: generic
68
+ * name: Thickness (specializes Length)
69
+ * quantity dimension: L^1
70
+ * measurement unit(s): m
71
+ * tensor order: 0
72
+ * definition: width (item 3-1.2)
73
+ * remarks: This quantity is non-negative.
74
+ */
75
+ }
76
+
77
+ /* ISO-80000-3 item 3-1.5 diameter */
78
+ attribute diameter: LengthValue :> scalarQuantities {
79
+ doc
80
+ /*
81
+ * source: item 3-1.5 diameter
82
+ * symbol(s): `d`, `D`
83
+ * application domain: generic
84
+ * name: Diameter (specializes Length)
85
+ * quantity dimension: L^1
86
+ * measurement unit(s): m
87
+ * tensor order: 0
88
+ * definition: width (item 3-1.2) of a circle, cylinder or sphere
89
+ * remarks: This quantity is non-negative.
90
+ */
91
+ }
92
+
93
+ /* ISO-80000-3 item 3-1.6 radius */
94
+ attribute radius: LengthValue :> scalarQuantities {
95
+ doc
96
+ /*
97
+ * source: item 3-1.6 radius
98
+ * symbol(s): `r`, `R`
99
+ * application domain: generic
100
+ * name: Radius (specializes Length)
101
+ * quantity dimension: L^1
102
+ * measurement unit(s): m
103
+ * tensor order: 0
104
+ * definition: half of a diameter (item 3-1.5)
105
+ * remarks: This quantity is non-negative.
106
+ */
107
+ }
108
+
109
+ /* ISO-80000-3 item 3-1.7 path length, arc length */
110
+ attribute pathLength: LengthValue :> scalarQuantities {
111
+ doc
112
+ /*
113
+ * source: item 3-1.7 path length, arc length
114
+ * symbol(s): `s`
115
+ * application domain: generic
116
+ * name: PathLength (specializes Length)
117
+ * quantity dimension: L^1
118
+ * measurement unit(s): m
119
+ * tensor order: 0
120
+ * definition: length of a rectifiable curve between two of its points
121
+ * remarks: The differential path length at a given point of a curve is: `ds = sqrt(dx^2 + dy^2 + dz^2)` where `x`, `y`, and `z` denote the Cartesian coordinates (ISO 80000-2) of the particular point. There are curves which are not rectifiable, for example fractal curves.
122
+ */
123
+ }
124
+
125
+ alias arcLength for pathLength;
126
+
127
+ /* ISO-80000-3 item 3-1.8 distance */
128
+ attribute distance: LengthValue :> scalarQuantities {
129
+ doc
130
+ /*
131
+ * source: item 3-1.8 distance
132
+ * symbol(s): `d`, `r`
133
+ * application domain: generic
134
+ * name: Distance (specializes Length)
135
+ * quantity dimension: L^1
136
+ * measurement unit(s): m
137
+ * tensor order: 0
138
+ * definition: shortest path length (item 3-1.7) between two points in a metric space
139
+ * remarks: A metric space might be curved. An example of a curved metric space is the surface of the Earth. In this case, distances are measured along great circles. A metric is not necessarily Euclidean.
140
+ */
141
+ }
142
+
143
+ /* ISO-80000-3 item 3-1.9 radial distance */
144
+ attribute radialDistance: LengthValue :> scalarQuantities {
145
+ doc
146
+ /*
147
+ * source: item 3-1.9 radial distance
148
+ * symbol(s): `r_Q`, `ρ`
149
+ * application domain: generic
150
+ * name: RadialDistance (specializes Length)
151
+ * quantity dimension: L^1
152
+ * measurement unit(s): m
153
+ * tensor order: 0
154
+ * definition: distance (item 3-1.8), where one point is located on an axis or within a closed non self-intersecting curve or surface
155
+ * remarks: The subscript Q denotes the point from which the radial distance is measured. Examples of closed non self-intersecting curves are circles or ellipses. Examples of closed non self-intersecting surfaces are surfaces of spheres or egg-shaped objects.
156
+ */
157
+ }
158
+
159
+ /* Spatial coordinate frames */
160
+
161
+ attribute def Spatial3dCoordinateFrame :> '3dCoordinateFrame' {
162
+ doc
163
+ /*
164
+ * Most general spatial 3D coordinate frame
165
+ */
166
+ attribute :>> isBound = true;
167
+ }
168
+
169
+ attribute def CartesianSpatial3dCoordinateFrame :> Spatial3dCoordinateFrame {
170
+ doc
171
+ /*
172
+ * Cartesian spatial 3D coordinate frame
173
+ *
174
+ * source: ISO 80000-2 item 2-17.1 Cartesian coordinates
175
+ *
176
+ * The components of a vector expressed on a Cartesian spatial coordinate frame are all LengthValues, and denoted with symbols `x`, `y`, `z`.
177
+ *
178
+ * Note 1: The Cartesian basis vectors `vec(e_x)`, `vec(e_y)` and `vec(e_z)` form an orthonormal right-handed coordinate frame.
179
+ * Note 2: The measurement units for the 3 dimensions are typically the same, but may be different.
180
+ */
181
+ attribute xUnit : LengthUnit = mRefs#(1);
182
+ attribute yUnit : LengthUnit = mRefs#(2);
183
+ attribute zUnit : LengthUnit = mRefs#(3);
184
+ attribute :>> mRefs : LengthUnit[3];
185
+ attribute :>> isOrthogonal = true;
186
+ }
187
+
188
+ attribute universalCartesianSpatial3dCoordinateFrame : CartesianSpatial3dCoordinateFrame[1] {
189
+ doc
190
+ /*
191
+ * A singleton CartesianSpatial3dCoordinateFrame that can be used as a default universal Cartesian 3D coordinate frame.
192
+ */
193
+
194
+ attribute :>> mRefs default (SI::m, SI::m, SI::m) {
195
+ doc /*
196
+ * By default, the universalCartesianSpatial3dCoordinateFrame uses meters as the units on all three axes.
197
+ */
198
+ }
199
+
200
+ attribute :>> transformation[0..0] {
201
+ doc /*
202
+ * The universalCartesianSpatial3dCoordinateFrame is the "top-level" coordinate frame, not nested in any other frame.
203
+ */
204
+ }
205
+
206
+ }
207
+
208
+ attribute def CylindricalSpatial3dCoordinateFrame :> Spatial3dCoordinateFrame {
209
+ doc
210
+ /*
211
+ * Cylindrical spatial 3D coordinate frame
212
+ *
213
+ * source: ISO 80000-2 item 2-17.2 cylindrical coordinates
214
+ *
215
+ * The components of a (position) vector to a point P in a cylindrical coordinate frame are:
216
+ * - radialDistance (symbol `ρ`) defined by LengthValue, that is the radial distance from the cylinder axis to P
217
+ * - azimuth (symbol `φ`) defined by AngularMeasure, that is the angle between the azimuth reference direction and the line segment
218
+ * from the cylinder axis, in the plane that is orthogonal to the cylinder axis and intersects P
219
+ * - z coordinate (symbol `z`) defined by LengthValue, the coordinate along the clyinder axis.
220
+ *
221
+ * Note 1: The basis vectors `vec(e_ρ)(φ)`, `vec(e_φ)(φ)` and `vec(e_z)` form an orthonormal right-handed coordinate frame, where
222
+ * `vec(e_φ)` is tangent to the circular arc in the `φ` direction.
223
+ * Note 2: In order to enable transformation to and from a CartesianSpatial3dCoordinateFrame the `vec(e_x)` Cartesian basis vector is aligned
224
+ * with the `φ=0` direction in the cylindrical frame, and the `vec(e_z)` Cartesian basis vector is aligned with
225
+ * the `vec(e_z)` cylindrical basis vector.
226
+ * Note 3: If `z = 0`, then `ρ` and `φ` are polar coordinates in the XY-plane.
227
+ * Note 4: See also https://en.wikipedia.org/wiki/Cylindrical_coordinate_system .
228
+ */
229
+ attribute radialDistanceUnit : LengthUnit;
230
+ attribute azimuthUnit : AngularMeasureUnit;
231
+ attribute zUnit : LengthUnit;
232
+ attribute :>> mRefs = (radialDistanceUnit, azimuthUnit, zUnit);
233
+ attribute :>> isOrthogonal = true;
234
+ }
235
+
236
+ attribute def SphericalSpatial3dCoordinateFrame :> Spatial3dCoordinateFrame {
237
+ doc
238
+ /*
239
+ * Spherical spatial 3D coordinate frame
240
+ *
241
+ * source: ISO 80000-2 item 2-17.3 spherical coordinates
242
+ *
243
+ * The components of a (position) vector to a point P specified in a spherical coordinate frame are:
244
+ * - radialDistance (symbol `r`) defined by LengthValue, that is the distance from the origin to P
245
+ * - inclination (symbol `θ`) defined by AngularMeasure, that is the angle between the zenith direction and the line segment from origin to P
246
+ * - azimuth (symbol `φ`) defined by AngularMeasure, that is the angle between the azimuth reference direction and the line segment
247
+ * from the origin to the orthogonal projection of P on the reference plane, normal to the zenith direction.
248
+ *
249
+ * Note 1: The basis vectors `vec(e_r)(θ,φ)`, `vec(e_θ)(θ,φ)` and `vec(e_φ)(φ)` form an orthonormal right-handed frame, where
250
+ * `vec(e_θ)` and `vec(e_φ)` are tangent to the respective circular arcs in the `θ` and `φ` directions.
251
+ * Note 2: In order to transform to and from a CartesianSpatial3dCoordinateFrame the `vec(e_x)` Cartesian basis vector is aligned
252
+ * with the `θ=π/4` and `φ=0` direction in the spherical frame, and the `vec(e_z)` Cartesian basis vector is aligned
253
+ * with the `θ=0` zenith direction in the spherical frame.
254
+ * Note 3: If `θ = π/4`, then `ρ` and `φ` are polar coordinates in the XY-plane.
255
+ * Note 4: See also https://en.wikipedia.org/wiki/Spherical_coordinate_system .
256
+ */
257
+ attribute radialDistanceUnit : LengthUnit;
258
+ attribute inclinationUnit : AngularMeasureUnit;
259
+ attribute azimuthUnit : AngularMeasureUnit;
260
+ attribute :>> mRefs = (radialDistanceUnit, inclinationUnit, azimuthUnit);
261
+ attribute :>> isOrthogonal = true;
262
+ }
263
+
264
+ attribute def PlanetarySpatial3dCoordinateFrame :> Spatial3dCoordinateFrame {
265
+ doc
266
+ /*
267
+ * Planetary spatial 3D coordinate frame
268
+ *
269
+ * A planetary spatial 3D coordinate frame is a generalization for any planet of the geographic coordinate frame and geocentric coordinate
270
+ * for Earth. In such coordinate frames, typically the origin is located at the planet's centre of gravity, and the surface of the planet
271
+ * is approximated by a reference ellipsoid centred on the origin, with its major axes oriented along the south to north pole vector and
272
+ * the equatorial plane.
273
+ *
274
+ * The components of a (position) vector to a point P specified in a planetary coordinate frame are:
275
+ * - latitude (symbol `lat` or `φ`) defined by AngularMeasure, that is the angle between the equatorial plane and the vector from
276
+ * the origin to P, similar to the inclination in a spherical spatial coordinate frame. Typically, the zero reference latitude is chosen
277
+ * for positions in the equatorial plane, with positive latitude for positions in the northern hemisphere and negative latitude for positions
278
+ * in the southern hemisphere.
279
+ * - longitude (symbol `long` or `λ`) defined by AngularMeasure, that is the angle between a reference meridian and the meridian
280
+ * passing through P, similar to the azimuth of a spherical spatial coordinate frame. The convention is to connotate positive longitude
281
+ * with eastward direction and negative longitude with westward direction. The reference meridian for `long=0` is chosen to pass
282
+ * through a particular feature of the planet, e.g., for Earth typically the position of the British Royal Observatory in Greenwich, UK.
283
+ * - altitude (symbol `h`) defined by LengthValue, that is the distance between P and the reference ellipsoid
284
+ * in the normal direction to the ellipsoid. Positive altitude specifies a position above the reference ellipsoid surface,
285
+ * while a negative value specifies a position below.
286
+ *
287
+ * Note 1: The reference meridian is also called prime meridian.
288
+ * Note 2: The basis vectors `vec(e_φ)(φ)`, `vec(e_λ)(λ)` and `vec(e_h)(φ,λ)` form an orthonormal right-handed frame, where
289
+ * `vec(e_φ)` and `vec(e_λ)` are tangent to the reference ellipsoid in the respective latitude and longitude directions,
290
+ * and `vec(e_h)` is normal to the reference ellipsoid.
291
+ * Note 3: In order to transform to and from a CartesianSpatial3dCoordinateFrame the `vec(e_x)` Cartesian basis vector is aligned
292
+ * with the `φ=0` and `λ=0` direction in the planetary frame, and the `vec(e_z)` Cartesian basis vector is aligned
293
+ * with the `λ=π/2` (north pole) direction in the planetary frame.
294
+ * Note 4: See also https://en.wikipedia.org/wiki/Planetary_coordinate_system .
295
+ */
296
+ attribute latitudeUnit : AngularMeasureUnit;
297
+ attribute longitudeUnit : AngularMeasureUnit;
298
+ attribute altitudeUnit : LengthUnit;
299
+ attribute :>> mRefs = (longitudeUnit, latitudeUnit, altitudeUnit);
300
+ attribute :>> isOrthogonal = true;
301
+ }
302
+
303
+ /* ISO-80000-3 item 3-1.10 position vector */
304
+ attribute def Position3dVector :> '3dVectorQuantityValue' {
305
+ doc
306
+ /*
307
+ * source: item 3-1.10 position vector
308
+ * symbol(s): `vec(r)`
309
+ * application domain: generic
310
+ * name: PositionVector
311
+ * quantity dimension: L^1
312
+ * measurement unit(s): m
313
+ * tensor order: 1
314
+ * definition: vector (ISO 80000-2) quantity from the origin of a coordinate system to a point in space
315
+ * remarks: Position vectors are so-called bounded vectors, i.e. their magnitude (ISO 80000-2) and direction depend on the particular coordinate system used.
316
+ */
317
+ attribute :>> isBound = true;
318
+ attribute :>> mRef: Spatial3dCoordinateFrame[1];
319
+ }
320
+
321
+ attribute position3dVector: Position3dVector :> vectorQuantities;
322
+
323
+ attribute def CartesianPosition3dVector :> Position3dVector {
324
+ attribute x : LengthValue = num#(1) [mRef.mRefs#(1)];
325
+ attribute y : LengthValue = num#(2) [mRef.mRefs#(2)];
326
+ attribute z : LengthValue = num#(3) [mRef.mRefs#(3)];
327
+ attribute :>> mRef : CartesianSpatial3dCoordinateFrame[1];
328
+ }
329
+ attribute cartesianPosition3dVector : CartesianPosition3dVector :> position3dVector;
330
+
331
+ attribute def CylindricalPosition3dVector :> Position3dVector {
332
+ attribute <'ρ'> radialDistance : LengthValue = num#(1) [mRef.mRefs#(1)];
333
+ attribute <'φ'> azimuth : AngularMeasureUnit = num#(2) [mRef.mRefs#(2)];
334
+ attribute <h> height : LengthValue = num#(3) [mRef.mRefs#(3)];
335
+ attribute :>> mRef : CylindricalSpatial3dCoordinateFrame[1];
336
+ }
337
+ attribute cylindricalPosition3dVector : CylindricalPosition3dVector :> position3dVector;
338
+
339
+ attribute def SphericalPosition3dVector :> Position3dVector {
340
+ attribute <r> radialDistance : LengthValue = num#(1) [mRef.mRefs#(1)];
341
+ attribute <'θ'> inclination : AngularMeasureUnit = num#(2) [mRef.mRefs#(2)];
342
+ attribute <'φ'> azimuth : AngularMeasureUnit = num#(3) [mRef.mRefs#(3)];
343
+ attribute :>> mRef : SphericalSpatial3dCoordinateFrame[1];
344
+ }
345
+ attribute sphericalPosition3dVector : SphericalPosition3dVector :> position3dVector;
346
+
347
+ attribute def PlanetaryPosition3dVector :> Position3dVector {
348
+ attribute <lat> latitude : AngularMeasureUnit = num#(1) [mRef.mRefs#(1)];
349
+ attribute <long> longitude : AngularMeasureUnit = num#(2) [mRef.mRefs#(2)];
350
+ attribute <h> altitude : LengthValue = num#(3) [mRef.mRefs#(3)];
351
+ attribute :>> mRef : PlanetarySpatial3dCoordinateFrame[1];
352
+ }
353
+ attribute planetaryPosition3dVector : PlanetaryPosition3dVector :> position3dVector;
354
+
355
+ /* ISO-80000-3 item 3-1.11 displacement */
356
+ attribute def Displacement3dVector :> '3dVectorQuantityValue' {
357
+ doc
358
+ /*
359
+ * source: item 3-1.11 displacement
360
+ * symbol(s): `vec(Δr)`
361
+ * application domain: generic
362
+ * name: Displacement
363
+ * quantity dimension: L^1
364
+ * measurement unit(s): m
365
+ * tensor order: 1
366
+ * definition: vector (ISO 80000-2) quantity between any two points in space
367
+ * remarks: Displacement vectors are so-called free vectors, i.e. their magnitude (ISO 80000-2) and direction do not depend on a particular coordinate system. The magnitude of this vector is also called displacement.
368
+ */
369
+ attribute :>> isBound = false;
370
+ attribute :>> mRef: Spatial3dCoordinateFrame[1];
371
+ }
372
+
373
+ attribute displacement3dVector: Displacement3dVector :> vectorQuantities;
374
+
375
+ attribute def CartesianDisplacement3dVector :> Displacement3dVector {
376
+ attribute x : LengthValue = num#(1) [mRef.mRefs#(1)];
377
+ attribute y : LengthValue = num#(2) [mRef.mRefs#(2)];
378
+ attribute z : LengthValue = num#(3) [mRef.mRefs#(3)];
379
+ attribute :>> mRef : CartesianSpatial3dCoordinateFrame[1];
380
+ }
381
+ attribute cartesianDisplacement3dVector : CartesianDisplacement3dVector :> displacement3dVector;
382
+
383
+ attribute def CylindricalDisplacement3dVector :> Displacement3dVector {
384
+ attribute <'ρ'> radialDistance : LengthValue = num#(1) [mRef.mRefs#(1)];
385
+ attribute <'φ'> azimuth : AngularMeasureUnit = num#(2) [mRef.mRefs#(2)];
386
+ attribute <h> height : LengthValue = num#(3) [mRef.mRefs#(3)];
387
+ attribute :>> mRef : CylindricalSpatial3dCoordinateFrame[1];
388
+ }
389
+ attribute cylindricalDisplacement3dVector : CylindricalDisplacement3dVector :> displacement3dVector;
390
+
391
+ attribute def SphericalDisplacement3dVector :> Displacement3dVector {
392
+ attribute <r> radialDistance : LengthValue = num#(1) [mRef.mRefs#(1)];
393
+ attribute <'θ'> inclination : AngularMeasureUnit = num#(2) [mRef.mRefs#(2)];
394
+ attribute <'φ'> azimuth : AngularMeasureUnit = num#(3) [mRef.mRefs#(3)];
395
+ attribute :>> mRef : SphericalSpatial3dCoordinateFrame[1];
396
+ }
397
+ attribute sphericalDisplacement3dVector : SphericalDisplacement3dVector :> displacement3dVector;
398
+
399
+ /* ISO-80000-3 item 3-1.12 radius of curvature */
400
+ attribute radiusOfCurvature: LengthValue :> scalarQuantities {
401
+ doc
402
+ /*
403
+ * source: item 3-1.12 radius of curvature
404
+ * symbol(s): `ρ`
405
+ * application domain: generic
406
+ * name: RadiusOfCurvature (specializes Length)
407
+ * quantity dimension: L^1
408
+ * measurement unit(s): m
409
+ * tensor order: 0
410
+ * definition: radius (item 3-1.6) of the osculating circle of a planar curve at a particular point of the curve
411
+ * remarks: The radius of curvature is only defined for curves which are at least twice continuously differentiable.
412
+ */
413
+ }
414
+
415
+ /* ISO-80000-3 item 3-2 curvature */
416
+ attribute def CurvatureValue :> ScalarQuantityValue {
417
+ doc
418
+ /*
419
+ * source: item 3-2 curvature
420
+ * symbol(s): `κ`
421
+ * application domain: generic
422
+ * name: Curvature
423
+ * quantity dimension: L^-1
424
+ * measurement unit(s): m^-1
425
+ * tensor order: 0
426
+ * definition: inverse of the radius of curvature (item 3-1.12)
427
+ * remarks: The curvature is given by: `κ = 1/ρ` where `ρ` denotes the radius of curvature (item 3-1.12).
428
+ */
429
+ attribute :>> num: Real;
430
+ attribute :>> mRef: CurvatureUnit[1];
431
+ }
432
+
433
+ attribute curvature: CurvatureValue[*] nonunique :> scalarQuantities;
434
+
435
+ attribute def CurvatureUnit :> DerivedUnit {
436
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = -1; }
437
+ attribute :>> quantityDimension { :>> quantityPowerFactors = lengthPF; }
438
+ }
439
+
440
+ /* ISO-80000-3 item 3-3 area */
441
+ attribute def AreaValue :> ScalarQuantityValue {
442
+ doc
443
+ /*
444
+ * source: item 3-3 area
445
+ * symbol(s): `A`, `S`
446
+ * application domain: generic
447
+ * name: Area
448
+ * quantity dimension: L^2
449
+ * measurement unit(s): m^2
450
+ * tensor order: 0
451
+ * definition: extent of a two-dimensional geometrical shape
452
+ * remarks: The surface element at a given point of a surface is given by: `dA = g du dv` where `u` and `v` denote the Gaussian surface coordinates and `g` denotes the determinant of the metric tensor (ISO 80000-2) at the particular point. The symbol `dσ` is also used for the surface element.
453
+ */
454
+ attribute :>> num: Real;
455
+ attribute :>> mRef: AreaUnit[1];
456
+ }
457
+
458
+ attribute area: AreaValue[*] nonunique :> scalarQuantities;
459
+
460
+ attribute def AreaUnit :> DerivedUnit {
461
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 2; }
462
+ attribute :>> quantityDimension { :>> quantityPowerFactors = lengthPF; }
463
+ }
464
+
465
+ /* ISO-80000-3 item 3-4 volume */
466
+ attribute def VolumeValue :> ScalarQuantityValue {
467
+ doc
468
+ /*
469
+ * source: item 3-4 volume
470
+ * symbol(s): `V`, `(S)`
471
+ * application domain: generic
472
+ * name: Volume
473
+ * quantity dimension: L^3
474
+ * measurement unit(s): m^3
475
+ * tensor order: 0
476
+ * definition: extent of a three-dimensional geometrical shape
477
+ * remarks: The volume element in Euclidean space is given by: `dV = dx dy dz` where `dx`, `dy`, and `dz` denote the differentials of the Cartesian coordinates (ISO 80000-2). The symbol `dτ` is also used for the volume element.
478
+ */
479
+ attribute :>> num: Real;
480
+ attribute :>> mRef: VolumeUnit[1];
481
+ }
482
+
483
+ attribute volume: VolumeValue[*] nonunique :> scalarQuantities;
484
+
485
+ attribute def VolumeUnit :> DerivedUnit {
486
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 3; }
487
+ attribute :>> quantityDimension { :>> quantityPowerFactors = lengthPF; }
488
+ }
489
+
490
+ /* ISO-80000-3 item 3-5 angular measure, plane angle */
491
+ attribute def AngularMeasureValue :> ScalarQuantityValue {
492
+ doc
493
+ /*
494
+ * source: item 3-5 angular measure, plane angle
495
+ * symbol(s): `α`, `β`, `γ`
496
+ * application domain: generic
497
+ * name: AngularMeasure
498
+ * quantity dimension: 1
499
+ * measurement unit(s): rad, 1
500
+ * tensor order: 0
501
+ * definition: measure of a geometric figure, called plane angle, formed by two rays, called the sides of the plane angle, emanating from a common point, called the vertex of the plane angle
502
+ * remarks: The angular measure is given by: `α = s/r` where `s` denotes the arc length (item 3-1.7) of the included arc of a circle, centred at the vertex of the plane angle, and `r` the radius (item 3-1.6) of that circle. Other symbols are also used.
503
+ */
504
+ attribute :>> num: Real;
505
+ attribute :>> mRef: AngularMeasureUnit[1];
506
+ }
507
+
508
+ attribute angularMeasure: AngularMeasureValue[*] nonunique :> scalarQuantities;
509
+
510
+ attribute def AngularMeasureUnit :> DimensionOneUnit {
511
+ }
512
+
513
+ alias PlaneAngleUnit for AngularMeasureUnit;
514
+ alias PlaneAngleValue for AngularMeasureValue;
515
+ alias planeAngle for angularMeasure;
516
+
517
+ /* ISO-80000-3 item 3-6 rotational displacement, angular displacement */
518
+ attribute rotationalDisplacement: AngularMeasureValue :> scalarQuantities {
519
+ doc
520
+ /*
521
+ * source: item 3-6 rotational displacement, angular displacement
522
+ * symbol(s): `ϑ`, `φ`
523
+ * application domain: generic
524
+ * name: RotationalDisplacement (specializes AngularMeasure)
525
+ * quantity dimension: 1
526
+ * measurement unit(s): rad, 1
527
+ * tensor order: 0
528
+ * definition: quotient of the traversed circular path length (item 3-1.7) of a point in space during a rotation and its distance (item 3-1.8) from the axis or centre of rotation
529
+ * remarks: The rotational displacement is given by: `φ = s/r` where `s` denotes the traversed path length (item 3-1.7) along the periphery of a circle, centred at the vertex of the plane angle, and `r` the radius (item 3-1.6) of that circle. The rotational displacement is signed. The sign denotes the direction of rotation and is chosen by convention. Other symbols are also used.
530
+ */
531
+ }
532
+
533
+ alias angularDisplacement for rotationalDisplacement;
534
+
535
+ /* ISO-80000-3 item 3-7 phase angle */
536
+ attribute phaseAngle: AngularMeasureValue :> scalarQuantities {
537
+ doc
538
+ /*
539
+ * source: item 3-7 phase angle
540
+ * symbol(s): `φ`, `ϕ`
541
+ * application domain: generic
542
+ * name: PhaseAngle (specializes AngularMeasure)
543
+ * quantity dimension: 1
544
+ * measurement unit(s): rad, 1
545
+ * tensor order: 0
546
+ * definition: angular measure (item 3-5) between the positive real axis and the radius of the polar representation of the complex number in the complex plane
547
+ * remarks: The phase angle (often imprecisely referred to as the "phase") is the argument of a complex number. Other symbols are also used.
548
+ */
549
+ }
550
+
551
+ /* ISO-80000-3 item 3-8 solid angular measure */
552
+ attribute def SolidAngularMeasureValue :> ScalarQuantityValue {
553
+ doc
554
+ /*
555
+ * source: item 3-8 solid angular measure
556
+ * symbol(s): `Ω`
557
+ * application domain: generic
558
+ * name: SolidAngularMeasure
559
+ * quantity dimension: 1
560
+ * measurement unit(s): sr, 1
561
+ * tensor order: 0
562
+ * definition: measure of a conical geometric figure, called solid angle, formed by all rays, originating from a common point, called the vertex of the solid angle, and passing through the points of a closed, non-self-intersecting curve in space considered as the border of a surface
563
+ * remarks: The differential solid angular measure expressed in spherical coordinates (ISO 80000-2) is given by: `dΩ = A/r^2 * sin(θ * dθ * dφ)` where `A` is area, `r` is radius, `θ` and `φ` are spherical coordinates.
564
+ */
565
+ attribute :>> num: Real;
566
+ attribute :>> mRef: SolidAngularMeasureUnit[1];
567
+ }
568
+
569
+ attribute solidAngularMeasure: SolidAngularMeasureValue[*] nonunique :> scalarQuantities;
570
+
571
+ attribute def SolidAngularMeasureUnit :> DimensionOneUnit {
572
+ }
573
+
574
+ /* ISO-80000-3 item 3-9 duration, time */
575
+ /* See package ISQBase for the declarations of DurationValue and DurationUnit */
576
+
577
+ alias TimeUnit for DurationUnit;
578
+ alias TimeValue for DurationValue;
579
+ alias time for duration;
580
+
581
+ /* ISO-80000-3 item 3-10.1 velocity */
582
+ attribute def CartesianVelocity3dVector :> '3dVectorQuantityValue' {
583
+ doc
584
+ /*
585
+ * source: item 3-10.1 velocity
586
+ * symbol(s): `vec(v)`, `u,v,w`
587
+ * application domain: generic
588
+ * name: Velocity
589
+ * quantity dimension: L^1*T^-1
590
+ * measurement unit(s): m/s, m*s^-1
591
+ * tensor order: 1
592
+ * definition: vector (ISO 80000-2) quantity giving the rate of change of a position vector (item 3-1.10)
593
+ * remarks: The velocity vector is given by: `vec(v) = (d vec(r)) / (dt)` where `vec(r)` denotes the position vector (item 3-1.10) and `t` the duration (item 3-9). When the general symbol `vec(v)` is not used for the velocity, the symbols `u`, `v`, `w` may be used for the components (ISO 80000-2) of the velocity.
594
+ */
595
+ attribute :>> isBound = false;
596
+ attribute :>> mRef: CartesianVelocity3dCoordinateFrame[1];
597
+ }
598
+
599
+ attribute cartesianVelocity3dVector: CartesianVelocity3dVector :> vectorQuantities;
600
+
601
+ attribute def CartesianVelocity3dCoordinateFrame :> '3dCoordinateFrame' {
602
+ attribute :>> isBound = false;
603
+ attribute :>> isOrthogonal = true;
604
+ attribute :>> mRefs: SpeedUnit[3];
605
+ }
606
+
607
+ /* ISO-80000-3 item 3-10.2 speed */
608
+ attribute def SpeedValue :> ScalarQuantityValue {
609
+ doc
610
+ /*
611
+ * source: item 3-10.2 speed
612
+ * symbol(s): `v`
613
+ * application domain: generic
614
+ * name: Speed
615
+ * quantity dimension: L^1*T^-1
616
+ * measurement unit(s): m/s, m*s^-1
617
+ * tensor order: 0
618
+ * definition: magnitude (ISO 80000-2) of the velocity (item 3-10.1)
619
+ * remarks: None.
620
+ */
621
+ attribute :>> num: Real;
622
+ attribute :>> mRef: SpeedUnit[1];
623
+ }
624
+
625
+ attribute speed: SpeedValue[*] nonunique :> scalarQuantities;
626
+
627
+ attribute def SpeedUnit :> DerivedUnit {
628
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 1; }
629
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -1; }
630
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, durationPF); }
631
+ }
632
+
633
+ /* ISO-80000-3 item 3-11 acceleration */
634
+ attribute def AccelerationValue :> ScalarQuantityValue {
635
+ doc
636
+ /*
637
+ * source: item 3-11 acceleration (magnitude)
638
+ * symbol(s): `a`
639
+ * application domain: generic
640
+ * name: Acceleration
641
+ * quantity dimension: L^1*T^-2
642
+ * measurement unit(s): m*s^-2
643
+ * tensor order: 0
644
+ * definition: vector (ISO 80000-2) quantity giving the rate of change of velocity (item 3-10)
645
+ * remarks: The acceleration vector is given by: `vec(a) = (d vec(v))/(dt)` where `vec(v)` denotes the velocity (item 3-10.1) and `t` the duration (item 3-9). The magnitude (ISO 80000-2) of the acceleration of free fall is usually denoted by `g`.
646
+ */
647
+ attribute :>> num: Real;
648
+ attribute :>> mRef: AccelerationUnit[1];
649
+ }
650
+
651
+ attribute acceleration: AccelerationValue[*] nonunique :> scalarQuantities;
652
+
653
+ attribute def AccelerationUnit :> DerivedUnit {
654
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 1; }
655
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -2; }
656
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, durationPF); }
657
+ }
658
+
659
+ attribute def CartesianAcceleration3dVector :> '3dVectorQuantityValue' {
660
+ doc
661
+ /*
662
+ * source: item 3-11 acceleration (vector)
663
+ * symbol(s): `vec(a)`
664
+ * application domain: generic
665
+ * name: Acceleration
666
+ * quantity dimension: L^1*T^-2
667
+ * measurement unit(s): m*s^-2
668
+ * tensor order: 1
669
+ * definition: vector (ISO 80000-2) quantity giving the rate of change of velocity (item 3-10)
670
+ * remarks: The acceleration vector is given by: `vec(a) = (d vec(v))/(dt)` where `vec(v)` denotes the velocity (item 3-10.1) and `t` the duration (item 3-9). The magnitude (ISO 80000-2) of the acceleration of free fall is usually denoted by `g`.
671
+ */
672
+ attribute :>> isBound = false;
673
+ attribute :>> mRef: CartesianAcceleration3dCoordinateFrame[1];
674
+ }
675
+
676
+ attribute cartesianAcceleration3dVector: CartesianAcceleration3dVector :> vectorQuantities;
677
+
678
+ attribute def CartesianAcceleration3dCoordinateFrame :> '3dCoordinateFrame' {
679
+ attribute :>> isBound = false;
680
+ attribute :>> isOrthogonal = true;
681
+ attribute :>> mRefs: AccelerationUnit[3];
682
+ }
683
+
684
+ /* ISO-80000-3 item 3-12 angular velocity */
685
+ attribute def AngularVelocityValue :> ScalarQuantityValue {
686
+ doc
687
+ /*
688
+ * source: item 3-12 angular velocity (magnitude)
689
+ * symbol(s): `ω`
690
+ * application domain: generic
691
+ * name: AngularVelocity
692
+ * quantity dimension: T^-1
693
+ * measurement unit(s): rad*s^-1, s^-1
694
+ * tensor order: 0
695
+ * definition: vector (ISO 80000-2) quantity giving the rate of change of the rotational displacement (item 3-6) as its magnitude (ISO 80000-2) and with a direction equal to the direction of the axis of rotation
696
+ * remarks: The angular velocity vector is given by: `vec(ω) = (d φ) / (dt) vec(u)` where `φ` denotes the angular displacement (item 3-6), `t` the duration (item 3-9), and `vec(u)` the unit vector (ISO 80000-2) along the axis of rotation in the direction for which the rotation corresponds to a right-hand spiral.
697
+ */
698
+ attribute :>> num: Real;
699
+ attribute :>> mRef: AngularVelocityUnit[1];
700
+ }
701
+
702
+ attribute angularVelocity: AngularVelocityValue[*] nonunique :> scalarQuantities;
703
+
704
+ attribute def AngularVelocityUnit :> DerivedUnit {
705
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -1; }
706
+ attribute :>> quantityDimension { :>> quantityPowerFactors = durationPF; }
707
+ }
708
+
709
+ attribute def CartesianAngularVelocity3dVector :> '3dVectorQuantityValue' {
710
+ doc
711
+ /*
712
+ * source: item 3-12 angular velocity (vector)
713
+ * symbol(s): `vec(ω)`
714
+ * application domain: generic
715
+ * name: AngularVelocity
716
+ * quantity dimension: T^-1
717
+ * measurement unit(s): rad*s^-1, s^-1
718
+ * tensor order: 1
719
+ * definition: vector (ISO 80000-2) quantity giving the rate of change of the rotational displacement (item 3-6) as its magnitude (ISO 80000-2) and with a direction equal to the direction of the axis of rotation
720
+ * remarks: The angular velocity vector is given by: `vec(ω) = (d φ) / (dt) vec(u)` where `φ` denotes the angular displacement (item 3-6), `t` the duration (item 3-9), and `vec(u)` the unit vector (ISO 80000-2) along the axis of rotation in the direction for which the rotation corresponds to a right-hand spiral.
721
+ */
722
+ attribute :>> isBound = false;
723
+ attribute :>> mRef: CartesianAngularVelocity3dCoordinateFrame[1];
724
+ }
725
+
726
+ attribute cartesianAngularVelocity3dVector: CartesianAngularVelocity3dVector :> vectorQuantities;
727
+
728
+ attribute def CartesianAngularVelocity3dCoordinateFrame :> '3dCoordinateFrame' {
729
+ attribute :>> isBound = false;
730
+ attribute :>> isOrthogonal = true;
731
+ attribute :>> mRefs: AngularVelocityUnit[3];
732
+ }
733
+
734
+ /* ISO-80000-3 item 3-13 angular acceleration */
735
+ attribute def AngularAccelerationValue :> ScalarQuantityValue {
736
+ doc
737
+ /*
738
+ * source: item 3-13 angular acceleration (magnitude)
739
+ * symbol(s): `α`
740
+ * application domain: generic
741
+ * name: AngularAcceleration
742
+ * quantity dimension: T^-2
743
+ * measurement unit(s): rad*s^-2, s^-2
744
+ * tensor order: 0
745
+ * definition: vector (ISO 80000-2) quantity giving the rate of change of angular velocity (item 3-12)
746
+ * remarks: The angular acceleration vector is given by: `vec α = (d vec(ω))/(dt)` Where `vec(ω)` denotes the angular velocity (item 3-12) and `t` the duration (item 3-9).
747
+ */
748
+ attribute :>> num: Real;
749
+ attribute :>> mRef: AngularAccelerationUnit[1];
750
+ }
751
+
752
+ attribute angularAcceleration: AngularAccelerationValue[*] nonunique :> scalarQuantities;
753
+
754
+ attribute def AngularAccelerationUnit :> DerivedUnit {
755
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -2; }
756
+ attribute :>> quantityDimension { :>> quantityPowerFactors = durationPF; }
757
+ }
758
+
759
+ attribute def CartesianAngularAcceleration3dVector :> '3dVectorQuantityValue' {
760
+ doc
761
+ /*
762
+ * source: item 3-13 angular acceleration (vector)
763
+ * symbol(s): `vec(α)`
764
+ * application domain: generic
765
+ * name: AngularAcceleration
766
+ * quantity dimension: T^-2
767
+ * measurement unit(s): rad*s^-2, s^-2
768
+ * tensor order: 1
769
+ * definition: vector (ISO 80000-2) quantity giving the rate of change of angular velocity (item 3-12)
770
+ * remarks: The angular acceleration vector is given by: `vec α = (d vec(ω))/(dt)` Where `vec(ω)` denotes the angular velocity (item 3-12) and `t` the duration (item 3-9).
771
+ */
772
+ attribute :>> isBound = false;
773
+ attribute :>> mRef: CartesianAngularAcceleration3dCoordinateFrame[1];
774
+ }
775
+
776
+ attribute cartesianAngularAcceleration3dVector: CartesianAngularAcceleration3dVector :> vectorQuantities;
777
+
778
+ attribute def CartesianAngularAcceleration3dCoordinateFrame :> '3dCoordinateFrame' {
779
+ attribute :>> isBound = false;
780
+ attribute :>> isOrthogonal = true;
781
+ attribute :>> mRefs: AngularAccelerationUnit[3];
782
+ }
783
+
784
+ /* ISO-80000-3 item 3-14 period duration, period */
785
+ attribute periodDuration: DurationValue :> scalarQuantities {
786
+ doc
787
+ /*
788
+ * source: item 3-14 period duration, period
789
+ * symbol(s): `T`
790
+ * application domain: generic
791
+ * name: PeriodDuration (specializes Duration)
792
+ * quantity dimension: T^1
793
+ * measurement unit(s): s
794
+ * tensor order: 0
795
+ * definition: duration (item 3-9) of one cycle of a periodic event
796
+ * remarks: A periodic event is an event that occurs regularly with a fixed time interval.
797
+ */
798
+ }
799
+
800
+ alias period for periodDuration;
801
+
802
+ /* ISO-80000-3 item 3-15 time constant */
803
+ attribute timeConstant: DurationValue :> scalarQuantities {
804
+ doc
805
+ /*
806
+ * source: item 3-15 time constant
807
+ * symbol(s): `τ`, `T`
808
+ * application domain: generic
809
+ * name: TimeConstant (specializes Duration)
810
+ * quantity dimension: T^1
811
+ * measurement unit(s): s
812
+ * tensor order: 0
813
+ * definition: parameter characterizing the response to a step input of a first-order, linear time-invariant system
814
+ * remarks: If a quantity is a function of the duration (item 3-9) expressed by: `F(t) prop e^(-t/τ)` where `t` denotes the duration (item 3-9), then `τ` denotes the time constant. Here the time constant `τ` applies to an exponentially decaying quantity.
815
+ */
816
+ }
817
+
818
+ /* ISO-80000-3 item 3-16 rotation */
819
+ attribute rotation: CountValue :> scalarQuantities {
820
+ doc
821
+ /*
822
+ * source: item 3-16 rotation
823
+ * symbol(s): `N`
824
+ * application domain: generic
825
+ * name: Rotation (specializes Count)
826
+ * quantity dimension: 1
827
+ * measurement unit(s): 1
828
+ * tensor order: 0
829
+ * definition: number of revolutions
830
+ * remarks: `N` is the number (not necessarily an integer) of revolutions, for example, of a rotating body about a given axis. Its value is given by: `N = φ/(2 π)` where `φ` denotes the measure of rotational displacement (item 3-6).
831
+ */
832
+ }
833
+
834
+ /* ISO-80000-3 item 3-17.1 frequency */
835
+ attribute def FrequencyValue :> ScalarQuantityValue {
836
+ doc
837
+ /*
838
+ * source: item 3-17.1 frequency
839
+ * symbol(s): `f`, `ν`
840
+ * application domain: generic
841
+ * name: Frequency
842
+ * quantity dimension: T^-1
843
+ * measurement unit(s): Hz, s^-1
844
+ * tensor order: 0
845
+ * definition: inverse of period duration (item 3-14)
846
+ * remarks: The frequency is given by: `f = 1/T` where `T` denotes the period duration (item 3-14).
847
+ */
848
+ attribute :>> num: Real;
849
+ attribute :>> mRef: FrequencyUnit[1];
850
+ }
851
+
852
+ attribute frequency: FrequencyValue[*] nonunique :> scalarQuantities;
853
+
854
+ attribute def FrequencyUnit :> DerivedUnit {
855
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -1; }
856
+ attribute :>> quantityDimension { :>> quantityPowerFactors = durationPF; }
857
+ }
858
+
859
+ /* ISO-80000-3 item 3-17.2 rotational frequency */
860
+ attribute rotationalFrequency: FrequencyValue :> scalarQuantities {
861
+ doc
862
+ /*
863
+ * source: item 3-17.2 rotational frequency
864
+ * symbol(s): `n`
865
+ * application domain: generic
866
+ * name: RotationalFrequency (specializes Frequency)
867
+ * quantity dimension: T^-1
868
+ * measurement unit(s): s^-1
869
+ * tensor order: 0
870
+ * definition: duration (item 3-9) of one cycle of a periodic event
871
+ * remarks: The rotational frequency is given by: `n = (dN) / (dt)` where `N` denotes the rotation (item 3-16) and `t` is the duration (item 3-9).
872
+ */
873
+ }
874
+
875
+ /* ISO-80000-3 item 3-18 angular frequency */
876
+ attribute def AngularFrequencyValue :> ScalarQuantityValue {
877
+ doc
878
+ /*
879
+ * source: item 3-18 angular frequency
880
+ * symbol(s): `ω`
881
+ * application domain: generic
882
+ * name: AngularFrequency
883
+ * quantity dimension: T^-1
884
+ * measurement unit(s): rad*s^-1, s^-1
885
+ * tensor order: 0
886
+ * definition: rate of change of the phase angle (item 3-7)
887
+ * remarks: The angular frequency is given by: `ω = 2 π f` where `f` denotes the frequency (item 3-17.1).
888
+ */
889
+ attribute :>> num: Real;
890
+ attribute :>> mRef: AngularFrequencyUnit[1];
891
+ }
892
+
893
+ attribute angularFrequency: AngularFrequencyValue[*] nonunique :> scalarQuantities;
894
+
895
+ attribute def AngularFrequencyUnit :> DerivedUnit {
896
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -1; }
897
+ attribute :>> quantityDimension { :>> quantityPowerFactors = durationPF; }
898
+ }
899
+
900
+ /* ISO-80000-3 item 3-19 wavelength */
901
+ attribute wavelength: LengthValue :> scalarQuantities {
902
+ doc
903
+ /*
904
+ * source: item 3-19 wavelength
905
+ * symbol(s): `λ`
906
+ * application domain: generic
907
+ * name: Wavelength (specializes Length)
908
+ * quantity dimension: L^1
909
+ * measurement unit(s): m
910
+ * tensor order: 0
911
+ * definition: length (item 3-1.1) of the repetition interval of a wave
912
+ * remarks: None.
913
+ */
914
+ }
915
+
916
+ /* ISO-80000-3 item 3-20 repetency, wavenumber */
917
+ attribute def RepetencyValue :> ScalarQuantityValue {
918
+ doc
919
+ /*
920
+ * source: item 3-20 repetency, wavenumber
921
+ * symbol(s): `σ`, `ṽ`
922
+ * application domain: generic
923
+ * name: Repetency
924
+ * quantity dimension: L^-1
925
+ * measurement unit(s): m^-1
926
+ * tensor order: 0
927
+ * definition: inverse of the wavelength (item 3-19)
928
+ * remarks: The repetency is given by: `σ = 1 / λ` where `λ` denotes the wavelength (item 3-19).
929
+ */
930
+ attribute :>> num: Real;
931
+ attribute :>> mRef: RepetencyUnit[1];
932
+ }
933
+
934
+ attribute repetency: RepetencyValue[*] nonunique :> scalarQuantities;
935
+
936
+ attribute def RepetencyUnit :> DerivedUnit {
937
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = -1; }
938
+ attribute :>> quantityDimension { :>> quantityPowerFactors = lengthPF; }
939
+ }
940
+
941
+ alias WavenumberUnit for RepetencyUnit;
942
+ alias WavenumberValue for RepetencyValue;
943
+ alias wavenumber for repetency;
944
+
945
+ /* ISO-80000-3 item 3-21 wave vector */
946
+ attribute def CartesianWave3dVector :> '3dVectorQuantityValue' {
947
+ doc
948
+ /*
949
+ * source: item 3-21 wave vector
950
+ * symbol(s): `vec(k)`
951
+ * application domain: generic
952
+ * name: WaveVector
953
+ * quantity dimension: L^-1
954
+ * measurement unit(s): m^-1
955
+ * tensor order: 1
956
+ * definition: vector normal to the surfaces of constant phase angle (item 3-7) of a wave, with the magnitude (ISO 80000-2) of repetency (item 3-20)
957
+ * remarks: None.
958
+ */
959
+ attribute :>> isBound = false;
960
+ attribute :>> mRef: CartesianWaveVector3dCoordinateFrame[1];
961
+ }
962
+
963
+ attribute cartesianWave3dVector: CartesianWave3dVector :> vectorQuantities;
964
+
965
+ attribute def CartesianWaveVector3dCoordinateFrame :> '3dCoordinateFrame' {
966
+ attribute :>> isBound = false;
967
+ attribute :>> isOrthogonal = true;
968
+ attribute :>> mRefs: RepetencyUnit[3];
969
+ }
970
+
971
+ /* ISO-80000-3 item 3-22 angular repetency, angular wavenumber */
972
+ attribute def AngularRepetencyValue :> ScalarQuantityValue {
973
+ doc
974
+ /*
975
+ * source: item 3-22 angular repetency, angular wavenumber
976
+ * symbol(s): `k`
977
+ * application domain: generic
978
+ * name: AngularRepetency
979
+ * quantity dimension: L^-1
980
+ * measurement unit(s): m^-1
981
+ * tensor order: 0
982
+ * definition: magnitude (ISO 80000-2) of the wave vector (item 3-21)
983
+ * remarks: The angular repetency is given by: `κ = (2 π)/λ` where `λ` denotes the wavelength (item 3-19).
984
+ */
985
+ attribute :>> num: Real;
986
+ attribute :>> mRef: AngularRepetencyUnit[1];
987
+ }
988
+
989
+ attribute angularRepetency: AngularRepetencyValue[*] nonunique :> scalarQuantities;
990
+
991
+ attribute def AngularRepetencyUnit :> DerivedUnit {
992
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = -1; }
993
+ attribute :>> quantityDimension { :>> quantityPowerFactors = lengthPF; }
994
+ }
995
+
996
+ alias AngularWavenumberUnit for AngularRepetencyUnit;
997
+ alias AngularWavenumberValue for AngularRepetencyValue;
998
+ alias angularWavenumber for angularRepetency;
999
+
1000
+ /* ISO-80000-3 item 3-23.1 phase velocity, phase speed */
1001
+ attribute def PhaseVelocityValue :> ScalarQuantityValue {
1002
+ doc
1003
+ /*
1004
+ * source: item 3-23.1 phase velocity, phase speed
1005
+ * symbol(s): `c`, `v`, `(ν)`, `c_φ`, `v_φ`, `(ν_φ)`
1006
+ * application domain: generic
1007
+ * name: PhaseVelocity
1008
+ * quantity dimension: L^1*T^-1
1009
+ * measurement unit(s): m*s^-1
1010
+ * tensor order: 0
1011
+ * definition: speed with which the phase angle (item 3-7) of a wave propagates in space
1012
+ * remarks: The phase velocity is given by: `c = ω/κ` where `ω` denotes the angular frequency (item 3-18) and `k` the angular repetency (item 3-22). If phase velocities of electromagnetic waves and other phase velocities are both involved, then `c` should be used for the former and `υ` for the latter. Phase velocity can also be written as `c = λ f`.
1013
+ */
1014
+ attribute :>> num: Real;
1015
+ attribute :>> mRef: PhaseVelocityUnit[1];
1016
+ }
1017
+
1018
+ attribute phaseVelocity: PhaseVelocityValue[*] nonunique :> scalarQuantities;
1019
+
1020
+ attribute def PhaseVelocityUnit :> DerivedUnit {
1021
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 1; }
1022
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -1; }
1023
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, durationPF); }
1024
+ }
1025
+
1026
+ alias PhaseSpeedUnit for PhaseVelocityUnit;
1027
+ alias PhaseSpeedValue for PhaseVelocityValue;
1028
+ alias phaseSpeed for phaseVelocity;
1029
+
1030
+ /* ISO-80000-3 item 3-23.2 group velocity, group speed */
1031
+ attribute groupVelocity: SpeedValue :> scalarQuantities {
1032
+ doc
1033
+ /*
1034
+ * source: item 3-23.2 group velocity, group speed
1035
+ * symbol(s): `c_g`, `v_g`, `(ν_g)`
1036
+ * application domain: generic
1037
+ * name: GroupVelocity (specializes Speed)
1038
+ * quantity dimension: L^1*T^-1
1039
+ * measurement unit(s): m*s^-1
1040
+ * tensor order: 0
1041
+ * definition: speed with which the envelope of a wave propagates in space
1042
+ * remarks: The group velocity is given by: `c_g = (d ω)/ (dk)` where `ω` denotes the angular frequency (item 3-18) and `k` the angular repetency (item 3-22).
1043
+ */
1044
+ }
1045
+
1046
+ alias groupSpeed for groupVelocity;
1047
+
1048
+ /* ISO-80000-3 item 3-24 damping coefficient */
1049
+ attribute def DampingCoefficientValue :> ScalarQuantityValue {
1050
+ doc
1051
+ /*
1052
+ * source: item 3-24 damping coefficient
1053
+ * symbol(s): `δ`
1054
+ * application domain: generic
1055
+ * name: DampingCoefficient
1056
+ * quantity dimension: T^-1
1057
+ * measurement unit(s): s^-1
1058
+ * tensor order: 0
1059
+ * definition: inverse of the time constant (item 3-15) of an exponentially varying quantity
1060
+ * remarks: None.
1061
+ */
1062
+ attribute :>> num: Real;
1063
+ attribute :>> mRef: DampingCoefficientUnit[1];
1064
+ }
1065
+
1066
+ attribute dampingCoefficient: DampingCoefficientValue[*] nonunique :> scalarQuantities;
1067
+
1068
+ attribute def DampingCoefficientUnit :> DerivedUnit {
1069
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -1; }
1070
+ attribute :>> quantityDimension { :>> quantityPowerFactors = durationPF; }
1071
+ }
1072
+
1073
+ /* ISO-80000-3 item 3-25 logarithmic decrement */
1074
+ attribute def LogarithmicDecrementValue :> DimensionOneValue {
1075
+ doc
1076
+ /*
1077
+ * source: item 3-25 logarithmic decrement
1078
+ * symbol(s): `Λ`
1079
+ * application domain: generic
1080
+ * name: LogarithmicDecrement (specializes DimensionOneQuantity)
1081
+ * quantity dimension: 1
1082
+ * measurement unit(s): 1
1083
+ * tensor order: 0
1084
+ * definition: product of damping coefficient (item 3-24) and period duration (item 3-14)
1085
+ * remarks: None.
1086
+ */
1087
+ }
1088
+ attribute logarithmicDecrement: LogarithmicDecrementValue :> scalarQuantities;
1089
+
1090
+ /* ISO-80000-3 item 3-26.1 attenuation, extinction */
1091
+ attribute def AttenuationValue :> ScalarQuantityValue {
1092
+ doc
1093
+ /*
1094
+ * source: item 3-26.1 attenuation, extinction
1095
+ * symbol(s): `α`
1096
+ * application domain: generic
1097
+ * name: Attenuation
1098
+ * quantity dimension: L^-1
1099
+ * measurement unit(s): m^-1
1100
+ * tensor order: 0
1101
+ * definition: gradual decrease in magnitude (ISO 80000-2) of any kind of flux through a medium
1102
+ * remarks: If a quantity is a function of distance (item 3-1.8) expressed by: `f(x) prop e^(-α x)` where `x` denotes distance (item 3-1.8), then `α` denotes attenuation. The inverse of attenuation is called attenuation length.
1103
+ */
1104
+ attribute :>> num: Real;
1105
+ attribute :>> mRef: AttenuationUnit[1];
1106
+ }
1107
+
1108
+ attribute attenuation: AttenuationValue[*] nonunique :> scalarQuantities;
1109
+
1110
+ attribute def AttenuationUnit :> DerivedUnit {
1111
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = -1; }
1112
+ attribute :>> quantityDimension { :>> quantityPowerFactors = lengthPF; }
1113
+ }
1114
+
1115
+ alias ExtinctionUnit for AttenuationUnit;
1116
+ alias ExtinctionValue for AttenuationValue;
1117
+ alias extinction for attenuation;
1118
+
1119
+ /* ISO-80000-3 item 3-26.2 phase coefficient */
1120
+ attribute def PhaseCoefficientValue :> ScalarQuantityValue {
1121
+ doc
1122
+ /*
1123
+ * source: item 3-26.2 phase coefficient
1124
+ * symbol(s): `β`
1125
+ * application domain: generic
1126
+ * name: PhaseCoefficient
1127
+ * quantity dimension: L^-1
1128
+ * measurement unit(s): rad/m, m^-1
1129
+ * tensor order: 0
1130
+ * definition: change of phase angle (item 3-7) with the length (item 3-1.1) along the path travelled by a plane wave
1131
+ * remarks: If a quantity is a function of distance expressed by: `f(x) prop cos(β(x-x_0))` where `x` denotes distance (item 3-1.8), then `β` denotes the phase coefficient.
1132
+ */
1133
+ attribute :>> num: Real;
1134
+ attribute :>> mRef: PhaseCoefficientUnit[1];
1135
+ }
1136
+
1137
+ attribute phaseCoefficient: PhaseCoefficientValue[*] nonunique :> scalarQuantities;
1138
+
1139
+ attribute def PhaseCoefficientUnit :> DerivedUnit {
1140
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = -1; }
1141
+ attribute :>> quantityDimension { :>> quantityPowerFactors = lengthPF; }
1142
+ }
1143
+
1144
+ /* ISO-80000-3 item 3-26.3 propagation coefficient */
1145
+ attribute def PropagationCoefficientValue :> ScalarQuantityValue {
1146
+ doc
1147
+ /*
1148
+ * source: item 3-26.3 propagation coefficient
1149
+ * symbol(s): `γ`
1150
+ * application domain: generic
1151
+ * name: PropagationCoefficient
1152
+ * quantity dimension: L^-1
1153
+ * measurement unit(s): m^-1
1154
+ * tensor order: 0
1155
+ * definition: measure of the change of amplitude and phase angle (item 3-7) of a plane wave propagating in a given direction
1156
+ * remarks: The propagation coefficient is given by: `γ = α + iβ` where `α` denotes attenuation (item 3-26.1) and `β` the phase coefficient (item 3-26.2) of a plane wave.
1157
+ */
1158
+ attribute :>> num: Real;
1159
+ attribute :>> mRef: PropagationCoefficientUnit[1];
1160
+ }
1161
+
1162
+ attribute propagationCoefficient: PropagationCoefficientValue[*] nonunique :> scalarQuantities;
1163
+
1164
+ attribute def PropagationCoefficientUnit :> DerivedUnit {
1165
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = -1; }
1166
+ attribute :>> quantityDimension { :>> quantityPowerFactors = lengthPF; }
1167
+ }
1168
+
1169
+ }