Plan your Semaphore installation
- Last Updated: May 13, 2026
- 5 minute read
- Semaphore
- Documentation
Architecture planning and partitioning for Semaphore
When designing architecture for Semaphore, one of the most important considerations is resource usage of the Semaphore components. The demand components have on resources largely determine how the components are partitioned and the required specifications of their servers. It's worth noting that resource demand can be influenced by a number of factors, such as the number of documents processed and how often documents are created or modified. These factors should be considered when planning your architecture.
The following is the resource usage by component for a typical implementation:
-
Semaphore Studio: Large amounts of RAM but low CPU (on average)
-
Classification and Language Service (CLS): RAM and CPU activity is generally very high. As a result of the high resource demand, we recommend that you isolate this component as much as possible from other components.
-
Semantic Enhancement Service (SES): Only used as requested by users so only uses resources as needed, however, performance is critical as this is, generally, the interface by which users other than Information Scientists directly access the Semaphore information.
Note: For performance reasons, on installation servers, anti-virus software configured for on-access virus scanning should be configured to consider how temporary and data files are stored by the Semaphore software. See Excluding Semaphore server data from virus scanning for further details.
Semaphore components can be installed on separate servers (See Network firewall configuration for firewall considerations). By installing on multiple servers, the architecture can be designed in such a way to ensure that component execution does not interfere with other components installed on the same machine. For example, with three servers, an implementation for an average size implementation would take the following structure:
-
Server A: Hosts Semaphore Studio, including Knowledge Model Management with the Publisher
-
Server B: Hosts Semantic Enhancement Server
-
Server C: Hosts Classification Server
This design ensures that the high activity of Classification Server does not interfere with the serving of Semantic Enhancement Server information. Maintaining the performance of the Semantic Enhancement Server is critical because its information is delivered to the end user.
-
A few things to note when designing the architecture for your Semaphore implementation: For implementations that handle large numbers of documents, deploying the Classification Server on multiple servers is highly recommended.
-
Although using load balancers is possible for a number of Semaphore components, they should not be used for Semaphore Studio or any of its sub-components, as the connection by clients to this application must be persisted.
-
Progress Semaphore can assist in the design of any architecture required for a particular implementation. Contact Progress for more information.
Windows services created and used by Semaphore
During installation, the following services are created on the server:
| Name | Service Name | Description |
|---|---|---|
| Semaphore <version> - Classification Server | SEM-CS | The Classification Service. |
| Semaphore <version> - Concepts Server | SEM-CON | The Concepts Server. |
| Semaphore <version> - Precision And Recall Server | SEM-PR | The Precision and Recall Server. |
| Semaphore <version> - Reconciliation Server | SEM-RS | The Reconciliation Server. |
| Semaphore <version> - Semantic Enhancement Server | SEM-SES-SA | The Semantic Enhancement Service. |
| Semaphore <version> - Studio (ai) | SEM-AI | The AI Model Builder sub-component of the Studio component. |
| Semaphore <version> - Studio (alerting) | SEM-ALERT | The Alerting Service sub-component of the Studio component. |
| Semaphore <version> - Studio (cm) | SEM-CM | The Concepts Server Manager sub-component of the Studio component. |
| Semaphore <version> - Studio (da) | SEM-DA | The Document Analyzer sub-component of the Studio component. |
| Semaphore <version> - Studio (kmm) | SEM-SES-KMM | The Knowledge Model Manager and Knowledge Review Tool sub-component of the Studio component. |
| Semaphore <version> - Studio (rm) | SEM-RM | The Rulenet Manager sub-component of the Studio component. |
| Semaphore <version> - Studio (sm) | SEM-SM | The SES Manager sub-component of the Studio component. |
| Semaphore <version> - Studio (studio) | SEM-STUDIO | The front end to the Semaphore User Interface. |
Starting and stopping services
You can start or stop Semaphore services:
-
From the Windows start button, open the Control Panel for Windows.
-
Select Windows Tools.
-
In the Windows Tools window, select Services.
-
In the Services dialog opens, navigate to the Semaphore services. Note:
-
The names for semaphore services all start with Semaphore.
-
Ensure that the Startup Type for all the services is set to Automatic. This is the default.
-
-
Start/stop any services by selecting the services and using the controls on the ribbon menu.
Network firewall configuration
Any network configuration and firewall software should allow communication between the relevant external systems (for example, a CMS you may be using) and the Semaphore installation server. The following are the default TCP/IP ports used by the Semaphore components (note that all port numbers are configurable):
| TCP/IP Port | Communication Access | Semaphore Application | Explanation |
|---|---|---|---|
| 5058 | Inter-Product or External | Classification Server | Requests for classification are submitted to this port (e.g., from a CMS or other integration). Also used by Semaphore Publisher when publishing model information. |
| 5059 | Inter-Product | Classification Server | Administration access and test interface. |
| 5080 | External | Studio | The Semaphore Studio user interface. |
| 5081 | Local | Studio (Document Analyzer) | The port that Semaphore Studio uses to access the Document Analyzer sub-component. |
| 5082 | Local | Studio (Knowledge Model Management) | The port that Semaphore Studio uses to access the Knowledge Model Management sub-component. |
| 5083 | Local | Studio (Rulenet Manager) | The port that Semaphore Studio uses to access the Rulenet Manager sub-component. |
| 5084 | Local | Studio (SES Manager) | The port that Semaphore Studio uses to access the SES Manager sub-component. |
| 5085 | Local | Studio (Concepts Server Manager) | The port that Semaphore Studio uses to access the Concepts Server Manager sub-component. |
| 5086 | Local | Studio (Alerting Server) | The port that Semaphore Studio uses to access the Alerting Server sub-component. |
| 5091 | External | Classification Precision and Recall Tool | This is an optional component. |
| 5092 | Inter-Product and External | Concepts Server | This is only relevant if the client has MarkLogic. |
| 5093 | Inter-Product | Text Mining Side-Panel | The port that KMM uses to access the Text Mining side-panel widget. Only relevant if the client has MarkLogic. |
| 8983 | Inter-Product and External | Semantic Enhancement Server | Requests to return published model information are submitted to this port. Also used by the Semaphore Publisher product when publishing model information. |
* Ports marked as Inter-Product, allow communication between Semaphore components; ports marked External provide services to external-facing applications, such as any product integrating with Semaphore; and ports marked Local are for sub-components within a single installed Semaphore component and on the same physical machine, so network/firewall configuration is not required.
Note: If Semaphore components are installed on multiple servers, then ensure that the relevant External or Inter-Product TCP/IP ports are open.
External triplestore products supported
Knowledge Model Management has built-in support that uses a Jena TDB triplestore, but it also supports the use of the following external triplestore products
- Marklogic 8.04 (or later)
MarkLogic Server Configuration
If using a MarkLogic Server to store model information, then the following is recommended for optimal performance:
-
Use the latest version of MarkLogic available
-
Ensure using fastest disk possible (e.g. local SSD) for database storage
-
Use host machines with at least 4 cores
Install the product according to the MarkLogic documentation and tune your database for performance. After installation, ensure the following if wishing to use a high availability cluster configuration:
-
Ensure the Triggers, Security and Schema databases (forests) are replicated
-
Configure your model databases to use forests on all nodes and ensure that the forests are replicated across all nodes