WO2017188986A1 - Hypershapes for rules with dimensions defined by conditions - Google Patents

Hypershapes for rules with dimensions defined by conditions Download PDF

Info

Publication number
WO2017188986A1
WO2017188986A1 PCT/US2016/030087 US2016030087W WO2017188986A1 WO 2017188986 A1 WO2017188986 A1 WO 2017188986A1 US 2016030087 W US2016030087 W US 2016030087W WO 2017188986 A1 WO2017188986 A1 WO 2017188986A1
Authority
WO
WIPO (PCT)
Prior art keywords
dimension
rule
instructions
hypershapes
condition
Prior art date
Application number
PCT/US2016/030087
Other languages
French (fr)
Inventor
Luis Miguel Vaquero Gonzalez
David Subiros PEREZ
David Soper
Original Assignee
Hewlett Packard Enterprise Development Lp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Enterprise Development Lp filed Critical Hewlett Packard Enterprise Development Lp
Priority to PCT/US2016/030087 priority Critical patent/WO2017188986A1/en
Publication of WO2017188986A1 publication Critical patent/WO2017188986A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software

Definitions

  • FIG. 1 is a block diagram of an example computing device for creating a set of hypershapes for a rule
  • FIG. 2 is a block diagram of a non-transitory machine-readable storage medium of a second example computing device for creating a set of hypershapes for a rule
  • FIG. 3 is a flow chart of an example method for creating a set of hypershapes for a rule
  • FIG. 4 is flowchart of an example method for defining a set of dimensions on which a set of hypershapes is based;
  • FIG. 5A is a flowchart of an example method for defining an ordered dimension
  • FIG. 5B is a flowchart of an example method for defining a categorical dimension
  • FIG. 6 is a flowchart of an example method for creating a set of hypershapes for a rule using a set of dimensions based on a set of conditions.
  • rules As rules become more numerous and complex, they can become more challenging to create, manage, or understand especially when many variables are involved. In some examples where rules may not be effectively managed, systems may end up containing redundant, contradictory, or obsolete rules. Rules may be redundant they cover a same logical space and the action that the rule enforces is compatible or well prioritized. On the other hand, rules may be contradictory when they cover the same logical space, but they enforce contradictory actions, and no priority is defined. Furthermore, as managed systems may be dynamic, some situations that are covered by a rule may no longer occur or its effects are nonconsequentiai, therefore causing the rule to become obsolete.
  • rule sets usually keep on growing, as more situations are detected and rules are created to handle them. Often, rules may be created by different users and at different points in time, and they may cover the same logical space but handle different higher level situations. Hence it is difficult to forecast interactions between rules, and conflicts can easily happen. These scenarios are considered by rule administrators when managing rule sets.
  • Examples disclosed herein address these technical challenges by providing for a set of hypershapes for a rule, thereby mapping the rule to N-dimensional shapes according io its conditions.
  • a computing device may provide a rule having a set of conditions, where each condition applies to a variable of a set of variables.
  • a set of dimensions may be defined for each variable of the set of variables.
  • a set of hypershapes may be created for the rule.
  • Each dimension covered by the hypershapes corresponds to a variable of the set of variables.
  • the same process can be implemented for multiple rules, with the interactions of the rules mapped by their hypershapes in the set of dimensions. In this manner, examples herein may provide a robust way to assess a rule and interactions between multiple rules.
  • FIG. 1 depicts an example computing device 100 for creating a set of hypershapes for a rule.
  • Computing device 100 may be, for example, a cloud server, a local area network server, a web server, a mainframe, a mobile computing device, a notebook or desktop computer, a smart TV, a point-of-sale device, a wearable device, any other suitable electronic device, or a combination of devices, such as ones connected by a cloud or internet network, that perform the functions described herein.
  • computing device 100 includes a processor 1 10 and a non- transitory machine-readable storage medium 120 encoded with instructions to create a set of hypershapes.
  • Processor 1 10 may be one or more central processing units (CPUs), semiconductor-based microprocessors, and/or other hardware devices suitable for retrieval and execution of instructions stored in machine-readable storage medium 120.
  • Processor 1 10 may fetch, decode, and execute instructions 121 , 122, 123, and/or other instructions to implement the procedures described herein.
  • processor 1 10 may include one or more electronic circuits that include electronic components for performing the functionality of one or more of instructions 121 , 122, and 123.
  • the program instructions 121 , 122, 123, and/or other instructions can be part of an installation package that can be executed by processor 1 10 to implement the functionality described herein.
  • memory 120 may be a portable medium such as a CD, DVD, or flash drive or a memory maintained by a computing device from which the installation package can be downloaded and installed.
  • the program instructions may be part of an application or applications already installed on computing device 100.
  • Machine-readable storage medium 120 may be any electronic, magnetic, optical, or other physical storage device that contains or stores executable data accessible to computing device 100.
  • machine-readable storage medium 120 may be, for example, a Random Access Memory (RAM), an Electrically Erasable Programmable Read-Only Memory (EEPROM), a storage device, an optical disc, and the like.
  • Storage medium 120 may be a non-transitory storage medium, where the term "non-transitory" does not encompass transitory propagating signals.
  • Storage medium 120 may be located in computing device 100 and/or in another device in communication with computing device 100.
  • machine-readable storage medium 120 may be encoded with providing a rule instructions 121 , defining a set of dimensions instructions 122, and creating a set of hypershapes instructions 123.
  • Providing a rule instructions 121 may provide a rule comprising a set of conditions.
  • a rule may be a conditional "if-then" construct, where an action is taken based on the satisfaction of a condition.
  • the set of conditions may include one or more conditions.
  • a condition may be a Boolean, which may indicate a true or false value of a particular prompt.
  • Each condition may apply to a variable of a set of variables.
  • the set of variables may include one or more variables, which may be a logical set of related attributes that may be grouped. For example, a variable may be a numerical or categorical attribute of a system object.
  • a condition may be met in response to a variable associated with the condition being in a particular range or group or satisfies some other sort of stipulation.
  • instructions 121 may implement example block 310 of method 300 of FIG. 3.
  • a first example rule may have a set of six conditions applying to a set of three variables. Each condition may apply to one of the set of variables and each condition may be joined with other conditions by at least one operator. Rule 1 below illustrates the first example rule, which will be referred to herein as an illustration,
  • Rule 1 shows thai a first variable x and a second variable y are both entirely numerical, and that a third variable z contains both numerical and non-numerical values. Rule 1 has six conditions joined by five operators.
  • defining a set of dimensions instructions 122 may define a set of dimensions for the set of variables.
  • each dimension may be defined for variable of the set of variables.
  • Each condition in the set of conditions may define the boundaries of each corresponding dimension, and the most restrictive conditions sets the dimension's range and resolution.
  • Instructions 122 may implement example block 320 of method 300 of FIG. 3. Details of the implementation of block 320 by instructions 122 is illustrated in method 400 of FIG. 4, and methods 500 and 550 of FIG. 5A and 5B, respectively. The implementation of instructions 122 is described with reference to those figures.
  • instructions 122 may define a dimension for each variable of the set of variables by first implementing block 410 of method 400 to determine whether a dimension already exists for a particular variable applied to by a particular condition. For example, instructions 122 determines whether the particular variable have been previously encountered by the system and a dimension created for it,
  • instructions 122 may implement block 420 to determine whether all of the variable values recited in all conditions applying to the particular variable are numerical values. Upon determining that ail values of the particular variable are numerical, instructions 122 implements block 421 to create an ordered dimension. Otherwise, instructions 122 implements block 422 to create a categorical dimension.
  • instructions 122 may create a first ordered dimension for variable x, a second ordered dimension for variable y, and a first categorical dimension for variable z. It should be noted that this determination of the type of dimension is preliminary and may be subsequently changed, as described herein.
  • instructions 122 may implement method 500 of FIG. 5A.
  • Implementing block 510 of method 500 sets a dimension resolution which equals to the finest resolution of ail values associated with the particular variable for the particular condition.
  • a resolution for the first ordered dimension may be set to 10° because the first condition (x ⁇ -12) sets the finest resolution. If should be note that the resolution of the first ordered dimension may subsequently amended in response to the fifth condition (x in (-8, .01 ]) being processed.
  • instructions 122 may implement block 520 to set a maximum and a minimum dimension value corresponding to the maximum and minimum variable values of the particular condition. For example, Rule 1 would set a minimum dimension value of negative infinity (- ⁇ ), and a maximum value of -12 for the first ordered dimension for first variable x.
  • instructions 122 may record a non-infinite minimum or non- infinite maximum value for a dimension. In such cases, the non-infinite minimum value of the first ordered dimensions may be recorded at -12. In some examples, the non-infinite minimum and non-infinite maximum values for a dimensions are recorded so that dimensions lengths may be calculated without infinite values.
  • a resolution of the second ordered dimension for second variable y may be set to 10°, and the minimum and maximum dimension values may be set to -5 and 0, respectively, by the implementation of method 500 on the second condition of Rule 1.
  • instructions 122 may implement method 550 of FIG. 5B.
  • Implementing block 560 of method 550 first sets the possible values of the dimension to be all of the variable values defined in the particular condition.
  • the third condition may create the first categorical dimension for third variable z.
  • Block 560 initially sets the possible values of the first categorical dimension to be cat, dog, and 3.4.
  • instructions 122 may implement block 580, which sets the dimension values to everything else but the variable values for the condition.
  • instructions 122 may implement block 440 to update the set of dimensions for the rule provided by instructions 121.
  • instructions 122 may proceed to amend an existing dimension upon determining that a dimension already exists for the particular variable. Details of amending a dimension is described in further detail herein with relation to FIG. 2.
  • instructions 122 Responsive to all of the conditions of the set of conditions having been dealt with by instructions 122, instructions 122 returns the set of dimensions defined for the set of conditions.
  • creating a set of hypershapes instructions 123 may create a set of hypershapes for the rule using the set of dimensions defined by instructions 122 and the set of conditions for the rule.
  • the set of hypershapes may represent the rule in an n-dimensional space.
  • Instructions 123 may implement example block 330 of method 300 of FIG. 3. Details of the implementation of block 330 by instructions 123 is illustrated in method 600 of FIG. 6. The implementation of instructions 123 is herein described with reference to those figures.
  • Instructions 123 may create the set of hypershapes by first implementing block 610 of method 600 to create a new null hypershape.
  • the new hypershape may be empty, or in other words, have zero dimensions.
  • dimensions of the set of dimensions defined by instructions 122 may be added or reshaped to the hypershape.
  • a hypershape may be created for a subset of the set of conditions of the rule.
  • a hypershape may be represent one or more conditions joined by AND operators. Subsets of conditions separated by OR operations may be represented by separate hypershapes of the set of hypershapes. Such examples are explained subsequently herein.
  • instructions 123 may implement block 620 of method 600 to get a next condition of the set of conditions.
  • the first example rule illustrated in Rule 1 may be used as an illustration.
  • Instructions 123 may then implement block 630 to determine whether the hypershape already contains the dimension defined by the variables applied to by the condition. For example, in response to the first condition of Rule 1 being considered in method 600, no dimensions are yet created.
  • instructions 123 implements block 635 to add the dimension to extend the hypershape. For example in Rule 1 , the first ordered dimension defined by the instructions 122 representing first variable x is added to the hypershape.
  • the range of the first ordered dimension, as defined by instructions 122 span from negative infinity to -12.
  • instructions 123 may implement block 640 to determine whether the dimension for the condition is an ordered dimension. Upon determining that the dimension is an ordered dimension, instructions 123 may implement block 641 to reshape the hypershape for the ordered dimension. Alternatively, instructions 123 may implement block 642 to reshape the hypershape for the categorical dimension.
  • Block 641 may reshape the hypershape for the ordered dimension in a variety of ways according to the operators and values defined in the condition.
  • instructions 123 in implementing block 641 , may first include getting values and a condition operator of the condition.
  • Rule 2 illustrates a second example rule.
  • condition 1 may split the hypershape by the value 9
  • condition 2 may slice the hypershape, creating intersected hypershapes in values 2, 4, 7 and 19
  • condition 3 may exclude the intersected hypershapes in values 2, 3, 4 and 8
  • condition 4 may reshape for notjn interval [4, 18).
  • condition 3 (z in ⁇ cat, dog, 3.4 ⁇ ) may restrict the first categorical dimension for variable z to the subset ⁇ cat, dog, 3.4 ⁇
  • instructions 123 may compare the possible variable values in the dimension against the values in the subset. The common values are kept in the dimension being reshaped. In order to exclude a categorical subset of variable values from a categorical dimension, instructions 123 may compare the values of the dimension against the subset.
  • the hypershape may be reshaped to exclude values that are common in the dimension. For example, to exclude the elements ⁇ bird, dog, fish ⁇ from a hypershape defined in Rule 1 , the hypershape may be reshaped so that the first categorical dimension for variable z only retains ⁇ cat ⁇ .
  • instructions 123 Upon reshaping the hypershape for the condition, instructions 123 implements block 650 to determine whether an OR operator joins the current condition and the next condition. Upon determining that an OR operator does not join the current and next conditions, instructions 123 returns to implementing block 620 to get the next condition of the set of conditions.
  • instructions 123 will iteratively implement blocks 620 to 650 for Rule 1 in order to create a hypershape for the first subset of conditions of Rule 1 , which includes the first three conditions. For example, this process will generate a n ⁇ dimensional hypershape for rule, where n is equal to three representing the first variable x, second variable y, and third variable z.
  • This hypershape may include three dimensions as defined by instructions 122 to include the first ordered dimension, the second ordered dimension, and the first categorical dimension.
  • instructions 123 may implement block 660 to save and return the hypershape.
  • instructions 123 may then create a second hypershape for the second subset of conditions for Rule 1 by implementing method 600 in its entirety for the second subset of conditions.
  • creating a second hypershape for the second subset of conditions does not result in any new dimensions but adds a second hypershape in the same three dimensions created for the first hypershape for Rule 1 ,
  • FIG. 2 depicts a non-transitory machine-readable storage medium 200 of a second example computing device for creating a set of hypershapes for a rule.
  • the second computing device may be, for example, a cloud server, a local area network server, a web server, a mainframe, a mobile computing device, a notebook or desktop computer, a smart TV, a point-of-sale device, a wearable device, any other suitable electronic device, or a combination of devices, such as ones connected by a cloud or internet network, that perform the functions described herein.
  • Non-transitory machine-readable storage medium 200 may be encoded with instructions create a set of hypershapes for a rule.
  • the second computing device may also include a processor, which may be one or more central processing units (CPUs), semiconductor-based microprocessors, and/or other hardware devices suitable for retrieval and execution of instructions stored in machine- readable storage medium 200.
  • the processor may fetch, decode, and execute instructions 210, 220, 230, 240, 250, 260, and/or other instructions to implement the procedures described herein.
  • a rule instructions 210 may be analogous to instructions 121 of computing device 100, and may provide a rule including a set of conditions, where each condition applies to a variable of a set of variables.
  • a set of dimensions instructions 220 may be analogous to instructions 122 of computing device 100, and may define a set of dimensions for the set of variables based on each condition of the set of conditions.
  • Instructions 220 may include map condition to variable value instructions, which, responsive to being implemented, may provide the variable values for defining parameters of the dimensions.
  • create a set of hypershapes instructions 230 may ne analogous to instructions 123 of computing device 100, and may create set of hypershapes for the rule using the set of dimensions.
  • Amend dimension instructions 240 may amend an existing dimension if a condition applies to it.
  • Amend dimension instructions 240 may include amend dimension resolution instructions 241 , amend dimension span instructions 242, convert dimension instructions 243, and add or subtract categorical value instructions.
  • Amend dimension instructions 240 may implement the remaining blocks of method 400 of FIG. 4— namely blocks 430, 431 , and 432. For example, in response to block 410 having determ ined that a dimensions already exists for a particular variable, instructions 240 may implement block 430 to determine whether ail values of the variable are numerical. If so, block 431 is implemented to amend the ordered dimension. If not, block 432 is implemented to amend the categorical dimension.
  • instructions 241 may overwrite the resolution of an ordered dimension if the condition defines a finer resolution.
  • the first condition (x ⁇ -12) defined the first ordered dimension to have a resolution of 10°.
  • the fifth condition (x in (-8, 5.01 ]) would overwrite the resolution to be 10 "2 .
  • the sixth rule (y in [-7, 2)) would not overwrite the resolution of the second ordered dimension set by the second rule (y in [- 5, 0]).
  • Instructions 242, responsive to being executed, may overwrite the span of an ordered dimension if the condition defines a greater maximum or a smaller minimum.
  • the fifth condition would overwrite the maximum value of the first ordered dimension for x to 5.01.
  • the sixth rule would overwrite the minimum value of the second ordered dimension for y to -7 and the maximum value to 2
  • Instructions 243 may convert a dimension from an ordered dimension to a categorical dimensions or vice versa. For example, if a new condition applies categorical value to an ordered dimension, that dimension may be converted to categorical. If on the other hand, ail categorical values are removed from categorical dimension, that dimension may be converted to an ordered dimension. For Rule 1 , adding a categorical value, such as ⁇ cat ⁇ to either first variable x or second variable y may convert their respective dimensions from ordered to categorical. On the flip side, if ⁇ cat, dog ⁇ were removed as values of third variable z, the dimension for variable z may be converted from categorical to ordered because the only possible value defined for z is 3.4.
  • Instructions 244, responsive to being executed, may add or subtract categorical values from a categorical dimension.
  • no condition would amend the first categorical dimension for the third variable z.
  • the fourth condition defines the value ⁇ cat ⁇ , there is no need to amend the dimension because ⁇ cat ⁇ is already present in the dimension's possible values.
  • instructions 250 may, responsive to being executed by a processor, compare intersections between a set of hypershapes for a first rule and a set of hypershapes for a second rule.
  • instructions 250 may implement example block 340 of method 300 of FIG. 3.
  • instructions 250 is to compare a first rule R with a second rule Rx. If the union of the hypershapes corresponding to R is the same as the union of the hypershapes that correspond to Rx, then R and Rx may be equivalent.
  • R may be a superset of Rx, and Rx may be a subset of R. If none of R's hypershapes intersects with any of Rx's hypershapes, then R and Rx may be independent. Because rules are represented as geometric objects, instructions 250 may calculate distances in subsets of ordered dimensions, similarities based on overlap, and/or clustering in order to obtain overviews of the system and logical overlap or similarity relations between rules.
  • instructions 260 may remove the hypershapes for a rule being deleted from the system, and instructions 260 may amend the corresponding dimensions associated with the hypershapes.
  • instructions 250 may implement example block 350 of method 300 of FIG. 3.
  • instructions 260 may determine and notify intersections that will no longer happen. For example, areas where the deleted rule would apply before its deletion, now will be covered by other rules.
  • dimensions that previously existed may become unused by any hypershapes, hence they may be deleted. It is also possible that dimensions may be amended to a more relaxed set of conditions. For example, the resolution of existing rules may be lower (i.e. more separation between adjacent items), the span may be reduced (i.e. the minimum increased and/or the maximum reduced), and for categorical dimensions, some elements may be deleted if they no longer appear in any condition.
  • F!G. 3 is an example method for creating a set of hypershapes for a rule.
  • FIG. 3 was described previously in relation to FIG. 1 and FIG. 2.
  • FIG. 4 is an example method for defining a set of dimensions on which a set of hypershapes is based.
  • FIG. 4 was described previously in relation to FIG. 1 and FIG. 2.
  • FIG. 5A is an example method for defining an ordered dimension, and was described previously in relation to FIG. 1.
  • FIG. 5B is an example method for defining a categorical dimension, and was described previously in relation to FIG. 1.
  • FIG. 6 is an example method for creating a set of hypershapes for a rule using a set of dimensions based on a set of conditions. F!G. 6 was described previously in relation to FIG. 1 and FIG. 2.
  • the foregoing disclosure describes a number of example embodiments for creating sets of hyperspaces for rules.
  • the disclosed examples may include systems, devices, computer-readable storage media, and methods for combining hash values.
  • certain examples are described with reference to the components illustrated in FIGS. 1 -6.
  • the functionality of the illustrated components may overlap, however, and may be present in a fewer or greater number of elements and components. All or part of the functionality of illustrated elements may co-exist or be distributed among several geographically dispersed locations.
  • the disclosed examples may be implemented in various environments and are not limited to the illustrated implementations.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Complex Calculations (AREA)

