Google Summer of Code 2020 - accordproject/techdocs GitHub Wiki

Accord Project: Google Summer of Code 2020 Ideas List

Below are a list of project ideas organised by technical areas relevant to the Accord Project: user interface, data modelling, languages and compilers, blockchain, and natural language processing.

We also welcome students' input on those projects or alternative project proposals in the different areas listed below and in scope with the goals of the Accord Project.

Template Editing and Developer Experience

Accord Project VSCode Extension

Description: Develop an extension for editing Accord Project template objects, including functionality for testing, debugging, and improved syntax highlighting. This will drastically reduce the overhead for developers working with legal teams to design and execute smart contract templates. Syntax highlighting with error handling and suggestions will prove a great feature. Current VSCode extension

Challenges: Understand how to build VSCode extensions (language server and VSCode API, VSCode shell, syntax highlighting), understand needs of different categories Accord Project users (drafting legal contract text or developers writing smart contract code or both).

Skills: Node.js, Typescript

Mentor: Jerome Simeon Adrian Fletcher

Cicero Word Plugin

Description: Develop a MS Word Add-in for AP templates. This will provide integration with one of the most used platforms by lawyers. Allowing non-technical users to interact with Accord Project templates in an environment without code will greatly expand the accessibility to the technology. Initial work was started in this repository.

Challenges: Understand how to implement an advanced MS Word Add-in with React technology.

Skills: React, MS Word Add-in API

Mentor: Dan Selman, Diana Lease

Google Docs Extension

Description: Similar to the MS Word Add-in, a Google Docs Add-in for AP templates will provide integration with a highly used platform for contract creation. This will further the drive to non-technical users being able to interact with Accord Project templates in an environment without needing to code anything.

Challenges: Understand how to build advanced Google Docs extensions with React technology.

Skills: React, Google Docs API

Mentor: Dan Selman, Diana Lease

Model Editing and Transformation

CiceroMark to DOCX

Description: Export an Accord Project extended markdown document to MS Word .docx format, ensuring that extensions (such as clauses) are preserved upon re-import. This will allow more flexibility and portability with round trip transformation of docx files to markdown and back which contain smart clause templates.

Challenges: Complex nested model (and JSON) transformation. Advanced JavaScript. Understand internals of DOCX format and how to manipulate it using a JavaScript API.

Skills: JavaScript

Mentor: Jolene Langlinais

Concerto Model Web Editor

Description: Build a web class diagram editor that synchronizes with a textual domain specific language. An open source example of this can be seen here.

Challenges: Advanced Data Modeling. Understand data model differences (between JSON, XML, Java, Go, Typescript, and Loopback).

Skills: Concerto, Unified Modeling Language, Data Modeling, React

Mentor: Jolene Langlinais, Diana Lease

Programming Languages, Blockchain and Compilation

WASM support for Accord Project Templates

Description: Implement a new Web Assembly compiler backend for Accord Project's smart contract language (Ergo). This will allow Accord Project users to deploy their contracts to any WASM platform or allow any WASM user to call Accord Project templates. See also the Ergo GitHub Issue 727.

Challenges: Understand Web Assembly (instruction set, execution), understand and modify Ergo compiler pipeline.

Skills: Functional Programming, Compilers, OCaml and/or Coq

Mentor: Jerome Simeon

Decision Model and Notation (DMN) extension to Ergo

Description: Extend the Ergo smart contract language with support for decision models (example, spec). This will allow users to express complex decisions as part of their Accord Project smart legal contracts.

Challenges: Understand DMN models. Develop an extension that captures key decision model use cases with a nice Ergo syntax.

Skills: Parser technologies, JavaScript and OCaml

Mentor: Matt Roberts

Other

Natural Language Legal Clause Detection

Description: Develop a tool which can identify instances of Accord Project template text within source legal documents (from raw text, CiceroMark, pdf, etc). This will allow users to load an existing legal document and convert it automatically into an executable Accord Project contract.

Challenges: Understand relevant machine learning techniques (e.g., Fuzzy text matching, entity extraction), learn how to use existing natural language processing libraries or build your own.

Skills: Natural Language Processing (NLP), Artificial Intelligence (AI)

Mentor: Dan Selman, Adriaan Pelzer

Multilingual Legal Clause Support

Description: Support legal contracts and clauses in more than one language or jurisdiction, which will vastly improve the reach and applicability of our tools to share legally enforceable agreements across the globe.

Challenges: Understand tools and best practices for internationalisation: I18N, G10N, model extensions, verbalization.

Skills: JavaScript

Mentor: Dan Selman