65.9K
CodeProject 正在变化。 阅读更多。
Home

cnapinet - ConceptNet4 API 库

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.50/5 (2投票s)

2010 年 8 月 10 日

GPL3

2分钟阅读

viewsIcon

19757

downloadIcon

666

连接到 ConceptNet 的 REST API

注意cnapinet.dll 依赖 Newtonsoft.Json.dll 进行 JSON 处理。)

cnapinet_scrn.jpg cnapinet_scrn2.jpg cnapinet_obj.jpg

引言

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 命名空间

cnapinet_ns.jpg cnapinet_classes.jpg

演示

演示应用程序有两个部分:关系/文本和输出框。 为了简单起见,我列出了下拉框中所有可能的 关系本体 [IsAHasAHasSubevent 等]。 我还保留了先前版本的 ConceptNet 中找到的域分组。 在下拉框旁边,有一个文本框可以放置单词或短语。 最后,单击“查找”按钮将运行多个 API 调用并显示返回的对象。

cnapinet 实现

  1. 通过解决方案资源管理器将 cnapinet.dll 添加到你的项目“引用”中。(对于 cnapinet.dll v1.3.x.x,请确保 Newtonsoft.Json.dllcnapinet.dll 位于同一文件夹中)。
  2. 将 'using cnapinet;' 等添加到你的源代码以使用命名空间。
  3. 使用 'ConceptNetAPI CNClient = new ConceptNetAPI();' 等创建主 API 引擎。
  4. 以下是 ConceptNetAPI 中的方法

ConceptNetAPIMembers.jpg

结论

我没有看到任何用于 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 和必要文件
© . All rights reserved.