Xuan Wu
Xuan Wu
@SilverLeaves 这里关注的是对基础知识本身的程序/数据化. 利用形成的知识库(如楼上例子: https://github.com/program-in-chinese/overview/issues/97#issuecomment-432463680, https://github.com/program-in-chinese/overview/issues/97#issuecomment-432862303 )来实现衍生应用可以有很多形式, 比如教学软件/类似wolfram的搜索引擎等等. 至于用何技术实现是确定了应用形式之后再探讨的问题. 你觉得哪种衍生应用比较有需求? 在哪种平台(单独网站, app-PC/移动端/小程序, 浏览器插件等等)着手实现较适合?
@SilverLeaves 上面的代码不是给少儿看的. 举个例子, [三国志系列游戏](https://baike.baidu.com/item/%E4%B8%89%E5%9B%BD%E5%BF%97/2588210)也是基于了史实和地理知识, 比如城市/人物/大事件年代/兵种相克等等. 这里希望积累的中文知识库就是作为各种衍生应用的基石(游戏只是衍生应用的一种), 性质与[这里](http://openkg.cn/home)的各种知识库相同, 只不过是用某种编程语言实现, 而非常用的RDF/OWL格式.
@SilverLeaves 技术上做的到. 可以看看一个开源的日语编程语言(最新版也是JS实现), 就挺接近自然语言(包括无空格等): https://zhuanlan.zhihu.com/p/30800689 这个项目的主要目标是知识库本身, 后续的查询语句也许会衍生出一套简单的DSL, 但不打算打一开始就创造一个通用编程语言.
如https://github.com/program-in-chinese/overview/issues/123#issuecomment-450545686 所述, 打算先从[度量衡](https://baike.baidu.com/item/%E5%BA%A6%E9%87%8F%E8%A1%A1)开始. 与某历史地理群讨论之后, 发现的确有类似需求. 功能初步设想如下: - 从现代的日常常用中文单位开始, 长度: 千米-毫米等; 质量: 吨-克等; 面积: 平方公里等; 体积: 立方米, 升等. 以及[市制单位](https://baike.baidu.com/item/%E5%B8%82%E5%88%B6). - 支持同一度量之间的换算, 比如公制长度单位之间, 市制长度单位之间, 公制与市制长度单位之间 初版粗略API设计: - enum 单位类型 {长度, 质量, 体积,...
得知数学 app [GeoGebra](https://www.geogebra.org/)支持中文函数: 
已开始一些文史、自然方面的常识库:[中国历代纪元](https://zhuanlan.zhihu.com/p/126607340),[中医药方](https://zhuanlan.zhihu.com/p/119299775)。 还有一些想法: - 农历、节气、传统节日 - 国家标准,如[国/地区列表](https://github.com/Haixing-Hu/typesetting-standard/blob/master/%E8%AF%AD%E7%A7%8D%E5%8F%8A%E6%9C%89%E5%85%B3%E4%BB%A3%E7%A0%81/%E3%80%90GB:T%202659-2000%E3%80%91%E4%B8%96%E7%95%8C%E5%90%84%E5%9B%BD%E5%92%8C%E5%9C%B0%E5%8C%BA%E5%90%8D%E7%A7%B0%E4%BB%A3%E7%A0%81.pdf) - 家庭关系 [参考](https://github.com/program-in-chinese/DSL_FamilyRelation) - 例程库(从在使用的语言开始),参考 https://github.com/program-in-chinese/overview/issues/133 - 童谣 - 新华字典的字(偏旁、笔画、注音等信息),有些现有笔顺和拼音库可借用 - 植物、动物 - 菜谱 参考: - [中文排版所需遵循的标准和规范](https://github.com/Haixing-Hu/typesetting-standard) - [NLP 诗词库](https://github.com/fighting41love/funNLP/tree/master/data/%E5%8F%A4%E8%AF%97%E8%AF%8D%E5%BA%93) - [中文歌词](https://github.com/nEvErMoReaken/Cloudlyric/tree/master/data/%E6%B0%91%E8%B0%A3%E5%90%88%E9%9B%86%20-%20%E6%AD%8C%E5%8D%95%20-%20%E7%BD%91%E6%98%93%E4%BA%91%E9%9F%B3%E4%B9%90) - [非官方”新华字典"](https://github.com/pwxcoo/chinese-xinhua/issues/37)
尝试本地搭建环境,但不幸在`bundle install`这步报错止步: ``` config.status: error: could not create libxml2.spec ... An error occurred while installing nokogiri (1.10.1), and Bundler cannot continue. ``` 于是仅粗略看了代码。[此目录](https://github.com/freeCodeCamp/devdocs/tree/master/lib/docs/scrapers)下有大多数在线文档的路径等详细信息,可以利用。比如[Python](https://github.com/freeCodeCamp/devdocs/blob/b5bd218e2729f36af61ea40db9feb3dfab6a7510/lib/docs/scrapers/python.rb#L28)的: ```ruby self.base_url = 'https://docs.python.org/3.7/' ``` 考虑使用类似[miniblink](https://github.com/weolar/miniblink49)的浏览器控件,以避免对网页浏览器的依赖(目标是桌面软件而非网站)。
初步查看miniblink与其他方式集成浏览器(如[java-cef](https://bitbucket.org/chromiumembedded/java-cef/src/master/))。 为节省工作量,第一步不作任何集成,提取API链接后,建立索引,添加中文词典,提供中文关键字搜索功能,点击链接后在外部浏览器中打开网页。
一些原型进展,8 月初后暂时搁置(记不清何故): [用JS Search实现客户端JSON内容索引和搜索](https://zhuanlan.zhihu.com/p/75985099) [API 中文搜索+例程 初步演示原型 0805](https://www.v2ex.com/t/589415#)
希望这个讨论不会太分神(因为太见仁见智, 就像推敲诗里的取字一样)妨碍编译器修改的进度 :) 好像你之前也提到过, 先改出来再说, 毕竟修改词汇是方便的事情. 只要还没有大规模推广, 就不用考虑太多向前兼容的问题. 话说回来, 也许需要一些例程, 囊括所有关键词, 写出来看看视觉效果. 比如([来源](http://www.tutorialspoint.com/cplusplus/cpp_switch_statement.htm)), 只包含了几个: ``` #include using 名字 std; 整 main () { 字 成绩 = 'D'; 切(成绩) { 例...