-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Abstractor is a Rails engine gem for deriving discrete data points from narrative text via natural language processing (NLP). The gem includes a user interface to present the abstracted data points for confirmation/revision by a curator.
Abstractor uses a Subject-Predicate-Object (SPO) or Entity-Attribute-Value (EAV) data model to represent data points abstracted from documents. Like other EAV or SPO data models, Abstractor supports the recording of arbitrarily many statements about a subject/entity.
Subject/Entity: the subject/entity is the thing being described. The subject/entity can be anything but in Abstractor is most often a clinical narrative document. For example, a pathology report or radiology exam report. The host application containing the Abstractor gem is expected to represent the subject/entity as a Rails model that exposes textual, narrative content as an instance method.
Predicate/Attribute: the predicate/attribute is the property of the thing being described. The predicate/attribute can be any trait or aspect of the subject/entity and expresses a relationship between the subject/entity and the object/value. In Abstractor this is most often a clinical observation or finding. For example, histology diagnosis in a pathology report or tumor response criteria in a radiology exam report.
Object/Value: the object/value is the fulfillment of the property in the thing being described. For example, glioblastoma for the histology diagnosis of a pathology report; complete response for the tumor response criteria of a radiology exam report.
Abstractor stores predicates/attributes in the AbstractorAbstractionSchema model. Each AbstractorAbstractionSchema has an object type that determines how the data point will be represented in the user interface:
- list: an autocompleting list of possible values (intended for larger lists).
- number: a HTML 5 number type input.
- boolean: a radio button list of 'True' and 'False'.
- string: a regular HTML text input type.
- radio button list: a radio button list of possible values (intended for small lists).
- date: a datepicker input type.
- dynamic list: an autocompleting list of possible values determined at run type by delegation to a configured instance method on the subject.
- text: a textarea input.