微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过REST HTTP使用SPARQL查询命名图

如何解决通过REST HTTP使用SPARQL查询命名图

我能够通过 HTTP REST 成功填充命名图,如下所示 https://docs.aws.amazon.com/neptune/latest/userguide/load-api-reference-load.html

curl -d "@data.json" -H "Content-Type: application/json" -X POST https://co-neptune-db-cluster-myname.cluster-xxxxxxxxxx.us-east-1.neptune.amazonaws.com:8182/loader

其中 data.json 文件为:

{
  "source": "s3://my-bucket-name/dir/","format": "csv","iamRoleArn": "arn:aws:iam::xxxxxxxxxx:role/co-neptune-to-s3-access-role-dev-myname","mode": "AUTO","region": "us-east-1","failOnError": "FALSE","parallelism": "OVERSUBSCRIBE","parserConfiguration": {
    "baseUri": "http://aws.amazon.com/neptune/default","namedGraphUri": "http://aws.amazon.com/account-123456789012-temp"
  },"updateSingleCardinalityProperties": "FALSE"
}

所以我希望我的数据存储在名为http://aws.amazon.com/account-123456789012-temp的图形中,内容来自源S3存储桶s3://my-bucket-name/dir/

我可以在使用克里姆林宫 HTTP REST 查询时看到这些数据,如此处https://docs.aws.amazon.com/neptune/latest/userguide/access-graph-gremlin-rest.html

所述
curl -X POST -d '{"gremlin":"g.V().limit(10)"}' https://co-neptune-db-cluster-myname.cluster-xxxxxxxxxx.us-east-1.neptune.amazonaws.com:8182?gremlin

但是,按照https://docs.aws.amazon.com/neptune/latest/userguide/access-graph-sparql-http-rest.html所述使用 SPARQL 查询时,我在海王星中看不到任何数据

$ curl -X POST --data-binary 'query=select ?s ?p ?o where {?s ?p ?o} limit 10' https://co-neptune-db-cluster-myname.cluster-xxxxxxxxxx.us-east-1.neptune.amazonaws.com:8182/sparql

如何使用 SPARQL 查询相同的数据?考虑到我将拥有不同的命名图,因此需要在我的请求中设置特定图的名称

解决方法

如今,海王星不支持属性图和RDF之间的互操作性。在将数据加载到群集之前,您需要选择要使用的框架。如果通过CSV加载数据,则只能在“属性图”模型中使用(使用Gremlin进行查询)。如果使用RDF文件格式(turtle,rdfxml,ntriples或nquads)之一加载数据,则只能通过SPARQL查询它。

Neptune确实支持将两个模型的数据存储在同一群集中,但是您需要有效地加载数据的两个副本(一个在属性图中,另一个在RDF中)。

此外,仅当批量加载RDF文件格式之一时,才支持批量加载器的parserConfiguration参数。它对加载属性图(CSV)数据没有影响。

提供了一个实用程序,用于将属性图CSV文件转换为RDF nquads文件[1]。

[1] https://github.com/aws/amazon-neptune-csv-to-rdf-converter

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?