Semaphore 5.8: Boosting Modeling Capabilities with Metadata on Relationships

Semaphore 5.8: Boosting Modeling Capabilities with Metadata on Relationships

Posted on April 25, 2024 0 Comments
decorative graphic with gears and data charts

Knowledge modeling is essential for businesses that want to solve specific problems or make informed decisions, though, it can be more complex when business users want to make connections between different systems and sub-systems. Progress Semaphore 5.8 takes your knowledge modeling experience to the next level by adding a new level of flexibility for describing relationships between concepts so you can model connections for downstream systems easily.

Semantic relationships have always been critical to how organizations structure their data in the knowledge models. Historically, there have been three primary ways to ascribe meaning and properties to relationships:

  • Adding meaning by creating named relationship sub-types
  • Ordering relationships
  • Adding attributes to relationships using “data mapping concepts” (i.e., reification concepts)

The first two ways are and have always been readily supported in KMM. To solve the more difficult third case, “Data Mapping” concepts that represented the relationship had to be created, and then properties added onto that concept. While technically accurate and representative of the data model, modeling in KMM was cumbersome and complex.

With the latest Semaphore 5.8 release, Knowledge Model Management (KMM) makes putting properties on relationships significantly easier and more intuitive by enabling you to model the relationship information directly on the relationship. This allows you to model with additional business context and greater precision.

Properties on Relationships Example

For our example, we’ll use a model for English Football. We’ll put together a simple model of a few clubs and the various leagues they played in over time. At the end of each season, a team may stay in its league, get promoted to a higher league or get relegated to a lower league. So, over time, a team bounces between leagues.

To model a team’s membership in a league, not only do we need to know which league it was a member of, but also how long the team was in the league. Using Watford F.C. as an example, this diagram models the team’s recent league membership history:

History of leagues in which Watford played


Before Semaphore version 5.8, each relationship had to be modeled as its own “data mapping” concept which contained the specific membership information, such as Start Date and End Date. This method, while accurately modeling the data, is cumbersome.

Because Semaphore 5.8 allows you to model the relationship information directly on the relationship, modeling through a “data mapping” concept is no longer necessary.

Our example will start with a model that already contains a list of Clubs and Leagues and has concept classes for each, respectively.

3 Steps for Adding Relationship Metadata

  1. Add the Metadata Properties for the relationships
  2. In the “Structure” management page, you’ll note there is a new group of properties, “Annotated Statements”:

    Annotated statement structure editing

    This is where properties are added that will be accessible by relationships. Note there are the Semaphore standard “out of the box” skos and rdfs properties. Also note that turning off these properties by setting their “Expose property on resources” to false, will not turn them off for relationships.

    We’ll add our “Start Date” and “End Date” properties in this “Annotated Statements” section. These are added the same way as any property:

    Annotated statement structure editing


  3. Add the Relationship Type
  4. These are added the same way as any other relationship type and to the regular “has related” relationship type group:

    Creating the new relationship type

    When we save the relationship type, there is now a section, “Permitted First Class Metadata,” that contains all the properties defined in the “Annotated Statements” group. These can now be made available as properties on relationships of this type by clicking the checkboxes. We’ll add “End Date” and “Start Date”:


    Adding the new metadata type to the new relationship type

  5. Using the Relationship Type and Adding Properties to Relationships
  6. We can now add relationships as usual. However, when a Relationship Type that has “First Class Metadata” configured is used, a new icon appears that allows you to add metadata on the relationship:


    Adding the new metadata type to the new relationship type


    When clicked we get a panel to add metadata:

    How to add metadata to relationship instance

    When the metadata is added and “Save” is clicked, a “Context” is created:


    Adding context to metadata on relationships

    The name of a context can be edited by clicking the pencil edit icon. For our example, I’ll name the context as the year range the club was in the league.

    Additional “contexts” can be added by clicking “New Context.” This allows us to have only one relationship between “Watford” and the “Championship” league, but to specify multiple time periods of membership.

    When completely modeled per the previous diagram, the metadata groups are displayed indicating the separate periods for which Watford was in the championship:


    Metadata groups  indicating the separate periods for which Watford were in the championship



    When we close the panel, we return to the concept. Note the icon we use to access the metadata panel is now “filled in,” indicating data exists on the relationship.


    Note the “filled in“ icon on the relationship

Accessing Relationship Metadata for Down Stream Use – The RDF Structure

Accessing the metadata on relationships is done via SPARQL (the current version of Semaphore does not publish metadata on relationships to either SES or the Concept Server).

The RDF for concepts, relationships, metadata properties and relationship types are constructed as in previous versions of Semaphore.

However, when the first Context is added to a relationship, a new joiner object and a new Context object are created. The joiner object links the concepts on both sides of the relationship to all the Contexts of that relationship. The Context object stores all the metadata on that relationship. Each new Context creates a Context object and adds its reference to the joiner object.


The relationship detail in turtle format


Querying for the Data with SPARQL

Although there is this additional join layer, retrieving the data in a simple, “unified” format is straightforward with SPARQL. The query just needs to be formed to pick up the data from the concept, the joiner and the contexts.

This is an example of a SPARQL query that can be run in the KMM SPARQL editor to unify and retrieve the data in CSV format:

Report generated from the relationship metadata


Download links for SPARQL and National Football League model. 


With the Semaphore 5.8 release, adding metadata to relationships has become much simpler and more intuitive. If you are using the old style “Data Mapping” concepts, Semaphore 5.8 supports that style so models will readily migrate. After upgrading to Semaphore 5.8, SPARQL can be written to transform “Data Mapping” style data into the new “context” style making it much easier to manage going forward.

Check out this video to learn more about this exciting feature, or contact us to migrate to Semaphore 5.8 and experience this new feature for yourself.


Bob St Clair

Bob St Clair

Bob is a Senior Principal Consultant for Progress, responsible for working with customers to implement Semaphore, focusing on ontology model development and automated classification. He has over 30 years of experience in Knowledge and Information Management, focused on designing metadata and semantic models (ontologies, taxonomies, thesauri, etc.), and leveraging those models in a wide range of Enterprise Content Management, Search and Auto-categorization systems.


Comments are disabled in preview mode.

Sitefinity Training and Certification Now Available.

Let our experts teach you how to use Sitefinity's best-in-class features to deliver compelling digital experiences.

Learn More
Latest Stories
in Your Inbox

Subscribe to get all the news, info and tutorials you need to build better business apps and sites

Loading animation