After Cardoso, Lopes, and Poels – Service systems, concepts, and modeling – Ch 4 Modeling and programming (2014).
Here we consider how a service system can be modeled with LSS-USDL using semantic web languages and technologies. Later we will consider:
- how a service system model can be accessed and queried programmatically (we chose Python because stable software libraries to access and modify RDF models are available)
- how a service system model can be annotated with background knowledge from the Linked Data Cloud (we chose DBpedia since it is one of the largest existing knowledge basis)
The methodology we have followed consisted in
- looking at the IM service as a flow of interactions
- using the LSS-USDL model to capture each interaction
In other words, each interaction was analyzed by answering the questions: who, why, where, when, what, and how. The answers to these questions provided detailed information about the more relevant interaction features, such as: roles, goals, locations, time, resources, and processes, completing the model information.
The modeling exercise with Turtle and using the LSS-USDL model begins by specifying a set of prefixes. Prefixes are a convenient method for representing a name space URI with a short string. Prefixes facilitate the reference to other ontologies in an easy and unambiguous way. Each prefix refers to a basilar ontology which is used to model the service.
There are some common ontologies used by many models or instances: rdf, rdfs, owl, and xml. The most specialized ontologies we have used are:
- GoodRelations (gr)  references the GoodRelations ontology, a standardized vocabulary to describe product, price, store, and company data.
- Friend of a Friend (foaf) is an ontology describing persons, their activities, and their relations to other people and objects.
- Time Ontology (time) covers basic temporal relations. The ontology allows to capture temporal relationships such as before and during.
The use of external vocabularies and ontologies enables to integrate the service instance to a large base of knowledge made available by many organizations and initiatives.
As a first step to build our IM service instance, we define a new instance of service system named IncidentManagementService. It is a new class that inherits all the properties of the class lss-usdl:ServiceSystem. To provide descriptive information to this new service, we used the RDFS predicates label, comments, and the LSS-USDL term hasGoal. See lines 1–4 of Listing 4.2.
The incident management service handles incidents (e.g., failures, questions, or queries reported by users) and consists of the following steps:
- Investigation and diagnosis
- Resolution and recovery
Steps were captured as instances of lss-usdl:Interaction with the predicate hasInteraction (Listing 4.2, lines 6–14). Thus, IncidentIdentification, IndicentLogging, etc. are instances of lss-usdl:Interaction.
- :IncidentManagementService an lss-usdl:ServiceSystem ;
- rdfs:label “ITIL Incident Management Service”;
- rdfs:comment “A service system for Incident Management, based on ITIL specs. The main objective of the incident management process is to resume the regular state of affairs as quickly as possible and minimize the impact on business processes.” ;
- lss-usdl:hasGoal :SolveIncident ;
- :IncidentIdentification ,
- :IncidentLogging ,
- :IncidentClassification ,
- :IncidentPrioritization ,
- :InitialDiagnosis ,
- :IncidentEscalation ,
- :InvestigationDiagnosis ,
- :ResolutionRecovery ,
- :IncidentClosure .
Listing 4.2 The first building block to construct a service system.
The following sections will detail how each interaction was modeled.
Since there are nine interactions (i.e. nine instances of lss-usdl:Interaction, we will only describe two of them, which is sufficient to illustrate how modeling is performed: IncidentLogging and Initial Diagnosis. The complete specification of the interactions can be found at http:// eden.dei.uc.pt/~jcardoso/rdf/lss-usdl-eg/ITIL_IM_service.ttl. Each interaction answers to six questions: who (roles), why (goals), where (locations), what (resources), when (time), and how (processes).
184.108.40.206 Incident Logging
Essential step in managing incidents is to receive and record them. This is carried out by the Incident Logging interaction. When it is determined that an incident has occurred through a Service Desk telephone call or automatically detected via an event alert, the logging interaction will document the incident. All relevant information describing the incident must be logged so that a full historical record is maintained. Logging should at a minimum record the date and time of the incident, the person/system reporting the incident, and a description of the problem. Listing 4.3 shows the complete specification for this interaction.
- :IncidentLogging a lss-usdl:BackstageInteraction ;
- rdfs:label “An incident is logged”;
- rdfs:comment”Incidents reported to the Service Desk must be logged with the date and time stamp when they were generated.” ;
- lss-usdl:performedBy :ServiceDeskManager ;
- lss-usdl:hasGoal :DealWithReportedIncident ;
- lss-usdl:hasLocation :ABCompany ;
- lss-usdl:belongsToProcess :ITServiceIncidentManagement ;
- lss-usdl:consumesResource :ReportData ;
- lss-usdl:consumesResource :IncidentData ;
- lss-usdl:createsResource :IncidentID ;
- lss-usdl:createsResource :IncidentRecord .
- [a lss-usdl:Time ;
- lss-usdl:hasTemporalEntity :IncidentLoggingTime] ;
- :IncidentLoggingTime a time:ProperInterval ;
- time:intervalAfter :IncidentIdentificationTime ;
- time:intervalBefore :IncidentCategorizationTime .
Listing 4.3 The Incident Identification interaction.
The example illustrates that the interaction is described as a Backstage Interaction, which is performed by the ServiceDeskManager role; it has the DealWithReportedIncident goal; it is performed at the ABCompany location; it belongs to the ITServiceIncidentManagement process; it consumes two knowledge resources (IncidentData and ReportData) and it creates two knowledge resources (IncidentID and IncidentRecord). The interaction has also a temporal entity associated which allows specifying that this interaction occurs before the IncidentCategorization interaction and after the Incident Identification interaction.
The knowledge resources IncidentData and ReportData typically include the following information:
- Basic information needed to handle the incident, such as date and time of the occurrence, description of the incident, and systems affected.
- Supporting information for the resolution of the incident that may be asked to the submitter using, possibly, a specific form.
The IncidentRecord will aggregate these information and will assign a reference to the incident to uniquely identify it in both internal processes and when communicating with the person affected by the incident.
220.127.116.11 Initial Diagnosis
The Initial Diagnosis is the fourth step in the incident management process.It follows the incident categorization. The initial diagnosis is the first attempt at resolving an incident. Typically, the technical staff of the Service Desk will carry out an initial diagnosis and will try to understand the incident being reported.He will try to discover the full symptoms of the incident, determine what went wrong, and how to solve the problem. If available, diagnostic scripts and known error information is valuable in allowing an earlier and accurate diagnosis. The interaction described in Listing 4.4 represents the initial diagnosis of an incident performed by the technical staff of the Service Desk.
- :InitialDiagnosis a lss-usdl:BackstageInteraction ;
- rdfs:label “An initial diagnosis for the incident is performed”;
- rdfs:comment”The initial diagnosis of incidents is mainly a human process. The Service Desk technical staff looks at the information within the incident and communicates with the user to diagnose the problem.” ;
- lss-usdl:performedBy :TechnicalStaff ;
- lss-usdl:hasGoal :HandleIncident ;
- lss-usdl:hasTime [a lss-usdl:Time ;
- lss-usdl:hasTemporalEntity :InitialDiagnosisTime] ;
- lss-usdl:hasLocation :ABCompany ;
- lss-usdl:belongsToProcess :ITServiceIncidentManagement ;
- lss-usdl:consumesResource :IncidentRecord .
- :IncidentInitialDiagnosisTime a time:ProperInterval ;
- time:intervalAfter :DetermineIfIncidentIsMajorTime ;
- time:intervalBefore :DetermineIfFunctionalScalationIsNeededTime .
Listing 4.4 The Initial Diagnosis.
The interaction is described as a BackstageInteraction which is performed by the ServiceDeskStaff role; it has the HandleIncident goal; it is performed at the ABCompanylocation;it belongs to the ITServiceIncident Management process and it consumes the knowledge resource Incident Report.The interaction has also a temporal entity associated, which allows specifying that it occurs before the DetermineIfFuntionalScalationIsNeeded Time interaction and after the DetermineIfIncidentIsMajorTime interaction.
Each interaction has a performedBy predicate indicating who is participating in the interaction. In some cases, there are many roles for the same interaction. Roles can belong to an entity. In such a case, the concept Business Entities from GoodRelations is used. While the number of roles depends on the ITIL implementation that a company chooses to make, we have compiled a list of 5 roles which are typical:
- Service Desk Manager. Functions as the primary point of contact for incidents reported from users. The role owns the results of the service desk function.
- Problem Manager. Responsible for managing the life-cycle of all problems. The primary objectives are to prevent incidents from happening and to minimize the impact of incidents that cannot be prevented.
- Incident Manager. The role assigned to the person who owns the results of the Incident Management service and of its effective implementation.
- Technical Staff. Aggregates the first,second,and third-tier support groups,including specialist support groups and external service providers.
- End User. The end users and employees of a company that experience difficulties with IT and which rely on services to restore a normal processing as quickly as possible after an incident has occurred.
Listing 4.5 describes these roles using the LSS-USDL model.Each role has a label and a brief description as well as an assignment to a business entity it belongs to.Most of the roles belong to the ABCompany company, except the role ProblemManager which belong to the ExtCompany company.
- :ServiceDeskManager a lss-usdl:Role ;
- rdfs:label “Service Desk Manager”;
- rdfs:comment”Functions as the primary point of contact for incidents reported from users.”;
- lss-usdl:belongsToBusinessEntity :ABCompany.
- :ProblemManager a lss-usdl:Role ;
- rdfs:label”Problem Manager”;
- rdfs:comment”Responsible for managing the lifecycle of all problems.”;
- lss-usdl:belongsToBusinessEntity :ExtCompany .
- :IncidentManager a lss-usdl:Role ;
- rdfs:label”Incident Manager”;
- rdfs:comment”The person who owns the results of the Incident Management service”;
- lss-usdl:belongsToBusinessEntity :ABCompany .
- :TechnicalStaff a lss-usdl:Role ;
- rdfs:label”Technical Staff”;
- rdfs:comment”Support technical staff”;
- lss-usdl:belongsToBusinessEntity :ABCCompany .
- :EndUser a lss-usdl:Role ;
- rdfs:label”End User”;
- rdfs:comment”The end users and employees of a company that experience difficulties with IT.” ;
- lss-usdl:belongsToBusinessEntity :ABCompany .
Listing 4.5 Modeling roles and business entities
Not all the roles defined were used in the examples of this chapter. The objective was to show how role modeling can be achieved. To structure and organize the many roles that can exist, the knowledge organization systems SKOS can be used to construct a classification schema or a taxonomy.
The concept of goal has been used in many domains such as business sciences and strategic planning. The objective is to provide a planning framework which links goals with interactions. It is intended to assist ITIL service owners in understanding the effects of interactions on services.
Each interaction has a one, or more, hasGoal predicate(s), indicating the goal(s) a specific interaction occurs. Listing 4.6 shows examples of several goals.
- :ReportIncident a lss-usdl:Goal ;
- rdfs:label “Report Incident”;
- rdfs:comment”A user, technical staff or system reports an incident regarding an IT service.”.
- :HandleIncident a lss-usdl:Goal ;
- rdfs:label”Handle Incident”;
- rdfs:comment”Execute several actions to deal with a reported incident.”.
- :RestoreNormalOperation a lss-usdl:Goal ;
- rdfs:label”Restore Operation”;
- rdfs:comment”Restore the normal service operation as quickly as possible.” .
Listing 4.6 Modeling the goals of interactions.
Since goals are targets for achievements, they should be written in such a way that they express the rationale for the interactions that exist and guides decisions at various levels within the enterprise. Here again, the SKOS can be used to organize goals using, e.g., structured controlled vocabularies.
The class lss-usdl:Location is concerned with the geographical location of the IM service interactions. Locations can be expressed simply as a list of the places where interactions occur, or they can take a more detailed form by describing how locations are related or detailing the facilities/IT that are available in each location.
Each interaction has a hasLocation predicate indicating where the interaction happens. For the IM service, we have identified two locations: the ServiceDesk Office and the UserOffice. The ServiceDeskOffice represents the location where a user or system can report an incident and the UserOffice location refers to the location where the company staff is working.
- :ServiceDeskOffice a lss-usdl:Location ;
- rdfs:label “Service Desk Office”.
- :UserOffice a lss-usdl:Location ;
- rdfs:label”User Office” .
Listing 4.7 Modeling locations within a service system.
The Listing 4.7 shows the definition of both locations. While these locations are concepts that only have a meaning for the company implementing the IM service, another approach to use geographical descriptions. This can be achieved by using, e.g., the GeoNames ontology, a data structure containing over 8.5 million geographical names. The information covers coordinates, administrative divisions, postal codes, amongst others. GeoNames can answer questions such as what are the coordinates for a location; which region or province does a location belong to; and what city or address is near a given GPS latitude / longitude.
Each interaction uses a hasTime predicate to indicate when it occurs. The Time ontology is used for temporal reasoning. Typically, two time modeling options can be defined. The first one, used in this example, defines temporal relationships between interactions using constructs such as before or after.The second,uses time intervals of times point to define when an interaction can occur or occurs. Listing 4.8 exemplifies the use of the concept ProperInterval to describe the temporal dependencies between interactions.
- :IncidentIdentificationTime a time:ProperInterval;
- time:intervalAfter :IncidentCategorizationTime .
- :IncidentCategorizationTime a time:ProperInterval;
- time:intervalBefore :IncidentIdentificationTime;
- time:intervalAfter :IncidentPrioritizationTime .
- :IncidentPrioritizationTime a time:ProperInterval;
- time:intervalBefore :IncidentCategorization;
- time:intervalAfter :InitialDiagnosisTime .
- :InitialDiagnosisTime a time:ProperInterval;
- time:intervalBefore :IncidentPrioritizationTime;
- time:intervalAfter :InvestigationDiagnosisTime .
- time:intervalBefore :InitialDiagnosisTime;
- time:intervalAfter :ResolutionRecoveryTime;
- time:intervalEquals :scalationFirstTime .
- :ResolutionRecoveryTime a time:ProperInterval;
- time:intervalBefore :InvestigationDiagnosisTime;
- time:intervalAfter :IncidentClosureTime;
- time:intervalEquals :scalationSecondTime .
- :IncidentClosureTime a time:ProperInterval;
- time:intervalBefore :ResolutionRecoveryTime.
- :scalationFirstTime a time:TemporalEntity;
- rdfs:label “Scalation time for first level”;
- rdfs:comment”Need to define hasDurationDescription”.
- :scalationSecondTime a time:TemporalEntity;
- rdfs:label”Scalation time for second level”;
- rdfs:comment”Need to define hasDurationDescription” .
Listing 4.8 Modeling time within a service system.
Interactions can use the receivesResource, consumesResource, createsResource, or returnsResource predicate to indicate the resources received, consumed, created, or returned. For the IM service, we have defined that the interaction IncidentLogging consumes knowledge from the user in the form of ReportData and IncidentData and creates two new resources: IncidentID and IncidentRecord. Listing 4.9 defines the resource IncidentRecord.
- :IncidentRecord a lss-usdl:KnowledgeResource ;
- rdfs:label “Incident Record”;
- rdfs:comment”An Incident Record generated during the IncidentLogging” ;
- owl:sameAs dbpediar:Incident_report .
- :Severity a rdf:Property ;
- rdfs:domain :IncidentRecord ; 8 rdfs:range xsd:integer .
Listing 4.9 Modeling the resources associated with interactions.
Naturally, the IncidentRecord should include more fields, besides Severity, to reflect the complexity of records, which describe an incident. Our example is simple to convey the principle of resource and their descriptions.
Each interaction belongs to a business process model (concept), which can be specified using the property belongsToProcess (see Listing 4.3). In turn, the process model can be associated with an implementation, which can be made using, e.g., the Business Process Modeling Notation (BPMN) or Event-driven Process Chain (EPC) notations.
- :ITServiceIncidentManagement a lss-usdl:Process ;
- rdfs:label “Incident Management Business Process Model” ;
- lss-usdl:hasBPMN bpmnrep:IM_BPMN .
Listing 4.10 Modeling the process to which interactions belong.
Listing 4.10 shows a process model ITServiceIncidentManagement created to exemplify the use of the property hasBPMN to associate an implementation with the model, which, in this case, can be accessed at bpmnrep:IM_BPMN. While LSS-USDL only includes one property to attach BPMN processes to a service system, this was done as a proof of concept and additional properties can be specified to relate interactions with other process modeling languages.
- Jan Van Bon, Arjen de Jong, and Axel Kolthof. Foundations of IT Service Management based on ITIL. Van Haren Publishing, 2007.
- Kerstin Gerke, Jorge Cardoso, and Alexander Claus. Measuring the compliance of processeswith reference models. In 17th International Conference on Cooperative Information Systems (CoopIS), Algarve, Portugal, 2009. Springer.
- Martin Hepp. Goodrelations: An ontology for describing products and services offers on theweb. In Knowledge Engineering: Practice and Patterns, pages 329–346. Springer, 2008.
- ITIL Service Operation. ITIL Series. Stationery Office, 2007.