Repository navigation
SymboleoAC-Web v1.0.0
First public release of SymboleoAC-Web, a browser IDE for the SymboleoAC smart-legal-contract language: the same Xtext engine as the Eclipse plugin, plus derived views, plain-language explanations, and a documentation export. Nothing to install.
Try it: https://smart-contract-modelling-uottawa.github.io/SymboleoAC-Web/
Sample report: https://smart-contract-modelling-uottawa.github.io/SymboleoAC-Web/docs/VaccineProcurementC-documentation.html
Editor and language services
- Monaco editor connected over WebSocket to a per-session Xtext language server (LSP 3.17): live diagnostics from SymboleoAC's own validation rules, completion, formatter (
Shift+Alt+F), signature help. - Semantic highlighting with a dedicated theme: identifiers coloured by kind (types, enumeration values, attributes, parameters, roles/assets, events, obligations/powers, access rules).
- Name-based navigation for identifiers the grammar does not cross-reference: Go to Definition (
F12), Find References (Shift+F12), Hover, Rename (F2). - Structured outline with click-to-navigate; Open / Save / Save As; Share by URL with no server-side storage.
- Built-in examples:
MeatSale,VaccineProcurement, Incoterms 2020FOB, and aTutorialwith 22 commented mistakes to fix.
Derived views
- Domain: UML class diagram (inheritance, stereotypes, named associations), zoom and relayout, SVG export.
- Rules: parties, obligations, powers and access rules as a network (green Grant / red Revoke).
- Policy: roles × resources matrix with CSV and HTML export.
Explain tab
- Every obligation, surviving obligation and power, and the contract as a whole, explained in plain language, generated deterministically from a structured model extracted by the language engine. No language model involved; identifiers appear exactly as written and link to their declaration; norm references are hyperlinks.
- Three styles: fact sheet, plain-English clause, and Gherkin (Feature / Rule / Scenario, Scenario Outline for disjunctive triggers, quoted identifiers) that parses with the reference
@cucumber/gherkinparser. Brief / Full detail. - Idioms collapse repeated formal patterns (correlated identifiers, absence, ranges, same-verb alternatives, same event before several points, and others).
- Exports: Copy / Save Markdown, Save
.feature, and Documentation: one self-contained HTML file with the overview, both diagrams in two layouts, the policy matrix and rule list, the explanations in all three styles, and the specification coloured as in the editor with hyperlinked references. - Shown only for specifications without validation errors.
Code generation
- One-click JavaScript generation (
Symboleo2SC, Hyperledger Fabric target) with file tree, highlighted viewer, Copy and Download .zip. - Fixes over the vendored upstream generator: obligation creation routed on the antecedent, event-relative deadlines, on-chain transfer transactions, generated code self-checked with
node --check, specifications without anACPolicysection.
Infrastructure
- Node bridge (Express + ws) with
/lsp,/generate,/model; per-session JVMs, idle reaping, session and concurrency caps, rate limiting, CORS. - Turnkey Docker Compose stack (builds both jars from source; Caddy for TLS) and a GitHub Pages workflow for the front end. See
DEPLOY.md. tools/explain-corpusrecomputes the verbalizer's coverage on the thirteen-contract corpus (11 Incoterms terms + 2 samples): 250 norms, 447 Gherkin scenarios, all parsing, no generic fallback wording.
Assets
symboleoac-language-server-1.0.0-all.jar: the Xtext language server (LSP over stdio):java -jar symboleoac-language-server-1.0.0-all.jar. JDK 17+.symboleoac-codegen-cli-1.0.0-all.jar: headless JavaScript generator and model extractor:java -jar symboleoac-codegen-cli-1.0.0-all.jar --in spec.symboleo(JSON with the generated files;--modeladds the structured and explanation model). JDK 17+.VaccineProcurementC-documentation.html: the documentation the Explain tab generates for the VaccineProcurement sample; open offline.
Both jars are built from this tag and from the vendored SymboleoAC-IDE at commit dec00792 (see upstream/UPSTREAM_PROVENANCE.md). The Docker image builds the same jars itself, so they are only needed for running the tooling outside Docker.
Full details: CHANGELOG.md.