时间的本质
物质/能量/信息是宇宙的基本元素,时间不是,时间是在度量物质/能量/信息状态的变化时,提出的衍生概念。如果万物静止,没有声音,没有光,就没有时间。
秒在物理学中用铯元素的衰变周期来定义。
时间是线性的,不可逆的,是有热力学第二定律所决定的。时间感是相对的,光速飞船,冬眠的动物,在不同参考系中的客体对时间的经验没有可比性。时而度日如年,时而光阴似箭。
时间是线性的,并不意味着信息是线性的。声音作为信息的载体时,信息是面相流的,是线性的,但是书,乐谱,是以块的形式来存储信息的。
系统性思考世界的复杂性,人,社会,关系,时间,空间,物质,信息。。。。
语言的本质
语言就是特定文化/特定族群对其物质世界和精神世界所建立的全部模型。语言影响人的思维,行为,语言很重要。
日常语言,学术语言,符号语言,行业语言,家庭语言,。。。。
所以,思考语言就是思考世界。
思考的对象分为两类,世界观和方法论。世界观就是如何看待/理解世界,方法论是如何处理与世界的关系。婚姻观就是对婚姻的看法,是平等互爱,还是三天不打上房揭瓦。如何处理自己婚姻关系。
名/概念/模式/抽象与归纳:本质上是一种信息编码与压缩的技术。
学习与思考,就是大脑获取,转换,和存储信息的过程。
汉语是一种编码能力极强的语言,每个成语都是一个特殊情景的代码。
一些概念
- 本体论: Ontology 就是 Being,与存在,存在者,相关!
- 超验:气,经脉,天,心,道
- 本质与现象,共相与殊相,一般与个别,
- 形而上者谓之道,形而下者谓之器
- 概念:是人脑对客观事物本质的反映,是本体的语言模型!概念是思维的基本单位。内涵就是模型,外延就是实例。
- 本体论是哲学概念,它是研究存在的本质的哲学问题,这个词被应用到计算机界,并在人工智能、计算机语言以及数据库理论中起到越来越重要的作用。
- 计算机领域:本体论就是对概念化的精确描述,用于描述事物的本质。
概念的内涵与外延
- 狗,是一个概念,其内涵就是“狗是什么”,外延就是有哪些狗。狗是会汪汪叫的动物。而狗的外延就是所有会汪汪叫的动物。
- 内涵,就是本体的模型;外延就是该模型的所有实例。
- 初级概念:是浅层次的,反映对象的非本质的特有属性。
构建本体的简单步骤:
- 列出研究课题所涉及到的词条:
- 按照词条的固有属性和专有属性进行归纳和修改(内涵),对词条建立类以及层次化的分类模型
- 加入关系联系词条和模型
- 按照需要,添加实例作为概念的具象(外延)
存在论的问题
- 什么是存在
- 什么是物质物体
- 什么是物体的基本属性
- 用什么区别确定一个物体
- 物质物体存在的基本定义是什么
- 物体的特性是什么
- 存在的特性是什么
- 什么时候物体不在存在, 并不仅仅是变化
- 为什么物体可以相对于虚无存在
属性
- 一个具体事物,有许多的性质与关系,称为事物的属性。
- 事物与属性密不可分,事物都是有属性的事物,属性也都是事物的属性
思考
既然宇宙的三要素是:物质,能量,信息。那么人类所有的概念都应该是由这三者衍生而来:物质模型,能量模型,信息模型。
现实 vs 编程
客观世界,或者说现实世界,是人类的世界观,是人类对世界的理解,大千世界、万事万物在前,观念在后,名或者元在后。而在编程世界,是先有的概念,先有的元,先有的类,然后有的对象。
设计
设计,就是在特定约束条件下,为解决特定问题,而对资源(人/知识/工具)进行创造性的配置/选择/使用
思考: 经验驱动,知识驱动,理论驱动
数据
数据是信息的载体,是客观事物的抽象描述。
软件的本质是信息处理。
数据的基本特征: 类型,大小,位置,名称,状态,生命周期。。。
数据结构: 类型,内容,性质,关系
元数据
关系本质上也是数据
数据模型: 树形数据,关系型数据,网状数据
元数据模型:
json,xml,soap,buffer protocol,序列化
数据建模框架: e-r,json,xml,
现实世界的数据模型是最复杂,最合理的模板,公司,学校,家庭,国家,对人这个对象,有不同的抽象,关注的特征不一样,模型也不一样。
人,即是一个对象,也是一个系统,接口很清晰,关系的管理模型也很有意思。
父子,夫妻,这些都是强关系,前者为immutable,后者为mutable,关系变更需要遵循法律。朋友关系,则是弱关系,更可以细分,也不一定是双向的,比如微博的关注,我可以不知道谁关注了我,什么时候开始,什么时候结束。
数据也应该如此,java中引用也有weak referrance。本质上涉及到关系数据的生命周期。
编程语言中的数据模型多种多样,各自都有其考量。c语言中的数据结构,更偏向于纯数据,更容易理解和设计,data flow很清晰。面相对象语言中的对象,更应该看作一个子系统。以对“人”来建模为例,java试图去扮演人,而c则是试图去描述人。学校在管理学生时不需要去扮演人,只需要管理学生信息就行了。
uml: 真的更有效吗,如何辩证的去思考建模问题?面相对象的思想,让开发者能用现实世界的对象视角去思考软件开发,但是将数据和行为整合到对象里,某种程度上,增加了软件设计的复杂度。