python 知识管理系统_我试图建立一个动态学习的知识管理系统。当它来的时候...

我试图建立一个知识管理系统,以小的方式试图模仿人类的学习能力。它处理两个,它已经知道的概念的新实例,这允许它进一步改进/专门化已知概念的知识库。它还可以学习从未遇到过的新概念。当它遇到新概念时,它会与现有概念建立关系。我认为编程语言本身的面向对象范式本身可能是知识表示的理想数据模型。例如,类是具有描述概念的属性的概念(事物)和描述它(概念/事物)如何相互作用的方法。因此,汽车是一个通用的概念,因此被建模为类,而我的特定汽车将是该车的对象实例。它显然得益于面向对象语言在处理类和对象时提供的继承和上下导航功能。考虑到Python强大的动态特性,我计划将其用于此目的。在

这种学习系统的两个含义是由于系统学习了有关它已经知道的概念(类和对象)的新知识,除了更改属性值外,它还必须通过添加/删除属性(包括方法)来动态修改类的定义,因此静态定义类是不够的。方法是特别棘手的,因为有与它们相关联的代码。

当遇到新概念时,它必须动态地创建新类。

每次系统启动时,都应该先将所有的先验知识加载到系统中。在这种情况下,它意味着所有知识类(包括动态创建的)的所有“当前”版本(包括任何添加/删除或更改的属性/值/方法),即需要相当全面的序列化/持久化机制。

在会话结束时(拆卸),它必须查看“所有”知识类和对象并将它们序列化。有些可能是新定义的,有些可能更改了它们的属性甚至方法(代码)。需要一种方法来获取所有这些对象/类及其最新的定义,并将它们序列化以实现持久性。在

下次系统运行时,在初始化期间,它需要读取和执行所有的类定义,并恢复对象实例的状态。在

我到处看看,发现了一些零碎的解决方案,比如pickle、json、ZODB、inspect module等等,但似乎没有一个能够序列化动态类,包括方法的代码。在

任何线索都将不胜感激。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值