cnapinet - ConceptNet4 API 库
连接到 ConceptNet 的 REST API
(注意:cnapinet.dll 依赖 Newtonsoft.Json.dll 进行 JSON 处理。)
![]() |
![]() |
![]() |
引言
ConceptNet¹ 是一个常识知识库,主要由麻省理工学院 (MIT) 编写和维护的开放思维项目组成。 ConceptNet
4(撰写本文时的当前版本)本身是用 Python 编写的。 例如,ConceptNet
可能在一个应用程序中很有用,可以将某些想法链接在一起以实现组织目的。 我开发这个库的自私原因是,我可以快速地用 C# 表达我的编码想法,而且我还没有看到任何人为 ConceptNet
API 开发 .NET 库。 此外,自从 2.1 版本以来,我还没有真正使用过 ConceptNet
,所以我决定花一些时间来构建一些东西。
.NET C# ConceptNet API 类库 (cnapinet)
cnapinet
可以提供到 ConceptNet REST API 的接口。 它基于 Python 客户端 API rest_client.py。 使用 API 接收 ConceptNet
概念的列表和对象。
cnapinet 命名空间
![]() |
![]() |
演示
演示应用程序有两个部分:关系/文本和输出框。 为了简单起见,我列出了下拉框中所有可能的 关系本体 [IsA
、HasA
、HasSubevent
等]。 我还保留了先前版本的 ConceptNet
中找到的域分组。 在下拉框旁边,有一个文本框可以放置单词或短语。 最后,单击“查找”按钮将运行多个 API 调用并显示返回的对象。
cnapinet 实现
- 通过解决方案资源管理器将 cnapinet.dll 添加到你的项目“引用”中。(对于 cnapinet.dll v1.3.x.x,请确保 Newtonsoft.Json.dll 与 cnapinet.dll 位于同一文件夹中)。
- 将 '
using cnapinet;
' 等添加到你的源代码以使用命名空间。 - 使用 '
ConceptNetAPI CNClient = new ConceptNetAPI();
' 等创建主 API 引擎。 - 以下是
ConceptNetAPI
中的方法
结论
我没有看到任何用于 ConceptNet REST API 的 .NET 库,所以我决定基于 Python 客户端 API rest_client.py 创建一个。 我计划将其与我想到的一些应用程序一起使用,以帮助以一种有意义的方式将信息组合在一起,而不是按字母顺序或时间顺序排列。 我之前的一些使用旧版本的文章更多地嵌入了 Python 和 IronPython;随着 ConceptNet
仍在积极开发中(即将发布版本 5),访问其数据变得越来越容易。
参考文献
- ConceptNet Web API, 麻省理工学院 [^]
- Newtonsoft.Json.dll, Json.NET Copyright (c) 2007 James Newton-King [^]
- 开放思维常识项目 [^]
更新
- 8/10/10
- 上传了
CNAPINetDemo
v1.3.0.0 Microsoft Visual C# Express 2010 项目文件 - 上传了 cnapinet.dll v1.3.0.0 和必要文件
- 上传了