Abstract

Example embodiments relate to creating a set of hypershapes for a rule. The examples disclosed herein provide a rule having a set of conditions, where each condition applies to a variable of a set of variables. A set of dimensions is defined based on each condition for each variable. A set of hypershapes is created for the rule using the set of dimensions.

Description

HYPERSHAPES FOR RULES WITH DIMENSIONS DEFINED BY CONDITIONS
BACKGROUND
[0001 ] Many business and technical processes apply "if condition, then action" rules. The "if-then" conditional statements are widely used across many programming conventions. Creating and managing a system of conditional rules can be a major undertaking as the number of rules grows and the interactions between rules subsequently multiply.
BR!EF DESCRIPTION OF THE DRAWINGS
[0002] The following detailed description references the drawings, wherein:
[0003] FIG. 1 is a block diagram of an example computing device for creating a set of hypershapes for a rule;
[0004] FIG. 2 is a block diagram of a non-transitory machine-readable storage medium of a second example computing device for creating a set of hypershapes for a rule;
[0005] FIG. 3 is a flow chart of an example method for creating a set of hypershapes for a rule;
[0006] FIG. 4 is flowchart of an example method for defining a set of dimensions on which a set of hypershapes is based;
[0007] FIG. 5A is a flowchart of an example method for defining an ordered dimension;
[0008] FIG. 5B is a flowchart of an example method for defining a categorical dimension; and
[0009] FIG. 6 is a flowchart of an example method for creating a set of hypershapes for a rule using a set of dimensions based on a set of conditions. DETAILED
Figure imgf000004_0001
[0010] "If condition, then action" rules are widely used by business processes, IT management systems, as well as lower level systems like firmware for microprocessors, Network Function Virtualization (NFV) orchestrators, or Firewalls. With the rapid expansion in the use of computer systems and networks to host both business and consumer applications, the complexity of processes have also multiplied as more and more industries are relying on softwarized IT infrastructures. As a result, rule sets tend to keep on growing as systems evolve.
[001 1 ] As rules become more numerous and complex, they can become more challenging to create, manage, or understand especially when many variables are involved. In some examples where rules may not be effectively managed, systems may end up containing redundant, contradictory, or obsolete rules. Rules may be redundant they cover a same logical space and the action that the rule enforces is compatible or well prioritized. On the other hand, rules may be contradictory when they cover the same logical space, but they enforce contradictory actions, and no priority is defined. Furthermore, as managed systems may be dynamic, some situations that are covered by a rule may no longer occur or its effects are nonconsequentiai, therefore causing the rule to become obsolete. It may be challenging to detect obsolescence of rules, and even more difficult to delete obsolete rules with the confidence that no side effects will happen, as existing lower priority rules may be triggered in some scenarios that were previously covered by obsolete rules. When editing a rule, the logical area covered by it may change, hence the same issues may arise.
[0012] Furthermore, rule sets usually keep on growing, as more situations are detected and rules are created to handle them. Often, rules may be created by different users and at different points in time, and they may cover the same logical space but handle different higher level situations. Hence it is difficult to forecast interactions between rules, and conflicts can easily happen. These scenarios are considered by rule administrators when managing rule sets.
[0013] Examples disclosed herein address these technical challenges by providing for a set of hypershapes for a rule, thereby mapping the rule to N-dimensional shapes according io its conditions. For example, a computing device may provide a rule having a set of conditions, where each condition applies to a variable of a set of variables. A set of dimensions may be defined for each variable of the set of variables. Using the set of dimensions, a set of hypershapes may be created for the rule. Each dimension covered by the hypershapes corresponds to a variable of the set of variables. The same process can be implemented for multiple rules, with the interactions of the rules mapped by their hypershapes in the set of dimensions. In this manner, examples herein may provide a robust way to assess a rule and interactions between multiple rules.
[0014] Referring now to the drawings, FIG. 1 depicts an example computing device 100 for creating a set of hypershapes for a rule. Computing device 100 may be, for example, a cloud server, a local area network server, a web server, a mainframe, a mobile computing device, a notebook or desktop computer, a smart TV, a point-of-sale device, a wearable device, any other suitable electronic device, or a combination of devices, such as ones connected by a cloud or internet network, that perform the functions described herein. In the example shown in FIG. 1 , computing device 100 includes a processor 1 10 and a non- transitory machine-readable storage medium 120 encoded with instructions to create a set of hypershapes.
[0015] Processor 1 10 may be one or more central processing units (CPUs), semiconductor-based microprocessors, and/or other hardware devices suitable for retrieval and execution of instructions stored in machine-readable storage medium 120. Processor 1 10 may fetch, decode, and execute instructions 121 , 122, 123, and/or other instructions to implement the procedures described herein. As an alternative or in addition to retrieving and executing instructions, processor 1 10 may include one or more electronic circuits that include electronic components for performing the functionality of one or more of instructions 121 , 122, and 123.
[0016] !n an example, the program instructions 121 , 122, 123, and/or other instructions can be part of an installation package that can be executed by processor 1 10 to implement the functionality described herein. In such a case, memory 120 may be a portable medium such as a CD, DVD, or flash drive or a memory maintained by a computing device from which the installation package can be downloaded and installed. In another example, the program instructions may be part of an application or applications already installed on computing device 100.
[0017] Machine-readable storage medium 120 may be any electronic, magnetic, optical, or other physical storage device that contains or stores executable data accessible to computing device 100. Thus, machine-readable storage medium 120 may be, for example, a Random Access Memory (RAM), an Electrically Erasable Programmable Read-Only Memory (EEPROM), a storage device, an optical disc, and the like. Storage medium 120 may be a non-transitory storage medium, where the term "non-transitory" does not encompass transitory propagating signals. Storage medium 120 may be located in computing device 100 and/or in another device in communication with computing device 100. As described in detail below, machine-readable storage medium 120 may be encoded with providing a rule instructions 121 , defining a set of dimensions instructions 122, and creating a set of hypershapes instructions 123.
[0018] Providing a rule instructions 121 , responsive to being executed by processor 1 10, may provide a rule comprising a set of conditions. A rule may be a conditional "if-then" construct, where an action is taken based on the satisfaction of a condition. The set of conditions may include one or more conditions. A condition may be a Boolean, which may indicate a true or false value of a particular prompt. Each condition may apply to a variable of a set of variables. The set of variables may include one or more variables, which may be a logical set of related attributes that may be grouped. For example, a variable may be a numerical or categorical attribute of a system object. As an example, a condition may be met in response to a variable associated with the condition being in a particular range or group or satisfies some other sort of stipulation. As a related illustration, instructions 121 may implement example block 310 of method 300 of FIG. 3.
[0019] For purposes of an illustration, a first example rule may have a set of six conditions applying to a set of three variables. Each condition may apply to one of the set of variables and each condition may be joined with other conditions by at least one operator. Rule 1 below illustrates the first example rule, which will be referred to herein as an illustration,
x < -12 AND y in [-5, 0] AND z in {cat, dog, 3.4} OR z != cat. AND x in (-8, 5.01 ] AND y in [-7, 2) [0020] Rule 1 shows thai a first variable x and a second variable y are both entirely numerical, and that a third variable z contains both numerical and non-numerical values. Rule 1 has six conditions joined by five operators.
[0021 ] Based on each condition of the set of conditions of the rule, defining a set of dimensions instructions 122 may define a set of dimensions for the set of variables. For example, each dimension may be defined for variable of the set of variables. Each condition in the set of conditions may define the boundaries of each corresponding dimension, and the most restrictive conditions sets the dimension's range and resolution.
[0022] Instructions 122 may implement example block 320 of method 300 of FIG. 3. Details of the implementation of block 320 by instructions 122 is illustrated in method 400 of FIG. 4, and methods 500 and 550 of FIG. 5A and 5B, respectively. The implementation of instructions 122 is described with reference to those figures.
[0023] For example, upon providing the rule by instructions 121 , instructions 122 may define a dimension for each variable of the set of variables by first implementing block 410 of method 400 to determine whether a dimension already exists for a particular variable applied to by a particular condition. For example, instructions 122 determines whether the particular variable have been previously encountered by the system and a dimension created for it,
[0024] Upon determining that a dimension does not already exist for the particular variable, instructions 122 may implement block 420 to determine whether all of the variable values recited in all conditions applying to the particular variable are numerical values. Upon determining that ail values of the particular variable are numerical, instructions 122 implements block 421 to create an ordered dimension. Otherwise, instructions 122 implements block 422 to create a categorical dimension.
[0025] For the first example rule illustrated in Rule 1 , ail of the values recited for first variable x and for second variable y are numerical, and the values recited for third variable z are both numerical and non-numerical. Thus, instructions 122 may create a first ordered dimension for variable x, a second ordered dimension for variable y, and a first categorical dimension for variable z. It should be noted that this determination of the type of dimension is preliminary and may be subsequently changed, as described herein.
[0026] To create an ordered dimension, instructions 122 may implement method 500 of FIG. 5A. Implementing block 510 of method 500 sets a dimension resolution which equals to the finest resolution of ail values associated with the particular variable for the particular condition. For the first example rule illustrated in Rule 1 , a resolution for the first ordered dimension may be set to 10° because the first condition (x < -12) sets the finest resolution. If should be note that the resolution of the first ordered dimension may subsequently amended in response to the fifth condition (x in (-8, .01 ]) being processed.
[0027] Furthermore, instructions 122 may implement block 520 to set a maximum and a minimum dimension value corresponding to the maximum and minimum variable values of the particular condition. For example, Rule 1 would set a minimum dimension value of negative infinity (-∞), and a maximum value of -12 for the first ordered dimension for first variable x. In some examples, instructions 122 may record a non-infinite minimum or non- infinite maximum value for a dimension. In such cases, the non-infinite minimum value of the first ordered dimensions may be recorded at -12. In some examples, the non-infinite minimum and non-infinite maximum values for a dimensions are recorded so that dimensions lengths may be calculated without infinite values.
[0028] As a second example, a resolution of the second ordered dimension for second variable y may be set to 10°, and the minimum and maximum dimension values may be set to -5 and 0, respectively, by the implementation of method 500 on the second condition of Rule 1.
[0029] To create a categorical dimension on the other hand, instructions 122 may implement method 550 of FIG. 5B. Implementing block 560 of method 550 first sets the possible values of the dimension to be all of the variable values defined in the particular condition. For example Rule 1 , the third condition may create the first categorical dimension for third variable z. Block 560 initially sets the possible values of the first categorical dimension to be cat, dog, and 3.4. [0030] Instructions 122 then implements block 570 to determine whether the condition contains an exclude operator (i.e., "notjn", "!="). Upon determining that the condition does contain an exclude operator, instructions 122 may implement block 580, which sets the dimension values to everything else but the variable values for the condition. As an illustration, if the second condition of Rule 1 had contained a "!=" operator, then the possible values of the first categorical dimension for third variable z would contain everything except cat, dog, or 3.4.
[0031 ] Upon creating the dimension in either blocks 421 or 422, instructions 122 may implement block 440 to update the set of dimensions for the rule provided by instructions 121. Referring back to instructions 122 implementing block 410, instructions 122 may proceed to amend an existing dimension upon determining that a dimension already exists for the particular variable. Details of amending a dimension is described in further detail herein with relation to FIG. 2.
[0032] Responsive to all of the conditions of the set of conditions having been dealt with by instructions 122, instructions 122 returns the set of dimensions defined for the set of conditions.
[0033] Continuing to refer to FIG. 1 , creating a set of hypershapes instructions 123, responsive to being executed by processor 1 10, may create a set of hypershapes for the rule using the set of dimensions defined by instructions 122 and the set of conditions for the rule. The set of hypershapes may represent the rule in an n-dimensional space. Instructions 123 may implement example block 330 of method 300 of FIG. 3. Details of the implementation of block 330 by instructions 123 is illustrated in method 600 of FIG. 6. The implementation of instructions 123 is herein described with reference to those figures.
[0034] Instructions 123 may create the set of hypershapes by first implementing block 610 of method 600 to create a new null hypershape. The new hypershape may be empty, or in other words, have zero dimensions. As the set of conditions for the rule is considered, dimensions of the set of dimensions defined by instructions 122 may be added or reshaped to the hypershape. In some example, a hypershape may be created for a subset of the set of conditions of the rule. For example, a hypershape may be represent one or more conditions joined by AND operators. Subsets of conditions separated by OR operations may be represented by separate hypershapes of the set of hypershapes. Such examples are explained subsequently herein.
[0035] To continue creating the set of hypershapes after creating the new null hypershape, instructions 123 may implement block 620 of method 600 to get a next condition of the set of conditions. The first example rule illustrated in Rule 1 may be used as an illustration. Instructions 123 may then implement block 630 to determine whether the hypershape already contains the dimension defined by the variables applied to by the condition. For example, in response to the first condition of Rule 1 being considered in method 600, no dimensions are yet created. Upon determining that the dimension associated with the condition is not already created for the hypershape, instructions 123 implements block 635 to add the dimension to extend the hypershape. For example in Rule 1 , the first ordered dimension defined by the instructions 122 representing first variable x is added to the hypershape. The range of the first ordered dimension, as defined by instructions 122, span from negative infinity to -12.
[0036] Upon adding the dimension or upon determining the dimension already exists in block 630, instructions 123 may implement block 640 to determine whether the dimension for the condition is an ordered dimension. Upon determining that the dimension is an ordered dimension, instructions 123 may implement block 641 to reshape the hypershape for the ordered dimension. Alternatively, instructions 123 may implement block 642 to reshape the hypershape for the categorical dimension.
[0037] Block 641 may reshape the hypershape for the ordered dimension in a variety of ways according to the operators and values defined in the condition. For example, an ordered dimension may reshape the hypershape by splitting it by the variable value if the operator is " !=", by slicing it for particular values if the operator is "in", by splitting into multiple hypershapes excluding the intersected hypershapes if the operator is "notjn", or by returning the intersection of the hypershape and an interval in the current dimension if the values correspond to an interval to include or exclude (and operators are ==, in, notjn, <, >, <= or >=). [0038] An example procedure for reshaping the hypershape in block 641 is described. For example, instructions 123, in implementing block 641 , may first include getting values and a condition operator of the condition. Rule 2 below illustrates a second example rule.
x != 9 AND y in {2, 4, 7, 19} OR x notjn {2, 3, 4, 8} AND y not_in [4, 18)
[0039] In response to the hypershape being reshaped according to the conditions of Rule 2, condition 1 may split the hypershape by the value 9, condition 2 may slice the hypershape, creating intersected hypershapes in values 2, 4, 7 and 19, condition 3 may exclude the intersected hypershapes in values 2, 3, 4 and 8, and condition 4 may reshape for notjn interval [4, 18). Each of these operations are described herein.
[0040] For example, in order to split a hypershape by a value, instructions 123 may determine if the value lies on a border of the hypershape. If so, the hypershape may be reshaped by excluding the border. If the value lies inside the hypershape, the hypershape may be divided in two: one for values smaller than the splitting value, and one for values greater than it. For example, if a hypershape defined in an ordered dimension for variable x between -5 and 10 (both inclusive) is to be split by x = 9, two new hypershapes may be created: one from -5 (inclusive) to 9 (exclusive), and another from 9 (exclusive) to 10 (inclusive). In such an example, the rest of the dimensions for the hypershapes may remain unchanged.
[0041 ] Alternatively or in addition, in order to create intersected hypershapes according to a set of variable values, for each variable value, instructions 123 may check if it lies within the hypershape. If so, the hypershape is sliced. For example, if a hypershape defined in the ordered dimension for variable x between 1 .3 and 3 (both inclusive) is to be sliced by x = 1 , 2 and 3, two new hypershapes may be created: one at x = 2 and one at x = 3. Both new hypershapes may retain the rest of the dimensions as they were in the original hypershape.
[0042] Alternatively or in addition, in order to exclude intersected hypershapes, for each variable value, instructions 123 may check if it lies within the hypershape. If it does, two new hypershapes may be created, one for values smaller than the splitting value, and one for values greater than it. For example, if a hypershape defined in the ordered dimension for variable x between 1.3 and 3 (both inclusive) is to exclude x = 1 , x = 2 and x = 3, the value x = 1 may be ignored. For the value x = 2, the hypershape may be split, generating two hypershapes: one from x = 1.3 (inclusive) to x = 2 (exclusive), and the other from x = 2 (exclusive) to x = 3 (inclusive). Then the value x = 3 would split the second hypershape, and as it lies in the border, it would only generate a new hypershape from x = 2 (exclusive) to x = 3 (exclusive). Thus, the two resulting hypershapes would have ordered dimension of x in [1.3, 2) and x in (2, 3). As used herein, brackets indicate inclusive and parentheses indicate exclusive.
[0043] In order to reshape a hypershape for conditions where the operator is notjn applied to an interval, new conditions with "in" operator may be created and each complementary interval. In order to reshape a hypershape for equality or interval, the minimum and maximum values in the interval are obtained (if it is an equality, the maximum and minimum values will coincide). If the interval minimum is greater than the hypershape minimum, the hypershape minimum is set to the interval minimum value. If the interval maximum is smaller than the hypershape maximum, the hypershape maximum is set to the interval maximum value. For illustration, a hypershape defined in x between 0 and 10 (both inclusive) limited to the interval [-10, 3), may limit the hypershape to x between 0 (inclusive) and 3 (exclusive).
[0044] Furthermore, block 842 may reshape the hypershape for the categorical dimension in a variety of ways according to the operators and values defined in the condition. For example, a condition on categorical dimensions may reshape the hypershape restricting the elements to the common existing elements in the hypershape and the ones defined by the condition if the operator is == or in; or a condition may exclude the elements present in the hypershape that are also present in the condition if the operator is != or notjn.
[0045] In the previous example of Rule 1 , condition 3 (z in {cat, dog, 3.4}) may restrict the first categorical dimension for variable z to the subset {cat, dog, 3.4}, whereas condition 4 (z != cat) would exclude the element {cat} from the first categorical dimension, !n order to restrict a categorical dimension of a hypershape to a subset of variable values, instructions 123 may compare the possible variable values in the dimension against the values in the subset. The common values are kept in the dimension being reshaped. In order to exclude a categorical subset of variable values from a categorical dimension, instructions 123 may compare the values of the dimension against the subset. The hypershape may be reshaped to exclude values that are common in the dimension. For example, to exclude the elements {bird, dog, fish} from a hypershape defined in Rule 1 , the hypershape may be reshaped so that the first categorical dimension for variable z only retains {cat}.
[0046] Upon reshaping the hypershape for the condition, instructions 123 implements block 650 to determine whether an OR operator joins the current condition and the next condition. Upon determining that an OR operator does not join the current and next conditions, instructions 123 returns to implementing block 620 to get the next condition of the set of conditions. As an illustration, instructions 123 will iteratively implement blocks 620 to 650 for Rule 1 in order to create a hypershape for the first subset of conditions of Rule 1 , which includes the first three conditions. For example, this process will generate a n~ dimensional hypershape for rule, where n is equal to three representing the first variable x, second variable y, and third variable z. This hypershape may include three dimensions as defined by instructions 122 to include the first ordered dimension, the second ordered dimension, and the first categorical dimension.
[0047] !n response to instructions 123 encountering the OR operator in Rule 1 , instructions 123 may implement block 660 to save and return the hypershape. In some examples, instructions 123 may then create a second hypershape for the second subset of conditions for Rule 1 by implementing method 600 in its entirety for the second subset of conditions. As an illustration, creating a second hypershape for the second subset of conditions does not result in any new dimensions but adds a second hypershape in the same three dimensions created for the first hypershape for Rule 1 ,
[0048] FIG. 2 depicts a non-transitory machine-readable storage medium 200 of a second example computing device for creating a set of hypershapes for a rule. Similar to computing device 100, the second computing device may be, for example, a cloud server, a local area network server, a web server, a mainframe, a mobile computing device, a notebook or desktop computer, a smart TV, a point-of-sale device, a wearable device, any other suitable electronic device, or a combination of devices, such as ones connected by a cloud or internet network, that perform the functions described herein. Non-transitory machine-readable storage medium 200 may be encoded with instructions create a set of hypershapes for a rule.
[0049] The second computing device may also include a processor, which may be one or more central processing units (CPUs), semiconductor-based microprocessors, and/or other hardware devices suitable for retrieval and execution of instructions stored in machine- readable storage medium 200. The processor may fetch, decode, and execute instructions 210, 220, 230, 240, 250, 260, and/or other instructions to implement the procedures described herein.
[0050] Provide a rule instructions 210 may be analogous to instructions 121 of computing device 100, and may provide a rule including a set of conditions, where each condition applies to a variable of a set of variables. Define a set of dimensions instructions 220 may be analogous to instructions 122 of computing device 100, and may define a set of dimensions for the set of variables based on each condition of the set of conditions. Instructions 220 may include map condition to variable value instructions, which, responsive to being implemented, may provide the variable values for defining parameters of the dimensions. Furthermore, create a set of hypershapes instructions 230 may ne analogous to instructions 123 of computing device 100, and may create set of hypershapes for the rule using the set of dimensions.
[0051 ] Amend dimension instructions 240, responsive to being executed by a processor, may amend an existing dimension if a condition applies to it. Amend dimension instructions 240 may include amend dimension resolution instructions 241 , amend dimension span instructions 242, convert dimension instructions 243, and add or subtract categorical value instructions. Amend dimension instructions 240 may implement the remaining blocks of method 400 of FIG. 4— namely blocks 430, 431 , and 432. For example, in response to block 410 having determ ined that a dimensions already exists for a particular variable, instructions 240 may implement block 430 to determine whether ail values of the variable are numerical. If so, block 431 is implemented to amend the ordered dimension. If not, block 432 is implemented to amend the categorical dimension.
[0052] Returning back to FIG. 2, instructions 241 , responsive to being executed, may overwrite the resolution of an ordered dimension if the condition defines a finer resolution. For the first example illustrated in Rule 1 , the first condition (x < -12) defined the first ordered dimension to have a resolution of 10°. However, the fifth condition (x in (-8, 5.01 ]) would overwrite the resolution to be 10"2. In the same example, the sixth rule (y in [-7, 2)) would not overwrite the resolution of the second ordered dimension set by the second rule (y in [- 5, 0]).
[0053] Instructions 242, responsive to being executed, may overwrite the span of an ordered dimension if the condition defines a greater maximum or a smaller minimum. For Rule 1 , the fifth condition would overwrite the maximum value of the first ordered dimension for x to 5.01. In the same example, the sixth rule would overwrite the minimum value of the second ordered dimension for y to -7 and the maximum value to 2,
[0054] Instructions 243, responsive to being executed, may convert a dimension from an ordered dimension to a categorical dimensions or vice versa. For example, if a new condition applies categorical value to an ordered dimension, that dimension may be converted to categorical. If on the other hand, ail categorical values are removed from categorical dimension, that dimension may be converted to an ordered dimension. For Rule 1 , adding a categorical value, such as {cat} to either first variable x or second variable y may convert their respective dimensions from ordered to categorical. On the flip side, if {cat, dog} were removed as values of third variable z, the dimension for variable z may be converted from categorical to ordered because the only possible value defined for z is 3.4.
[0055] Instructions 244, responsive to being executed, may add or subtract categorical values from a categorical dimension. In the example illustrated in Rule 1 , no condition would amend the first categorical dimension for the third variable z. While the fourth condition defines the value {cat}, there is no need to amend the dimension because {cat} is already present in the dimension's possible values.
[0056] Continuing to refer to FIG. 2, instructions 250 may, responsive to being executed by a processor, compare intersections between a set of hypershapes for a first rule and a set of hypershapes for a second rule. As a related illustration, instructions 250 may implement example block 340 of method 300 of FIG. 3. [0057] As an example, instructions 250 is to compare a first rule R with a second rule Rx. If the union of the hypershapes corresponding to R is the same as the union of the hypershapes that correspond to Rx, then R and Rx may be equivalent. If the union of Rx's hypershapes is covered by the union of R's hypershapes, then R may be a superset of Rx, and Rx may be a subset of R. If none of R's hypershapes intersects with any of Rx's hypershapes, then R and Rx may be independent. Because rules are represented as geometric objects, instructions 250 may calculate distances in subsets of ordered dimensions, similarities based on overlap, and/or clustering in order to obtain overviews of the system and logical overlap or similarity relations between rules.
[0058] Furthermore, instructions 260, responsive to being executed by a processor, may remove the hypershapes for a rule being deleted from the system, and instructions 260 may amend the corresponding dimensions associated with the hypershapes. As a related illustration, instructions 250 may implement example block 350 of method 300 of FIG. 3.
[0059] For example, responsive to hypershapes corresponding to a deleted rule being removed, instructions 260 may determine and notify intersections that will no longer happen. For example, areas where the deleted rule would apply before its deletion, now will be covered by other rules.
[0060] Furthermore, it is possible that dimensions that previously existed may become unused by any hypershapes, hence they may be deleted. It is also possible that dimensions may be amended to a more relaxed set of conditions. For example, the resolution of existing rules may be lower (i.e. more separation between adjacent items), the span may be reduced (i.e. the minimum increased and/or the maximum reduced), and for categorical dimensions, some elements may be deleted if they no longer appear in any condition.
[0061 ] F!G. 3 is an example method for creating a set of hypershapes for a rule. FIG. 3 was described previously in relation to FIG. 1 and FIG. 2.
[0062] FIG. 4 is an example method for defining a set of dimensions on which a set of hypershapes is based. FIG. 4 was described previously in relation to FIG. 1 and FIG. 2.
[0063] FIG. 5A is an example method for defining an ordered dimension, and was described previously in relation to FIG. 1. [0064] FIG. 5B is an example method for defining a categorical dimension, and was described previously in relation to FIG. 1.
[0065] FIG. 6 is an example method for creating a set of hypershapes for a rule using a set of dimensions based on a set of conditions. F!G. 6 was described previously in relation to FIG. 1 and FIG. 2.
[0066] The foregoing disclosure describes a number of example embodiments for creating sets of hyperspaces for rules. The disclosed examples may include systems, devices, computer-readable storage media, and methods for combining hash values. For purposes of explanation, certain examples are described with reference to the components illustrated in FIGS. 1 -6. The functionality of the illustrated components may overlap, however, and may be present in a fewer or greater number of elements and components. All or part of the functionality of illustrated elements may co-exist or be distributed among several geographically dispersed locations. Moreover, the disclosed examples may be implemented in various environments and are not limited to the illustrated implementations.
[0067] Further, the sequence of operations described in connection with FIGS. 1 -6 are examples and are not intended to be limiting. Additional or fewer operations or combinations of operations may be used or may vary without departing from the scope of the disclosed examples. Furthermore, implementations consistent with the disclosed examples need not perform the sequence of operations in any particular order. Thus, the present disclosure merely sets forth possible examples of implementations, and many variations and modifications may be made to the described examples. All such modifications and variations are intended to be included within the scope of this disclosure and protected by the following claims.

