blog/release/time/d.20240527.md

9.0 KiB
Raw Blame History

2024.05.27.

日小结

根据ego模型时间接口今天绑定模版2。


season stat:

task alloc sold hold todo
total 13275 13852 -577 2205
PSMD 7000 6241 759 345
learn 1000 967 33 690
ego 3000 3969 -969 600
js 1375 1005 370 390
xuemen 600 1196 -596 150
raw 300 444 -144 30
infra 0 30 -30 0

waiting list:

  • 30分钟时间片

  • 60分钟时间片

    • ego的第1号事项新版个人模型的view
    • ego的第2号事项task之间结算体系设计。
    • js的第3号事项学习 nodejs test框架
    • ego的第3号事项在season metadata中实现浮动时间表修改日计划功能。
  • 90分钟时间片

    • xuemen的第1号事项重新设计S2状态下的学门基本管理制度
    • learn的第7号事项把PSMD的data、src部分升级到rdf如果升级成功则作为范例。
  • 195分钟时间片

    • PSMD的第1号事项term + COM matedata -> deploy metadata -> deploy view
    • learn的第8号事项rust入门

[email] | top | index

7:45~10:59

新版个人模型和部署

  • meta和vat是一种还是两种protocol

    • 是两种。
    • 以公司法分工为例meta主要由董事会负责vat主要由经理+hr等负责、董事监事支持。
    • 基于纯数学语言的共同体meta倾向于由短期或一次性角色完成vat需要稳定的架构但一旦部署就不需要创新。
  • 再与“行动代替语言”对比在个人领域孵化新规则再spilit、joint到共同体中在新模型中怎么实现能不能代替董事角色的旧定义

  • protocol是附有条件的行为还是多个entity的共同认知。

    • 是多个entity的共同认知。
    • 对推理和行为的描述,就包含附有条件的行为,将要发生的行为。
  • 思想、推理和行为要不要统一起来。

  • vat是protocol还是thing。

    • 是protocol。
    • 以protocol替换原有知识
    • 先有明确的知识,再有使用这些知识的推理和行为;
    • 通过替换知识来改变推理和行为。
  • 基本概念清晰,可以真正动笔了:

    • '60': 新版个人模型的view bind:
      • '90': 新版个人模型的共同体接口 bind:
        • '60': 新版个人模型的metadata

[email] | top | index

14:00~15:29

FSM的cypher实现

  • 这是错误的创建语句
MATCH (n) DETACH DELETE n
CREATE (:status {id:1}) -[:event{id:"a"}]-> (:status{id:2})
CREATE (:status {id:2}) -[:event{id:"a"}]-> (:status{id:3})
CREATE (:status {id:3}) -[:event{id:"a"}]-> (:status{id:4})
CREATE (:status {id:4}) -[:event{id:"a"}]-> (:status{id:5})
CREATE (:status {id:5}) -[:event{id:"a"}]-> (:status{id:1})
CREATE (:status {id:1}) -[:event{id:"b"}]-> (:status{id:3})
CREATE (:status {id:3}) -[:event{id:"b"}]-> (:status{id:5})
CREATE (:status {id:5}) -[:event{id:"b"}]-> (:status{id:2})
CREATE (:status {id:2}) -[:event{id:"b"}]-> (:status{id:4})
CREATE (:status {id:4}) -[:event{id:"b"}]-> (:status{id:1})
MATCH (:status{id:1})-[:event{id:"a"}]->(n:status) RETURN n.id

  • 产生了许多同名的node所以只能查询到一层关系。
MATCH (:status{id:1})-[r:event]-{1,5}(:status{id:4}) RETURN r
1
[{
identity:1152931400211496981, 
start:21, 
end:22, 
type:"event", 
properties:{
id:"b"
}, 
elementId:"5:ef4e8d1d-e643-41d1-b24c-a7dcb84ad6b4:1152931400211496981", 
startNodeElementId:"4:ef4e8d1d-e643-41d1-b24c-a7dcb84ad6b4:21", 
endNodeElementId:"4:ef4e8d1d-e643-41d1-b24c-a7dcb84ad6b4:22"
}]
  • 查询不到多层关系的path
MATCH p=shortestPath((:status{id:1})-[:event*1..5]->(:status{id:4})) RETURN p  
No changes, no records
  • 这是正确的创建语句
