The CyWrite system comprises four major components: (1) automated writing evaluation (AWE); (2) a web-based text editor; (3) a data management system; and (4) application programming interfaces (APIs) for integration and extensibility.
The AWE component of CyWrite relies on a hybrid (statistical and rule-based) natural language processing (NLP) framework (CyWrite::Analyzer) for the detection of various word-, sentence-, paragraph-, and text-level features, for example, spelling and grammatical errors, stylistic issues, and certain discourse patterns. Formative feedback is generated based on the detected features and delivered either concurrently with the composition process (for example, in the form of a “red squiggly line” for spelling errors, or “comments on the margin” for poor stylistic choices), or episodically, that is, after the learner completes a writing session and submits his or her draft for automated evaluation. We call these two modes of delivering feedback real-time and episodic, respectively.
CyWrite’s data management system provides for a way to store all drafts of texts composed in the editor, along with any interaction logs that may be recorded during the editing sessions. Data is stored in a scalable document-oriented database, MongoDB, with application-level permission management to ensure safety and security of the data.
Finally, open real-time APIs in CyWrite allow for extending the functionality of CyWrite via third-party extension modules (or plug-ins), and also for incorporating the core CyWrite technology into other applications. For example, at Iowa State University, a writing support environment based on the CyWrite technology is implemented in academic writing classes for non-native speakers of English, with custom curriculum-specific workflow modules being integrated with the core of CyWrite via the APIs. Additional functionality, such as integration of teacher-provided and peer feedback with the formative feedback automatically generated, is continually being developed and tried out in instructional settings.