Powered by Zoomin Software. For more details please contactZoomin

The Semaphore Fact Extraction Framework (FACTS)

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.

TitleResults for “How to create a CRG?”Also Available inAlert