Design Premises
This page lists the design premises that are fundamental to Aleph. They’re used as guidelines when conceptualising new features. These premises aren’t immutable, but changing any of them would have broad implications for the scope and supported use cases of the Aleph.
Hard design premises
Access control
Each entity is part of one collection, never multiple. Access control for the entity is delegated to the collection, that is users who can edit a collection can also edit the entities inside of it. There are no free-floating entities without access control.
Immutable source data
Users shouldn’t be able to change evidence stored within the system, such as data from public records databases, or leaked information. They might be able to annotate it, but it has to be sufficiently clear what’s part of the source, and what’s user-contributed.
Edge cases
Aleph wants to accommodate extreme entities, within boundaries. A normal document might have 20 pages, but Aleph also needs to have some support for documents with 10,000 pages. A normal company might be linked to 5 other entities, but some formation agent might link to 5,000. This needs to be shown correctly.
Users
Aleph doesn’t have a definition of who is a journalist and who isn’t. Users can be part of groups, but there is no binary “journalist/not journalist” outside of that.
Language support
Aleph should support as many languages and cultural contexts as possible. When selecting NLP technology, advantage should be given to solutions with broad linguistic support.
Geographic information
Aleph shouldn’t handle geographic information like locations and boundaries. Aleph is already madly ambitious and building a GIS platform into it would exceed what’s realistic.
Descriptive, not normative
Aleph is descriptive, not normative, about geopolitical matters. There is country support for Transnistria, Abkhazia, Somaliland etc.—because these countries are mentioned in relevant data sources.
Soft design premises
Entity linkages
Entities in one collection can’t link to entities in another. This is done as a security measure at the moment, but it’s possible that this can be ensured in other ways.
Collections for users, groups
Users and groups aren’t collections. It’s possible that Aleph might automatically create a collection to match each role at some point, but this means making them do weird things, for example these collections wouldn’t be sharable.