#gStore-weekly | gAnswer的使用

news2024/9/17 9:11:12

gAnswer能够将自然语言问题转化成包含语义信息的查询图,然后,将查询图转化成标准的SPARQL查询,并将这些查询在图数据库中执行,最终得到用户的答案。这篇文章将介绍gAnswer的使用。

目前gAnswer仅仅提供了HTTP API,以JSON格式接受用户自然语言问题,同时以JSON格式返回生成的SPARQL查询和问题答案。首先介绍gAnswerHttp启动,然后是http API以及数据传输格式。

1、gAnswerHttp

gAnswerHttp是利用jetty开发的,嵌入式的,轻量级的gAnswer http server。在控制台/终端启动gAnswerHttp以后,可以通过http请求获取系统生成的问题sparql和问题答案。 启动的方法是:切换到工程文件夹下,控制台输入

java -jar Ganswer.jar

默认为9999端口。若想使用其他端口,例如8888,可以输入

java –jar Ganswer.jar port=8888

2、http API说明
2.1、简单样式

在本部分,会给出一个使用gAnswerHttp API的例子。 正常启动gAnswerHttp后,用户需要构建一个json格式的数据,例如:

{
 “maxAnswerNum”: “3”
 “needSparql”: “2”
 “question”: “Who is the wife of Barack Obama?”
}

上述json数据的含义为:回答”Who is the wife of Barack Obama?”这个问题,要求最多返回3个不同的答案,1条生成的SPARQL查询。 将此json数据转化为字符串,进行url转码,然后使用ip:port/gSolve/?data=%json string%
(在%json string%处放入json数据字符串)这一uri来调用gAnswer系统。在样例中,实际访问的uri为:http://ip:port/gSolve/?data={maxAnswerNum:3, maxSparqlNum:1,question:Who is the wife of Ming Yao?}
若省略maxAnswerNum和maxSparqlNum则系统使用默认参数。假如系统返回了正确结果,返回的内容也是json格式的数据,如下所示:(注意,使用浏览器直接访问时,应在源代码页面查看返回结果,避免出现显示错误)

{
 “status”: “200”
 “query”: “Who is the wife of Barack Obama?”
 “vars” : [ “?wife” ]
 “sparql”: [
 “select DISTINCT ?wife where { ?wife <spouse> <Yao_Ming>. } LIMIT 3”
 ]
 “results”:{
  “bindings” : [
  {
   “?wife” :
   {
    “type” : “uri”
    “value”:”<Ye_Li>”
   }
  },
  ]
 },
}

需要特别说明的是,其中“vars”代表识别到的变量名,“results”中为实际得到的答案,”value”中为实际答案的值,“status”则说明这是一次正常的请求返回。假如系统中出现了错误,那么同样会返回json格式的数据,而不会报错。如下:

{
 “query”: “”,
 “message”: “UnvalidQuestionException: the question you input is invalid, please check”,
 “status”: “500”
}

这是输入了无效问题(长度过短)以后,返回的json数据,其中“message”提供了出错的详细信息,“status”说明了错误的代码。

2.2、API 结构

gSolve

uri : ip:port/gSolve/

作用:向gAnswer请求返回一个或多个用户问题的答案和sparql,用户可以选择返回答案还是sparql

输入:

{
 “maxAnswerNum”: //一个整数,代表需要返回的答案的上限
 “needSparql”: //一个整数,代表需要返回sparql的数量
 “questions”: //用户问题
}

输出

{
 “status”: //表示用户请求的状态
 “query”: //用户问题
 “vars” : [ …… ] //查询中涉及的变量
 “sparql”: [ …… ] //由用户问题得到的sparql查询
 “results”:{
  “bindings” : [ //多个json对象,每个对象为一组变量的值绑定
  {
   “%varName%” : { //此处的key为上面“vars”中出现的变量的名字
   “type” : //说明这个值的类型,比如uri
   “value”://答案的值
   }
  }
 ]
 },
 //当maxAnswerNum大于0,会返回得到的答案
}

getInfouri:ip:port/getInfo/
作用:获取当前gAnswer系统的状态以及相关元数据 输入:不需要额外的参数 输出

{
 “version”: //当前的系统版本
 “dataset”: //当前使用的数据集
 “GDB system”: //当前使用的gStore版本
}

2.3、Java API示例

我们在源代码的application.gAnswerHttpConnector中给出了使用Java通过http请求访问gAnswer系统的示例。