MATCH (n) DETACH DELETE n
CREATE (s1:status {id:1}),(s2:status{id:2}),(s3:status{id:3}),(s4:status{id:4}),(s5:status{id:5})
CREATE (s1)-[:event{id:"a"}]->(s2)
CREATE (s2)-[:event{id:"a"}]->(s3)
CREATE (s3)-[:event{id:"a"}]->(s4)
CREATE (s4)-[:event{id:"a"}]->(s5)
CREATE (s5)-[:event{id:"a"}]->(s1)
CREATE (s1)-[:event{id:"b"}]->(s3)
CREATE (s3)-[:event{id:"b"}]->(s5)
CREATE (s5)-[:event{id:"b"}]->(s2)
CREATE (s2)-[:event{id:"b"}]->(s4)
CREATE (s4)-[:event{id:"b"}]->(s1)
MATCH p=shortestPath((:status{id:1})-[:event*1..5]->(:status{id:4})) RETURN p  
(:status {id: 1})-[:event {id: "a"}]->(:status {id: 2})-[:event {id: "b"}]->(:status {id: 4})
MATCH (:status{id:1})-[r:event]-{1,5}(:status{id:4}) RETURN r
[
  {
    identity: 6919790723059421554,
    start: 4470,
    end: 4466,
    type: "event",
    properties: {
      id: "a"
    },
    elementId: "5:ef4e8d1d-e643-41d1-b24c-a7dcb84ad6b4:6919790723059421554",
    startNodeElementId: "4:ef4e8d1d-e643-41d1-b24c-a7dcb84ad6b4:4470",
    endNodeElementId: "4:ef4e8d1d-e643-41d1-b24c-a7dcb84ad6b4:4466"
  },
  {
    identity: 1152931400211501429,
    start: 4469,
    end: 4470,
    type: "event",
    properties: {
      id: "a"
    },
    elementId: "5:ef4e8d1d-e643-41d1-b24c-a7dcb84ad6b4:1152931400211501429",
    startNodeElementId: "4:ef4e8d1d-e643-41d1-b24c-a7dcb84ad6b4:4469",
    endNodeElementId: "4:ef4e8d1d-e643-41d1-b24c-a7dcb84ad6b4:4470"
  }
]
  • neo4j aura还不稳定以前测试导入的文件还在影响最近的语句。生产环境肯定不能用。

[email] | top | index

16:00~16:59

FSM的嵌入式db实现

{
    "init": "s1",
    "current": "s1",
    "status": {"s1":1,"s2":2,"s3":3,"s4":4,"s5":5},
    "event": {"ea": "a","eb": "b"},
    "relation": [
        {"from":"s1","event":"ea","to":"s2"},
        {"from":"s2","event":"ea","to":"s3"},
        {"from":"s3","event":"ea","to":"s4"},
        {"from":"s4","event":"ea","to":"s5"},
        {"from":"s5","event":"ea","to":"s1"},
        {"from":"s1","event":"eb","to":"s3"},
        {"from":"s3","event":"eb","to":"s5"},
        {"from":"s5","event":"eb","to":"s2"},
        {"from":"s2","event":"eb","to":"s4"},
        {"from":"s4","event":"eb","to":"s1"}
        ]
}
  • 执行结果:
D:\huangyg\git\js.sample\nosql>node lowdb
{
  init: 's1',
  current: 's1',
  status: { s1: 1, s2: 2, s3: 3, s4: 4, s5: 5 },
  event: { ea: 'a', eb: 'b' },
  relation: [
    { from: 's1', event: 'ea', to: 's2' },
    { from: 's2', event: 'ea', to: 's3' },
    { from: 's3', event: 'ea', to: 's4' },
    { from: 's4', event: 'ea', to: 's5' },
    { from: 's5', event: 'ea', to: 's1' },
    { from: 's1', event: 'eb', to: 's3' },
    { from: 's3', event: 'eb', to: 's5' },
    { from: 's5', event: 'eb', to: 's2' },
    { from: 's2', event: 'eb', to: 's4' },
    { from: 's4', event: 'eb', to: 's1' }
  ]
}
s2
s3
s4
s5
s1
s3
s5
s2
s4
s1
s3
  • lawdb并没有方便的查询语句。

  • https://lodash.com/ 用lodash语法方便一些但也没有SQL、GQL、sypher这些好用。

  • https://github.com/jakesgordon/javascript-state-machine

  • npm install --save-dev javascript-state-machine

  • D:\huangyg\git\js.sample\nosql\FSM.js

  • delete "type": "module", from D:\huangyg\git\js.sample\nosql\package.json

  • 执行结果满意:

D:\huangyg\git\js.sample\nosql>node FSM
state: s1
state: s2
state: s3
state: s4
state: s5
state: s1
state: s3
state: s5
state: s2
state: s4