top of page

Workflow Modeling in Gist

Writer: Michael DeBellis
Michael DeBellis
3 hours ago
3 min read

One of the hottest terms in relation to knowledge graphs these days is context graphs. At first, I thought the term was just marketing spin but it is very real. Context in this sense means all the things Agentic AI needs to do work besides an LLM. This includes tools like Word and GitHub, resources like relational and graph databases, APIs, etc. The idea of context graphs is that knowledge graphs are the best technology to model context for AI agents. The idea isn't that all the context is a knowledge graph. Rather the knowledge graph serves as a thin semantic layer that wraps the tools, resources, APIs, and also includes workflow models and models that put guard rails on what the Agent can do.


As a result, tools to define workflows in knowledge graphs are very important these days. I think that's one of the reasons that the Semantic Arts team recently added workflows to their upper model for business called Gist. This video describes the workfow modeling capabilities in Gist.

Video. Modeling Workflows in Gist


I recently used some of the new entities in Gist to model a simple workflow. This is pretty basic. The current version doesn't include all the classes and properties required to model decision points in a workflow yet.


In addition to using the Gist Task classes, I integrated an ontology I developed a while ago where I added SWRL rules to the W3C Time ontology to implement Allen's Interval Algebra. Allen's interval algebra allows common time descriptions about intervals such as that The Battle of Gettysburgh happened during the American Civil War. I made the gist:Event class a subclass of time:Proper_Interval. Thus, the SWRL rules compute all the Allen intervals on gist:Events and instances of all it's subclasses automatically.


I also added an axiom to gist:Event that made it a subclass of owl:Thing. This is a hack but I think a useful one. Of course, every class is a subclass of owl:Thing. However, I did this so that Protege displays gist:Event at the top of the class hierarchy. Otherwise, because gist:Event is a subclass of time:Proper_Interval and time:Proper_Interval is a few levels down in the Time class hierarchy, the gist:Event class will be hard to find. Adding a user axiom that gist:Task is a subclass of owl:Thing means Protege will display it at the top of the class hierarchy.


I created a simple example in Gist of a workflow for onboarding new hires to an organization. The model is described on my GitHub site where you can also find the OWL file: An Employee Onboarding Example. Figure 1 shows the template for employee onboarding in Gruff, the graphical viewer in AllegroGraph. The template describes the abstract process or process model.

Figure 1. Gist Task Template for Onboarding Process


Figure 2 shows an instantiation of the task for a new employee named Alex.

Figure 2. Instantiation of the Task Template for Onboarding in Figure 1


I left three gist:Teplates in the graph. Each Task has a link to the Task Template it is based on, it would just get cluttered showing them all. This graph focuses on the specific Project and Tasks created from the Template. The gist:Project is the Alex onboarding project and each task that is executed is part of the project. Figure 3 shows a Protege view of the Allen Intervals on the Collect employee information Task.

Figure 3. Protege Property Assertions view for Collect Employee Information Task
Figure 3. Protege Property Assertions view for Collect Employee Information Task

One of the issues with SWRL is it isn't supported everywhere and it can be a bit slow. So I also developed SPARQL UPDATEs that do the work of the SWRL rules. Those SPARQL queries as well as others that automatically generate Tasks from Templates are described here: Allen Interval SPARQL Updates.

Comments


  • facebook
  • linkedin

©2019 by Michael DeBellis. Proudly created with Wix.com

bottom of page