public String gSolve(String data){
    String param = data;
    String rst = sendGet(param,"/gSolve");
    System.out.println(rst);
    return rst;
}

public String gInfo(){
    String param = "";
    String rst = sendGet(param,"/gInfo");
    System.out.println(rst);
    return rst;
}

3、demo展示

gAnswer在DBpedia2016,bird,film三个数据集的demo演示可以公开访问:https://answer.gstore.cn/pc/index.html

我们的系统能轻松实现这种三跳的问题解析以及数据库查询:

系统还对中间数据细节可视化展示,包含对问题解析后的解析树,查询图,“vars”识别到的变量名。以及生成的 sparql 查询语句。


有任何问题可添加以下二维码联系我们的运营同学。

诚邀大家参加

·gStore-weekly技术文章征集活动·

  相关技术文章,包含但不限于以下内容:系统技术解析、案例分享、实践总结、开发心得、客户案例、使用技巧、学习笔记等。文章要求原创。

  入选周刊即送精美礼品~

欢迎关注北京大学王选计算机研究所数据管理实验室微信公众号“图谱学苑“
实验室官网:https://mod.wict.pku.edu.cn/
微信社区群:请回复“社区”获取

实验室开源产品图数据库gStore:
gStore官网:https://www.gstore.cn/
GitHub:https://github.com/pkumod/gStore
Gitee:https://gitee.com/PKUMOD/gStore

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1231547.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

1688API接口接入|阿里1688-B类电商基础链路专业化体验升级

新挑战&#xff0c;新契机&#xff01; 当下整个互联网的竞争环境的变化为我们带来新的机遇和挑战。1688作为连接中小生产商、贸易商和零售商的源头货源首选平台&#xff0c;持续不断地为B类买家提供更专业的服务和更优质的源头厂货供给&#xff0c;打造核心竞争力。 面对新的…

管家婆订货易在线商城任意文件上传漏洞复现

0x01 产品简介 管家婆订货易&#xff0c;帮助传统企业构建专属的订货平台&#xff0c;PC微信APP小程序h5商城5网合一&#xff0c;无缝对接线下的管家婆ERP系统&#xff0c;让用户订货更高效。支持业务员代客下单&#xff0c;支持多级推客分销&#xff0c;以客带客&#xff0c;拓…

比赛调研资料

视觉文旅 现有的模型 数据 功能 精准营销 基于地理推荐能力 乡村圈分析能力 都市圈分析能力 产品体系 三大数据平台 携程问道 旅游服务框架&#xff1a;前置&#xff08;推荐种草&#xff09;&#xff0c;途中&#xff08;客服&#xff09;&#xff0c;售后&#xff0…

淘宝商品详情数据接口(Taobao.item_get)

淘宝商品详情接口是一种程序化的接口&#xff0c;允许开发者根据商品ID或商品链接&#xff0c;获取淘宝平台上的商品详细信息。通过这个接口&#xff0c;开发者可以方便地获取商品的标题、价格、销量、描述等数据&#xff0c;进而提供给用户进行展示和购买。 使用淘宝商品详情…

基于饥饿游戏算法优化概率神经网络PNN的分类预测 - 附代码

基于饥饿游戏算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于饥饿游戏算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于饥饿游戏优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神…

前端入门(二)Vue2到Vue3

文章目录 Vue简介Vue的特点Hello, Vue Vue基本语法模板语法数据绑定&#xff08;v-bind、v-model&#xff09;el与data的两种写法 数据代理实现原理Object.defineProperty()数据代理 事件处理&#xff08;v-on:click / click&#xff09;事件修饰符键盘事件&#xff08;略&…

关于RecyclerView的瀑布流 分割线左右间距问题

记录一下开发遇到的RecyclerView 的 瀑布流 左右间距设置问题。 在GridLayoutManager中 &#xff0c;item的布局顺序为 在该布局中&#xff0c;他的index就是左右左右&#xff0c;position所对应的itemView就是准确的。即 左0&#xff0c;右1&#xff0c;左2&#xff0c;右3&a…

卷积神经网络(VGG-19)灵笼人物识别

文章目录 前期工作1. 设置GPU&#xff08;如果使用的是CPU可以忽略这步&#xff09;我的环境&#xff1a; 2. 导入数据3. 查看数据 二、数据预处理1. 加载数据2. 可视化数据3. 再次检查数据4. 配置数据集5. 归一化 三、构建VGG-19网络1. 官方模型&#xff08;已打包好&#xff…

