漫谈信息模型(1)

29 篇文章 18 订阅

        简单地表达复杂的世界,这是各类思想家近千年来的追求。如何将人类在世界上观察到的结果进行概念化表达?又如何描述人造的复杂工具?这种探索成为人类文明进步的一个重要的驱动力。计算机的出现,推动了人类对现实事物进行概念化的描述。

      事物概念化的基本方法称为建模。在科学中,模型是对某种“真实”事物的简化表示。科学家说是在研究自然,但实际上他们做的大部分工作是在对自然进行建模,并对他们建立的模型进行研究。模型是一种思维方法,成语“去伪存真”就是建模的过程。

模型的特点

        建模是人类对人类思想进行整理的技术,也通过人类进行验证。同样一个事物而言,不同的目的,建立的模型是不一样的。

模型的主要特征

-表现性(Representation)

        模型表现了一个事物(A model represents some thing)。它能够反映该事物的基本特征,便于对事物进行识别,存储,统计和处理。

         数学是一种描述自然和社会学现象的模型语言,使用数学来描述物理事物,以便我们采用数学方法来推演物理现象。比如弹道轨迹来确定炮弹落地的位置。

-抽象性(Abstraction)

        模型抑制了无关紧要的细节,专注重要的方面。比如形形色色的人,我们构建的基本模型可能只包括了姓名,年龄,性别,民族

-实用性(Pragmatics)

        模型为了某一个目的而设计。建模的艺术就在于去除掉实在中与问题无关的部分。所以建立的模型与要解决的问题有关。如果随意地使用模型,存在一定的风险。建模者可能忽略了你解决问题时需要的某些重要的因素。

        例如,对于一个人而言,人的基本特征包括了年龄,姓名,性别。如果他是一名学生,可能需要的基本特征还有专业,年级,学习成绩,同学等特征。如果他参加选美,那么需要身高,体重,三围尺寸等特征。

建模

        人们对事物的模型最初是在头脑中形成的,也是人类的认知过程,我们常说通过实践对某件事情形成了概念,其实是对该事物建立了一个模型。

            在中文语境中,形成了概念与建立了一个模型十分相似。

        也许我们还不清楚3岁之前的儿童是如何建立起对周边事物的模型。比如通过了味觉,视觉,环境反射等等因素。

        人类对自然和社会现象的研究,本质上是通过观察和实验,揭示事物的规律,并且构建这些事物的模型。

         动物学家通过不断地观察,根据动物的习性,对地球上的动物进行了详细的分类。并且描述了它们各种的特征。这些研究可以认为是建立动物模型的过程。

        物理学家通过实验和观察揭示了力学,电磁,光学,天文等诸多领域事物以及事物之间的相互作用的模型。

模型的描述

        构建模型的另一个重要的作用是用于交流,当你告诉另外一个人发现了一条狗,别人马上就知道了此事,并且想象出哪个画面。这是因为你们双方都建立了狗的模型。

        描述模型最简单的方式是采用自然语言或者是一张图片,比如小时候妈妈常给孩子唱儿歌“一个青蛙四条腿,两个眼睛,一张嘴”。她为孩子的脑海里构建了一个青蛙的模型。

   除了口头交流之外,人类还能够通过文字来描述模型。 发明书写语言是人类最伟大的智慧。这样就使各种知识能够广泛地传播和传承。知识是有大量的概念构建而成的。

自然语言的特点的词汇丰富,能够书写出动人的文字。但是它的缺点是不够严谨。