Claims

CLA!IV!S What is claimed is:
1 . A computing device, comprising a processor and a non-transitory machine- readable storage medium encoded with instructions executable by the processor, the non-transitory storage medium comprising instructions to:
provide a rule comprising a set of conditions, wherein each condition applies to a variable of a set of variables;
define a set of dimensions, based on each condition of the set of conditions, for the set of variables; and
create a set of hypershapes for the rule using the set of dimensions.
2. The computing device of claim 1 , wherein a first dimension of the set of dimensions is ordered if a first variable of the set of variables applied to by a first condition is numerical, and the first dimension is categorical if the first variable is non-numerical.
3. The computing device of claim 2, the non-transitory storage medium further comprising instructions to amend the first dimension, if the first dimension is ordered, by at least one of:
amending a resolution of the first dimension; or
amending a span of the first dimension.
4. The computing device of claim 2, the non-transitory storage medium further comprising instructions to amend the first dimension by converting the first dimension to be categorical if the first dimension is ordered or converting the first dimension to be ordered if the first dimension is categorical.
5. The computing device of claim 2, the non-transitory storage medium further comprising instructions to amend the first dimension, if the first dimension is categorical, by adding or removing a possible categorical value.
6. The computing device of claim 1 , the non-transitory storage medium further comprising instructions to compare intersections between the set of hypershapes for the rule and a set of hypershapes for a second rule.
7. The computing device of claim 1 , wherein the instructions to define a set of dimensions comprises instructions to map each condition of the set of conditions to a variable value associated with the condition, and the instructions to create the set of hypershapes comprises instructions to reshape the set of hypershapes according to a condition operator.
8. The computing device of claim 1 , the non-transitory storage medium further comprising instructions to removing a first hypershape of the set of hypershapes for the rule and accordingly amending each dimension of the set of dimensions associated with the first hypershape.
9. A system, comprising:
a rule engine to provide a rule comprising a set of conditions, wherein each condition applies to a variable of a set of variables;
a dimensions engine to define a set of dimensions for the set of variables, by mapping each condition to a variable value associated with each condition, wherein a first dimension of the set of dimensions is ordered if a first variable applied to by a first condition is numerical, and the first dimension is categorical if the first variable is non- numerical; and
a hypershape engine to create a set of hypershapes for the rule using the set of dimensions.
10. The system of claim 9, comprising a comparison engine to compare intersections of the set of hypershapes for the rule with a set of hypershapes for a second rule.
1 1 . The system of claim 9, wherein the dimensions engine is to amend the first dimension, if the first dimension is ordered, by:
amending a resolution of the first dimension;
amending a span of the first dimension; or
converting the first dimension to be categorical.
12. The system of claim 9, wherein the dimensions engine is to amend the first dimension, if the first dimension is categorical, by:
adding or removing a possible categorical value; or
converting the first dimension to be ordered.
13. The system of claim 9, wherein:
the hypershape engine is to remove a first hypershape of the set of hypershapes for the rule; and
the dimensions engine is to accordingly amend each dimension of the set of dimensions associated with the first hypershape.
14. A method, comprising:
providing, by a computing device, a rule comprising a set of conditions, wherein each condition applies to a variable of a set of variables;
defining, by the computing device, a set of dimensions for the set of variables, by mapping each condition of the set of conditions to a variable value associated with each condition, wherein a first dimension is ordered if a first variable of the set of variables applied to by a first condition is numerical, and the first dimension is categorical if the first variable is non-numerical;
creating, by the computing device, a set of hypershapes for the rule using the set of dimensions; and
comparing, by the computing device, intersections of the set of hypershapes for the rule with a set of hypershapes for a second rule.
15. The method of claim 14, further comprising:
in response to the first dimension being ordered, amending the first dimension by: amending a resolution of the first dimension;
amending a span of the first dimension; or
converting the first dimension to be categorical; and
onse to the first dimension being categorical, amending the first dimension adding or removing a possible categorical value; or
converting the first dimension to be ordered.
PCT/US2016/030087 2016-04-29 2016-04-29 Hypershapes for rules with dimensions defined by conditions WO2017188986A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/US2016/030087 WO2017188986A1 (en) 2016-04-29 2016-04-29 Hypershapes for rules with dimensions defined by conditions

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2016/030087 WO2017188986A1 (en) 2016-04-29 2016-04-29 Hypershapes for rules with dimensions defined by conditions

