使用The Graph 索引链上RDF数据
The GraphQL API是Relation基于The Graph开发的链上图数据查询服务
概述
在部署Semantic SBT合约后,项目方可以通过对接The Graph 服务,来获取链上SBT对应的RDF数据。
在获取到RDF数据后,项目方可以自行选择对应的图数据库来存储从链上的RDF数据。
本文档以AWS的Neptune为例,演示如何将链上RDF数据保存至图数据中。
具体步骤:
通过The Graph获取到数据实体中的RDF数据内容,即链上数据的
turtle数据对象通过调用合约的
schemaURI方法查询RDF对应的数据schema。将schema和turtle数据对象按SPARQL UPDATE语法格式拼接成对应的图数据库插入语句。
调用Neptune的服务接口
GraphQL API服务介绍
数据访问方式:
通过The Graph 官方提供的webUI(playground)的方式查询
通过HTTP请求方式查询
通过JS Client的方式查询
数据实体
id: The transaction id .
txnHash: The transaction hash in blockchain.
blockNumber: The block number.
contract: The contract address.
owner: The token owner of SBT.
tokenId: The token id of SBT.
turtle: The RDF content.
Web UI的方式查询
GraphQL API项目地址:
https://thegraph.com/hosted-service/subgraph/relationlabs/semantic-sbt
可以登录后可以通过The Graph提供的playground进行查询

HTTP REST 请求
查询最近两条(对应参数 first:2)token对应的数据实体
查询结果
通过JS Client的方式查询
安装 @apollo/client 和 graphql组件
初始化client
获取图数据库对应的Schema
通过调用合约的schemaURI方法查询schema。
该schema用于构建图数据库时,存储数据时使用。
RDF数据导入图数据库
在aws控制台启动一个Neptune实例
将turtle数据与对应schema拼接成SPARQL update语句
3. 调用Neptune服务接口保存RDF数据
4. 调用Neptune服务接口查询保存的数据
代码示例
下边通过一段python代码,来示例如何查询链上RDF数据,并保存至Neptune图数据库中的完整过程。
Last updated