Open fushang318 opened 11 years ago
KnowledgeNet 和 KonwledgeSpaceNet 大概使用方法:
# 首先,已经存在手动整理的 knowledge_net.xml
# 以下是根据这个xml整理出持久化的知识空间数据的
# 第一步,使用 KnowledgeNet 类来装入这个xml
knowledge_net = KnowledgeNet.load_xml_file('knowledge_net.xml')
# 第二步,使用KnowledgeSpaceParser(由宋亮编写),根据 knowledge_net 对象获得 KnowledgeSpaceNet 对象
knowledge_space_net = KnowledgeSpaceParser.parse(knowledge_net)
# 第三步,将 knowledge_space_net 对象进行持久化存储,形成一个xml文件
knowledge_space_net.save_to('knowledge_space_net_1.xml')
# 第四步,将来需要再次使用 knowledge_space_net 对象时,直接以下面的方式读入
knowledge_net = KnowledgeNet.load_xml_file('knowledge_net.xml')
knowledge_space_net = KnowledgeSpaceParser.load(knowledge_net, 'knowledge_space_net_1.xml')
``
最后会封装一个rake任务,包括这个使用方法里面的1,2,3步
类似:
rake parse_knowledge_space knowledge_net.xml knowledge_space_net_1.xml
这样来根据知识结构来生成知识空间
每次手动维护了知识结构后都运行这个rake任务更新知识空间
推荐,能力检测等工具里用到知识空间时,就按照第四步的做法从持久化将其读入内存
KnowledgeSapceNet 表示一个很多 KnowledgeSapceNode 节点组成的网状结构
其中每个 KnowledgeSapceNode 节点,包含多个 KnowledgeNode 节点 一个 KnowledgeNode 可以被多个 KnowledgeSapceNode 分别包含
包括两个模型
一个 KnowledgeSapceNet 被持久化为一个 xml 文件
xml 文件结构如下
xml 说明 knowledge_node_ids 表示 一个KnowledgeSapceNode 包含的 KnowledgeNode id 数组
需要做的事情
1 实现 KnowledgeSapceNet KnowledgeSapceNode KnowledgeSpaceParser 三个类的逻辑 具体API如下