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.
- package/README.md +71 -0
- package/dist/bin/cli.d.ts +6 -0
- package/dist/bin/cli.d.ts.map +1 -0
- package/dist/bin/cli.js +61 -0
- package/dist/bin/cli.js.map +1 -0
- package/dist/mcp/index.d.ts +3 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +8 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/src/cli/commands.d.ts +22 -0
- package/dist/src/cli/commands.d.ts.map +1 -0
- package/dist/src/cli/commands.js +87 -0
- package/dist/src/cli/commands.js.map +1 -0
- package/dist/src/discovery/find-sysml.d.ts +16 -0
- package/dist/src/discovery/find-sysml.d.ts.map +1 -0
- package/dist/src/discovery/find-sysml.js +30 -0
- package/dist/src/discovery/find-sysml.js.map +1 -0
- package/dist/src/discovery/load-order.d.ts +11 -0
- package/dist/src/discovery/load-order.d.ts.map +1 -0
- package/dist/src/discovery/load-order.js +85 -0
- package/dist/src/discovery/load-order.js.map +1 -0
- package/dist/src/graph/connection.d.ts +6 -0
- package/dist/src/graph/connection.d.ts.map +1 -0
- package/dist/src/graph/connection.js +7 -0
- package/dist/src/graph/connection.js.map +1 -0
- package/dist/src/graph/graph-store.d.ts +37 -0
- package/dist/src/graph/graph-store.d.ts.map +1 -0
- package/dist/src/graph/graph-store.js +108 -0
- package/dist/src/graph/graph-store.js.map +1 -0
- package/dist/src/graph/schema.d.ts +13 -0
- package/dist/src/graph/schema.d.ts.map +1 -0
- package/dist/src/graph/schema.js +21 -0
- package/dist/src/graph/schema.js.map +1 -0
- package/dist/src/index.d.ts +14 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +14 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/indexer/indexer.d.ts +20 -0
- package/dist/src/indexer/indexer.d.ts.map +1 -0
- package/dist/src/indexer/indexer.js +56 -0
- package/dist/src/indexer/indexer.js.map +1 -0
- package/dist/src/indexer/pipeline-phases.d.ts +8 -0
- package/dist/src/indexer/pipeline-phases.d.ts.map +1 -0
- package/dist/src/indexer/pipeline-phases.js +14 -0
- package/dist/src/indexer/pipeline-phases.js.map +1 -0
- package/dist/src/mcp/resources/context.d.ts +6 -0
- package/dist/src/mcp/resources/context.d.ts.map +1 -0
- package/dist/src/mcp/resources/context.js +45 -0
- package/dist/src/mcp/resources/context.js.map +1 -0
- package/dist/src/mcp/resources/schema.d.ts +6 -0
- package/dist/src/mcp/resources/schema.d.ts.map +1 -0
- package/dist/src/mcp/resources/schema.js +14 -0
- package/dist/src/mcp/resources/schema.js.map +1 -0
- package/dist/src/mcp/server.d.ts +8 -0
- package/dist/src/mcp/server.d.ts.map +1 -0
- package/dist/src/mcp/server.js +175 -0
- package/dist/src/mcp/server.js.map +1 -0
- package/dist/src/mcp/tools/clean-index.d.ts +12 -0
- package/dist/src/mcp/tools/clean-index.d.ts.map +1 -0
- package/dist/src/mcp/tools/clean-index.js +22 -0
- package/dist/src/mcp/tools/clean-index.js.map +1 -0
- package/dist/src/mcp/tools/context.d.ts +14 -0
- package/dist/src/mcp/tools/context.d.ts.map +1 -0
- package/dist/src/mcp/tools/context.js +51 -0
- package/dist/src/mcp/tools/context.js.map +1 -0
- package/dist/src/mcp/tools/cypher.d.ts +13 -0
- package/dist/src/mcp/tools/cypher.d.ts.map +1 -0
- package/dist/src/mcp/tools/cypher.js +25 -0
- package/dist/src/mcp/tools/cypher.js.map +1 -0
- package/dist/src/mcp/tools/generate-map.d.ts +13 -0
- package/dist/src/mcp/tools/generate-map.d.ts.map +1 -0
- package/dist/src/mcp/tools/generate-map.js +96 -0
- package/dist/src/mcp/tools/generate-map.js.map +1 -0
- package/dist/src/mcp/tools/impact.d.ts +14 -0
- package/dist/src/mcp/tools/impact.d.ts.map +1 -0
- package/dist/src/mcp/tools/impact.js +47 -0
- package/dist/src/mcp/tools/impact.js.map +1 -0
- package/dist/src/mcp/tools/index-db-graph.d.ts +14 -0
- package/dist/src/mcp/tools/index-db-graph.d.ts.map +1 -0
- package/dist/src/mcp/tools/index-db-graph.js +32 -0
- package/dist/src/mcp/tools/index-db-graph.js.map +1 -0
- package/dist/src/mcp/tools/list-indexed.d.ts +9 -0
- package/dist/src/mcp/tools/list-indexed.d.ts.map +1 -0
- package/dist/src/mcp/tools/list-indexed.js +14 -0
- package/dist/src/mcp/tools/list-indexed.js.map +1 -0
- package/dist/src/mcp/tools/query.d.ts +14 -0
- package/dist/src/mcp/tools/query.d.ts.map +1 -0
- package/dist/src/mcp/tools/query.js +47 -0
- package/dist/src/mcp/tools/query.js.map +1 -0
- package/dist/src/mcp/tools/rename.d.ts +19 -0
- package/dist/src/mcp/tools/rename.d.ts.map +1 -0
- package/dist/src/mcp/tools/rename.js +46 -0
- package/dist/src/mcp/tools/rename.js.map +1 -0
- package/dist/src/parser/lsp-client.d.ts +52 -0
- package/dist/src/parser/lsp-client.d.ts.map +1 -0
- package/dist/src/parser/lsp-client.js +230 -0
- package/dist/src/parser/lsp-client.js.map +1 -0
- package/dist/src/parser/lsp-server-path.d.ts +10 -0
- package/dist/src/parser/lsp-server-path.d.ts.map +1 -0
- package/dist/src/parser/lsp-server-path.js +29 -0
- package/dist/src/parser/lsp-server-path.js.map +1 -0
- package/dist/src/parser/symbols.d.ts +13 -0
- package/dist/src/parser/symbols.d.ts.map +1 -0
- package/dist/src/parser/symbols.js +150 -0
- package/dist/src/parser/symbols.js.map +1 -0
- package/dist/src/parser/sysml-mcp-client.d.ts +109 -0
- package/dist/src/parser/sysml-mcp-client.d.ts.map +1 -0
- package/dist/src/parser/sysml-mcp-client.js +185 -0
- package/dist/src/parser/sysml-mcp-client.js.map +1 -0
- package/dist/src/storage/clean.d.ts +15 -0
- package/dist/src/storage/clean.d.ts.map +1 -0
- package/dist/src/storage/clean.js +44 -0
- package/dist/src/storage/clean.js.map +1 -0
- package/dist/src/storage/list.d.ts +9 -0
- package/dist/src/storage/list.d.ts.map +1 -0
- package/dist/src/storage/list.js +12 -0
- package/dist/src/storage/list.js.map +1 -0
- package/dist/src/storage/location.d.ts +22 -0
- package/dist/src/storage/location.d.ts.map +1 -0
- package/dist/src/storage/location.js +36 -0
- package/dist/src/storage/location.js.map +1 -0
- package/dist/src/storage/registry.d.ts +14 -0
- package/dist/src/storage/registry.d.ts.map +1 -0
- package/dist/src/storage/registry.js +59 -0
- package/dist/src/storage/registry.js.map +1 -0
- package/dist/src/symbol-to-graph/mapping.d.ts +17 -0
- package/dist/src/symbol-to-graph/mapping.d.ts.map +1 -0
- package/dist/src/symbol-to-graph/mapping.js +102 -0
- package/dist/src/symbol-to-graph/mapping.js.map +1 -0
- package/dist/src/types.d.ts +40 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +35 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/worker/client.d.ts +21 -0
- package/dist/src/worker/client.d.ts.map +1 -0
- package/dist/src/worker/client.js +126 -0
- package/dist/src/worker/client.js.map +1 -0
- package/dist/src/worker/gateway.d.ts +79 -0
- package/dist/src/worker/gateway.d.ts.map +1 -0
- package/dist/src/worker/gateway.js +93 -0
- package/dist/src/worker/gateway.js.map +1 -0
- package/dist/src/worker/graph-worker.d.ts +7 -0
- package/dist/src/worker/graph-worker.d.ts.map +1 -0
- package/dist/src/worker/graph-worker.js +91 -0
- package/dist/src/worker/graph-worker.js.map +1 -0
- package/dist/src/worker/protocol.d.ts +21 -0
- package/dist/src/worker/protocol.d.ts.map +1 -0
- package/dist/src/worker/protocol.js +9 -0
- package/dist/src/worker/protocol.js.map +1 -0
- package/docs/INSTALL.md +16 -0
- package/docs/MCP_CLIENT_TEMPLATE_ANALYSIS.md +196 -0
- package/docs/MCP_INTERACTION_GUIDE.md +201 -0
- package/docs/MCP_SERVER_FOR_CURSOR.md +124 -0
- package/docs/PLAN.md +58 -0
- package/docs/PLAN_INDEPENDENT_LSP.md +145 -0
- package/docs/SKILL_DESIGN_PATTERNS.md +305 -0
- package/docs/TOOLS.md +317 -0
- package/lsp/README.md +41 -0
- package/lsp/node_modules/.bin/sysml-mcp +12 -0
- package/lsp/node_modules/.bin/sysml-mcp.cmd +9 -0
- package/lsp/node_modules/.bin/sysml-mcp.ps1 +16 -0
- package/lsp/node_modules/.package-lock.json +22 -0
- package/lsp/node_modules/sysml-v2-lsp/CHANGELOG.md +188 -0
- package/lsp/node_modules/sysml-v2-lsp/LICENSE +21 -0
- package/lsp/node_modules/sysml-v2-lsp/README.md +172 -0
- package/lsp/node_modules/sysml-v2-lsp/dist/server/mcpServer.js +167 -0
- package/lsp/node_modules/sysml-v2-lsp/dist/server/server.js +142 -0
- package/lsp/node_modules/sysml-v2-lsp/index.cjs +23 -0
- package/lsp/node_modules/sysml-v2-lsp/package.json +131 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/.project +17 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/.settings/org.eclipse.jdt.core.prefs +11 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Analysis/.meta.json +10 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Analysis/.project.json +27 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Analysis/AnalysisTooling.sysml +34 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Analysis/SampledFunctions.sysml +119 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Analysis/StateSpaceRepresentation.sysml +143 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Analysis/TradeStudies.sysml +171 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Cause and Effect/.meta.json +8 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Cause and Effect/.project.json +23 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Cause and Effect/CausationConnections.sysml +83 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Cause and Effect/CauseAndEffect.sysml +81 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Geometry/.meta.json +8 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Geometry/.project.json +27 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Geometry/ShapeItems.sysml +899 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Geometry/SpatialItems.sysml +168 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Metadata/.meta.json +10 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Metadata/.project.json +19 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Metadata/ImageMetadata.sysml +78 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Metadata/ModelingMetadata.sysml +143 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Metadata/ParametersOfInterestMetadata.sysml +39 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Metadata/RiskMetadata.sysml +100 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/.meta.json +29 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/.project.json +23 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQ.sysml +42 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQAcoustics.sysml +439 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQAtomicNuclear.sysml +2726 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQBase.sysml +206 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQCharacteristicNumbers.sysml +1991 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQChemistryMolecular.sysml +1353 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQCondensedMatter.sysml +1223 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQElectromagnetism.sysml +2333 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQInformation.sysml +958 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQLight.sysml +1537 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQMechanics.sysml +1564 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQSpaceTime.sysml +1169 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQThermodynamics.sysml +1256 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/MeasurementRefCalculations.sysml +30 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/MeasurementReferences.sysml +526 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/Quantities.sysml +107 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/QuantityCalculations.sysml +70 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/SI.sysml +378 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/SIPrefixes.sysml +48 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/TensorCalculations.sysml +50 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/Time.sysml +274 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/USCustomaryUnits.sysml +260 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/VectorCalculations.sysml +62 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Requirement Derivation/.meta.json +8 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Requirement Derivation/.project.json +19 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Requirement Derivation/DerivationConnections.sysml +63 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Requirement Derivation/RequirementDerivation.sysml +39 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Data Type Library/.meta.json +9 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Data Type Library/.project.json +11 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Data Type Library/Collections.kerml +147 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Data Type Library/ScalarValues.kerml +23 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Data Type Library/VectorValues.kerml +64 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/.meta.json +23 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/.project.json +15 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/BaseFunctions.kerml +80 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/BooleanFunctions.kerml +22 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/CollectionFunctions.kerml +68 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/ComplexFunctions.kerml +47 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/ControlFunctions.kerml +117 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/DataFunctions.kerml +43 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/IntegerFunctions.kerml +43 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/NaturalFunctions.kerml +27 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/NumericalFunctions.kerml +43 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/OccurrenceFunctions.kerml +154 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/RationalFunctions.kerml +49 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/RealFunctions.kerml +56 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/ScalarFunctions.kerml +33 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/SequenceFunctions.kerml +111 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/StringFunctions.kerml +25 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/TrigFunctions.kerml +35 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/VectorFunctions.kerml +273 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/.meta.json +22 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/.project.json +15 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Base.kerml +95 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Clocks.kerml +156 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/ControlPerformances.kerml +135 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/FeatureReferencingPerformances.kerml +190 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/KerML.kerml +483 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Links.kerml +67 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Metaobjects.kerml +58 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Objects.kerml +212 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Observation.kerml +161 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Occurrences.kerml +992 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Performances.kerml +293 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/SpatialFrames.kerml +197 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/StatePerformances.kerml +145 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Transfers.kerml +281 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/TransitionPerformances.kerml +66 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Triggers.kerml +188 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/.meta.json +27 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/.project.json +19 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Actions.sysml +552 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Allocations.sysml +29 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/AnalysisCases.sysml +38 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Attributes.sysml +25 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Calculations.sysml +37 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Cases.sysml +71 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Connections.sysml +60 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Constraints.sysml +44 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Flows.sysml +126 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Interfaces.sysml +89 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Items.sysml +153 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Metadata.sysml +32 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Parts.sysml +81 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Ports.sysml +54 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Requirements.sysml +194 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/StandardViewDefinitions.sysml +123 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/States.sysml +103 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/SysML.sysml +539 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/UseCases.sysml +57 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/VerificationCases.sysml +103 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Views.sysml +164 -0
- package/lsp/package-lock.json +30 -0
- package/lsp/package.json +15 -0
- package/lsp/test-server.mjs +120 -0
- package/package.json +61 -0
- package/scripts/access-sysml-mcp.mjs +45 -0
- package/scripts/check-sysml-v2-lsp-version.mjs +39 -0
- package/scripts/clean.mjs +14 -0
- package/scripts/compare-mcp-vs-lsp-symbols.mjs +76 -0
- package/scripts/debug-index.mjs +23 -0
- package/scripts/debug-lsp-symbols.mjs +62 -0
- package/scripts/deploy-skills.mjs +43 -0
- package/scripts/example-sysml-mcp.mjs +27 -0
- package/scripts/export-graph.mjs +80 -0
- package/scripts/generate-map.mjs +110 -0
- package/scripts/index-and-map.mjs +43 -0
- package/scripts/index-and-query.mjs +39 -0
- package/scripts/query-one.mjs +34 -0
- package/scripts/setup-lsp.mjs +36 -0
- package/scripts/test-lsp.mjs +55 -0
- package/scripts/test-mcp-debug.mjs +32 -0
- package/scripts/test-mcp-sysml.mjs +75 -0
- package/scripts/test-mcp-tools.mjs +185 -0
- package/scripts/test-sysml-mcp-from-node_modules.mjs +56 -0
- package/scripts/validate-sysml-file.mjs +69 -0
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
standard library package Cases {
|
|
2
|
+
doc
|
|
3
|
+
/*
|
|
4
|
+
* This package defines the base types for cases and related behavioral elements
|
|
5
|
+
* in the SysML language.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
private import Base::Anything;
|
|
9
|
+
private import Requirements::RequirementCheck;
|
|
10
|
+
private import Calculations::Calculation;
|
|
11
|
+
private import Calculations::calculations;
|
|
12
|
+
private import Parts::Part;
|
|
13
|
+
private import Parts::parts;
|
|
14
|
+
|
|
15
|
+
abstract case def Case :> Calculation {
|
|
16
|
+
doc
|
|
17
|
+
/*
|
|
18
|
+
* Case is the most general class of performances of CaseDefinitions.
|
|
19
|
+
* Case is the base class of all CaseDefinitions.
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
ref case self : Case :>> Calculation::self;
|
|
23
|
+
|
|
24
|
+
subject subj : Anything[1] {
|
|
25
|
+
doc
|
|
26
|
+
/*
|
|
27
|
+
* The subject that was investigated by this Case.
|
|
28
|
+
*/
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
ref part actors : Part[0..*] :> parts {
|
|
32
|
+
doc
|
|
33
|
+
/*
|
|
34
|
+
* The Parts that fill the role of actors for this Case.
|
|
35
|
+
* (Note: This is not itself an actor parameter, because specific actor
|
|
36
|
+
* parameters will be added for specific Cases.)
|
|
37
|
+
*/
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
objective obj : RequirementCheck[1] {
|
|
41
|
+
doc
|
|
42
|
+
/*
|
|
43
|
+
* A check of whether the objective RequirementUsage was satisfied for this Case.
|
|
44
|
+
*/
|
|
45
|
+
|
|
46
|
+
subject subj default Case::result;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return ref result[0..*] {
|
|
50
|
+
doc
|
|
51
|
+
/*
|
|
52
|
+
* The result determined by the case, which should satisfy the case objective.
|
|
53
|
+
*/
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
abstract case subcases : Case[0..*] :> cases, subcalculations {
|
|
57
|
+
doc
|
|
58
|
+
/*
|
|
59
|
+
* Other Cases carried out as part of the performance of this Case.
|
|
60
|
+
*/
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
abstract case cases : Case[0..*] nonunique :> calculations {
|
|
66
|
+
doc
|
|
67
|
+
/*
|
|
68
|
+
* cases is the base Feature of all CaseUsages.
|
|
69
|
+
*/
|
|
70
|
+
}
|
|
71
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
standard library package Connections {
|
|
2
|
+
doc
|
|
3
|
+
/*
|
|
4
|
+
* This package defines the base types for connections and related structural elements
|
|
5
|
+
* in the SysML language.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
private import Base::Anything;
|
|
9
|
+
private import Occurrences::Occurrence;
|
|
10
|
+
private import Occurrences::HappensDuring;
|
|
11
|
+
private import Objects::LinkObject;
|
|
12
|
+
private import Objects::linkObjects;
|
|
13
|
+
private import Objects::BinaryLinkObject;
|
|
14
|
+
private import Objects::binaryLinkObjects;
|
|
15
|
+
private import Transfers::Transfer;
|
|
16
|
+
private import Transfers::transfers;
|
|
17
|
+
private import Transfers::FlowTransfer;
|
|
18
|
+
private import Transfers::flowTransfers;
|
|
19
|
+
private import Transfers::FlowTransferBefore;
|
|
20
|
+
private import Transfers::flowTransfersBefore;
|
|
21
|
+
private import ScalarValues::Natural;
|
|
22
|
+
private import Parts::Part;
|
|
23
|
+
private import Parts::parts;
|
|
24
|
+
private import Actions::Action;
|
|
25
|
+
private import Actions::actions;
|
|
26
|
+
|
|
27
|
+
abstract connection def Connection :> LinkObject, Part {
|
|
28
|
+
doc
|
|
29
|
+
/*
|
|
30
|
+
* Connection is the most general class of links between things within some
|
|
31
|
+
* containing structure. Connection is the base type of all ConnectionDefinitions.
|
|
32
|
+
*/
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
abstract connection def BinaryConnection :> BinaryLinkObject, Connection {
|
|
36
|
+
doc
|
|
37
|
+
/*
|
|
38
|
+
* BinaryConnection is the most general class of binary links between two things
|
|
39
|
+
* within some containing structure. BinaryConnection is the base type of all
|
|
40
|
+
* ConnectionDefinitions with exactly two ends.
|
|
41
|
+
*/
|
|
42
|
+
|
|
43
|
+
end source: Anything :>> BinaryLinkObject::source;
|
|
44
|
+
end target: Anything :>> BinaryLinkObject::target;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
abstract connection connections: Connection[0..*] nonunique :> linkObjects, parts {
|
|
48
|
+
doc
|
|
49
|
+
/*
|
|
50
|
+
* connections is the base feature of all ConnectionUsages.
|
|
51
|
+
*/
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
abstract connection binaryConnections: Connection[0..*] nonunique :> connections, binaryLinkObjects {
|
|
55
|
+
doc
|
|
56
|
+
/*
|
|
57
|
+
* binaryConnections is the base feature of all binary ConnectionUsages.
|
|
58
|
+
*/
|
|
59
|
+
}
|
|
60
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
standard library package Constraints {
|
|
2
|
+
doc
|
|
3
|
+
/*
|
|
4
|
+
* This package defines the base types for constraints and related elements in the
|
|
5
|
+
* SysML language.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
private import Performances::BooleanEvaluation;
|
|
9
|
+
private import Performances::booleanEvaluations;
|
|
10
|
+
private import Performances::trueEvaluations;
|
|
11
|
+
private import Performances::falseEvaluations;
|
|
12
|
+
|
|
13
|
+
abstract constraint def ConstraintCheck :> BooleanEvaluation {
|
|
14
|
+
doc
|
|
15
|
+
/*
|
|
16
|
+
* ConstraintCheck is the most general class for constraint checking. ConstraintCheck is the base
|
|
17
|
+
* type of all ConstraintDefinitions.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
ref constraint self: ConstraintCheck :>> BooleanEvaluation::self;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
abstract constraint constraintChecks: ConstraintCheck[0..*] nonunique :> booleanEvaluations {
|
|
24
|
+
doc
|
|
25
|
+
/*
|
|
26
|
+
* constraintChecks is the base feature of all ConstraintUsages.
|
|
27
|
+
*/
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
abstract constraint assertedConstraintChecks :> constraintChecks, trueEvaluations {
|
|
31
|
+
doc
|
|
32
|
+
/*
|
|
33
|
+
* assertedConstraintChecks is the subset of constraintChecks for ConstraintChecks asserted to be true.
|
|
34
|
+
*/
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
abstract constraint negatedConstraintChecks :> constraintChecks, falseEvaluations {
|
|
38
|
+
doc
|
|
39
|
+
/*
|
|
40
|
+
* negatedConstraintChecks is the subset of constraintChecks for ConstraintChecks asserted to be false.
|
|
41
|
+
*/
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
standard library package Flows {
|
|
2
|
+
doc
|
|
3
|
+
/*
|
|
4
|
+
* This package defines the base types for flows and related behavioral elements
|
|
5
|
+
* in the SysML language.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
private import Links::Link;
|
|
9
|
+
private import Occurrences::Occurrence;
|
|
10
|
+
private import Occurrences::HappensDuring;
|
|
11
|
+
private import Objects::binaryLinkObjects;
|
|
12
|
+
private import Transfers::Transfer;
|
|
13
|
+
private import Transfers::transfers;
|
|
14
|
+
private import Transfers::FlowTransfer;
|
|
15
|
+
private import Transfers::flowTransfers;
|
|
16
|
+
private import Transfers::FlowTransferBefore;
|
|
17
|
+
private import Transfers::flowTransfersBefore;
|
|
18
|
+
private import Actions::Action;
|
|
19
|
+
private import Actions::actions;
|
|
20
|
+
private import ScalarValues::Natural;
|
|
21
|
+
|
|
22
|
+
abstract flow def MessageAction :> Action, Link {
|
|
23
|
+
doc
|
|
24
|
+
/*
|
|
25
|
+
* MessageAction is the most general class of actions that represent
|
|
26
|
+
* interactions between linked things. It is the base type of all
|
|
27
|
+
* FlowDefinitions.
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
ref payload [0..*] {
|
|
31
|
+
doc
|
|
32
|
+
/*
|
|
33
|
+
* A payload that may be transferred during the interaction.
|
|
34
|
+
*/
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
abstract flow def Message :> MessageAction, Transfer {
|
|
39
|
+
doc
|
|
40
|
+
/*
|
|
41
|
+
* Message is the subclass of message connections that represent
|
|
42
|
+
* a transfer of objects or values between two occurrences. It is
|
|
43
|
+
* the base type of all FlowUsages.
|
|
44
|
+
*/
|
|
45
|
+
|
|
46
|
+
ref payload :>> MessageAction::payload, Transfer::payload;
|
|
47
|
+
|
|
48
|
+
private ref action thisConnection = self;
|
|
49
|
+
|
|
50
|
+
in event occurrence sourceEvent [1] default thisConnection.start {
|
|
51
|
+
doc
|
|
52
|
+
/*
|
|
53
|
+
* An occurrence happening during the source of this message
|
|
54
|
+
* that is either the start of the mssage or happens before it.
|
|
55
|
+
*/
|
|
56
|
+
}
|
|
57
|
+
in event occurrence targetEvent [1] default thisConnection.done {
|
|
58
|
+
doc
|
|
59
|
+
/*
|
|
60
|
+
* An occurrence happening during the target of this message
|
|
61
|
+
* that is either the end of the message or happens after it.
|
|
62
|
+
*/
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
connection :HappensDuring connect sourceEvent to [1] source;
|
|
66
|
+
connection :HappensDuring connect targetEvent to [1] target;
|
|
67
|
+
|
|
68
|
+
private attribute seBeforeNum: Natural[1] = if sourceEvent==thisConnection.start ? 0 else 1;
|
|
69
|
+
private attribute teAfterNum: Natural[1] = if targetEvent==thisConnection.done ? 0 else 1;
|
|
70
|
+
succession [seBeforeNum] first [0..1] sourceEvent then [0..1] self;
|
|
71
|
+
succession [teAfterNum] first [0..1] self then [0..1] targetEvent;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
abstract flow def Flow :> Message, FlowTransfer {
|
|
75
|
+
doc
|
|
76
|
+
/*
|
|
77
|
+
* Flow is a subclass of messages that are also flow transfers.
|
|
78
|
+
* It is the base type for FlowUsages that identify their source output and
|
|
79
|
+
* target input.
|
|
80
|
+
*/
|
|
81
|
+
|
|
82
|
+
end occurrence source: Occurrence :>> Message::source, FlowTransfer::source;
|
|
83
|
+
end occurrence target: Occurrence :>> Message::target, FlowTransfer::target;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
abstract flow def SuccessionFlow :> Flow, FlowTransferBefore {
|
|
87
|
+
doc
|
|
88
|
+
/*
|
|
89
|
+
* SuccessionFlow is a subclass of flowss that appen after their source and
|
|
90
|
+
* before their target. It is the base type for all SuccessionFlowUsages.
|
|
91
|
+
*/
|
|
92
|
+
|
|
93
|
+
ref self : SuccessionFlow :>> Flow::self, FlowTransferBefore::self;
|
|
94
|
+
|
|
95
|
+
end occurrence source: Occurrence :>> Flow::source, FlowTransferBefore::source;
|
|
96
|
+
end occurrence target: Occurrence :>> Flow::target, FlowTransferBefore::target;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
abstract message messages: Message[0..*] nonunique :> transfers, actions {
|
|
100
|
+
doc
|
|
101
|
+
/*
|
|
102
|
+
* messages is the base feature of all FlowUsages.
|
|
103
|
+
*/
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
abstract flow flows: Flow[0..*] nonunique :> messages, flowTransfers {
|
|
107
|
+
doc
|
|
108
|
+
/*
|
|
109
|
+
* flows is the base feature for FlowUsages that identify their source output
|
|
110
|
+
* and target input.
|
|
111
|
+
*/
|
|
112
|
+
|
|
113
|
+
end occurrence source: Occurrence :>> Flow::source, messages::source, flowTransfers::source;
|
|
114
|
+
end occurrence target: Occurrence :>> Flow::target, messages::target, flowTransfers::target;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
abstract flow successionFlows: SuccessionFlow[0..*] nonunique :> flows, flowTransfersBefore {
|
|
118
|
+
doc
|
|
119
|
+
/*
|
|
120
|
+
* successionFlows is the base feature of all SuccessionFlowUsages.
|
|
121
|
+
*/
|
|
122
|
+
|
|
123
|
+
end occurrence source: Occurrence :>> SuccessionFlow::source, flows::source, flowTransfersBefore::source;
|
|
124
|
+
end occurrence target: Occurrence :>> SuccessionFlow::target, flows::target, flowTransfersBefore::target;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
standard library package Interfaces {
|
|
2
|
+
doc
|
|
3
|
+
/*
|
|
4
|
+
* This package defines the base types for interfaces and related structural elements in the SysML language.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
private import Connections::Connection;
|
|
8
|
+
private import Connections::connections;
|
|
9
|
+
private import Connections::BinaryConnection;
|
|
10
|
+
private import Connections::binaryConnections;
|
|
11
|
+
private import Ports::Port;
|
|
12
|
+
|
|
13
|
+
private import ScalarValues::Natural;
|
|
14
|
+
private import SequenceFunctions::size;
|
|
15
|
+
private import SequenceFunctions::excludingAt;
|
|
16
|
+
private import ControlFunctions::selectOne;
|
|
17
|
+
|
|
18
|
+
private import SequenceFunctions::notEmpty;
|
|
19
|
+
|
|
20
|
+
private calc def excludingOnce {
|
|
21
|
+
doc
|
|
22
|
+
/*
|
|
23
|
+
* Return a sequence that is the same as the input sequence, but with a single
|
|
24
|
+
* instance of a given value removed. The given value must be in the input sequence.
|
|
25
|
+
*/
|
|
26
|
+
in seq[1..*] nonunique ordered;
|
|
27
|
+
in value[1] :> seq;
|
|
28
|
+
|
|
29
|
+
private attribute position : Natural[1] = (1..size(seq))->selectOne{in i; seq#(i) == value};
|
|
30
|
+
seq->excludingAt(position)
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
abstract interface def Interface :> Connection {
|
|
34
|
+
doc
|
|
35
|
+
/*
|
|
36
|
+
* Interface is the most general class of links between Ports on Parts
|
|
37
|
+
* within some containing structure. Interface is the base type of all
|
|
38
|
+
* InterfaceDefinitions.
|
|
39
|
+
*
|
|
40
|
+
* Transfers outgoing from any one of the participant Ports of an Interface
|
|
41
|
+
* may be targeted to one of the other participant Ports (depending on any
|
|
42
|
+
* other Interfaces in which the Port is also participating).
|
|
43
|
+
*/
|
|
44
|
+
|
|
45
|
+
ref port :>> participant : Port [2..*] nonunique ordered {
|
|
46
|
+
doc
|
|
47
|
+
/*
|
|
48
|
+
* The participants of an Interface must be Ports. The interfacingPorts of
|
|
49
|
+
* each participant Port include all the other participants in the Interface.
|
|
50
|
+
*/
|
|
51
|
+
|
|
52
|
+
protected ref thisParticipant :>> self;
|
|
53
|
+
protected ref otherParticipants : Port [1..*] nonunique :> interfacingPorts
|
|
54
|
+
default participant->excludingOnce(thisParticipant);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
abstract interface def BinaryInterface :> Interface, BinaryConnection {
|
|
59
|
+
doc
|
|
60
|
+
/*
|
|
61
|
+
* BinaryInterface is the most general class of links between two Ports
|
|
62
|
+
* on Parts within some containing structure. BinaryInterface is the base
|
|
63
|
+
* type of all binary InterfaceDefinitions which have exactly two ends.
|
|
64
|
+
*
|
|
65
|
+
* Transfers outgoing from each participant Port of a BinaryInterface may be
|
|
66
|
+
* targeted to the other participant Port (depending on any other Interfaces
|
|
67
|
+
* in which the Port is also participating).
|
|
68
|
+
*/
|
|
69
|
+
|
|
70
|
+
ref port :>> Interface::participant, BinaryConnection::participant[2] nonunique ordered;
|
|
71
|
+
|
|
72
|
+
end port source: Port :>> BinaryConnection::source;
|
|
73
|
+
end port target: Port :>> BinaryConnection::target;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
abstract interface interfaces: Interface[0..*] nonunique :> connections {
|
|
77
|
+
doc
|
|
78
|
+
/*
|
|
79
|
+
* interfaces is the base feature of all InterfaceUsages.
|
|
80
|
+
*/
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
abstract interface binaryInterfaces: BinaryInterface[0..*] nonunique :> interfaces, binaryConnections {
|
|
84
|
+
doc
|
|
85
|
+
/*
|
|
86
|
+
* interfaces is the base feature of all binary InterfaceUsages.
|
|
87
|
+
*/
|
|
88
|
+
}
|
|
89
|
+
}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
standard library package Items {
|
|
2
|
+
doc
|
|
3
|
+
/*
|
|
4
|
+
* This package defines the base types for items and related structural elements in the
|
|
5
|
+
* SysML language.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
private import Objects::Object;
|
|
9
|
+
private import Objects::objects;
|
|
10
|
+
private import Parts::Part;
|
|
11
|
+
private import Parts::parts;
|
|
12
|
+
private import Occurrences::HappensWhile;
|
|
13
|
+
private import Occurrences::JustOutsideOf;
|
|
14
|
+
private import Objects::StructuredSpaceObject;
|
|
15
|
+
private import Constraints::ConstraintCheck;
|
|
16
|
+
private import Constraints::constraintChecks;
|
|
17
|
+
private import CollectionFunctions::contains;
|
|
18
|
+
private import SequenceFunctions::isEmpty;
|
|
19
|
+
private import SequenceFunctions::notEmpty;
|
|
20
|
+
private import SequenceFunctions::includes;
|
|
21
|
+
private import SequenceFunctions::union;
|
|
22
|
+
private import ControlFunctions::forAll;
|
|
23
|
+
|
|
24
|
+
abstract item def Item :> Object {
|
|
25
|
+
doc
|
|
26
|
+
/*
|
|
27
|
+
* Item is the most general class of objects that are part of, exist in or flow through a system.
|
|
28
|
+
* Item is the base type of all ItemDefinitions.
|
|
29
|
+
*/
|
|
30
|
+
|
|
31
|
+
ref self: Item :>> Object::self;
|
|
32
|
+
|
|
33
|
+
item start: Item :>> startShot;
|
|
34
|
+
item done: Item :>> endShot;
|
|
35
|
+
|
|
36
|
+
item shape : Item :>> spaceBoundary {
|
|
37
|
+
doc
|
|
38
|
+
/*
|
|
39
|
+
* The shape of an Item is its spatial boundary.
|
|
40
|
+
*/
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
item envelopingShapes : Item[0..*] {
|
|
44
|
+
doc
|
|
45
|
+
/*
|
|
46
|
+
* Each enveloping shape is the shape of an Item that spacially overlaps this Item for its
|
|
47
|
+
* entire lifetime.
|
|
48
|
+
*/
|
|
49
|
+
|
|
50
|
+
ref item envelopedItem :>> that;
|
|
51
|
+
|
|
52
|
+
assert constraint {
|
|
53
|
+
doc
|
|
54
|
+
/*
|
|
55
|
+
* Enables two dimensional items to be enveloped by two or three dimensional shapes.
|
|
56
|
+
*/
|
|
57
|
+
innerSpaceDimension ==
|
|
58
|
+
(if envelopedItem.innerSpaceDimension == 3 | envelopedItem.outerSpaceDimension == 3? 2
|
|
59
|
+
else envelopedItem.outerSpaceDimension - 1)
|
|
60
|
+
}
|
|
61
|
+
assert constraint { (that as Item).innerSpaceDimension < 3 implies notEmpty(outerSpaceDimension) }
|
|
62
|
+
|
|
63
|
+
item envelopingItem [1];
|
|
64
|
+
|
|
65
|
+
assert constraint {
|
|
66
|
+
doc
|
|
67
|
+
/*
|
|
68
|
+
* This constraint prevents an envelopingShape from being a portion.
|
|
69
|
+
*/
|
|
70
|
+
|
|
71
|
+
envelopingItem.shape.spaceTimeCoincidentOccurrences->includes(that) and
|
|
72
|
+
envelopingItem.spaceTimeEnclosedOccurrences->includes(that.that)
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
item boundingShapes : StructuredSpaceObject [0..*] :> envelopingShapes {
|
|
77
|
+
doc
|
|
78
|
+
/*
|
|
79
|
+
* envelopingShapes that are structured space objects with every face or every edge
|
|
80
|
+
* intersecting this Item.
|
|
81
|
+
*/
|
|
82
|
+
|
|
83
|
+
ref item boundingShape: Item :>> self;
|
|
84
|
+
|
|
85
|
+
private item :>> faces {
|
|
86
|
+
ref item face :>> self;
|
|
87
|
+
item inter [1];
|
|
88
|
+
assert constraint { contains(inter.intersectionsOf, union(face, boundingShape)) }
|
|
89
|
+
}
|
|
90
|
+
private item :>> edges {
|
|
91
|
+
ref item edge :>> self;
|
|
92
|
+
item inter [1];
|
|
93
|
+
assert constraint { isEmpty(faces) implies
|
|
94
|
+
contains(inter.intersectionsOf, union(edge, boundingShape)) }
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
item voids :>> innerSpaceOccurrences [0..*] {
|
|
99
|
+
doc
|
|
100
|
+
/*
|
|
101
|
+
* Voids are inner space occurrences of this Item.
|
|
102
|
+
*/
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
attribute isSolid = isEmpty(voids) {
|
|
106
|
+
doc
|
|
107
|
+
/*
|
|
108
|
+
* An Item is solid if it has no voids.
|
|
109
|
+
*/
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
abstract item subitems: Item[0..*] :> items, subobjects {
|
|
113
|
+
doc
|
|
114
|
+
/*
|
|
115
|
+
* The Items that are composite subitems of this Item.
|
|
116
|
+
*/
|
|
117
|
+
|
|
118
|
+
private ref redefines Item::incomingTransferSort, subobjects::incomingTransferSort;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
abstract part subparts: Part[0..*] :> subitems, parts {
|
|
122
|
+
doc
|
|
123
|
+
/*
|
|
124
|
+
* The subitems of this Item that are Parts.
|
|
125
|
+
*/
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
abstract constraint checkedConstraints: ConstraintCheck[0..*] :> constraintChecks, ownedPerformances {
|
|
129
|
+
doc
|
|
130
|
+
/*
|
|
131
|
+
* Constraints that have been checked by this Item.
|
|
132
|
+
*/
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
connection def Touches :> JustOutsideOf, HappensWhile {
|
|
137
|
+
doc
|
|
138
|
+
/*
|
|
139
|
+
* Touching items are just outside each other and happen at the same time.
|
|
140
|
+
*/
|
|
141
|
+
|
|
142
|
+
end touchesToo [0..*] item touchedItemToo :>> separateSpaceToo, thisOccurrence;
|
|
143
|
+
end touches [0..*] item touchedItem :>> separateSpace, thatOccurrence;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
abstract item items : Item[0..*] nonunique :> objects {
|
|
147
|
+
doc
|
|
148
|
+
/*
|
|
149
|
+
* items is the base feature of all ItemUsages.
|
|
150
|
+
*/
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
standard library package Metadata {
|
|
2
|
+
doc
|
|
3
|
+
/*
|
|
4
|
+
* This package defines the base types for metadata definitions and related
|
|
5
|
+
* metadata annotations in the SysML language.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
private import Metaobjects::Metaobject;
|
|
9
|
+
private import Metaobjects::metaobjects;
|
|
10
|
+
private import Items::Item;
|
|
11
|
+
private import Items::items;
|
|
12
|
+
|
|
13
|
+
abstract metadata def MetadataItem :> Metaobject, Item {
|
|
14
|
+
doc
|
|
15
|
+
/*
|
|
16
|
+
* MetadataItem is the most general class of Items that represent Metaobjects.
|
|
17
|
+
* MetadataItem is the base type of all MetadataDefinitions.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
ref self : MetadataItem redefines Metaobject::self, Item::self;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
abstract item metadataItems : MetadataItem[0..*] :> metaobjects, items {
|
|
24
|
+
doc
|
|
25
|
+
/*
|
|
26
|
+
* metadataItems is the base feature of all MetadataUsages.
|
|
27
|
+
*
|
|
28
|
+
* Note: It is not itself a MetadataUsage, because it is not being used as an
|
|
29
|
+
* AnnotatingElement here.
|
|
30
|
+
*/
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
standard library package Parts {
|
|
2
|
+
doc
|
|
3
|
+
/*
|
|
4
|
+
* This package defines the base types for parts and related structural elements in the
|
|
5
|
+
* SysML language.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
private import Objects::Object;
|
|
9
|
+
private import Objects::objects;
|
|
10
|
+
private import Items::Item;
|
|
11
|
+
private import Items::items;
|
|
12
|
+
private import Ports::Port;
|
|
13
|
+
private import Ports::ports;
|
|
14
|
+
private import Actions::Action;
|
|
15
|
+
private import Actions::actions;
|
|
16
|
+
private import States::StateAction;
|
|
17
|
+
private import States::stateActions;
|
|
18
|
+
|
|
19
|
+
abstract part def Part :> Item {
|
|
20
|
+
doc
|
|
21
|
+
/*
|
|
22
|
+
* Part is the most general class of objects that represent all or a part of a system.
|
|
23
|
+
* Part is the base type of all PartDefinitions.
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
ref self: Part :>> Item::self;
|
|
27
|
+
|
|
28
|
+
part start: Part :>> Item::start;
|
|
29
|
+
part done: Part :>> Item::done;
|
|
30
|
+
|
|
31
|
+
abstract port ownedPorts: Port[0..*] :> ports, timeEnclosedOccurrences {
|
|
32
|
+
doc
|
|
33
|
+
/*
|
|
34
|
+
* Ports that are owned by this Part.
|
|
35
|
+
*/
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
abstract ref action performedActions: Action[0..*] :> actions, enactedPerformances {
|
|
39
|
+
doc
|
|
40
|
+
/*
|
|
41
|
+
* Actions that are performed by this Part.
|
|
42
|
+
*/
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
abstract action ownedActions: Action[0..*] :> actions, ownedPerformances {
|
|
46
|
+
doc
|
|
47
|
+
/*
|
|
48
|
+
* Actions that are owned by this Part.
|
|
49
|
+
*/
|
|
50
|
+
|
|
51
|
+
ref part this : Part :>> Action::this, ownedPerformances::this = that as Part {
|
|
52
|
+
doc
|
|
53
|
+
/*
|
|
54
|
+
* The "this" reference of an ownedAction is always its owning Part.
|
|
55
|
+
*/
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
abstract ref state exhibitedStates: StateAction[0..*] :> stateActions, performedActions {
|
|
60
|
+
doc
|
|
61
|
+
/*
|
|
62
|
+
* StateActions that are exhibited by this Part.
|
|
63
|
+
*/
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
abstract state ownedStates: StateAction[0..*] :> stateActions, ownedActions {
|
|
67
|
+
doc
|
|
68
|
+
/*
|
|
69
|
+
* StateActions that are owned by this Part.
|
|
70
|
+
*/
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
abstract part parts: Part[0..*] nonunique :> items {
|
|
75
|
+
doc
|
|
76
|
+
/*
|
|
77
|
+
* parts is the base feature of all part properties.
|
|
78
|
+
*/
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
}
|