How to configure Publisher
- Last Updated: May 29, 2026
- 4 minute read
- Semaphore
- Documentation
This section describes how to generally configure publisher.
Configuration Files
The root directory for the Publisher configuration is “{SEMAPHORE_WORKBENCH_HOME}/workspace/com.smartlogic.workbench.publisher”. All directory paths given below are relative to this root.
When Publisher is run, it loads the configuration it is to use from an XML file that is located under its configuration directory (called config). You can make configuration files available at different levels by choosing where you place them under that directory.
When running Publisher from Knowledge Model Management, you will be offered a selection of the configuration files from the following locations:
- General configuration files - in the
configin the Publisher installation directory. - Model specific configuration files - in the
config/<Model Name>directory in the Publisher installation directory. - Task specific configuration files - in the
config/<Model Name>/<Task Name>directory in the Publisher installation directory.
When the Publisher is first run from within Knowledge Model Management a configuration directory is created for that model. Into that directory are copied the default Publisher configuration file(s) - any XML file stored in <Publisher installation directory>/resources/default - and the default templates - any file stored in <Publisher installation directory>/resources/templates.
The Structure of the Configuration File
The configuration file describes the components of the Publisher application and how they are joined.
The out of the box configuration is designed to be as simple as possible - publish the entire model to SES and create rulebases for all concepts from a single template and push them to a local Classification Server instance.
In reality, you may well want to partition the model up so that different sections get published using different rulebase templates. You may only want a fraction of the model published to SES. You may want to publish to multiple Classification Server instances. All of these are possible.
There are tricks that can be used to simplify the configuration. For details see Simplification.
It is also possible to use a special variable within the configuration files to make the publisher behave differently for master or task versions. See Task Specific Configurations
There are also special variables used to target folders inside the Publisher installation directory, and these are:
${config.directory}- refers to theconfigfolder in the Publisher installation directory where the Publisher configuration files are placed.${results.directory}- refers to theresultsfolder in the Publisher installation directory which is the default Rulebase output directory 4.3 version of Publisher.${resources.directory}- refers to theresourcesfolder in the Publisher installation directory which contains the default Publisher configuration and template files.
The configuration file is a Spring Framework configuration file and so any features of that platform may be used. However, to keep things simple, here we describe a few of the building blocks:
The configuration file header
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<bean class="com.smartlogic.workbench.publisher.Configuration">
<property name="description" value="Publish to all CS and SES services" />
<property name="environments">
<list />
</property>
</bean>
At the root of the XML document there needs to be a beans element. There is never any reason to change this from the default configuration file provided. Within this beans element there should be a Configuration element.
The description elment will be displayed in the configuration selection drop down in the KMM interface so it is worth making this useful.
The environments element should be a list of the named environments to which this configuration can be published. If this list is empty, then all environments will be available.
The Publisher Bean
The first “bean” that you may wish to edit is the “Publisher” (class) bean. This is the root of the configuration tree.
<bean class="com.smartlogic.publisher.Publisher">
<property name="model" ref="SparqlEndpoint" />
<property name="configurationSets">
<list>
<ref bean="allTerms" />
</list>
</property>
<!-- <property name="modelUpdater" ref="OEUpdater" /> -->
</bean>
As with all beans defined within the configuration, the class of the bean must be defined. Because this points to a particular class within the Publisher structure, for the publisher bean, this must be “com.smartlogic.publisher.Publisher”. The properties of a bean that need setting depend on the class of the bean. For the case of the Publisher bean, the available properties are
- The “model” must point to a source of data for the publishing process. In the out of the box configuration, we have provided such a bean in the “resources/import/ModelDefinition.xml” file. This will use the SPARQL endpoint provided by Knowledge Model Management (or on the command line, if so run) to access the model stored within Knowledge Model Management. Further discussion of model beans can be found in publisher.configurations.modelbeans.
- The “configurationSets” must be a list of configuration bean references. Each configuration bean defines a set of concepts and/or concept schemes and a list of what is to be done with them. There is a very wide range of configuration filters available, these are detailed in publisher.collections. Each of these configurations sets should be defined in full within the configuration file.
- The “modelUpdater” can be set to be an instance of a model updater. This can only be set to the supplied reference “OEUpdater”. This will write to the transaction graph for the current model details of the publish event. This can be useful for tracking when the model was published - and is particularly useful when you want to trigger remote publishing when a publish is executed locally.
The configuration file footer
<!-- The following import lines import many default configuration settings
that will not usually be altered.
Therefore be careful editing anything below here -->
<import resource="file:${resources.directory}/import/ModelInterface.xml" />
<import resource="file:${resources.directory}/import/ModelDefinition.xml" />
<import resource="file:${resources.directory}/import/RulebaseStructure.xml" />
<import resource="file:${resources.directory}/import/SESConfiguration.xml" />
<import resource="file:${resources.directory}/import/ConfigurationSets.xml" />
At the bottom of the configuration file are references to other configuration files that are included - these contain default values that can be overridden directly in this file or values that should never be overridden. Generally, you will not touch this set of includes - they all reference files that are supplied with the Publisher installation.