什么是业务规则? - Ronald


规则是行为或行动的指南。

它为判断或评价该行为或行动提供标准。

每条规则都倾向于取消某种程度的自由。

规则是你如何在一个群体或社区内从无序中创造秩序并确保一致的经验。

每当你希望能够解释结果的 "原因 "时,你总是会求助于明确的规则--可解释性。

这里讨论解释了更多关于规则是什么和不是什么。

对于群体和社区的人来说,规则是行为或行动的指南。它的表达方式为判断或评价该行为或行动提供了标准。换句话说,一条规则可以作为判断和决定的标准。考虑一下这个简单的例子,它贴在海滩附近一家餐馆入口处的标志上。

规则:不穿衬衫,不提供服务。
使用 "不穿衬衫 "的标准,可以对在该餐厅就餐的人做出使用该标准的决定(由餐厅、顾客或其他任何人)。
你可以在很多地方用餐,但如果没有穿衬衫,就不能在那家餐厅用餐。

正如这个例子所表明的,一个规则倾向于消除一定程度的自由。(我说 "倾向于 "是因为实际结果取决于规则执行的严格程度)。
在缩小("排除")选择或意外情况的意义上,规则总是倾向于约束。

规则、状态和行动
规则和行动是不同的,从根本上说是无条件的。如果你让这两者之间的区别变得模糊不清,你的逻辑也可能变得模糊不清。

所谓行动,我指的是执行、做或改变某事。在上面的例子中,作为顾客进入餐厅的行为就是一个行动。
行动的重要之处在于,它们可以改变事物的状态。在行动之前,世界处于一种状态;在行动之后,世界可能处于另一种状态。

旁白:即使是一个不成功的行动也是如此--例如,一个潜在的顾客因为没有衬衫而在餐厅被拒绝。世界的状态已经改变,因为现在至少有关于不成功的行动本身的知识。即使这个潜在的顾客没有被录取,他们也尝试了。

相比之下,规则不是行动,甚至不是真的关于行动,至少不是直接的。例如,"无衬衫,无服务 "规则本身并不意味着任何行动。相反,它只是一个关于服务是否能被正确给予和接受的标准。

直接地说,规则总是关于事物的状态(或更准确地说,事务的状态),而不是行动。上面的规则不允许不穿衣服的顾客--换句话说,它不允许在餐厅里有一些不穿衬衫的顾客被服务的状态。

作为另一个例子,考虑在一家汽车租赁公司采取租车预订的行动。如果成功,该动作将使世界处于一个新的状态。具体来说,预订者将持有一个他们以前没有的预订。然而,要想成功,该动作必须使世界处于符合相关规则的状态。

总而言之,行动做了一些事情,试图改变世界的状态。与此相反,规则只是表明世界的哪些状态是:

  • 正确或不正确
  • 允许的或不允许的
  • 合法或非法
  • 有义务或被禁止
  • 必要或不可能

应用规则
如上所述,行动总是试图改变状态。相比之下,规则与行动所寻求创造的新状态有关。如果新的状态是可接受的,就不需要干预。如果不能接受,就应该进行干预,以防止出现不理想的状态,最好是实时的。例如,一个不穿衣服的人想去吃饭,在餐厅门口被拒之门外。

不幸的是,这种及时的干预并不总是可能的。考虑一下 "不可杀人 "的诫命。不幸的是,谋杀往往不能被阻止。受害者确实死亡;这条规则有时被打破。

在这种情况下,规则的作用是什么?

在行动之前,规则设定了对行为的期望。不杀人是对社区所有成员的期望。

行动之后,规则提供了评估错误的标准。尽管错误的状态(死亡的受害者)是无法避免的,但违规行为肯定是可以被发现的,并且应该以适当的方式进行惩罚。


规则、行动和推论
推理规则似乎混淆了行动和规则之间的区别。

首先,一个要求执行行动的推理'规则'根本不是一个规则。相反,它是一个指令,不管一些软件平台如何称呼它。考虑一下这个例子:

张贴在装有斧头的玻璃箱上的标志:如果发生火灾,请打破玻璃。

这个语句是有条件的("如果发生火灾"),但给出了一个指令("打破玻璃")。它要求执行一个行动。它不是一个规则。

旁白:保持规则和行动之间的区别是至关重要的。
将规则限制在状态中,可以创建一个具有明确边界的指导性知识库(规则手册),在此范围内可以对一致性进行逻辑验证。调用行动可能有未知的后果(副作用)。因此,严格区分关注点是至关重要的。

因此,让我们把自己限制在暗示来自其他事实的推理规则上,比如说:

规则:如果下雨,那么街道是湿的。

不管在某个平台上发生了什么,只要条件事实是真的,推论的事实就总是存在的。没有什么'使'它成为真的;如果下雨,街道是湿的,这只是真的。

对于决策模型和决策表,它可能看起来像有一个行动(任务)产生了一些新的结果,但这只是一些流程或应用程序设计者对何时查看推断结果所做的选择。(许多业务决策可以通过等待尽可能长的 "看 "来进行优化)。从逻辑上讲,推断的事实(推论)一直都在那里--只是没有被看到。

表达对状态的认识
行动的语言与规则的语言非常不同。为了指定一个动作,通常你使用动词作为命令。(在自然语言中,这种规范使用动词的命令语态。)例如:

  • 做X
  • 建立X
  • 使用X
  • 卖X
  • 购买 X
  • 执行 X
  • 读取X

这些命令可能变得相当复杂,并可能涉及大量的X。当然,这些X都被贴上了标签,有时(但绝非总是)用商业友好的标签。然而,重点是把事情做完--也就是指令--而不是组织和表达关于世界状态本身的知识。

表达这样的知识也需要许多X--所有感兴趣的商业事物的术语。它也需要动词来联系这些事情--但绝不是以命令的形式。相反,关于世界状态的知识总是被表达为事实。下面是一些例子,使用上面的相同动词:

  • 人们在公园里做瑜珈。
  • 海滩上的人堆沙堡。
  • 木匠使用锤子。
  • 超市里卖香料。
  • 顾客赊账购买应急用品。
  • 管弦乐队举行音乐会。
  • 父母在睡前给孩子读书。

这些都是简单的事实;许多事实要复杂得多。但是在这些句子中使用动词(是的,所有的事实都被表达为句子)并不意味着任何行动。当我们交流关于状态的知识时,我们使用动词只是为了表达X之间的结构关系。

旁白:在自然语言中,这种规范使用指示性语态的动词,而不是命令性语态。使用指示性语态的动词可以将一个行动表达为一个事实的陈述。

表达关于状态的规则更进一步,但也很重要。一个规则并不表达一个实际的事实,而是表达什么应该或不应该是一个事实。

这在自然语言中是一个非常本能的东西。这里有一些基于上述几个事实的例子,使用助动词should:

  • 超市应该卖很多香料。
  • 顾客不应该赊账购买应急用品。

这些例子说明了规则和结构化自然语言是多么紧密地交织在一起。就所有实用目的而言,它们是不可分割的。是的,这些都是简单的规则,但表达更复杂的规则只需要引用更多的名词和动词,也就是更多的概念。

实际上,表达任何规则的难点不在于其规则本身,而在于简洁地表达所有相关的概念。简洁地表达事实和规则的能力是基于概念模型的结构化商业词汇的目的。