<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Ontology-driven and Community-based Framework for Services Description and Selection of Composite Services</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Amel Boustil</string-name>
          <email>Boustil1710@yahoo.fr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Lire laboratory, Constantine 2</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Lire laboratory, Constantine 2 University, Computer Science Department, FS, University, M'Hamed Bougara of Boumerdès</institution>
          ,
          <addr-line>35000</addr-line>
          ,
          <country country="DZ">Algeria.</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>University</institution>
          ,
          <addr-line>Constantine</addr-line>
          ,
          <country country="DZ">Algeria</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2014</year>
      </pub-date>
      <fpage>2</fpage>
      <lpage>4</lpage>
      <abstract>
        <p>service or composite abstract service) and provided service (concrete service) to each other by using description logic axioms. Concrete services are defined as instances of the specific communities. Thereafter, we propose an approach for classifying services to their corresponding community under the condition that a concrete service must have at least all operations of the abstract service describing the functionality of the community, in order to ensure that the concrete services of a community meet correctly the user request. This classification needs to use the automatic generation of SPARQL queries. Eventually, this classification will be helpful in selecting an adequate composite concrete service for a requested composite service.</p>
      </abstract>
      <kwd-group>
        <kwd>- Abstract Service</kwd>
        <kwd>Concrete Service</kwd>
        <kwd>Community</kwd>
        <kwd>OWL DL</kwd>
        <kwd>SPARQL</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. INTRODUCTION</title>
      <p>
        Web services keep rapidly growing in recent
years and there are a lot of them offered by
different providers providing the same
functionality. Although these services which have
different values of attributes describing functional
or non-functional properties could be gathered
into a collection of Web services named
communities [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] and used to select and to
determine the most appropriate concrete
(instance) service. Several works handle
description and management of gathering similar
Web services into communities. [
        <xref ref-type="bibr" rid="ref2 ref3">2, 3</xref>
        ] describe
the community as an abstract Web service that
defines the provided functionality and a set of
concrete Web services that implement this
functionality. Medjahed et al. [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] propose a
community ontology-based architecture for
describing communities and semantic Web
services having the same domain of interest.
The functionality of a service describing an
abstract service contains a set of operations.
Each operation is described by their inputs and
outputs. Most of the solutions considering
community descriptions impose that a concrete
service can belong to a community if at least it
has one operation of the functionality of this
community. However, when the user asks a
composite or an atomic abstract service, he is
interested to one operation of each atomic
abstract service. Because the discovery process
is guided by the functionality of the community,
so, the returned concrete services of the
community may not satisfy the user needs. The
problem is caused by the confusion between the
requested abstract service and the community
functionality which are designed in two different
frameworks. In our work, we regroup these two
concepts in the same framework and we
differentiate between their definitions. The
abstract service describes the common
functionality (operations) of a community. The
user can formulate its requests by using the
definition of the abstract services. Further,
abstract services can be atomic or composite.
The concrete service defines the specific
functional or non-functional attributes of the
provided services. Each community is described
by one abstract service and a set of concrete
service. Also, we impose that the concrete
services are added to a given community if they
have at least all operations of the abstract
service assigned to the community.
      </p>
      <p>
        The main idea of our proposition consists in
