Lapis (text editor)

Lapis is an experimental web browser and text editor allowing simultaneous editing of text in multiple selections. Lapis is able to infer the list of selected elements automatically from positive and negative examples given by the user, during a process known as selection guessing, based on concept learning.

This ability occurs via, and is an instance of, programming by example. The multiple items to edit are selected automatically according to the example provided by the user, making this experimental feature unique to Lapis among text editors, though similar features exist in some web scrapers and data munging tools.

To create the selection, Lapis first determines the more salient properties of the items selected by the user in a process called feature generation, detects common features of the user-selected items, groups these features to create a hypotheses for the concept that defines the selection, and then applies the generalized concept to the whole text. Lapis also features outlier detection, marking in red those items selected that have a low matching score, thus allowing users to review the automatic decisions made by the algorithm.

Lapis includes a template vocabulary to assist editing several kinds of structured languages. One such language is HTML. Lapis includes a Web browser view that allows its multiple edit feature to work on web pages in a WYSIWYG way, through automatic matching of the underlying HTML tags.

The software is programmed in various languages, mainly Java, and released under version 2 of the GNU General Public License (GPLv2), with various dependencies provided under other licenses.