还记得“按图索骥”的故事么?

        孙阳有个儿子,看了父亲写的《相马经》,以为相马很容易,就拿着这本书到处找好马.他按照书上所绘的图形去找,一无所获.又按书中所写的特征去找,最后发现有一只癞蛤蟆很像书中写的千里马的特征,便高兴地把癞蛤蟆带回家,对父亲说:“爸爸,我找到一匹千里马,只是蹄子稍差些.”父亲一看,哭笑不得,没想到儿子竟如此愚笨,便幽默地说:“可惜这马太喜欢跳了,不能用来拉车.”接着感叹道:“所谓按图索骥也.”

        这个故事其实告诉我们,模型的描述非常重要,如果模型的特征不完整,描述不清晰,可能会闹笑话。

        数学是人类发展起来的一种严谨描述模型的语言。在问及什么是数学这个问题时,大多数回答是关于数字的学问。在《数学语言》一文中指出,数学是一种模型描述语言。我觉得恍然大悟。许多的物理现象能够使用数学语言来描述和推演。

     在计算机科学中,人们基于数理逻辑的思想,创造了一系列没有二义性,上下文无关的形式化语言来描述模型。例如XML 语言。

语言的困惑

        人类语言的最大困惑是各地的人类使用不同的语言,例如中国人使用象形文字中文,法国人使用法语,德国人使用德语,阿拉伯人使用阿拉伯语,希伯来语等等。书写语言的两个要素,语法和符号。不同地区采取不同的语法和符号。

    据说,远古时期天下人的口音,语言都是一样的。后来发现人类使用同一种语言的力量太强大了,就将各地的人改成使用不同的语言。各地区语言的不同的确造成了人类的困惑。千百年来,人们耗费了大量的精力从事语言的学习,翻译。也有人希望发明一种世界统一的语言来代替各地方言,或者使用某一种语言成为世界的通用语言,始终没有成功。

        在信息模型的描述语言领域,同样是如此。人们建立了各种各样的模型描述语言,并且加以标准化。希望成为统一的标准。例如 UML,SysML,AutomqtionML,OPC UA ,工业4.0 AAS,IEC61360,ISO/PAS 19450 等等,名目繁多,层出不穷。这样语言的设计者和拥护者各持己见,谁也说服不了谁。都说掌握了标准就掌握了全局,在这里好像不好使。于是,各种网关,转换器苦逼地使用。

        对于大多数学习者,我们并不要学习各种语言,成为精通多国语言的专家。而是要了解语言背后的逻辑。从而提高掌握语言的能力。

基于信息技术的建模方法

利用信息技术构建模型的主要方法是基于面向对象的思想。

      与数学建模的方式不同,信息技术构建模型的方式更加接近人类的知识积累的方式。一切从观察到的,或者想到的事物出发,事物是确定存在的任何事情,比如山,动物,人,书等等。在目前信息技术领域,这些事物被称为“对象”,而在台湾被翻译成“物件”,笔者认为更贴切一点(嗨,该死的语言差异)。

对象:对象是在某段时间内有可能稳定而且无条件存在的事物。

       对象可分文物理对象和信息对象。例如一所房子,它是一个物理对象,也是一个有形对象。而电脑中的一文件是信息对象。

类- 对象模型

     对象的模型是通过其属性和特征来描述的。  属性用来区别不同的同类事物,而特征用来描述事物的特征。例如 人的姓名,身份证号码是其属性,而特征是事物的某些特征数据,比如性别,年龄,学历等等。

        对象的一个重要的特征是该对象与其它对象的关系(relationship)。无论是自然界和社会中的事物都不是独立地存在的,它们与其它事物具有千丝万缕的关系,比如父子关系,同学关系等等。因此,事物模型的特征中还具有与其它事物的关系特征。 

       复杂的对象可以分解成为多个简单的对象。无法分解的对象成为本体或者原子。在自然语言中,本体通常被称为基本概念,术语。人们在基本概念和术语达成共识。

人们通常将复杂的对象称为系统(System),在模型学的观点下,系统的定义如下:

系统:由一组实体和这些实体之间的关系所构成的集合。

系统架构:架构是对系统中的实体和实体之间的关系进行抽象描述。

更简单一点讲,架构是系统的描述。

复合模型的描述

分层结构

       复杂的对象可以分解成为多个简单的对象。复杂系统模型是使用其它模型构建,这是一种“Top Down” 的结构。

