漫谈信息模型

姚家湾 姚家湾     2022-12-13     757

关键词:

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

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

模型的特点

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

模型的主要特征

-表现性(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 的模型。

结束语

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

从图(graph)到图卷积(graphconvolution):漫谈图神经网络模型

...章,文章目录如下:从图(Graph)到图卷积(GraphConvolution):漫谈图神经网络模型(一)从图(Graph)到图卷积(GraphConvolution):漫谈图神经网络模型(二)从图(Graph)到图卷积(GraphConvolution):漫谈图神经网络模型(三)在上一篇博客中,我们简单介... 查看详情

从图(graph)到图卷积(graphconvolution):漫谈图神经网络模型(代码片段)

...章,文章目录如下:从图(Graph)到图卷积(GraphConvolution):漫谈图神经网络模型(一)从图(Graph)到图卷积(GraphConvolution):漫谈图神经网络模型(二)从图(Graph)到图卷积(GraphConvolution):漫谈图神经网络模型(三)笔者最近看了一些图与图卷积... 查看详情

漫谈容器网络

漫谈容器网络•Feiskyhttps://feisky.xyz/posts/2020-05-27-container-networking/目录网络模型服务发现网络排错容器网络的未来计算、存储和网络是云时代的三大基础服务,作为新一代基础架构的Kubernetes也不例外。而这三者之中,网络... 查看详情

alink漫谈:模型的来龙去脉(代码片段)

Alink漫谈(四):模型的来龙去脉目录Alink漫谈(四):模型的来龙去脉0x00摘要0x01模型1.1模型包含内容1.2Alink的模型文件0x02流程图0x03生成模型3.1生成模型3.2转换DataSet3.3存储为Table0x04存储模型4.1存储代码0x05读取模型0x06预测6.1生成runtimerapp... 查看详情

漫谈前期信息收集

0x00思维导图0x01静默收集(目标无日志记录)搜索引擎Googlehackinggoogle基本语法Indexof/  使用它可以直接进入网站首页下的所有文件和文件夹中site:  site:baidu.com将返回所有和这个站有关的URLintext:  将返回所有在网页正文部分包... 查看详情

简易oa漫谈之工作流设计(六,快捷表单和动态表单)

  如果没有表单设计功能,我们一般建物理表,再把表单挂接到流程,我们可以把外接表单的地址填到表单地址中,地址中会传递一个id.如果使用外接表单,在审批的时候可能会“不太友好”,因为在审批单上看不到任何... 查看详情

堆栈漫谈

    -----------------------C语言内存管理----------------------内存组成我们现在把这个模型进行简化,简化如下:                    & 查看详情

理论研究漫谈传统it基础设施06-网络(下)

本文欢迎转载,转载请注明出处和作者。继续讨论一下OSI七层模型,如果上篇的解释还是意犹未尽,那么我们继续尝试以使用QQ软件聊天的类比说明,来说明OSI七层模型。两主机通信的过程,从发送者(以下简称A)到接收者(以... 查看详情

增强现实技术漫谈

前言随着信息技术的高速发展,虚拟现实、增强现实等逐渐火热。虚拟现实是一种完全建立虚拟环境,让人类脱离现有环境进入新的世界,它的广泛应用可能还要经过一段时间的积淀,目前虚拟现实主要在科研仿真、虚拟漫游、... 查看详情

森城市gis数据漫谈

在上篇“GIS数据漫谈(一)”中简单介绍了GIS数据中矢量数据和栅格数据的概念,以及常见的GIS数据文件类型。这篇漫谈中我们继续讲讲地图服务。空间数据库GIS的发展史是跟随IT技术的发展史进展的,比如前面提到的各种矢量... 查看详情

漫谈未来的hdfs

前面我们提到的HDFS,了解了HDFS的特性和架构。HDFS能够存储TB甚至PB规模的数据是有前提的,首先数据要以大文件为主,其次NameNode的内存要足够大。对HDFS有所了解的同学肯定都知道,NameNode是HDFS的存储着整个集群的元数据信息... 查看详情

漫谈推荐系统

    作为一个毕业设计、或者作为一个兴趣,往大了说作为一个事业。推荐系统从0开始构建,确实是有很多问题需要解决,推荐系统本身涉及UI交互、线上服务、数据计算、模型构建,课程设计或毕业设计没有数据... 查看详情

漫谈网络钓鱼

在信息安全领域,有一个词汇,叫做钓鱼。什么意思呢?就是用一些看上去有诱惑力的诱饵让你上钩,从而获得你的机密信息,或者获得你的资产及财务。举个真实的例子,有人模仿过马斯克的twitter,... 查看详情

漫谈大数据-基于sparksql的离线数仓

目录知识补充离线数仓的分层设计数据分层ODS数据分层DW数据分层APP数据建模知识补充在正式阅读之前,首先需要理解以下基本概念以帮助你更好的了解数据仓库:业务板块:比数据域更高维度的业务划分方法,... 查看详情

转漫谈数据库索引

漫谈数据库索引 一、引言二、B-TreeB-TreeB+TreeMsSqlB+TreeOracleSysbaseB-TreeB-Tree 不同于(二叉树,最多有两个子树),一棵阶的满足以下条件:)每个结点至多有个孩子;)除根结点和叶结点外,其它每个结点至少有个孩子;)... 查看详情

词向量与elmo模型词向量漫谈(代码片段)

目录:基础部分回顾(词向量、语言模型)NLP的核心:学习不同语境下的语义表示基于LSTM的词向量学习深度学习中的层次表示以及DeepBI-LSTMELMo模型总结1.基础部分回顾(词向量、语言模型)1.1独热编码-词的表示  1.2词向... 查看详情

漫谈反射

反射理解反射的概念反射就是把Java类中的各种成分映射相成Java类。比如:众多的人用一个Person类来表示,那么众多的Java类就用一个Class类来表示。反射也称为对类的解剖。把类的各个组成部分映射成一个个对应的Java类。比如:... 查看详情

漫谈http(上)

HTTP协议: 超文本传输协议(HTTP,HyperTextTransferProtocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。1960年美国人TedNelson构思了... 查看详情