On this page we would like to suggest and discuss components and tooling for the UIMA sandbox.
The sandbox was designed to host UIMA analysis components like annotators, parser or consumers, as well as UIMA tooling. The provided components are free to use and everyone is invited to suggest new components or work on some of them.
Create a standard model to represent document structure and properties in the CAS, to replace the current default of plain text.
This should be functionally equivalent to XML. For example, this Type System might do it.
ElementAnnotations can form a hierarchy of annotations representing structure:
Feature Name |
Super Type |
Element Type |
---|---|---|
ElementAnnotation |
Annotation |
|
attributes |
FSArray |
AttributeFS |
children |
FSArray |
ElementAnnotation |
name |
String |
|
parent |
ElementAnnotation |
|
qualifiedName |
String |
|
uri |
String |
An ElementAnnotation can have many attributes, which are just name-value pairs:
Feature Name |
Super Type |
Element Type |
---|---|---|
AttributeFS |
TOP |
|
localName |
String |
|
qualifiedName |
String |
|
type |
String |
CDATA, DI, IDREF, IDREFS, NMTOKEN, NMTOKENS, ENTITY, ENTITIES, NOTATION |
uri |
String |
|
value |
String |
Parsers (filters) for various file types (Word, PDF, plain text, HTML, XML) would extract plain text and set it into the CAS, and also convert (HTML, XML) or discover structure and create ElementAnnotations.
If this became standard and annotators could depend on it, then better extraction quality would result. For example, HTML is usually converted to plain text in which boundaries between table cells are lost. If instead the table structure was represented using ElementAnnotations, then an annotator might decide that the boundaries of ElementAnnotations named "TD" (i.e. HTML cells) are actually paragraph terminators.
For example, in this table:
Maker |
Model |
Year |
---|---|---|
Honda |
Accord |
2007 |
Toyota |
Camry |
2006 |
If converted to plain text, you might get the line:
Honda Accord 2007
Entity extraction might parse this as just a VEHICLE. But with cells as boundaries, it would be seen as three separate entities, COMPANY, VEHICLE, and YEAR, which is more correct, since they weren't originally part of a single sentence.
There should be standard representation of document properties. By properties, I'm talking about the things you get in MS-Word when you select the File->Properties dialog, Summary and Custom tabs.
The representation should be based on the Dublin Core Metadata Initiative. For example:
Feature Name |
Super Type |
Element Type |
---|---|---|
PropertyFS |
TOP |
|
name |
String |
|
scheme |
String |
Boolean, Box, DCMIType, Double, IMT, Integer, ISO3166, ISO639-2, Long, Period, RFC2278, RFC3066, String, URI, W3CDTF |
value |
String |
The scheme tells you how to interpret the value.
Names would be DCMI names, such as charset, creator, date modified, format (IMT MIME type), identifier, language, title, and so on. A minimal set would be required.
The document parser would create these FS's from the document content and/or the document container (file system, content management system, HTTP headers, HTML META elements, etc.).
This would replace the current class SourceDocumentInformation.