Publications (1)

Publication Number Publication Date
WO2017188986A1 true WO2017188986A1 (en) 2017-11-02

Family

ID=60160987

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2016/030087 WO2017188986A1 (en) 2016-04-29 2016-04-29 Hypershapes for rules with dimensions defined by conditions

Country Status (1)

Country Link
WO (1) WO2017188986A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112401865A (en) * 2020-11-11 2021-02-26 中国科学技术大学 Electrical impedance imaging method based on super-shape

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6542881B1 (en) * 2000-08-03 2003-04-01 Wizsoft Inc. System and method for revealing necessary and sufficient conditions for database analysis
US20050222996A1 (en) * 2004-03-30 2005-10-06 Oracle International Corporation Managing event-condition-action rules in a database system
US20050234688A1 (en) * 2004-04-16 2005-10-20 Pinto Stephen K Predictive model generation
US20090254452A1 (en) * 2008-04-03 2009-10-08 Aditya Vailaya Systems and methods for performing an action based on user interaction with a graphical presentation
US20120221508A1 (en) * 2011-02-28 2012-08-30 International Machines Corporation Systems and methods for efficient development of a rule-based system using crowd-sourcing

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6542881B1 (en) * 2000-08-03 2003-04-01 Wizsoft Inc. System and method for revealing necessary and sufficient conditions for database analysis
US20050222996A1 (en) * 2004-03-30 2005-10-06 Oracle International Corporation Managing event-condition-action rules in a database system
US20050234688A1 (en) * 2004-04-16 2005-10-20 Pinto Stephen K Predictive model generation
US20090254452A1 (en) * 2008-04-03 2009-10-08 Aditya Vailaya Systems and methods for performing an action based on user interaction with a graphical presentation
US20120221508A1 (en) * 2011-02-28 2012-08-30 International Machines Corporation Systems and methods for efficient development of a rule-based system using crowd-sourcing

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112401865A (en) * 2020-11-11 2021-02-26 中国科学技术大学 Electrical impedance imaging method based on super-shape
CN112401865B (en) * 2020-11-11 2024-05-17 中国科学技术大学 Electrical impedance imaging method based on super shape