gathering services from the same domain of
interest and publishing them in a new template
called community ontology. The community
ontology is used as a general template for
describing semantic Web services in different
levels by considering abstract service, concrete
service and community concepts. Concrete
services which belong to a given community are
defined by Description Logics (DL) axioms [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
The use of the description axiom logic can
assume consistence of the community ontology
when a new concrete service join a given
community.
      </p>
      <p>
        So, our contributions are twofold. First, we
propose an ontology framework based OWL DL
[
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] which describes and re-organizes services
according to three levels: communities, abstract
services and concrete services. Second, we will
show how concrete services can join the
community ontology by generating SPARQL [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]
queries. We will show also how composite
services are located and selected in this
ontology.
      </p>
      <p>The rest of this paper is organized as follows. In
section two, we give some definitions on the
used formalism, how services are described and
the structure of the community ontology. Section
three explains how a concrete service can join
this ontology. How composite services can be
located and extracted from this ontology is
explained in section 4. In section 5, we present
our related works. Finally, we conclude and we
give some perspectives.</p>
    </sec>
    <sec id="sec-2">
      <title>2. COMMUNITY ONTOLOGY</title>
    </sec>
    <sec id="sec-3">
      <title>2.1. Ontology formalism</title>
      <p>
        We use Web Ontology Language OWL-DL [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] as
a formalism to represent our ontology. OWL-DL
is a decidable fragment of OWL, and based on
description logics (DL) [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. OWL-DL ontology
contains individuals, properties, and classes.
Classes and properties can be organized into
subsumption hierarchies. Furthermore, OWL
allows to define complex classes by using
inclusion axioms (⊆) or equivalent axioms ((≡).
The most commonly used Semantic Web query
language SPARQL [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] was recommended by
W3C, since 2008. It was intended initially to be
used for RDF [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. Now, SPARQL is allowed to be
extended to OWL entailment. A semantic
specification for SPARQL compatible with
OWLDL has been defined in SPARQL-DL [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] using
Pellet [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] inference engine. So, to query and
reason over our ontology using OWL-DL
language, we will use the Pellet inference
engine.
      </p>
    </sec>
    <sec id="sec-4">
      <title>2.2. Service description</title>
      <p>
        As stated in [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], the description of services must
be established in two different abstractions:
generic abstract service and concrete service, in
order to distinguish between the goal (what the
user search) and the offer (concrete service
description). In general, a description of real Web
services offered by a provider contains:
• The General information (name,
      </p>
      <p>Provider identifier, description, etc.)
• The technical information on how to use
the service (communication protocol
access, URI, etc.)
• The non-functional information
described generally by a QoS attributes
(Price, Cost, Availability, etc.)
• The functional information that
describes the operations offered by the
service.</p>
      <p>
        The functionality can be shared by multiple
services. Therefore, the functionality called
abstract service and described independently of
the concrete service will be related to the
community. In this case, the description of the
concrete service must include the name of the
corresponding community (communities). An
important question is: how does a service join a
community?
Indeed, our approach extracts the original
description of services from Web Service
Description Language (WSDL) [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] that
describes the functionality and technical
information services through: Types, messages,
portTypes, binding and service. More
specifically, the functionality of the service is
specified in the portType section that specifies
the service operations. We call (S) the set of
operations describing a service as shown in
Figure 1.
      </p>
      <p>One of our main goals is to bring concrete
services into communities under a common
functionality named atomic abstract service. This
latter consists of a set of operations called (C).
Because user queries are to be imposed on the
abstract services and more specifically on the
specific operations of the requested abstract
services, the concrete services matching a query
must have at least all the desired operations of
the abstract service. This implies that a specific
service may be a member of a community if it
has at least the functionality of the community. In
other words, a concrete service must have at
least all the operations defined within the
community through its abstract service. In other
words, a concrete service belongs to a
community if C ⊆ S, as shown in Figure 1.</p>
    </sec>
    <sec id="sec-5">
      <title>2.3. Community ontology structure</title>
      <p>
        Formally, the community ontology is defined by
a TBOX and an ABOX [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. A TBox defines the
terminological component of the ontology. The
ABOX assertions associated with the TBOX
describe the compliant statements instances
(individuals) and their relationships.
      </p>
      <p>Our approach to defining the TBOX community
ontology is based on three layers: categories,
abstract services and concrete services. It is
also based on clustering Web services based on
their common functionalities (abstract service)
into communities. All concrete services which
share the same abstract service belong to the
same community. So, communities are a
subset (sub-concept) of concrete services
(ConcreteService concept) defined by equivalent
(≡) axioms.</p>
      <p>In the first layer of the proposed ontology
framework, showed in Figure 2, the model is
based on a classification of available
functionalities called categories defined by the
provider's community ontology. A category is
described by its code, synonyms and
description.</p>
      <p>Abstract service can be atomic or composite.
AtomicAbstractService concept described by
axiom (1) represents the description of the
common functional properties of a service. The
functionality of a service is described by
parameter types of its operations (inputs,
outputs). The axiom (1) makes sure that each
atomic abstract service has at least one
category and at least one functional operation.</p>
      <sec id="sec-5-1">
        <title>AtomicAbstractService ⊑</title>
        <p>∃ hasCategory.Category ⊓
∀ hasCategory.Category ⊓
∃ hasOperation.Operation ⊓
∀ hasOperation.Operation.
(1)
Composite abstract service defines the
predefined user requests.
CompositeAbstractService concept is a sub
concept of AbstractService which needs to be
defined by exactly one constructor (split-and,
split-or, sequence, choice, etc.) and at least one
component of abstract service which could be a
composite or an atomic abstract service as
presented in axiom (2).</p>
      </sec>
      <sec id="sec-5-2">
        <title>CompositeAbstractService ⊑ ⊺ ⊓</title>
        <p>=1. hasConstructor.ControlConstructor ⊓
≥1. hasComponent . AbstractService.
(2)
In the concrete service layer, we are interested
in the description of the actual services offered
by atomic providers and how to group them to
the same class (Community). A concrete
service is related to an atomic abstract service
concept by the relationship hasAbstractService.
The technical description of the specific service
is described through concepts of BasicAttribte
and QoSAttribute. The concept
ConcretService is connected with the concepts
BasicAttribute and QoSAttribute, respectively by
hasBasicAttribute and hasQoSAttribute
relationships (ObjectProperties). One of the
important characterizations of the proposed
framework is the fact that each concrete service
instance is plugged into a class of concrete
services (CommunityName) that specifies the
corresponding abstract service and a specific
context described by some others concepts, as
presented in axiom (3). Others ontologies
domain can be imported to describe context
communities.</p>
      </sec>
      <sec id="sec-5-3">
        <title>Communityname ≡ ConcreteService ⊓</title>
        <p>∃ hasAbstractService.{InstanceAtomicAbstractSe
rvice} ⊓ ∃ hasContext . Conceptname ⊓
∀h asContext. Conceptname. (3)
The example community defined in axiom (4)
makes sure that the members of the community
of creating medical record (Communitycmr) are
concrete services which have the functionality of
the abstract service instance's (CMRAbstractService)
and a specific context described by “hospital”
concept. This information aids a selection
process to choose services under some
conditions imposed on this concept.</p>
      </sec>
      <sec id="sec-5-4">
        <title>Communitycmr ≡ ConcreteService ⊓</title>
        <p>∃ hasAbstractService.{ CMRAbstractService } ⊓
∃ hasContext.Hospital⊓ ∀ hasContext.Hospital.
(4)</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>INDEXING SERVICES INTO COMMUNITY</title>
    </sec>
    <sec id="sec-7">
      <title>ONTOLOGY</title>
      <p>In this section, we will show how to add
automatically a concrete service described by a
WSDL to the Community ontology by
considering the condition specified in section
2.2. The main idea to determine communities for
a given concrete service is to construct a first
vector named candidateCommunity which
contains related communities of each operation
of the service. A community which satisfies the
condition presented in section 2.2, will be added
to the finalListCommunity.</p>
      <p>The first step of the developed algorithm1 is to
determine the functionality of a service. They are
extracted by using JWSDL API [16] and saved in
a vector named OPservice. Each operation can
appear in different abstract services. So, we will
determine for each operation (line 2-3) the
related abstract services by generating and
executing the SPARQL query1:
PREFIX onto:&lt;http://www.owl-ntologies.com/onto123.owl#&gt;
PREFIX rdf:&lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt;
SELECT ?x
WHERE {
?x rdf:type onto:atomicAbstractService
?x onto:hasOperation onto: OPi. }
The SPARQL query1 returns a list of abstract
services (line3). Each abstract service (AASj)
describes exactly one community determined
(line5) by the generation and the execution of
the SPARQL query2:
PREFIX onto:&lt;http://www.owl-ontologies.com/onto123.owl#&gt;
PREFIX rdf:&lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt;
PREFIX rdfs:&lt; http://www.w3.org/2000/01/rdf-schema#&gt;
SELECT ?z
WHERE {
?y onto:hasAbstractService onto: AAS j.
?y rdf:type ?z.</p>
      <p>?z rdfs:subClassOf onto:concretService.}
The result of the SPARQL query2 is added to a
vector candidateCommunities in line 6. Line 10
determines the operations of each community of
the candidate communities by generating the
SPARQL query3:
PREFIX onto:&lt;http://www.owl-ontologies.com/onto123.owl#&gt;
PREFIX rdf:&lt; http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt;
SELECT ?z
WHERE {
?y rdf:type onto: communityi.
?y onto:hasAbstractService ?x.</p>
      <p>?x onto:hasOperation ?z. }
Algorithm1: Insertion of a concrete service in
the Community ontology.</p>
      <sec id="sec-7-1">
        <title>Input: WSDL service description Output: Modified community ontology Begin</title>
        <p>
          1. [OPservice]=Extraction of services description by
using JWSDL API.
2. For each (op i) of [OPservice] do
3. [AbstractSer ]= generateSPARQLquery1(opi)
4. For each (AASj) of [ Abtractser] do
5. Communityj=generateSPARQLquery2(AASj)
6. Add Communityj to [candidatCommunity]
7. endFor
8. endFor
9. For each (communityi)of [candidatCommunity]do
10. [OPC]=generateSPARQLquery3(communityi)
11. If [OPC] ⊆ [OPservice]
12. then add communutyi to [finalListCommunity]
13. endIf
14. endFor
15. For each (communityi)of [finalListCommunity] do
16. Insert_ontology (service, communityi)
17. EndFor
18. End
Based on the comparison between the two sets
(the set of operations of the service and the set
of operations of a candidate community), we will
decide if we add the service to the final list
(line11-12). Finally, we add the service to its
corresponding community (s) in the Community
ontology (line16) by using the Jena API [
          <xref ref-type="bibr" rid="ref18">19</xref>
          ].
The screenshot presented in figure 3 shows that
the concrete service CMRService have two
operations: getRDVConfirmation and
searchHospital. The determined final
communities are CommunityCMR and
CommunityRDVHopital. The first one has only
getRDVConfirmation operation and the second
one has the two operations:
getRDVConfirmation and searchHospital. So,
the operations of these communities are
included in the set of operations of the concrete
service.
        </p>
      </sec>
    </sec>
    <sec id="sec-8">
      <title>4. SELECTION OF COMPOSITES SERVICES</title>
      <p>In this section, we show a simple way on how
we can use the Community ontology to compose
and select the composite concrete service by
generating XML files. The user can choose a
composite abstract service from the existing
instances of CompositeAbstractService or define
a new composite abstract service by combining
atomic abstract services and control
constructors. An XML File contains the
description of the composite service request.
Each composite service is composed, as
described in the Community ontology, of one
constructor and at least one abstract service,
which could be atomic or composite. The
following generated XML File corresponds to an
example composite service.
&lt;CompositeAbstractService&gt;
&lt;Operator&gt;sequence&lt;/Operator&gt;
&lt;AtomicAbstratService&gt;</p>
      <p>AAS_CMRecord
&lt;\AtomicsiteAbstratService&gt;
&lt;CompositeAbstratService&gt;
&lt;Operator&gt;split-or&lt;/Operator&gt;
&lt;AtomicAbstractService&gt;</p>
      <p>AAS_RDV_Doctor
&lt;/AtomicAbstractService&gt;
&lt;AtomicAabstractService&gt;</p>
      <p>AAS_RDV_Nurse
&lt;/AtomicAabstractService&gt;
&lt;/CompositeAbstratService&gt;
&lt;AtomicAbstractService&gt;</p>
      <p>AAS_RDV_Labo
&lt;/AtomicAbstractService&gt;
&lt;/CompositeAbstractService&gt;
In this XML file, for each atomic abstract service,
the related community will be added by
generating and executing the following SPARQL
query4:
PREFIX onto:&lt; http://www.owl-ontologies.com/onto123.owl#&gt;
PREFIX rdf:&lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt;
PREFIX rdfs:&lt;http://www.w3.org/2000/01/rdf-schema#&gt;
SELECT DISTINCT ?x
WHERE {
?x rdfs:subClassOf onto:ConcretesService.
?y rdf:type ?x.
?y onto:hasAbstractService onto:NomDuServiceAbstrait.}
Algorithm2: Selection of composite services</p>
      <sec id="sec-8-1">
        <title>Input:</title>
        <p>
          -[C]: list of participated communities extracted from XML file
- CtesQos: Constraints on Qos as in [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]
Output:
- csc=selected composite concrete service.
Begin
1. For each Communityi in [C] do
2. ACSi= get_Individual_Instance(Communityi)
3. EndFor
4. V=Calculate ( )
5. csc= Return (getBest (V, CtesQos))
End
In the Algorithm2, for each community we can
generate their instances (concrete services of
(ASCi)) (line2). We calculate Cartesian product
(line 4) of the resulted sets and finally we apply
any optimization algorithm like in [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ] to select the
most optimized composite service as shown in
line 5 of algorithm2. Other selection strategies
can be defined based on imposing constraints
on context description defined in the Community
ontology as in [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]. In this paper, we are just
interested to show how to exploit the Community
ontology in any selection strategy. The selected
composite service can be replaced in the XML
file to send it to an execution engine like BPEL.
        </p>
      </sec>
    </sec>
    <sec id="sec-9">
      <title>5. RELATED WORK</title>
      <p>
        Atomic or composite Web services are typically
described by using languages like OWL-S [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]
and WSMO [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], which provide mechanisms for
the description of Web service composition.
WSMO is more abstract than OWL-S and It
separates between user goals (objective) and
service description. We take advantage from
WSMO how to separate between user goals
(composite or atomic abstract service in our
model) from service description and we take
advantage from OWL-S how to describe
composite abstract services.
      </p>
      <p>
        A lot of existing Web services provides similar
functionality. However, there is currently little
effort on abstracting these similar services into
high-level common services. Although the
OWLS and WSMO languages provide a way to
describe composite services but their
recommended ontologies framework are still
limited to capture similar services as concrete
services for the described abstract service.
In [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], the authors propose an extension to the
OWL-S ontology framework to support implicitly
gathering services into communities. They
enable defining the composite services at the
abstract service level. They include a service
instance pool that allows filtering and plugging in
candidate services at runtime. However, the
candidate services at the instance pool are still
related to the service Profile of OWL-s. In
OWLS, service Profile mixes functional and
nonfunctional description of concrete services.
Several works handle description and
management of gathering similar Web services
into explicit description of communities. Authors
in [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] define community as a collection of Web
services with a common functionality and
different QoS attribute. Benslimane et al. [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] and
Maamar et al. [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] describe the community as an
abstract Web service that defines the provided
functionality and a set of concrete Web services
that implement this functionality. In our work, we
consider that abstract service and community
are two different concepts; abstract service
defines a requested function which can be
atomic or composite, whereas, community is a
bundle of concrete services which have the
same functionality and other distinct functional
or non-functional attributes.
      </p>
      <p>
        Medjahed [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] proposes a community
ontologybased architecture for describing communities
and semantic Web services having the same
domain of interest. Maamar et al [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] describe
also how to manage communities with contract
net protocol in peer to peer organization. A
major advantage of our proposal that relates to
these works is the fact that our ontology is
based on OWL DL language allowing ABOX and
TBOX reasoning. Communities are defined as
sub-classes of another concept
(concreteService) and concretes services are
instances of the Community concept.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], the authors propose an expressive
ontology framework based on economic
technical aspects and they show how planning
and pricing algorithms can be realized using
SPARQL queries. Boukadi et al. [
        <xref ref-type="bibr" rid="ref16">17</xref>
        ] address
the problem of selection and composition with
community concept. They define ontology
description for context categorization. Another
selection strategy based on imposing constraints
on functional properties of concrete services is
defined in [
        <xref ref-type="bibr" rid="ref17">18</xref>
        ]. Our contribution focuses on
defining DL axioms to describe concrete
services as instances of communities.
      </p>
      <p>
        A general framework using OWL DL and rule on
atomic abstract services and classes of concrete
services has been presented in [
        <xref ref-type="bibr" rid="ref12 ref13">12, 13</xref>
        ]. In this
paper, we present an extended framework and
we show how concrete services can join their
communities according to their definition in the
proposed ontology.
      </p>
    </sec>
    <sec id="sec-10">
      <title>6. CONCLUSION</title>
      <p>In this paper, we have proposed ontology based
OWL DL language to cluster concrete services
into communities. We have also implemented a
hard condition for a concrete service to join their
communities, in order to ensure that the abstract
service defined by a set of operations meet
correctly user request. As future work, we intend
to add automatically context related to each
community and each concrete service in the
Community ontology. Another challenge is to
integrate optimization phase to a semantic
selection approach based on the context
description in order to locate the best
conforming composite concrete service.</p>
    </sec>
    <sec id="sec-11">
      <title>7. REFERENCES</title>
      <p>[16] APIs for WSDL (JWSDL). Version 1.2.</p>
      <p>Septemb.re 2006.
19</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Zeng</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Benatallah</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ngu</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dumas</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kalagnanam</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Chang</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          (
          <year>2004</year>
          ).
          <article-title>Qosaware middle-ware for Services Composition</article-title>
          .
          <source>IEEE transactions on software Engineering. N. 30 volume (5)</source>
          , pp.
          <fpage>311</fpage>
          -
          <lpage>327</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Benslimane</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Maamar</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Taher</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lahkim</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fauvet</surname>
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mrissa</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          (
          <year>2007</year>
          ).
          <article-title>Multi-Layer and Multi-Perspective Approach to Compose Web Services</article-title>
          .
          <source>AINA '07: Proceedings of the 21st International Conference on Advanced Networking and Applications</source>
          , Niagara Falls, Canada. pp.
          <fpage>31</fpage>
          -
          <lpage>37</lpage>
          . IEEE Computer Society Los Alamitos, CA,
          <source>USA. ISBN 0-7695-2846-5.ISSN 1550- 445X.</source>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Maamar</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sattanathan</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Thiran</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Benslimane</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bentahar</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          (
          <year>2009</year>
          ).
          <article-title>An Approach to Engineer Communities of Web Services - concepts, architecture, operation, and deployment</article-title>
          .
          <source>IJEBR</source>
          .
          <volume>9</volume>
          (
          <issue>4</issue>
          ), pp.
          <fpage>18</fpage>
          -
          <lpage>23</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Medjahed</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bouguettaya</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          (
          <year>2005</year>
          ).
          <article-title>A dynamic foundational architecture for semantic Web services</article-title>
          .
          <source>Distrib. Parallel Databases. N. 17 volume (2)</source>
          , pp.
          <fpage>179</fpage>
          -
          <lpage>206</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Baader</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Calvanese</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>McGuinness</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nardi</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Peter</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          (
          <year>2003</year>
          ) .
          <article-title>The Description Logic Handbook: Theory, Implementation, and Applications</article-title>
          . Cambridge University Press. pp.
          <fpage>43</fpage>
          -
          <lpage>95</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          <article-title>[6] OWL. Web Ontology Language Overview</article-title>
          . Retrieved 30 avril
          <year>2014</year>
          , from http://www.w3.org/TR/owl-features/.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          <source>[7] SPARQL. SPARQL 1.1 Query Language. (n.d.). Retrieved 1 May</source>
          <year>2014</year>
          , from http://www.w3.org/TR/sparql11-query/.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Kremen</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sirin</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          (
          <year>2008</year>
          ).
          <article-title>SPARQL-DL Implementation Experience</article-title>
          .
          <source>Proceedings of the Fourth OWLED Workshop on OWL: Experiences and Directions</source>
          . Washington, DC metro, No.
          <volume>496</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <surname>Lara</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Roman</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Polleres</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fensel</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          (
          <year>2004</year>
          ).
          <article-title>A Conceptual Comparison of WSMO and OWL-S. In : ECOWS 2004</article-title>
          .
          <article-title>Volume 3250 of LNCS</article-title>
          ., Springer. pp.
          <fpage>254</fpage>
          -
          <lpage>269</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>W E.</given-names>
            <surname>Christensen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Curbera</surname>
          </string-name>
          , G. Meredith, and
          <string-name>
            <given-names>S.</given-names>
            <surname>Weerawarana. Web Services Description</surname>
          </string-name>
          <article-title>Language (WSDL) 1.1</article-title>
          . Retrieved 1 May 2014 from http://www.w3.org/TR/wsdl,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>Dong</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sun</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhao</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          (
          <year>2008</year>
          ).
          <article-title>Hierarchical Composition of OWL-S Web Services</article-title>
          .
          <source>In Proceedings of the 2008 Sixth International Conference on Software Engineering Research</source>
          ,
          <article-title>Management and Applications (SERA 08)</article-title>
          . IEEE Computer Society, Washington, DC, USA, pp.
          <fpage>187</fpage>
          -
          <lpage>194</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Boustil</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sabouret</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Maamri</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          (
          <year>2010</year>
          ).
          <article-title>Web services composition handling user constraints: towards a semantic approach</article-title>
          .
          <source>In Proceedings of the 12th International Conference on Information Integration and Web-based Applications and Services (iiWAS '10)</source>
          . Paris ACM, New York, NY, USA, pp.
          <fpage>913</fpage>
          -
          <lpage>916</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>Boustil</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Maamri</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sahnoun</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          <article-title>A semantic selection approach for composite Web services using OWL-DL and rules</article-title>
          ,
          <source>Service Oriented Computing and Applications Journal (SOCA)</source>
          , vol.
          <volume>8</volume>
          , no.
          <issue>3</issue>
          , pp.
          <fpage>221</fpage>
          -
          <lpage>238</lpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <surname>OWL-S. Semantic</surname>
          </string-name>
          <article-title>Markup for Web Services</article-title>
          .
          <source>(n.d.). Retrieved 1 March</source>
          <year>2014</year>
          , from http://www.w3.org/Submission/OWL-S/
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>Blau</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Neumann</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Weinhardt</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lamparter</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          (
          <year>2008</year>
          ).
          <article-title>Planning and Pricing of Service Mashups</article-title>
          .
          <source>In Proceedings of the 2008 10th IEEE Conference on ECommerce Technology and the Fifth IEEE Conference on Enterprise Computing</source>
          , ECommerce and E-Services. IEEE Computer Society, Washington, DC, USA. pp.
          <fpage>19</fpage>
          -
          <lpage>26</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [17]
          <string-name>
            <surname>Boukadi</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ghedira</surname>
            ,
            <given-names>C</given-names>
          </string-name>
          ,.
          <string-name>
            <surname>Maamar</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Benslimane</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vincent</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          (
          <year>2009</year>
          ).
          <article-title>ContextAware Data and</article-title>
          IT Services Collaboration in E-Business.
          <article-title>Large-Scale Data-</article-title>
          and
          <string-name>
            <surname>Knowledge-Centered Systems</surname>
          </string-name>
          .
          <volume>1</volume>
          , pp.
          <fpage>91</fpage>
          -
          <lpage>115</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [18]
          <string-name>
            <surname>Gamha</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bennacer</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vidal-Naquet</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>El Ayeb</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ben</surname>
            <given-names>Romdhane</given-names>
          </string-name>
          ,
          <string-name>
            <surname>L.</surname>
          </string-name>
          (
          <year>2008</year>
          ).
          <article-title>A Framework for the Semantic Composition of Web Services Handling User Constraints</article-title>
          .
          <source>International Conference on Web Services (ICWS</source>
          <year>2008</year>
          ). pp.
          <fpage>228</fpage>
          -
          <lpage>237</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [19]
          <article-title>Jena site</article-title>
          .
          <source>Retrieved 1 January</source>
          <year>2014</year>
          from: http://jena.apache.org/.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>