Hi,
I am attempting to use EDG Ontologies to model a basic manufacturing process as an instance of an Enterprise Assets collection. Is there an example of how to model a process in EDG? I am not finding the current ontologies to be sufficient without adding some property shapes. For example, Process is defined in Core as
"A pocess, or business process, is a collection of activities performed by actors (people or machines) that in a specific sequence produces information assets. Serving specific business goals, business processes make up business capabilities."
Process can have Process Activities or sub-Processes and a number of inherited properties including performedBy (which can only be a Party, not a machine). The definition says that a process is an ordered set of activities...
So if I have a big process named "Parent Process" with three major steps within (Step1, Step2, Step3), and Step3 has two steps inside, Step3a, Step3b. How do I model this?
Is Parent Process an instance of Process?
Are Steps 1-3 Processes or Process Activities?. Note that there is no ability (i.e. no property shape) to specify order of execution at the Process level. Only Process Activities make use of edg:successor. Processes can have activities or sub-processes. I think of the Steps as instances of Processes to be included as "edg:subProcess"(es).
Based on the answers above, Steps 3a and 3b will be Processes or Process Activities.
As a test, because edg:successor is only attached to Process Activities, I made all Steps Process Activity instances and Parent Process a Process instance. I included Step1-3 as edg:activity(ies) in the Process. I created the execution order between the Steps using edg:successor. I also made Step3a-b as edg:subactivity(ies) of Step3 with Step3a edg:successor Step3b.
However, this leaves open three questions:
1. What predicate do I use to specify the first step in Parent Process?
2. What predicate do I use to specify that Step3a is the first subActivity in Step3?
3. Is there a better way to model this?
One of my goals is to be able to visualize the ordered steps in the process by using either a LineageGram or a NeighborGram. Without having a starting point per the questions above, it is not possible to achieve this visual. The NeighborGram output is shown below. Since I know Step1 is first, I manually expanded the graph using only edg:successor (by selecting the Step1 node, clicking on Transitive and deselecting the activity and type properties.) Notice that when I get to Step3, edg:subActivity also appears. Is this supposed to happen?
I'm hoping there is an example that will clear up some of my questions as I don't want to add a lot of property shapes to EDG classes. It's probably safer to create a new Process ontology in that case.
Thanks for your input,
Tim
PS: I was planning to include a turtle export of the example graph but I receive a SPARQLMotion error when exporting as anything but Trig so that will have to wait.
PPS: I noticed that when I search for Process in the Assets tab, I do not see the Process class as a result. However, it is clearly in the class tree. Any idea why it does not show up?