DETECTING SERVICE INTERACTIONS IN A TELECOMMUNICATIONS NETWORK

Abstract: A system for detecting interaction between different services on a telecommunications network includes a computer expert system. A data store in the expert system is programmed with data which represent attributes of service features. A rule store is programmed with rules which relate feature attributes to interaction behaviours. An inference engine is connected to the data store and to the rule store and processes the data and the rules to detect any interaction between the services. The data in the data store may be arranged as sets of objects, each object in a set corresponding to a different state transition of the corresponding feature. The different objects may be given sequence numbers corresponding to the time sequence of execution of the feature. At least some of the rules may relate to these sequence numbers.

Description: DETECTING SERVICE INTERACTIONS IN A TELECOMMUNICATIONS NETWORK The present invention relates to telecommunications networks, and in particular to the detection of undesirable interactions between different services running on a network Telecommunications networks are increasingly required to offer customers services in addition to basic call-handling. The development of novel network architectures, such as the IN (intelligent network) architecture, together with developments in computing platforms for telecommunications systems, make it potentially possible to offer customers a large portfolio of additional services to select from. However, as the number of services increases, and as services become available from independent service providers in addition to the network operator, then service feature interaction becomes a serious problem. It is often found that features offered by one service interact in an unwanted manner with features of other services. For example, a voice messaging service, such as BT's CallMinder service, may have as one of its standard features a behaviour such that incoming calls are diverted to the messaging service whenever the called line is busy. Another available service, Call Waiting, handles the same condition, namely the called number being busy, in an entirely different fashion. The Call Waiting service transmits an alert tone to the user and gives the user the option of interrupting the on-going call to speak to the new caller. It can be seen that if a customer wanted to subscribe to both services, then there is conflict between the service features which needs to be resolved. Otherwise, it would be necessary to bar the provisioning of both of these services to a customer, with a consequent loss in utility to the customer, and loss of revenue to the service provider. Conventionally, during the planning of new services for a telecommunications network, attempts have been made to detect in advance any interaction problems by writing English-language specifications of the service features. Using these specifications a paper "walk through" of the services is then conducted, with the design engineer going step by step through the different services and spotting any interaction problems This is a time-consuming procedure which can never be completely reliable, leaving the possibility that unforeseen interactions will occur when the service is deployed. Some attempts have been made previously to automate the detection of interaction during the design phase For example, International patent application W095/22231 discloses a method of detecting service interactions which uses formal specifications of the additional services. The algorithm uses information that is specific to the services being tested which needs to be rewritten every time a change is made to one of the service features. Moreover, the approach adopted requires that a formal model should be prepared for every service feature which is handled. The preparation of such formal models is a difficult and time-consuming task requiring a high level of expertise. According to a first aspect of the present invention, there is provided a system for detecting interaction between services running on a telecommunications network comprising: a computer expert system including: a) a data store programmed with data representing attributes of service features; b) a rule store programmed with rules which relate feature attributes to interaction behaviours, and c) an inference engine which is connected to the data store and to the rule store and which is arranged to process the data and the rules, thereby detecting any interaction between the services. The present invention adopts a radically new approach to the detection of service feature interaction, through the use of an expert system. The traditional domain of use of expert systems is for diagnostic classification problems involving data which is essentially static. A well known example is the identification of a particular bacterium from a series of statements about its properties and appearance. In this domain, expert system technology has a proven track record in reproducing and sometimes surpassing human expert performance for the same problem. It is not however been thought possible hitherto to apply such techniques to the problem domain of the present invention. Feature interaction in a telecommunications network is an essentially time-related phenomen and so on the face of it not suitable for expert system techniques. The present inventors have found however that with an appropriate knowledge representation, expert systems can successfully be used for feature interaction detection. This provides a dramatic reduction in the time required to uncover service mterworking problems, coupled with increased flexibility. The separation between the knowledge representation and the inference rules, means that changes or additions to the services can readily be assessed simply by making corresponding changes to the knowledge representation in the data store. In this way, the system is quickly able to detect any problems arising from the new features. By contrast with the prior art systems there is no need to repeat an entire "walk-through" from scratch. The system of the present invention may run, for example, at a local switch in a telecommunications network to aid the detection and management of interaction problems as they occur . Alternatively, or in addition, the system may be used during the development of a new service to detect any interaction problems prior to the deployment of the service. In the case of a system used at run-time in the network, then the output of the system may be fed to a control system for modifying the behaviour of the network in order to remove or ameliorate the detected interaction problem. The control system may, for example, modify the stored profile for a customer in order to disable one or more service features. A more sophisticated control system might initiate a dialogue with the customer to allow the customer to determine a default behaviour for the network. For example, in the case of the Call Minder or call waiting services, the user might be given the option of selecting the Call Waiting response, that is the transmission of an alert tone, rather than the Call Minder response, that is the transfer of the incoming call to a messaging service. Preferably the expert system data store includes a plurality of objects including, for each service feature which is represented in the data store, a set of objects corresponding to different respective state transitions of the feature. The term "object" is used in this document in the sense of object oriented design/programming (OOD/OOP) methodologies. As discussed in further detail below, the choice of an appropriate structure for organising the data in the data store is critical in maximising the efficiency of the interaction detection system. The inventors have found that the combination of the use of an object-based structure and a state transition representation of the service feature offers significant advantages both in efficiency of operation and in ease of development and modification of the detection system. The use of sets of objects representing different state transitions makes it possible to capture the characteristics of a service feature in a form which is well-adapted for processing by the inference engine. Preferably each of the said set of state transition objects includes a sequence number corresponding to the position of the respective state transition in the sequence of execution of the feature and at least some of the rules in the rule store reason over the values of the sequence numbers. Preferably the objects are arranged in a hierarchy of superclasses and subclasses of the superclasses, and some of the rules reason over superclasses and others of the rules reason over subclasses. The use of objects belonging to a hierarchy of classes, combined with rules which operate at different levels of the class hierarchy further increases the flexibility of the system. In particular, it ensures that when a new object is added to the data store, for example as the result of a modification to a service feature, there will already exist rules functioning at a higher level of the hierarchy which are immediately applicable to the new object, so that extensive modification of the rules is not required. According to a second aspect of the present invention there is provided a method of detecting interaction between services running on a telecommunications network comprising: programming a computer expert system with data representing attributes of service features and with rules relating feature attributes to interaction behaviours; processing the said data and the said rules in an inference engine and detecting thereby any interaction between the said services. According to a third aspect of the present invention, there is provided a method of operating a telecommunications network comprising: programming a computer expert system with data representing attributes of service features and with rules relating feature attributes to interaction behaviours; processing the said data and the said rules in an inference engine and detecting thereby any interaction between the said services; and modifying the operation of the network when an interaction is detected. Systems and methods embodying the present invention will now be described in further detail, by way of example only, with reference to the accompanying drawings in which: Figure 1 is a schematic of a system for detecting service feature interaction; Figure 2 is a schematic of a network having an IN architecture; Figure 3 is a state transition diagram illustrating one example of a service feature; Figure 4 is a class diagram showing the structure of the objects in the data store of the system of Figure 1 ; Figure 5 shows the structure of the switch management unit; Figure 6 shows a multiprocessor system for implementing the expert system of Figure 1 . A system for detecting and managing interactions between services running on a telecommunications network comprises an expert system 1 which in this example is connected to a switch management unit 2 within a service switching point (SSP) 3. As shown in Figure 2, the service switching point forms part of a telecommunications network employing an IN (intelligent network) architecture and including a further SSP 4, a service control point (SCP) 5 and an intelligent peripheral 6 The network, other than in the features described in further detail below, is conventional in nature. For further details of the IN architecture reference is made to the paper by T W Abernethy & A C Munday, "Intelligent Networks, Standards and Services", BT Technol J, Vol. 13, No. 2, April 1 995 and to the European Telecommunications Standards Institute Final Draft PRETS 300374- 1 , published July 1 994, the contents of both of which are incorporated herein by reference. The call control software within the switch management unit is structured as described in the paper by HM Blair, "Attacking Product Complexity: Broadband Call Control for Vision O. N.E" XIV International Switching Symposium, October 25- 30 1 992. Figure 5 shows the software structured into a chain of connection segments. In this software structure it is the responsibility of the User Transaction Segment (UTS) to invoke feature software and link it into the chain, based on customers' service data. In this example applicaton of the feature interaction expert system, the expert system forms part of the UTS. The expert system gets its input facts from the customer data and/or call progress signalling and the results of processing are used to decide whether to invoke feature software and if so, where in the call chain to link that software The expert system 1 includes a data store 1 1 , a rule store 1 2 and an inference engine 1 3 In this example, the hardware for the expert system comprises a distributed processing system using Pentium microprocessors with access to iocal RAM and to mass storage devices The data store 1 1 and rule store 1 2 are embodied in the storage devices and in the Iocal RAM, and the inference engine 1 3 is provided by appropriate programming of the Pentium microprocessors. Figure 6 shows in further detail the platform used in this example to support the expert system. Multiple Pentium CPU s are linked by a Iocal bus to each other, and to the region of RAM Data stored on a Iocal hard disk is accessed via a SCSI interface. The multiprocessor system is implemented on a motherboard which is linked to other components of the switch by an FDDI optical fibre LAN. In this example, in order to facilitate the use of an object-oriented knowledge representation, the expert system is implemented using an expert systems shell available commercially from Neuron Data Inc of Mountain View, CA as "NEXPERT OBJECT" (Trade Mark) This is an object-based expert systems implementation tool with facilities for implementation of rules in the C programming language. The implementation of the rules is based on first order predicate logic. The expert system operates by applying rules to facts. The facts may have been input to the expert system either manually by the human user, or by a call control programme Alternatively, the facts may have been inferred by previous applications of the rules The evaluation of a rule assigns a truth value to the hypothesis of the rule, which represents some new fact about the domain. As rules may trigger other rules in their predicate actions, a set of rules comprises a network through which simple conclusions may be propagated to arrive at more complex results It is found to be important that an appropriate form of knowledge representation is used for the facts This is particularly true for the problem domain of the present invention. As discussed in the introduction above, feature interaction is a characteristically time-related phenomenon, whereas expert systems have traditionally been applied to static diagnostic or classification problems. The preferred implementation of the present invention uses an object- based knowledge representation, in which the objects are derived from state transition models of the service features. A state transition model offers the functionality necessary to describe service features, provided that note is taken of the side effects of the transitions between the various states. It is the side effects that will lead to models becoming interdependent and hence interacting within the network. A telephony feature may make a state transition for a variety of reasons, including response to an event caused by a state transition for some other feature In the knowledge representation adopted in the present invention, the data store 1 1 is programmed with objects corresponding to the state transition of a finite state machine representing the behaviour of a telephony feature. As shown in Figure 4, the objects belong to classes which define a template for feature state transition objects It should be noted that the class does not relate to an instance of the feature acting on a particular call, but describes how the feature will behave depending on its context in a particular call Rules may then be written concerning behaviour of members of these classes, without reference to actual values of call data. Figure 3 is a state transition diagram representation of a service feature In this example the service is an account code service, such as BT's chargecard service. Figure 4 is a class diagram showing the objects used to represent such a feature in a system embodying the present invention. Figure 4 uses the OMT diagram conventions set out in "Object Oriented Modeling & Design" , Rumbaugh et al., Prentice Hall, ISBN 0- 1 3-630054-5 As shown in the Figure, the account code service comprises four state transitions, referenced a-d Within the knowledge base of the expert system, the feature is stored as an instance of the ServiceFeature class, comprising a name "ACCCode" and a set of four Feature Transition objects. Transition a: Sequence no. - 1 Trigger event - event type - dialled digits location - calling party data - 1 45 Caused event - event type - announcement location- calling party data - character string "A/C no. ?' Transition b: Sequence no. - 2 Trigger event - event type - mid-call dialled digits location - calling party data - e.g. 56789 (valid) Caused event - event type - announcement location- calling party data - character string "Enter no. ?' Transition c: Sequence no. - 2 Trigger event - event type - dialled digits location - calling party data - e g 34567 (not valid) Caused event - event type -clear call location general data - Transition d: Sequence no - 3 Trigger event - event type - mid-call dialled digits location - calling party data - e.g 01 473 644668 Caused event - event type -call event location- general data - e g. 01 473 644668 In developing the rules programmed in the rule store 1 2, use was made of a set of high level rules developed for this problem domain. These rules are grouped in terms of key words which collect the rules into concept groupings. The rules were then formalised and decomposed into smaller grains of knowledge to allow their implementation. Rules of small semantic weight use facts input to the experts system to extract simple conclusions The simple conclusions are then forwarded through the rule network for use by one or more rules at a higher level. These larger semantic weight rules eventually form conclusions which correspond directly to the English language definitions of the top level rules. As information is forwarded through the rule network, some re-use of the lower level rules is achieved. Simple components of knowledge which are useful in the implementation of one high level rule often recur in the conditions of another rule. The choice of rules used in the implementation affects the level of reusability which is achieved. An efficient implementation is arrived at by progressive refinement of the choice of low level rules used The rule evaluation process moves up through the rule network from data to higher level conclusions. The successful evaluation of a rule often leads to a subset of the feature state transition objects existing within the knowledge base being associated with a conclusion. When this occurs, a class is created dynamically corresponding to the subset of feature states. Those of the higher level rules which make use of the associated hypotheses then generally operate on the subset of feature state transition objects rather than the complete set, thus progressively constraining the scope of this subset and eventually arriving at a smaller one showing some interaction. Tables 2.1 -2.5 show examples of the rules from the rule store 1 2. It can be seen that hypothesis of low semantic weight such as "trigger location compatible" lead to hypothesis with semantic weight corresponding to the original English language rules such as "triggering conflict" Table 2.4 shows a rule operating on the feature transition attribute "sequence number" to infer that a particular service feature is "persistent" (it remains associated with a call after its initial actions when triggered) . Table 2.5 shows a rule operating on objects belonging to the super-class "run time event" to infer that a particular service feature initiates a new call as part of its actions. In use, when operation of the inference engine results in the hypothesis of rule 2.3 having the value "TRUE" then this result may be acted on by the switch management unit 2 to modify or inhibit one or more of the features running on the switch, so as to resolve the conflict arising from the feature interaction problem. For the particular call control software architecture illustrated in Figure 5, this involves the User Transaction Segment (UTS) either not invoking the Feature Segement (FS) corresponding to one of the features concerned or modifying the positions in the call chain of the relevant FSs TABLE 2.1 lf < I feature_transιtιon I > .tπgger_event_locatιon equals "remote" And < I feature transition I > .tπgger eventjocation equals next_feature_transιtιon.trιgger_event_location Then triggerjocations compatible Action Create Object < I feature transition I > location compatible traπsition I TABLE 2.2 If triggerjocations compatible And < I location compatible transition | > .trιgger_event location equals "remote" And < l location compatιble_transitιon | > .destjιne_state equals next_feature_transitιon . dest_line_state Then line_transition_compattble Action Create Object < I locatιon__compatible_ transition I > i compatible transition I TABLE 2.3 If line_states_comρatible And < I compatible_transition I > .trigger_event_type equals πext_feature_transitιon.trιgger_event_type And < I co patible transition | > .local line state equals next_feature_transιtιon. local state Then triggering conflict TABLE 2.4 Rule using the Feature transition attribute "Sequence number" lf < I service feature I > . < I feature transitions I > .sequence number. 1 Then persistent feature Action Ceate Object < I service feature I > I persistent Jeatures I TABLE 2,5 Rule using the "Run time event" class lf< I service feature I >.< I run time eventl > .event type equals "new call" The multiple calls feature Action Create Object < I service J^eature I > I multiple_calls_features I Appendix A - Example expert system The following definitions document an expert system embodying the invention. The first section describes the expert system in terms of the class structures of the knowledge base, the static objects in the knowledge base and the rules which act on ob j ects in the knowledge base The second section is a snap-shot of the objects in the expert system after details of several service features have been added to it. The definitions are printed out from the A/expert Object tool in the format as documented by the Nexpert ob j ect reference manual (January 1991), pan number Man 10-400-01. A basic undertandmg of object oriented principles as well as expert system basics are assumed. Simple types used are Boolean (B), Integer (I) and String (S) Expert system definition Class definitions NAME NAME cascjdc_<ιtlat PROPERTIES reature name = (S) l.n iuiun NAME compntible statcs PROPERTIES Iocal Jme_state - (SI Unknown tπgger_event_tvpe = (S) I inknown NAME conflictim; local an noiiii.uvrcnt NAME contlictim: remote iiniiniiii-.mem NAME control toilcs PROPERTIES cascade_attachmt.nts - (S) Unknown caused local ev ii - (S) Unknown caused remote entl = (Si I nknown caused_remote_event2 = (Si I 'nkno n destjιπel__taιe - |S| I nknown dest_lme2_state - IS) I nknown teature_name = IS) I nknown local line stalL = (S) I nknown locatιon_attaclιnιems = (S) I niknow rank = (111 nknown sequence number = (I) Unknown tπgger cvent ocation - (SI Unknown tπgger_event_type = (S) Unknown NAME teature states SUBCLASSES states_compalιble_return returned_lsc lsc_out working eature staies trιggeπng_contlιct control cυdes PROPERTIES cascade attachmenls - (S) Unknown NAME tealure stales cascade . attachments caused_local_evenι = (S) Unknown caused remote event I = (S) Unkno n caused_remote_eveιtl2 = (S) Unknown dest_lιnel_state = (S) Unknown dest lιne2_state = (S) Unknown teature_πame = (S) Unknown Iocal Jιne_state = (S) Unknown location attachmeiUs » (S| Unknown rank = (I) Unknown sequence number - (I) Unknown tπgger evenljocalion «• (S) Unknown tπgger_event_lvpe - (S) Unknown NAME locatιon_compaιιble_ PROPERTIES destjiπel state = (SI Unknown Iocal line state = (S| Unknown (Si Unknown NAME Isc out PROPERTIES cascadc_attachmenu - (S) Unknown causedjocal event - |S) Unknown catised remotc evcπi I - (S| Unkno n caused_rεmote_event2 - (S) Unkno n dest linel state - (S) Unkno n desl ιne2_state = (S) Unknown teature_name = (S) Unknown local l ιne_state = (S) Unknown location attachments = (S) Unknown rank = (I) I nknown sequence_number = (1) 1 nknown lπgger_event local ion : (Si I nknown tπgger evetu typc = ( i t nknown NAME nanies aϋaclied PROPERTIES I ' eature name = (S) I nknown tπgger_event_locntιoπ = ( I nknown NAME old value NAME old_valιιes PROPERTIES teattιre_ιιaιne = (Si Unknown NAME : possiblejeaturc^ PROPERTIES causedJocal_event - (S) Unknown caused_rcmote_event I = (S| I nknown caused_remote_event2 - (S) I nknown t ' eature naine = (Si Unknown trisser event location = (SI Unknown NAME ■ returned Isc PROPERTIES cascade_attachments = (SI Unknown caused local event = (S) I Inknown caused remote event I = (Si I nknown caused_remote_eveιu2 = (St 1 Inknown desl_Iιnel_stale = (S) Unknown dest lιne2_stale = (S) 1 inknown i ' eature_name = (S) Unknown Iocal Jιne_state = (S) t nknown = (S) I 'nkno n rank = (1) 1 ' nknow sequence number = (I) I nknown trιgger_evcnt locatιon = (S) 1 nknown trigger_event_type = (S) 1 nknown NAME states compatible PROPERTIES cnscade_atlachmenh = (S| I nknown caused local event = (Si I nknown caused_remote_evem! - (Si I nknown caused remote (SI I nknown destjιπel_state = (S) Unknown destjιne2_state = (S) Unknown teature name = (S) Unknown local Jme state = (S) Unknown location attachinents = (S) Unknown rank = (I) Unknown sequence number = (I) Unknown tπgger event location = (S) Unknown iπgger event tvp = (SI I Inkno n NAME triggering conlhcts PROPERTIES cascade_attachments = (S) Unknown caused local_event = (S) Unknown caused remote event I = (S) Unknown caused_remote_evcnt2 = (S) Unkno n dest lιnel_staιe = (S) Unknown dest lιne2_state = (S) Unknown teature name = (S) Unknown localJιne_state = (SI Unknown Iocatιon_attachments = (S| Unknown rank = (l) Unknown sequence number = (I I Unknown tngger_event location = (SI Unknown tπgger_event_type = (S) Unknown NAME working teature states PROPERTIES cascade_attachιτιents = (SI Unknown caused local event = (S) Unknown caused remote event I = (S) Unknown catιsed_remote_event2 = (S) Unknown dest inel statc = (S) Unknown destjιne2_state = (S| Unknown feature name = (S) Unknown local_lιne_state = (S) Unknown locatιon_attaclιmenls = (S) I inknown rank = (I) Unknown sequence_mιιτιbcι - (I) Unknown tπgger_eventJocatιon = (S) I nknown trιgger_event_type = (S) Unknown Properties definitions NAME cascade attachments TYPE String NAME causedJocal_event TYPE String NAME caused remole event I TYPE String NAML caused_rcmote evenl2 TYPE String NAME dest i ine l stale TYPE String NAME destjιne2_st.ιlc TYPE String NAME teature name TYPE String NAME local Inte state TYPE String NAME !ocatιon_atlachments TYPE String NAME rank TYPE Integer NAME retumval TYPE integer NAME sequence j uimhcr TYPE Integer NAME tπgger_even[Jocatιon TYPE String NAME TYPE String NAME Value TYPE Special Rules definitions RULE Rule 29 If there is ev idence ol mcicmental state development And there is no evidence ol cascadc tπggeπn exists And <|teature_statcs| aturc nanie is equal lo next teature state teature name And (next teature_stiilc sequenccjHimher-<|teauιre_states| - sequence number) is precisely equal to I And Execute ".) And • 'Iteattire states] i.ink ι.s precisely equal lo I And ne\t_ tcature_stMc cascade attachinents is not equal to "dumnn ' And location allaclimcnis is not equal lo ' dumim ' And Execute "add_cascadc"(O I OMID=neM leauire_stalc. Iteatine states|>.) Then cascadejiistorv is contirmed RULE Rule 2 If there is evidence of ιncιemental_state_development And there is no evidence ot cascade trtggermg exists And <|teature_states|~- leature name is equal to nexi leahirc state leature name And (next lenture_xt ιe .seqtιence_ιuιmber-<|tealιιre_slales| ' sequence number) is precisely equal to 1 And Execute "RankList"(@ATθMID=<|teatιιre_suιtes|>.firSTRING=' ^RΛNKBY=cascade attachmems ώRANKSET=τank,@rNCREASrNG ",) And <|reature_staιes| lank is precisely equal to I And next teature statc cascade attachmems is not equal to "dumim ' And next_tcatιιre_statc location attachments is not equal lo "dtimmv " And Execute "add_casc.ιde"((< " l MID=πe\t teauirc statc ■ '|teaιure_states|>,) Then cascade_hιstorv is confirmed RULE • Rule 1 If there is evidence ot ιncιemental_state_development And there is evidence nt cascade tπggeπng e ists And <|teaturc_states|- leature_name is equal to next_tealure_stale teature name And (next teauire staic sequeιιce_ιuιιnber-^|leature_statesl > sequence number) is precisely equal to I And Execute ".) And <|tealure_sla(es| ι,mk is precisely equal lo I And next_lcatιιre_sιaιe cascade attachinents is not equal to "dumim " And nextjeatiirc stalc location attachments is not equal to "dumim " And Execute "add_case.ιde"( ( iM " IOMID=next_leature_statc |teattιre_states|> <)lsc_out|>.) Then cascade historj is confirmed RULE Rule 6 if <|workιng_lcaιure_si,ιics| - ιπggeι_evenl_tvpe is equal to next lealnre state caused remote event I And 'Iworkina eatiiic states^ tπgger evcπljocation is preciseK equal to "remote' And next Jcatnre statc dcstjinc I stale is not equal to ' police And Delete Obiecl |rciιιtnedjsc| And Delete Olηecl |lse oιιt| And Cie.ile Obiecl ιwoιkιng_leatιιιc_states| |Kc out] And Execute "lιne_states_compatιble { \T MII ) =|lsc_oιιt| next leatiirc state ui SI RING- Incal line state destjιnel_state" ) Then cascadc_tπggeι is continued RULE Rule s If <|workιng_lcaltιrc st tes^ tπgαcr_evenl_lvpe is equal lo nest le ιluιe_state caused local event And --| orkιng Icatiuc tates^ tπgacr eventjncation is preciseK equal lo remote And next lc.iiure stale local Jnie state is not equal to police And Delete Obiecl |Kc out| And Delelc Obiecl Ireuiined Isc! And Crenic b|cct lwoιkιιιaJeature_states|-> |lsc_oulj And Execute "lιne_states_compatιhle ( tt A70 II ) =|lsc_out| πext eature state (ic'STRlNG= destjιnel_statc local lιne_state",) is continued RULE Rule 4 II ■ "Iworkm- caiiire si ικsl> tr gcr_event_type ts equal to nexι_leaιuιe_state caused_remote_event2 And ''|vvur ιπ _lcatuie_'-taιes|> tπgger_evcnt_locatιon is preciseK equal lo "local' And next Icitiirc uie tlcst_lme2_slate is not equal lo "police And Delele ( >hιcct Ke oιιt| And Delcie Obiecl lrelmnedjsc| And Crc.iic Obiecl |w.u ιn eature_statcs|> |lsc_oιιt| And Execute "line states compatihle I <ι \ r II ) -|lsc_out| next_teaturc_state (^STRING- local line state dest lιnc2_state" ) is continued RULE Rule 3 11 <|workιng leautre siaies trig er event tvpc is equal to next tcature state caused remole eventl And states|> tπgger eveni location is preciseK equal to "local' And next Icalure siale dcst ιιicl_staic is not equal to 'police And Delete Obiecl |rctuincd lsc| And Delete Obιect|lsc oιιt| And Create Obiecl 'lwoιkmg_lcatιιre_xtaies|> llsc_otιt| And Execute "lιne_states_compatιhle"('< TOMII ) =|lse_out| next caUire_state,(<ι\STRlNG="local lιne_state.destJιne l_state",) Then cascade tπggeππg e.xists is confirmed RULE Rule 7 It there is e\ ideiice ot possible feature Jisted And •-'llealuie states! it ιager_event_tvpe is precisely equal to ' control code" And ' leature name is equal lo JpossiblcJeaiurexl • teature name And <|possιble_teatιιres| • trigger eventjocation is precιsel> equal to "Iocal" And C reate Object ^|leattιre_states|-> |control_codes| Then control code liistorv is continued RULE Rule 8 If <|teature_states| > teatuie name is equal to next teature stale feature name And <|teauιre states| ' sequence number is equal lυ next Jealιιrc_state sequcnce_number Then duplicate state is confirmed RULE Rule 9 If 
 teatuie name is equal lo nex eature state feature name And <|teaιuιe_states| • eausedjocal evem is precisely equal lo "announcement" And Create Obiect ' |leaιurc_states|> |announce lιιstory| Then history built is confirmee! RULE Rule 1 1 If 
 leattιιe_name is equal to next tealure siate leature name And Delete Obiect |vvorkιng leature_states| And Create Obiect ' - lleature_stales|>^ |workιng teature siatesi Then incrememal staie developnicnl is confirmed RULE Rule 10 If 
 leature name is equal to next leature state teature name And Delete Obiect |woιkιngJeaturc_states| And Create Obiect • - ■ llcature_slales|^> |workιng_lealure_states And (<ltcature_state.s| sequcnee iuimher-πext leature state sequence number) is greater than or equal to 0 And Delete Obiect ^|lealure_statesl> |vvorkιng_tealure_statesi Then incremental state developmeni is confirmed RULE Rule 12 If there is ev idence of ti ici'-ict Jocalion.s compatible And ne.xt teaUire slaie- lnealjιne_slate is not equal to "police" And ncxl leature slalc desl line I stale is not equal lo ' police'' And Execute "feature states _compatible"(f( T MID=|localιnn_compatiblc_statcs|. next feature state.) Then line_states_ok is confirmed RULE Rule 15 If there is evidence ol possible features listed And <|possιhleJeatιιιcsp .caused local_event is preciseK equal lo "announcement" And <|names_attaclιc'dl teature name is equal lo |possιhle_feaιurc-s|>.teature_name And <|πame.s attached! tπggcr event ocation is preciseK equal in "remote" And <|possιble_feat cs' ^.teature name is equal to <|names _atiached|>.feature_πame And Create Obiect - ιpπssihle_l ' ealures|> |contlictmgjocal_announceιnent| Then local annoimcement conllici is confirmed. RULE . Rule 14 If there is evidence l possible eniuresjisted And <|possihle featuιcsi • caused remote event I is precisely eutial lo "announcement" And <|namcs_attached' leature name is equal to ιpossible_leattιres| .feature_name And <|names_attachedι - trigger event location is precisely equal to "Iocal" And <|possιhle featιιιc-sl - feature name is equal to <|names_altaclκd|>.feature_name And Create Object --Ipossible f ' eatιιres|> |con|]icιιng local_announeement| Then local_αnnoιmccmcn(_conllιcl is confirmed RULE . Rule 13 If there is evidence of possible lealures listed And |possιble lealuiesi - caused remote_cvenl2 is preciseK equal lo "announcement" And <|namcs_attaclιed; leature name is ei|ual to |possιble_leamrcs| .l ' eature_name And <|namc-s_attachedl trigger cveni location is precisely equal to "Iocal" And <-|pos.xιhU: caluics ■ teature name is equal lo |nnmc.x_allached|>.feature_name And Create Object -|possιble_l ' ealures| lconllicting local annoiiiicementl Then local announcemeiit conllicl is confirmed RULE . Rule 16 If there is no evidence ol iticreinental state development And Delete Obiecl |woιkιng_tea(ιιιe_states| And C ieate Obiecl |lealιιre_stales| | wor ing leatme_states Then new teature developmeni is conlirnied RULE Rule 17 If there is evidence ol cascade Jiixiorv And Fxecule "mvJenglh"((ϊMT MID=nextJcatιιre_sta[e cascade attaclimenLs.temp returnval.) And Execute "create_oh|s"((<M rOMlD=temp returnval.|nanιes_attaclιed|,@STRrNG="altached_name".) And Execute =SETFWRD",) And Execute "GetMultιValuε"((li)ΛT0 ID=ne\t leature state localion atiachnients |names_attached|> trigger event location,) And |leature statesi - leature_namc is equal to =:|names_auached| leature name And reate Obiect <|lcaιure_statcs|> (possible Jeatures| Then possible eaiures listed is confirmed RULE Rule 19 If there is evidence ot possihle eaturesjisted And <|possιble caused remote_eveiit2 is preciselv equal to "announcement" And <|nanιcs_attnched| teature name is equal to <|possιhleJeaturcs| ~ > teature name And <|names_attached| iriggcr event location is preciselv equal lo 'local" And <|possιble teatures|> teature name is equal to <|πames_attached|> teature name And C reate Obiect <|possιble leatures|> |contlιclιng_remole_announcement| Then rεmote announceinent contlict is confirmed RULE Rule 18 It there is evidence ol possihlc teatures listed And |possιble_teaturesi^ cnused remote eventl is preciselv equal lo "announcement" And <|names_attachedl leaturejiame is equal lo <|possιble_leιιluresl> teature_name And ^|namcs_attaclιcdl tπgger cvcnl location is precisely equal lo "Iocal" And <.|possιble teatuiesl ^ teature name is equal lo |namcχ a(lachedl> teature_πame And C reate Obiect -|possιbleJeatures|> |conllιcltng_remotc_announcement| Then remote announcemeiit conllici is confirmed RULE Rule 20 If Execute "report"!) Then report generated is conlirmed RULE Rule 21 If E ecute SetMultιValιιe'( ( IOMID=ncxl_leaUιrc_stalccaseadc_attachments,(aSTRING="@ADD=CalI Waiting Call Diversion Call Due-it on Utisv ((NODllI' ICΛir TRING ) And I xeeuic "SelMιιltιValue'(ι« ) Λ Iocal remoteifflDUPl IC \TE f C OMI'=STRING" ) And Lxecule 'add_c.ιseadc"( ΛTθMID=next_leature state <ιS rRINϋ="CalI Back When Free, local",) Then test is confirmed RULE Rule 22 It next feature_state desi Interstate is not equal in "police ' And Execute "iιne_states_compatιble'( (MTOM!D=|leatιιre_states| next leaiure statc '«ST ING="localJιne_state.dest lιnel_state",) Then test2 is continued RULE Rule 24 If <|teature staιes|> trtggcι_evuιtjocαtιon is preciseK equal in Iocal ' And <|teauιrc_states| uigger event location is equal to ncx eatmc state trιgger_event_locatιon Then trigger locations compatible is continued And C reaie Obiect • 'lle.ιture_state χ |> |locatιoιι_compatιble_statesι RULE Rule 23 If 
 triggci cvcM loealion is precisely equal lo remote ' And <|lea(ure_states| lngger evenl location is equal lo nexl leature state trιgger_evenιJocatloπ Then trigger Jocations compatihle is confirmed And Create (>h|ect lie ιuιre_sialcs| |localιon eonipatihle states RULE Rule 28 It there is e idence nl line stalcs o And <|siates_eompatιhle_relurn ■■ tπgger eveni tvpe is equal to next teature_state trιgger_eveπt_typc And Creale Ol ecl ' (stales eompatιhle_rclιιrnι> nnggerιng_cnntlιus| Then tπggering conllici is continued RULE Rule 27 8/14017 24 If 
 tπggei evetil tv pe is equal lo nexl lcnture i.iie caused local_εvent And <|lealιιre statesl local lιne_slatc is equal lo next leaiure slate Iocal Jme state And Create Obiect - llealure siatosl " * |lrιgaerιng_contlιcts| Then trιggerιng_conllιet is confirmed RULE Rule 26 If <|feattιre_states|> triguei eventjypo is equal to next feature state enused_reιnote_event I And <|leattιre_states| - desijine l state is equal lo next teature state dest line l state And Create Ob|ecl |tealure_stales|> |tπggeπng_conllιctsι Then triggeπng eonllict is confirmed RULE Rule 25 It <|featιιre_states|>.trιgger_evem ype is equal to nextjeature state caused_remote_event2 And <|teattιre_states|> destjine l state is equal to next teature stale dcstjιne l_state And Create Ob|ect 
 triggerin conflicts) Then tπggering contlict is confirmed List of hypotheses cascade history Unknown cascade tπggeπng e.xists Unknown * control code history Unknown * duplicatε state Unknown * history >uill Unknown incremeπtal state development Unknown lιne_states_ok Unknown * local announcement contlict Unknown * new_feature_developιϊieπt Unknown possιble_featuresJisted Unknown * remote_announceιrtent_contlict Unknown * report_generated Unknown * test Unknown * test2 Unknown triggerjocations compatible Unknown ' trιggerιng_con/lιct: Unknown Snap-shot of objects in the expert system after details of several service features have been added Objects describing the Call back when free feature NAME : CBWFI CLASSES feature_states PROPERTIES cascade attachmenis = (S) none NAME . CBWFI cascade. ttachmenis caused local eveni - (Si announcement NAME - CBWFI caused remote event I ■ = isiuone NAME CB WF I caused enl I caused_remote_evcnt2 - (Si none NAME CBWFI caused remote dest_lιπel_staιc - isi.i NAME. CBWFl.desi linel siaie dest line2_sιaιc = (Sianv NAME" CBWFI de-si Iιιιe2_statc feature name = |S» ( all Hack \\ hen Free NAME CBWFI leaiure name localJιne_staιe - (Si idle NAME: CBWFI localJιnc_sιaie locatιoπ_atlaclιnιents = |Si local NAME : CBWFI location . attachments rank = (II I ' iiknoun sequence number = (1) 1 NAME : CBWFI. scquenccjminhci trigger_event_locatιon = (S| local NAME ■ CBWF I. triggcr_eve.nl location trigger_event_type = (Si control . code NAME . CBWFI.lπgger_evenl \|ie- NAME CBWF2 CLASSES teaturc states PROPERTIES cascade attachments = (S) ( . all Diversion. Call Wailmg.Call Diveit On Itusy NAME CBWF2 cascade attachments caused local event = (S) eize NAME CBWF2 caused local_event caused remote eventl - (S) seize NAME CBWF2 caused remote event I caιιsed_remote_εvent2 - (S) none NAME CBWF2 caused_remole_cvom2 desi linel state = (S) busy NAME CBWF2destJinel_state dest_line2_state = (S) any NAME CBWF2 dest me2_state feature_name = (S) C all Back When Free NAME CBWF2 feature jiame Iocal Jine_state = (S) any NAME CBWF2 local line state locatιon_attachments = (S) local. Iocal. Iocal NAME CBWF2.locatιon_attachnιents rank = (I) Unknown sequence number = (I) 2 NAME CBWF2 sc ience nuvibci trιgger_event_locatιon = (S) lemote NAME CBWF2 trigger event local ion tngger event type = (S) clear NAME CBWF2trι Ljer_event_tvpe Objects describing the Call diversion feature NAME CDI CLASSES teature_states PROPERTIES cascade_attaclιmenls = (Si none NAME CD1 cascade tiachnieπis causedjocal eveiil - (S) announcement NAME CD I caused local event caused_remote_evenl I = (Si none NAME CD I caused_remote_evenι I caused_remote_evenl (Si none NAME CDl causcd_rc-mote_eveιu dest l inel state = (S)any NAME CDl desljmel state dest Jιne2_state = (S) any NAME CDl dest lιne2_state teature_name = (S) all Diveision NAME CDl. feature- name localJιne_state = (S)any NAME CDl local line state locatιon_attachments = (S) local NAME CDl location altachmenls rank = (l)l inknown sequence_number = (I) I NAME CDl sequencejiuniher tngger_eveπlJocalιon = (S) local NAME CDl tπgger event locaiion tngger_eveπt_type = (Si control code NAME CD2 CLASSES feature_states PROPERTIES cascade attachments = (S) C all Waitinα. Call Diversion NAME CD2 cascade altachmcnis caused Jocal_evenl = (SI none NAME CD2 caused local eveni caused remote event I = (Si seize NAME CD2 caused remote evenl I caused_reιnote_eveπl2 = (S) none NAME CD2 caused_remoie_evcnι2 dest lιnel_state = (S) any NAME CD2 est lιnel_state destjιne2_statc = (S) any NAME CD2dest lιne2_state feature name = (S) C ll Divusion NAME CD2 teattιre_name local line state = (S) any NAME CD2 Iocal Jme_state locat!on_attachmeιιts = (S) Iocal NAME CD2 location attachments rank = (ll Unknown sequencejiumber = (1)2 NAME CD2 sequence number trigger event location = (S) local trιgger_event_type = (S) seize NAME CD2 tngger event tvpc NAME CD3 CLASSES teature states PROPERTIES cascade attachments = (S» none NAME CD3 cascade altachmeius caused local event = (SI none NAME CD3 cause Joc.ιl_cvtιιl caused_remote_eveιιιl - (Sieleir NAME CD3 utiised_rtmole_e i.nl I caused_remote_evtιιt2 = (Si none NAMF CD3 caused remote event^ dest linel stale = (S)husv NAME CD3 dest line I state dest lιne2_statc = (Si anv NAME CD3 dest lιιic _siatc teature_naιrιe - (S) C .ill Divcision NAME CD3 feature name local_lιne_state = (S| anv NAME CD3 local lιne_stalc locatιon_attachments = (Si local NAME CD3 location attachments rank = (I) Unknown sequencejtumber = (I) < NAME CD3 sequencejiumbcr tπgger_event_locatιon = (S) local NAME CD3 tπgger evenl location trigger event ype = (S| clear NAME CD3 triggu event tvpc Objects describing the Call waiting leatiii t NAME CWI CLASSES feature states PROPERTIES cascade attachments = (S) none NAME CWI cascade attachment caused Jocal eveni = (S) iniiouncemenl NAME CWI caused Jocal eveni caused remote event I = (S) none NAME CWI caused remote evenil caused_rεmotc_evenl2 = (Slnone NAME CWI caused remote_evenl2 dest lιnel_sιate = (S) any NAME CWI dest_lιntl_state dest_lιne2_ tate = (S)anv NAME CWI desl lιne2_state teature_name = (S) C all Waitinu NAME CWI teature name local line state = (S) idle NAME CWI Iocal Interstate location attachments = (S) Iocal NAME CWI location attachments rank = (I) Unknown sequence number = (I) I NAME CWI sequence number tπgger_event locatιon = (S) Iocal NAME CWI trιgger_eveιιtjocatιoπ tπgger_event_type = (S) control code NAME CWI trigger eventjvpe NAME CW2 CLASSES teature states PROPERTIES cascade attachments = (S) none NAME CW2 cascade attatlimenls caused local event = (S)hcep NAME CW2 caused_local_evcnt caused_remote_event I = (Slnone NAME CW2 caused remote eveni I caused remote_event2 = (S) announcement NAME CW2 caused remole_eveιιι dest lιnel_statc •= (S) call in pumicss NAME CW2desιJιιιel state dest lιne2_sιate - (S) dialling NAME CW2 dest lιnc2_slatc leature name = (S) C .ill W.niii NAMT CW2 teature iame local_lιne_state = (S) call in piocicss NAMF CW2 Iocal Jme_statc locatιon_attaclιments = (S) local NAME CW2 location attachments rank = (111 nknoun sequence_number = (I) 2 NAME CW2 sequence number trιgger_eventJocatιon = (Si local NAME CW2 trigger event locatioii trιgger_event_tvpe = (S) seize NAME CW2 tπgger event type NAME CW3a CLASSES teature states PROPERTIES cascade_attachιnenls = (S) none NAME CW3a cascade attachmenis caused local_evenl = (S) announcement NAME CW3a caused local_evenl caused remote event I = (S) clear NAME CW3a uiused cmote event I caused_remote_eveιu2 = (Slnone NAME CW3a causcd remole even dest_lιnel_state = (S) call in proiiiess NAME CW3adest linel state destjιne2_state = (S) call in process NAME CW3adest Jιne2 >talc teature name = (S)Call Waitin. NAME CW3a leature name local line state = (S) call in piumess NAME CW3a Iocal line stale location attachments = (S| local NAME CW3a locatioii attaclimciils rank = (I) Unknown sequeπcejiuiriber = (I) NAME CW3a seqiience ntiniher trιgger_event_locatιon = (S) Iocal NAME CW3a triuger eventjouilπm tπgger event type = (S) control code NAME CW3a tπgger event typc NAME CW3b CLASSES feature_states PROPERTIES cascade_attaclιmεnts = (S) none NAME CW3b cascade attachmenis causedjocal event = (S) iiinouncement NAME CW3b caused Jocal eveni caused remote event 1 = (S) none NAME CW3b caused_remote_tventl caused_remote_evenl2 = (SI clear NAME CW3b caused remote event^ dest l inel state = (S) call in proϋicss- NAME CW3b dest line I state destjιne2_state = (S) call in process NAME CW3b desl_lιoc2_statc fealure_name = (S) Call Waitms; NAME CW3bfeatuιc name localJιne_state = (S) call in pio.icss NAME CW3b lo il l ιnc_stalc location attachments = (S) local NAME CW3b location aitachmcnis rank = (III nknown sequence nuinher = ID - NAME CW3b sequcncc iuimlici trιgger_event_localιon = (SI local NAME CW3br.rιggLr_eveιιtJι .ιiιon tngger_event_type = (Si control code NAME CW3b tπgger evcm v pe Objects describing the Call ώveri on no replv leaiure NAME DNRl CLASSES teature states PROPERTIES cascade attachments = (Slnone NAME DNRl cascade ltachmcnls caused local event - (Si nouncement NAME DNRl caused Joe ll cvciil caused remote eveiitl = (S) nont NAME DNRl caused remote eveiitl caused_remote_event2 = (SI none NAME DNRl caused remote event. dest linel statc = (S) anv NAME DNRl dest line l state dest lιne2_statc = (SI anv NAME DNRl desl Jιnc2_statc leature name = (S) Call Diven on No Replv NAME DNRl feature name local Jme state = (S) idle NAME DNRl local Jme state location attachments = (S) local NAME DNRl location altachmcnis rank = (1) 1 iiiknovvu sequence inimbei = (II I NAME DNRl sequence nu bei tπgger event lυc.ilion - (S) Iocal NAME DNRl trigger evenljocaiion lπgger_event_tv pc = (S) control code NAME DNRl trigger event tvpc NAME DNR2 CLASSES teature states PROPERTIES cascade_attachmenιs = (S) none NAME DNR2 cascade attachments caused local event = (S) none NAME DNR2 causedJocal_eveιιι caused remole event I - (S) seize NAME DNR2caused_remote_eventl caused_remote_event2 = (S) none NAME DNR2 caused remote_event2 dest lιnel_state = (Sy.iny NAME DNR2deslJιnel_stale dest lιne2_staic = (S) any NAME DNR2dcstJιnc2_statc teature name = (S) Call Divu! on No Replv NAME DNR2 teature name local l ine state = (S) ringing no leplv NAME DNR2 local Jme_staie location attachments = (S) local NAME DNR2 louvtioi ttachmciils rank = (1) 1 nknown se uence nuinber = (I) J NAME DNR2 sequence niimhti tπgger_event localιon - (Si local NAME DNR2 trigger locaiion tπgger_event_tvpe = (S) nnieoul NAME DNR2 trigger NAME DNR3 CLASSES feature_states PROPERTIES cascade_attachments - (Si none NAME DNR3 c.iscade attaclimenis caused_local_event = (S) none NAME DNR3 caused locai_evcm caused_remote_eveιu l = (S) clear NAME DNR3 caused_remole_evcιul caused_remote_event2 = (S» none NAME DNR3 eaused remole evcιιι2 dest line I _statc = (S) buss NAME DNR3 desi I ιικ I _staiL dest lιne2_statc = (S)an> NAME DNR3 dcstjιne2_state teature_name = (S) all Diecii on No Replv NAME DNR3 leaturcjiamc localjine statc - (S) inv NAME DNR3 IOL.II line stale locatιon_altachmenls - (Si local NAME DNR3 location attachments rank = (III nknown sequence number = (I) ' NAME DNR3 sequence numbti trιgger_eventjocatιon = (S| local NAME DNR3 tπg ci event locaiion trigger event vpe - (S)dear NAME DNR3 tπgger event e Objects describing the Cull divert mi hiiw leu tine NAME DOB I CLASSES reature states PROPERTIES cascade_attachments = (Slnone NAME DOBl cascade attachments caused Jocal_event = (S) innouncement NAME DOBl caused Jocal eveni caused_remote_evenll = (Slnone NAME DOBl caiised reinote evenl! caused_remote_event2 = (S) none NAME DOBl caused_reιnote_evuu2 destj inel state = IS) any NAME DOBl dest line I . . state- destjιne2_state = (S)any NAME DOBl dest lmc2_state feature name = (S) Call Divert on Busy NAME DOBl teature iame Iocal Jme state = (S) idle NAME DOBl loc.ιl_lιne_statc location attachments = (S) local NAME DOBl localion attachments rank = (I) Unknown sequence number = (III NAME DOBl sequence number NAME DOB I triggei event locaiion trιgger_eveπt_typc ^ ( ) eontiol code NAME DOBl pc NAME DOB2 CLASSES teature states PROPERTIES cascadc_attachnιents - (S| none NAME D0B2 cascade altachnienis caused local event - (Sinone NAME DOB2 caused remote event I - (S) SCIΛ NAME D0B2 caused rcmυle_cvenι I caused_remolc_evenι2 - (S) none NAME DOB2 caused_remolc_cvenl2 dest_lιnel_sιate - (Slam NAME D B2 est_lιnel_state destjιne2_stale _ (S| inv NAME DOB2 desl line: stale teature_namc = (Si Call Divcit on Busv NAMF DOB2 tcaiure name localjine statc = (S) husv NAME D0B2lθL.ιl lιnc_si.ιie locatιon_allachnιems = (S) locil NAME D0B2 location altachnienis rank = (III nknown sequence number = (\) 2 NAME DOB2 sequencejiumhci trιgger_event_locaιιon - (Si local NAME DθB2trιgger_cvem local nm tπgger_evcnt_tvpe = (S) seize NAME DOB2 tπgger eveπtjvpe NAME DOB3 CLASSES teature_states PROPERTIES cascade_attachments = (Si none NAME DOB3 caseade aitachmenls caused_local_evenι = (S) none NAME DOB3 c.iused local eveni caused_reιrιote_cveιιιl - (S)clc.ιι NAME DOB3 caused remote evuul caused_remote_evenι2 = (S) none NAME DOB3 caused_rt-ιnote_evcιιl2 dest lιnel_state = (S) btisv NAME DOB3 dest I me I state destjιne2_state = (S)anv NAME DOB3 destjmc2_statt teature name = (S) Call Diveit on Busv NAME DOB3 teatuιe_name local l iπe state = (S)anv NAME DOB3 lotal_lιne_statc location attachments = (S) Iocal NAME DOB3 location attachmenls rank = (!) I Inknown sequencejuiiTiber = (1) • NAME DOB3 seqiiencc iuimbei tngger_eveιιt_lotatιon = (S) local NAME DOB3 Iπgger eventjocalion tπgger_evcιιt_tvpe = (S| clear NAME DOB3 iπgger eveill v e Objects describing a new service feature NAME nextj ' eatuιe_.state PROPERTIES cascade attachments = (S) none NAME next teature stale cascade attachments causedjocal event = fS) I nknow caused remote event I = (S) I -nknow caused_remote_even(2 - (S) I nknow destjinel state = (S) 11 know dest_line2_state = (S)Unknow leature_name = (S) Unknow local_lιne_stale = (S) 1 nknow location attachments - (S) local NAME nεxt eatuic state localton_attachmcιus sequence_numbeι = (I) Unknown tπgger eventjocation = (S) I inknown trιgger_eveπt_type - (S) Unknown A Icmporary object NAME temp PROPERTIES returnval = (I) Unknown

Claims: CLAIMS 1 . A system for detecting interaction between services running on a telecommunications network comprising a computer expert system including. a) a data store programmed with data representing attributes of service features, b) a rule store programmed with rules which relate feature attributes to interaction behaviours; and c) an inference engine which is connected to the data store and to the rule store and which is arranged to process the data and the rules, thereby detecting any interaction between the services. 2. A system according to claim 1 , in which the data store includes a plurality of objects including, for each feature which is represented in the data store, a set of objects corresponding to different respective state transitions of the feature 3. A system according to claim 2, in which each of the said set of objects includes a sequence number corresponding to the position of the respective state transition in the sequence of execution of the feature and at least some of the rules in the rule store reason over the values of the sequence numbers. 4. A system according to any claim 2 or 3, in which the objects are arranged in a hierarchy of superclasses and subclasses of the superclasses, and some of the rules reason over superclasses and others of the rules reason over subclasses. 5. A telecommunications network including a system according to any one of claims 1 to 4 6. A method of detecting interaction between services running on a telecommunications network comprising programming a computer expert system including an inference engine with data representing attributes of service features and with rules relating feature attributes to interaction behaviours; and processing the said data and the said rules in the inference engine and detecting thereby any interaction between the said services 7. A method of operating a telecommunications network comprising: programming a computer expert system with data representing attributes of service features and with rules relating feature attributes to interaction behaviours; processing the said data and the said rules in an inference engine and detecting thereby any interaction between the said services; and modifying the operation of the network when any interaction is detected. 8. A method according to claim 6 or 7, in which the said data are stored as a plurality of objects which include, for each feature which is represented, a set of objects corresponding to different respective state transition of the feature. 9. A method according to claim 8, including storing a sequence number for each of the objects in the said set, where the sequence number corresponds to the position of the respective state transition in the sequence of execution of the feature and in which at least some of the rules reason over the values of the sequence numbers. 10. A method according to claim 8 or 9, in which the objects are arranged in a hierarchy of superclasses and subclasses of the superclasses, and some of the rules reason over superclasses and others of the rules reason over subclasses.

Inventors: CROWTHER MICHAEL JOHN, CROWTHER, MICHAEL, JOHN
Applicants: BRITISH TELECOMM, CROWTHER MICHAEL JOHN, BRITISH TELECOMMUNICATIONS PUBLIC LIMITED COMPANY, CROWTHER, MICHAEL, JOHN
Application year: 1997
Main classification: H04Q3
IPC codes: H04M3, H04Q3