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:
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
- Add the Metadata Properties for the relationships
- Add the Relationship Type
- Using the Relationship Type and Adding Properties to Relationships
In the “Structure” management page, you’ll note there is a new group of properties, “Annotated Statements”:
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:
These are added the same way as any other relationship type and to the regular “has related” relationship type group:
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”:
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:
When clicked we get a panel to add metadata:
When the metadata is added and “Save” is clicked, a “Context” is created:
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:
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.
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.
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:
Download links for SPARQL and National Football League model.
Conclusion
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 was a Senior Principal Consultant for Progress.