Corpus service consumer can upload a zipped corpus file that will populate the raw corpus tables
User can import corpus into workspace
User can view list of documents in a corpus
For a given document, user can view name-role-activity instances
CRUD on Corpus, Doc, Activity, Role, etc.
Corpus - name, owner (User, denormalized to force existence). Can Denormalize things like #docs, date range, etc.
Document - ID(s), date (orig string, and normalized date).
Activity - ID (unique), name, parentID (may be null, if not, this is a sub-genre). Note there is no Document-Activities, since we can get that from Name-Role-Activity-Doc with a select distinct/unique, or a group by to get counts.
Name - if an orthographic variant of another name, will include a link to normal form. Gender (male, female, unknown). Type: Person, Clan
Name-FamilyLink. Assertions in doc about familial relations. Relates a Name (patronym or clan name) to a Name-Role-Activity-Doc (i.e., an instance of a mention of a principle, in a document).
Workspace - owner (User, denormalized to force existence), public/private. Probably needs some other ACL mechanism.