Similar Documents

Publication Publication Date Title
US10540350B2 (en) Source code search engine
KR102054568B1 (en) Filtering Data Schematic Diagram
JP5990192B2 (en) Filtering query data in the data store
US9454548B1 (en) Pluggable storage system for distributed file systems
JP2020507162A5 (en)
WO2017084362A1 (en) Model generation method, recommendation method and corresponding apparatuses, device and storage medium
US10679055B2 (en) Anomaly detection using non-target clustering
US20190155941A1 (en) Generating asset level classifications using machine learning
US10372674B2 (en) File management in a storage system
US10956460B2 (en) Method and system for configuration management of hierarchically organized unstructured data using associative templates
US20120330936A1 (en) Using a dynamically-generated content-level newsworthiness rating to provide content recommendations
US10776505B2 (en) Data loss prevention for an online content management platform
JP6903755B2 (en) Data integration job conversion
US10318540B1 (en) Providing an explanation of a missing fact estimate
US20140229496A1 (en) Information processing device, information processing method, and computer program product
US11636124B1 (en) Integrating query optimization with machine learning model prediction
WO2017188986A1 (en) Hypershapes for rules with dimensions defined by conditions
US20130060758A1 (en) Graph authorization
US11175907B2 (en) Intelligent application management and decommissioning in a computing environment
US11610075B2 (en) Hierarchical rule clustering
CN110019783B (en) Attribute word clustering method and device
US11657069B1 (en) Dynamic compilation of machine learning models based on hardware configurations
US8738864B2 (en) Automated data interface generation
US20210034991A1 (en) Machine Learning-Based Recommendation Engine for Storage System Usage Within an Enterprise
US20200143388A1 (en) Recommendation system to support mapping between regulations and controls

Legal Events

Date Code Title Description
NENP Non-entry into the national phase

Ref country code: DE

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16900722

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 16900722

Country of ref document: EP

Kind code of ref document: A1