Document Fact
- Last Updated: May 13, 2026
- 3 minute read
- Semaphore
- Documentation
A Document Fact represents the idea of a fact that is sought after to be extracted. A Document Fact has to belong to at least one, and usually one only, Document Type. By belonging to a Document Type, we are specifying that that Document Type somehow may contain the specified Document Fact.
It is the “top grouping” of the fact, if you like. The idea behind Document Fact is to cleanly represent what facts belong to any Document Type.
- Reuse - A Document Fact can be reused for other Document Types.
- Identified - A Document Fact will be returned if the Document Type has been already identified (by some other Document Identifying Document Fact).
- Identifying - If a Document Fact can be considered as an identifying Document Fact. That is, it is the fact that identifies the Document Type.
- Preclusion - A Document Fact can preclude, or be precluded by, other Document Facts. If it is precluded by another Document Fact, and that other Document Fact fires, then it will not be returned, regardless of whether it fires or not. If it precludes another Document Fact, then if it fire that other document fact will not be returned, regardless of whether it fires or not.
- Dependency - A Document Fact can be made to depend on another Document Fact. That is, for it to be returned, the other Document Fact also needs to fire. It can also be depending on another Document Fact; in this case, the other Document Fact needs to fire for it to be returned.
Document Fact Properties
Mandatory hierarchical relationships
| Label | Range | Constraints |
|---|---|---|
| extracting fact | Contexts | at least one required |
Optional hierarchical relationships
| Label | Range | Constraints |
|---|---|---|
| (none) |
Mandatory associative relationships
| Label | Range | Constraints |
|---|---|---|
| (none) |
Optional associative relationships
| Label | Range | Constraints |
|---|---|---|
| group facts as | Fact Name | only one allowed |
| depended on by document metadata | Document Anchor or Document Fact |
one or more allowed |
| depends on document metadata | Document Anchor or Document Fact |
one or more allowed |
| precluded by document metadata | Document Anchor or Document Fact |
one or more allowed |
| precludes document metadata | Document Anchor or Document Fact |
one or more allowed |
Mandatory alternative labels
| Label | Range | Constraints |
|---|---|---|
| (none) |
Optional alternative labels
| Label | Range | Constraints |
|---|---|---|
| (none) |
Mandatory metadata
| Label | Range | Constraints |
|---|---|---|
| (none) |
Optional metadata
| Label | Range | Constraints |
|---|---|---|
| return group fact ID | Boolean | only one allowed |
| debug | Boolean | only one allowed |
| do not return Document Fact | Boolean | only one allowed |
1. Precluding Document Facts
// Modelled by associative relationship “precludes document metadata” and its inverse “precluded by document metadata” – depending on which Document Fact or Document Anchor is precluding the other //
We can also preclude Documents Facts, such that a Document Fact can preclude or be precluded by other Documents Facts or Document Anchors. In the case where it precludes another Document Fact, if both are found, then the one precluding will be returned. The one precluded will not be returned.
2. Dependent Document Facts
// Modelled by associative relationship “depends on document metadata” and its inverse “depended on by document metadata” – depending on which Document Fact or Document Anchor is depending on the other //
In terms of handling Documents Facts, we can introduce several levels of dependency for them. We can make Document Fact either depend on, or be depended on, by other Documents Facts or Document Anchors. If it is depended on, then it must be found before the other Documents Fact, if found, can be returned. If it depends on some other Document Fact, then they must be present for it to be returned.
3. Grouping Document Facts
// Modelled by associative relationship “as grouped by” and its inverse “group facts as” //
A Document Fact represents the highest point at which a fact group can be created and modelled.