中国农业开启加速度,龙江农业迎来黄金期

​ “中国下一个发展动力将是大农业&#xff0c;而黑龙江大农业正在成为世界农业中心。” 在前不久举办的首届龙商大会暨中国&#xff08;黑龙江&#xff09;国际绿色食品产业高质量发展论坛&#xff08;下文简称“论坛”&#xff09;上&#xff0c;大北农科技集团股份有限公…

一段来自《Verilog HDL 高级数字设计》的错误Verilog代码

笔者之前在阅读《Verilog HDL 高级数字设计》时的基4布斯乘法器一文时&#xff0c;就遇到了一段有问题的代码&#xff0c;而这个问题可以用Verilog基础&#xff1a;表达式位宽的确定&#xff08;位宽拓展&#xff09;文中的分析完美解决。 always (negedge clock) if (Start)…

【代码随想录】算法训练计划27

回溯 1、39. 组合总和 题目&#xff1a; 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target &#xff0c;找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 &#xff0c;并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidates 中的…

Java语法基础

回顾 1、了解编程语言 2、编程语言分类 ​ 机器语言、汇编语言、高级语言 3、了解java ​ 跨平台&#xff08;.class文件&#xff09; .java&#xff08;源文件&#xff09; ​ .java ----编译---->.class 4、jdk 、jre、jvm 5、开发 写代码 eclipse idea 记事本 …

CTFHub Git泄露

Log 前言 根据题目描述&#xff0c;这个题目需要使用到工具 GitHack 来完成&#xff0c;而 CTFHub 上提供的工具需要在 python2 环境中执行&#xff0c;注意 python3 环境无法使用。 GitHack准备&#xff08;kali Linux&#xff09; 打开虚拟机 sudo su 以管理员的身份运行…

企业经营好不好?看看官方评价指标(适电子元、器件制造业)

一家企业经营的到底好不好&#xff1f;有没有评价标准呢&#xff1f;这里我们不妨参考一下国资委对全国各个行业的考核指标&#xff0c;对照一下自己的企业&#xff0c;就比较清楚自身企业的经营水平了。另外&#xff0c;我们也希望使用ODOO-ERP业财一体系统的企业&#xff0c;…

探索标准数字隔离ACML-7400-500E:主要特性与应用

ACML-7400-500E标准数字隔离是现代电子系统中的重要组成部分的一员&#xff0c;提供安全可靠的数字信号分离方法。本文深入探讨了该隔离器的核心特性&#xff0c;讨论了其双电源电压兼容性、宽工作温度范围、高速数据功能以及各种安全认证。 双电源电压兼容性 标准数字隔离器…

sapjco3.dll has version “721.619“, but required is at least version “721.913“

context with path [] threw exception [org.glassfish.jersey.server.ContainerException: java.lang.ExceptionInInitializerError: Native library sapjco3 is too old. Found library C:\Windows\System32\sapjco3.dll has version “721.619”, but required is at least …

[uni-app]记录APP端跳转页面自动滚动到底部的bug

文章目录 bug描述原因分析: 处理方案 bug描述 1.点击的A页面, 跳转到了B页面, 第一次页面正常显示 2.从B页面返回A页面 3.A页面不进行任何操作,再次点击A页面进入B页面 4.B页面自动滚动到底部. 原因 看一段A页面代码 let that thisthis.defaultScrollTop uni.getStorageSy…

JAVA小游戏拼图

第一步是创建项目 项目名自拟 第二部创建个包名 来规范class 然后是创建类 创建一个代码类 和一个运行类 代码如下&#xff1a; package heima; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import …

淘宝商品详情数据接口,淘宝商品优惠券数据接口,淘宝API接口

随着电商行业的快速发展&#xff0c;淘宝作为国内最大的电商平台之一&#xff0c;不断探索和创新&#xff0c;以满足不断变化的用户需求和商家需求。其中&#xff0c;淘宝API接口便是其创新的一个重要方面。本文将深入探讨淘宝API接口的作用、功能、优势以及使用方法&#xff0…

数字化文化的守护之星:十八数藏的非遗创新之道

在数字时代的浪潮中&#xff0c;十八数藏犹如一颗璀璨的守护之星&#xff0c;为传统文化注入了新的生命力。这个非遗创新项目以数字化为工具&#xff0c;以守护为使命&#xff0c;开辟了文化传承的新航道。 十八数藏是文化数字守护的引领者&#xff0c;通过数字技术&#xff0…