分层结构是一种简化的图结构-树形结构

图模型

 某些复杂系统的对象之间的关系不是简单的分层结构。对象之间的关系是一个网络关系来表示。节点是对象,连线是关系。

         例如。在大学中的一个学生,他属于某一个班级,班级属于年级,学院。同时学生还属于某一个实验室,宿舍楼。学生和学生之间可能是同学关系,恋爱关系等等。

图模型的最大缺点是难以使用图来构建,编辑。寻找一种图模型的组态方式是富有挑战性的。下面这种结构令人困惑。        

对象-过程模型(OPM)

         面向对象设计思想传播最广泛的是面向对象的程序设计语言 ,例如C++。建模语言也吸取了面向程序设计语言的思想,在类定义中包含了方法(也称为函数Function)。这些方法描述了对象的行为。

   对象是”一等公民“,将方法和服务是二等公民。笔者认为,这种构建类的方法其实受到了面向过程程序设计的思想的影响,比如隐藏实现,暴露接口,定义和实现分离等软件工程的思想。如果以面向对象程序设计的范式区看待信息模型,例如OPCUA 信息模型。如何改变信息模型的状态,当信息模型的数据改变时,调用哪一个方法?总是感觉不清不楚。方法和信息模型之间隔着一堵墙。

   值得幸运的是,以色列理工学院的多夫多里(Dov Dori) 教授在上世纪90年代也看到了这个问题。正是他提出了对象过程法(Object-Process Methodology OPM)。这个方法的核心思想是对象和过程平起平座。他描述的系统包含了两类要素:对象和过程。其概念非常简单,只用了两个基本的概念:带状态的对象和改变对象状态的过程。

      国际标准化组织ISO 制定了OPM 的国际标准

ISO/PAS 19450:2015  Automation systems and integration — Object-Process Methodology

 Dov Dori 关于OPM 的书有中译本。感兴趣的读者可以读一下。

 

     OPM 的基本概念。

  1. 对象是存在或者可能存在的事物
  2. 过程是变换对象的事物
  3. 对象或过程是事物

OPM 思想

     大致看了一下 Dov Dori的书,感觉OPM 模型中最大的困惑是过程的调用。有许多种Link。搞得有点复杂,而且为了解释这些LINK ,出现了许多的概念和名词。总的感觉OPM 离现在其它的建模方法有点远。

     但是OPM 的建模思想还是可以参考的,主要包括:

  •      过程改变对象
  •     对象状态的改变触发过程的执行

过程改变对象是容易信息表达和理解的。过程触发的情况就相对比较复杂。

1   环境触发,所谓环境系统其实就是上一层对象,比如车间里面有机床,车间便是机床的环境。车间断电,触发机床停机。

2   对象状态改变 比如机床的温度超过警戒值,触发告警过程的执行。

         其实问题并不那么简单,比如工人打开机床 ,这种情况下, 人是对象,还上过程?人开机床如何建模?细想起来有点蒙圈了。

        在比如,环境的温度如何建模?构建一个传感器对象,那么信息化的传感器对象如何读取物理事物的值?具体地是由另外一个过程来读取物理对象的值,还上在传感器对象中自动地读取呢?

     

 OPM 使用了一堆概念,解决这些问题。但是过于复杂了。笔者认为可以按照如下方式简化

 1    过程改变对象的状态

2  对象状态变化触发过程

在一个模型架构下,定义对象触发过程的事件类型,最基本的

   1  ReadBefore(读之前事件)

   2 WriteAfter(写之后事件)

         其中红色的箭头为事件,黑色的是读写操作。在上面的模型中,物理环境的温度是由过程读取的。当然也可以在传感器内部的支持程序完成。

  

 感觉第一种方法更符合OPM 的模型。

结束语

许多事情深入细节后,就复杂了。信息模型与过程(方法) 如何结合是需要拿捏的事情。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值