Composition of Semantic Web Services using Linear Logic Theorem Proving
Jinghai Rao a Peep K¨ungas a Mihhail Matskin b
aDepartment of Computer and Information Science, Norwegian University of Science and Technology, NO-7491, Trondheim, Norway, Email: {jinghai,peep}@idi.ntnu.no bDepartment of Microelectronics and Information Technology, Royal Institute of Technology, SE-164 40 Kista, Sweden, Email: [email protected]
Abstract
This paper introduces a method for automatic composition of Semantic Web services using Linear Logic (LL) theorem proving. The method uses a Semantic Web service language (DAML- S) for external presentation of Web services, while, internally, the services are presented by extralogical axioms and proofs in LL. LL, as a resource conscious logic, enables us to define attributes of Web services formally (including parameters, states and non-functional attributes). We use a process calculus to present the process model of the composite service formally. The process calculus is attached to the LL inference rules in the style of type theory. Thus the process model for a composite service can be generated directly from the complete proof. The subtyping rules that are used for semantic reasoning are presented with LL inference figures. We propose a system architecture where the DAML-S Translator, LL Theorem Prover and Semantic Reasoner can operate together. This architecture has been implemented in Java.
Key words: Service composition, Web service, Semantic Web
1 Introduction ment to the Web service provision. In particular, if no single Web service can satisfy the functionality required by the Recent progress in the field of Web ser- user, there should be a possibility to com- vices makes it practically possible to bine existing services together in order publish, locate, and invoke applications to fulfill the request. This trend has trig- across the Web. This is a reason why more gered a considerable number of research and more companies and organizations efforts on Web services composition both now implement their core business and in academia and in industry. outsource other application services over Internet. The ability to efficient selection Several Web service initiatives provide and integration of inter-organizational platforms and languages that should al- and heterogeneous services on the Web at low easy integration of heterogeneous runtime becomes an important require- systems. In particular, Universal De-
Preprint submitted to Elsevier Science 13 June 2004 scription, Discovery, and Integration sition of atomic services that satisfies the (UDDI) [7], Web Services Description user requirements. The reason why we use Language (WSDL) [11], Simple Object LL theorem proving as Web service com- Access Protocol (SOAP) [8] and parts of position method is that LL is resource- DAML-S [25] ontology (including Servi- conscious logic. This means that, first, we ceProfile and ServiceGrounding) define can distinguish the information transfor- standard ways for service discovery, de- mation and the state change produced by scription and invocation (message pass- the Web service and, second, we can per- ing). Some other initiatives including form planning using both qualitative and Business Process Execution Language quantitative non-functional attributes. for Web Services (BPEL4WS) [4] and Because of soundness of the logic frag- DAML-S ServiceModel, are focused on ment used the correctness of composite representing service compositions where services is guaranteed with respect to the a process flow and bindings between ser- initial specifications. Completeness of the vices are known a priori. logic fragment ensures that all compos- able solutions would be found. The problem of Web service composition is a highly complex task. Here we under- Secondly, we present a composition ap- line only the following two sources of its proach that allows reasoning with types complexity. Firstly, Web services can be from a service specification. We introduce created and updated on the fly, and it may a set of subtyping rules that defines a valid be beyond human capabilities to analyze dataflow for composite services. The sub- a huge amount of available services and typing relationships between the DAML to compose them manually. Secondly, the concepts are detected by the Semantic Web services are usually developed by dif- Reasoner separately from the LL Theo- ferent organizations that use different se- rem Prover. Since the rules are defined as mantic model presenting services’ charac- logical implications, the interoperability teristics (for example, non-functional at- is ensured between the Linear Logic The- tributes) and this requires utilization of orem Prover and the Semantic Reasoner. relevant semantic information for match- ing and composition of Web service. Web service composition using theorem proving is a relatively new topic, and it In this paper, we propose a solution that has been mentioned in quite recent pub- allows decreasing the complexity of the lications. However, the idea of software Web service composition task emerging construction from proofs is not new. In from the above-mentioned sources. particular, deductive program synthesis is based on an observation that constructive Firstly, we present a method for auto- proofs are equivalent to programs where mated Web service composition which is each step of a proof can be interpreted as based on the proof search in a fragment a step of a computation. The key ideas of propositional Linear Logic (LL) [14]. of the software composition approach, as The main idea of the method is as fol- well as correspondence between theorems lows. Given a set of existing Web services and specifications and between construc- and the requirements in term of DAML-S tive proofs and programs, are presented ServiceProfile, the method finds a compo- in [23].
2 There is still a long way towards com- tation and extralogical axioms in LL. plete automation of service composition In our system, DAML-S ServicePro- in a general case. In this paper we re- file is used externally for presentation strict the problem to composition of value- of atomic Web service specifications, added services only assuming that a core while LL axioms are used internally service (atomic or composed) already ex- for composition. The process model is ists. internally presented by a process cal- culus. The calculus can be translated The rest of this paper is organized as either into DAML-S ServiceModel or follows: Section 2 describes a system ar- BPEL4WS. chitecture for composition of Semantic GUI: visualizes services (both com- Web services, Section 3 gives a motivat- posed and atomic). The graphical ing example. Section 4 presents back- presentation includes visualization of ground knowledge for service description functionalities and non-functional at- language and LL. Section 5 presents a tributes. method for transformation of DAML-S LL Theorem Prover: proves whether profile to extralogical axioms in LL lan- the user’s request for service can be guage. Section 6 discusses the usage of achieved by a composition of the avail- type system to enable semantic compo- able atomic services. If the answer is sition. Section 7 presents the implemen- yes, the process model for the compos- tation of a prototype system. Finally, ite service is automatically extracted related works and conclusions are pre- from the proof. sented. Semantic Reasoner: detects the sub- typing and some other relationships between concepts in service descrip- 2 The service composition archi- tions. The formal logics used in Seman- tecture tic Reasoner could be logics developed for expressing knowledge and reasoning about concepts and concept hierarchies, A general architecture of the proposed for example, Description Logics [15]. Web service composition system is de- A transformation between Description picted on Figure 1. The system takes Logics and LL is done by the Adapter. available atomic services and user’s re- Adapter: performs translation between quirements (both of them are described LL and the internal presentation used in DAML-S ServiceProfile and grounded by the Semantic Reasoner. by WSDL documents) as inputs and pro- duces a set of possible composite services The composition process in our case is presented by the ServiceModel in DAML- as follows. Firstly, a semantic descrip- S service model or BPEL4WS. tion of existing Web services (in the form of DAML-S ServiceProfile) is translated The basic components of the system are into extralogical axioms of LL and the the follows: user’s request for a composite service is specified in the form of a LL sequent to Translator: performs automated trans- be proven. Then, the LL Theorem Prover formation between an external presen- checks whether the request can be satis-
3 Service Profile Extralogical Axioms Linear Logic Translator Theorem Prover Proof Service Process l C a mI S las n se le p e s tio b il m an i a c a d P s i a n ro o r it t pe p a o ci rtie ro V n s P
GUI Adapter R S y l e u g e al b lo d t yt to o oi p n M n ni O s g
Semantic Ontology Reasoner Base
Fig. 1. The architecture of the service composition system.
fied by a composition of existing atomic lar, they may stand alone in terms of op- services (this is done by applying theo- eration and profitability as well as pro- rem proving in LL). During the theorem vide adds-on to core services. It is impor- proving the Theorem Prover may inter- tant to mention that value-added services act with the Semantic Reasoner. As a may allow different their combination and result of this interaction the Semantic they may provide incremental extension of Reasoner may provide extensions of the core services. For example, in online shop- set of extralogical axioms via performing ping, the core services range from prod- subtyping inference using Ontology Base. uct search, ordering, payment and ship- New axioms are asserted into the Theo- ment. However, some other services, such rem Prover as logical implications. If the as currency exchange, measurement con- sequent corresponding to the requested verter and language translation can also composite service has been proven and be required in a case when the core ser- the proof is generated then a process cal- vices cannot meet the users’ requests ex- culus presentation is extracted from the actly. Usually these value-added services proof directly. The last step is the con- are not designed for a particular core ser- struction of flow models - the process vice but they rather extend abilities of calculus is translated either to DAML-S core services or, in other words, add value ServiceModel or BPEL4WS upon the re- to the core services. quest. During the composition and execu- tion processes, the user is able to monitor As a working example we consider a ski and control the system via GUI. selling Web service. In this case the core service receives characteristics of a pair of skis (such as, length, brand, model etc) as 3 Motivating example input and provides prices, availability and other requested characteristics as output. We assume that a user would like to use We consider how our service composition this service but there are gaps between method can be applied to the composition the user’s requirements and the function- of value-added services. Value-added ser- alities the service provides. vices differ from core services—they are not a part of core services but act as com- The differences could exist, for example, plements to the core services. In particu- in the following details:
4 • the user would like to receive prices in a • USD2NOK —given price in USD pro- local currency (for example, in Norwe- vides price in NOK; gian Crowns), however, the service pro- • inch2cm—given length in inches pro- vides price in US Dollars only; videslengthincm; • the user would like to use centimeters as • NOK2USD—given price in NOK pro- length measurement units but the ser- vides price in USD; vice uses inches; • kg2lb—given weight in kg provides • the user does not know what ski length weight in pounds; or model are needed and s/he would like • lb2kg—given weight in pounds provides that this can be calculated from his/her weight in kg. height and weight; • the user does not know which brand is The core service and some available value- most suitable and s/he would like to get added services are depicted respectively a recommendation from a Web service. in Fig. 2 and Fig. 3. A required service is presented in Fig. 4. The structure of a so- Here we illustrate a case where only func- lution for the required service is presented tionality attributes are considered (ba- in Fig. 5. sically, input and output of a service). LENGTH_INCH However, our method works with non- BRAND selectSkis PRICE_USD MODEL functional attributes as well and this will be considered in the later Sections. Fig. 2. The core service for buying skis. PRICE_LIMIT selectBrand BRAND SKILL_LEVEL We assume that the user provides the HEIGHT_CM MODEL selectModel body height measured in centimeters WEIGHT_KG LENGTH_CM (cm), the body weight measured in kilo- LENGTH_CM cm2inch LENGTH_INCH grams (kg), his/her skill level and the price limit. The user would like to get PRICE_USDUSD2NOK PRICE_NOK a price of recommended pair of skis in Norwegian Crowns (NOK). Fig. 3. Some available value-added services. HEIGHT_CM WEIGHT_KG PRICE_NOK ThecoreserviceselectSkis accepts the ski SKILL_LEVEL length measured in inches, ski brand, ski PRICE_LIMIT model and gives the ski price in US Dollars Fig. 4. The required service for buying skis. (USD). We would like to mention that our work- Some available value-added services are as ing example is intentionally made simpler follows : than it is required for practical cases. This has been done in order to keep simplicity • selectBrand—given a price limit and a of presentation. In practice there can be skill level, provides a brand; more value-added services available and • selectModel—given body height in cm more parameters for the core service (in and body weight in kg, provides ski particular, there may exist many other length in cm and a model; converters for currency, measurements • cm2inch—given length in cm provides and other units), and the user may not al- length in inches; ways be able to find a solution intuitively.
5 PRICE_LIMIT selectBrand BRAND SKILL_LEVEL HEIGHT_CM MODEL selectSkis PRICE_USD USD2NOK PRICE_NOK selectModel WEIGHT_KG LENGTH_CM cm2inch LENGTH_INCH
Fig. 5. The final service structure for buying skis.
In addition, it may also be beyond the service. The information provided by user’s ability searching a huge amount ServiceProfile consists of three parts: of available value-added services to find information about the providers, in- all possible solutions. In particular, if the formation about functionalities and set of possible solutions consists of all information about non-functional at- existing converters to all inputs and out- tributes. In [5], the authors give def- puts of all Web services (both core and initions of functionality and non- value added), this may cause big over- functional attributes that are used to head in service provision. Taking this into specify the service profile in DAML- account, we think that automatic compo- S. The service functionalities are the sition would be an efficient and practical declarative specification of computa- solution in this case. tional ability of a Web service. They include the service’s input param- eters, output parameters, precondi- tions, effects and exceptions. The non- 4 Background functional attributes are other prop- erties than functionalities that can be used to describe a service (for example, 4.1 Semantic Web services’ languages price, location, quality of the service). ServiceGrounding: The ServiceGround- ing provides information on service DAML-S (also called OWL-S in the execution. It can be regarded as the most recent versions) is a Web service DAML presentation of WSDL. description language built on top of ServiceModel: The ServiceModel con- DAML+OIL [1] and OWL [12] which ceives each service as either an atomic are W3C recommendation for Seman- or composite process. The process of a tic Web markup languages. Enabled by composite service specifies control con- the Semantic Web technology, DAML-S structs of included atomic or compos- allows to present semantically enriched ite services together with control and datatypes than WSDL which employs data flow between the included services. XSD as the canonical type system. There- In particular, the ServiceModel includes fore, DAML-S can be considered as a step a dataflow model which indicates how towards automatic matching and compo- messages are transferred from one ser- sition of services by semantic description, vice to other services. if compared with WSDL.
A description of Web services in DAML-S A significant drawback of DAML-S is that includes the following three parts. there is no platform to support execution of the process model specified by Service- ServiceProfile: The ServiceProfile is Model. An alternative way of specifica- used for advertising and discovering the tion of the process model is BPEL4WS.
6 BPEL4WS is essentially a process model- LL is not the first attempt to develop ing language proposed by industry. It is resource-oriented logics (well-known ex- designed to enable aggregation of one or amples are relevance logic [13] and Lam- more Web services into an execution of a bek calculus [19]), it is by now one of the single composite Web service. most investigated ones. Since its introduc- tion LL has enjoyed increasing attention Composite services in BPEL4WS are from researchers in both proof theory and modeled as directed graphs where the computer science. Therefore, because of nodes are services and the edges represent its maturity and well-developed seman- a dependency link from one service to an- tics, LL is useful as a declarative language other. Canonic programming constructs and inference system. (such as, SWITCH, WHILE and PICK) allow properties of inter-service messages The syntax of the LL fragment that we use to direct an execution path through the in this paper is presented by the following graph. BPEL4WS also contains references grammar: to port types of WSDL documents. An expressiveness of service behavior and its inputs/outputs are constrained by XML and XML schema. A ::= P |A A|A ⊗ A|A ⊕ A|!A|1.
Because of the DAML-S service is grounded by WSDL, we can also regard BPEL4WS Here, P stands for a propositional vari- as the grounding of DAML-S Service- able and A ranges over formulae. The logic Model. Although DAML-S ServiceModel fragment consists of multiplicative con- and BPEL4WS are very similar, they junction ⊗, additive disjunction ⊕, lin- are not completely intertranslatable [27]. ear implication and “of course” (!) op- In the section 5, we propose an upper- erator. In terms of resource acquisition ontology for the process model. The the logical expression A ⊗ B C ⊗ D upper-ontology is designed formally as a means that resources C and D are ob- process calculus and is compatible with tainable only if both A and B are avail- both BPEL4WS and DAML-S Service- able. Thus the connective ⊗ defines deter- Model. Thus the result of a proof can ministic relations between resources. Af- be translated either into BPEL4WS or ter literals A and B are consumed, liter- DAML-S ServiceModel upon the user’s als C and D are generated. In that way request. we can encode different behaviors of com- putations. The disjunction A ⊕ B defines that either A or B are consumed or gener- 4.2 Linear logic ated. It has the same function as the dis- junction in classical logic. The formula !A means that we can use or generate a lit- LL is a refinement of classical logic intro- eral A as much as we want—the amount of duced by J.-Y. Girard to provide a means the resource is unbounded. While in clas- for keeping track of “resources”—in LL sical logic literals may be copied by de- two copies of a formula A are distin- fault, in LL this has to be stated explicitly. guished from a single copy of A. Although The unit 1 presents a trivial goal which
7 Table 1 Inference rules for our LL fragment. Logical axiom and Cut rule: Γ A Γ ,A ∆ (Cut) A A (Id) Γ, Γ ∆
Rules for propositional constants: Γ A 1 Γ, 1 A Γ,A,B C Γ A Γ B ⊗ (L⊗) (R ) Γ,A⊗ B C Γ, Γ A ⊗ B Γ,A B Γ A B (Shift) (R ) Γ,A B Γ A B Γ,A ∆Γ,B ∆ (L⊕) Γ A (R⊕)(a) Γ B (R⊕)(b) Γ,A⊕ B ∆ Γ A ⊕ B Γ A ⊕ B
Rules for exponential !: Γ,A ∆ Γ, !A, !A ∆ Γ ∆ (W !) (L!) (C!) Γ, !A ∆ Γ, !A ∆ Γ, !A ∆ requires no resources. The inference rules price, time and the size of cache. of this fragment are presented in Table 1. (2) The “of course” modality enables us to distinguish two aspects of the ser- An intuitionistic LL sequent is divided vice functionalities: the information into two parts by symbol. We call the transformation and the state change formula at the left side as “resource”, triggered by the execution of the ser- and the formula at the right side is called vice. The information transforma- “goal”. Ignoring unrestricted hypothe- tion is presented by the input/output sis for the moment, a LL sequent can parameters. We assume that infor- be explained as follows: the goal can be mation is reusable, thus the input achieved by consuming the resource. values are not consumed after the execution of a service. Reusability is Comparing to classical logic, LL provides determined by using the “of course” more expressive power and therefore, al- modality. Contrarily, the states of lows us to represent more features. In gen- the world are changed by service ex- eral, LL provides us with the following fea- ecution. We interpret the change as tures for presenting useful properties of follows: the old states are consumed Web services that are hardly presented in and the new states are performed. other formalisms: Therefore, the state variables are presented by propositions without (1) Propositional LL enables us to “of course” modality. It means the present quantities of consumable state values can be consumed only resources in Web services, such as once. In addition, the inference rules
8 for the “of course” modality enable 5 Transformation from DAML-S us to duplicate information in a ex- profiles to LL axioms plicit way. The rules are similar to the weakening and contraction in classical logic. 5.1 The upper model of Web services and (3) LL has close connections with con- LL current processes that are founda- tions for modeling composite Web services. In particular, a translation Fig. 6 shows the upper ontology for the from proofs in LL into Milner’s π- declarative specification of a Web ser- calculus [30] has been extensively vice. The upper ontology can be used studied in [3, 29, 6]. For example, as a specification framework to present the multiplicative conjunction(⊗) either the request to the service or the can present the “composition” advertisement of an existing service. For in π-calculus; the disjunction(⊕) the existing service, we do not distinguish presents “choice”, and the “of the atomic service or composite service, course” modality(!) presents “repli- because we model an existing service as cation”. a black-box, therefore, the service pro- cess that denotes the internal control- and data-flow inside the composite ser- vice is not considered when selecting the service. The specification describes a ser- vice by functionalities and non-functional attributes. The functionalities include in- puts, outputs, preconditions, effects and exceptions. The non-functional attributes are classified into three categories: con- sumable quantitative attributes, qualita- tive constraints and qualitative results.
After the available services are specified Generally, a requirement to a compos- in the form of LL formulae and a re- ite Web service (including functionalities quested service is specified as a theorem and non-functional attributes) can be to be proven, we apply LL theorem prov- expressed by the following LL formula: ing to determine whether the requested servicecanbecomposed.Ifaproofofthe theorem exists then a composed service is (Γ , Γ ); ∆ ((I ⊗ P ) (O ⊗ F )⊕ E)⊗ ∆ extracted from the proof. The structure c v c r of the composed service reflects the struc- ture of the proof. Since the composed service is guaranteed to meet the specifi- where both Γc and Γv are sets of ex- cation, no further verification is needed. tralogical axioms representing available To make representation of formulae more value-added Web services and core ser- compact, we use the following abbrevia- vices respectively. ∆c is a conjunction of an a ⊗ ...⊗ a n> non-functional constraints. ∆ is a con- tion: = ,for 0. r n junction of non-functional results. We
9 Class Class Class Consumable Qualitative Qualitative Quantitative Constraint Result Attribute
range range range
ObjectProperty ObjectProperty ObjectProperty hasConsumable hasQualitative hasQualitative Quantitative Constraint Result Attribute
domain
domain Class domain domain WebService domain
domain domain domain ObjectProperty ObjectProperty ObjectProperty ObjectProperty ObjectProperty hasEx- hasPre- Input Output hasEffect ception Condition subPropertyOf subPropertyOf range subPropertyOf subPropertyOf
ObjectProperty Class ObjectProperty DataTypePropery hasCond- Parameter Parameter Exception DataTypePropery Name ition Condition range range domain Name ObjectProperty Class Class domain Restricted domain Parameter Condition domain ObjectProperty To Description Description domain Condition ObjectProperty ReferTo
Fig. 6. The upper ontology for Web service declarative specification. will distinguish these two concepts later. 5.2 Transformation of functionalities I ⊗ P (O ⊗ F ) ⊕ E is a function- ality description of the required service. Both I and O are multiplicative conjunc- The functionalities of a service include two tions of literals with “of course” modality. parts: the information transformation and I represents a set of input parameters the state change produced by the execu- for the service and O represents output tion of the service. The information trans- parameters produced by the service. P formation is represented as a transforma- and F are multiplicative conjunction of tion from the input parameters required preconditions and effects respectively. E by the service to the output parameters presents an exception. Intuitively, the for- produced by the service. It provides in- mula can be explained as follows: given formation of data flow during the execu- a set of available atomic services and tion of a Web service. The state change non-functional attributes, try to find a provides information about what the Web combination of services that computes service actually does and how execution of O from I as well as changes the world the Web service changes the states of the state from P to F . If the execution of environment. It is modeled as the trans- the service fails, an exception is thrown. formation from the preconditions to the Every element in Γc and Γv is in form effects. A typical example is a service for ∆c ((I ⊗ P ) (O ⊗ F ) ⊕ E) ⊗ ∆r, logging into a Web site. The input infor- where meanings of ∆c,∆r, I, P , O, F mation is the username and password, and and E are the same as described above. the output is a confirmation message. Af- ter the execution, the world state changes
10 from “not logged in” to “logged in”. The The states are described by a “Condi- “logged in” state will be kept until the tionDescription” class that has two parts: “log out” service is invoked. “conditionName” and “condition”. “con- dition” refers to a DAML class defining We use the “log in” service as an example the meaning of a state value. For the to elaborate the process about the trans- state variables, we translate the URI in formation of service functionalities. The “condition” to a LL proposition directly. example DAML-S code is shown in Fig. 7. From the computation point of view, this The code is consistent with the upper on- service requires two input parameters tology shown in Fig. 6. The inputs and that are of types “onto#Username”and outputs are subproperties of “Parameter” “onto#Password” respectively and pro- property that ranges over the instance of duces an output that has type class “ParameterDescription”. This class “onto#LoginOk”. Before the service is ex- has three fields. “parameterName” is the ecuted, the user can not have been logged name of the actual parameter, which into the Web site. After the successful ex- is presented by a string. “restrictedTo” ecution of the service, the state changes points to a DAML class as the type of from “NotLoggedIn” to “LoggedIn”. The the parameter. “refersTo” refers to the result LL axiom is shown as follows: parameter’s port defined in DAML-S Ser- viceModel. When translating a specifica- !onto#Username(model#User) ⊗ tion parameter, either input or output, !onto#P assword(model#P asswd) ⊗ we take the “restrictedTo” and “referTo” onto NotLoggedIn field. For example, the input “UserName” # service#Login ⊗ is presented as follows (here we use entity !onto#LoginOk(model#LoginOk) types as a shorthand for URIs). onto#LoggedIn
!onto#Username(mode#User) 5.3 Non-functional attributes The value of “restrictedTo” property is translated into a LL proposition and the Non-Functional attributes are useful in value of “referTo” is translated into a evaluating and selecting services when proof term which identifies the proposi- there are several services having the same tion. The proof term in the parentheses is functionalities. In service presentation, used to guarantee the proposition (which the non-functional attributes are speci- is introduced during the reasoning pro- fied as results and constraints. We clas- cess) is not used outside the proposition’s sify the non-functional attributes into the scope. In terms of program, it means that following three categories: the proof term is a program of type that is restricted by the proposition. The “of • Consumable Quantitative At- course” operator ! in front of the proposi- tributes: These attributes limit the tion indicates an information parameter amount of resources that can be con- that can be duplicated. sumed by the composite service. The
11
12 total amount of resources is the sum 5.4 Example with functionality and non- of all resources of atomic services that functional attributes form the composite service. For exam- ple, the price of composite service is the sum of prices for all included atomic Here, we illustrate the LL presenta- services. This kind of attribute includes tion of our example taking both func- total cost, total execution time, etc. tionalities and non-functional attributes • Qualitative Constraints: Attributes into consideration. The services have which can not be expressed by quan- been introduced in Section 3. For the tities are called qualitative attributes. sake of readability, we use abbrevia- Qualitative Constraints are qualitative tions to represent the propositions. Here, attributes which specify requirements PL,SL,BR,MO,HC,WK,LC,LI, to execution of a Web service. For exam- PU and PN stand for PRICE LIMIT, ple, some services may response only to SKILL LEVEL, BRAND, MODEL, some authorized calls. The constraints HEIGHT CM, WEIGHT KG, are regarded as prerequisite resource in LENGTH CM, LENGTH IN, PRICE USD LL. and PRICE NOK respectively. • Qualitative Results: Another kind of qualitative attributes (such as service The available services, both value-added type, service provider or geographical and core services, are specified as follows: location) specify the results regarding the services’ context. These attributes 10 can be regarded as goals in LL. NOK PL ⊗ SL selectBrand BR