Amazon web services 通过REST HTTP使用SPARQL查询命名图
我能够通过HTTP-REST成功地填充命名图,如下所示 其中data.json文件为:Amazon web services 通过REST HTTP使用SPARQL查询命名图,amazon-web-services,sparql,gremlin,amazon-neptune,Amazon Web Services,Sparql,Gremlin,Amazon Neptune,我能够通过HTTP-REST成功地填充命名图,如下所示 其中data.json文件为: { "source": "s3://my-bucket-name/dir/", "format": "csv", "iamRoleArn": "arn:aws:iam::xxxxxxxxxx:role/co-neptune-to-s3-access-role-dev-myname&quo
{
"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 bucket的内容S3://my bucket name/dir/
我可以在使用httprest和Gremlin进行查询时看到这些数据,如下所述
但是,当使用此处描述的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查询相同的数据?考虑到我将有不同的命名图,所以需要在我的请求中设置特定图的名称。今天,Neptune不支持属性图和RDF之间的互操作性。在将数据加载到集群之前,需要选择要使用的框架。如果通过CSV加载数据,则只能在属性图模型中使用(使用Gremlin进行查询)。如果使用一种RDF文件格式(turtle、rdfxml、ntriples或nquads)加载数据,则只能通过SPARQL进行查询 Neptune确实支持在同一集群中存储两个模型的数据,但是您需要有效地加载两个数据副本(一个在Property Graph中,另一个在RDF中) 此外,仅当批量加载一种RDF文件格式时,才支持批量加载程序的
parserConfiguration
参数。它对加载属性图(CSV)数据没有影响
提供了一个实用程序,用于将属性图CSV文件转换为RDF nquads文件[1]
[1]
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
$ 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