gpt4 book ai didi

sparql - 上传一个大的 TTL 文件到 virtuoso graph

转载 作者:行者123 更新时间:2023-12-05 05:38:18 24 4
gpt4 key购买 nike

我正在尝试使用对图形端点的 HTTP post 调用将 ttl 文件写入 virtuoso 中的图形,

resource = new ClassPathResource("beil0.ttl").getFile();
String text = new String(Files.readAllBytes(resource.toPath()));
WebClient webClient = webConfig.webClientBuilder().build();
WebClient.ResponseSpec responseSpec = webClient.post()
.uri("?graph-uri=http://data.else.com/voca/comp/")
.header("Content-Type", "text/turtle")
.bodyValue(text)
.retrieve();
String responseBody = responseSpec.bodyToMono(String.class).block();

在这里,我首先在变量“text”中读取文件,然后将其传递给 post 调用,这最终会给我一个错误,如下所示:-

java.lang.IndexOutOfBoundsException: writerIndex(0) + minWritableBytes(-1932256561) exceeds maxCapacity(2147483647): PooledUnsafeDirectByteBuf(ridx: 0, widx: 0, cap: 2147483647)

我假设它是一个大文件,所以这个错误是从 virtuoso 端点抛出的,如果我的假设是正确的,那么我想做的是将这个文件内容流式传输到端点,而不是将它们一起发送。有谁知道我怎样才能在这里实现这样的功能。仅供引用 - 我尝试使用 INPUTSTREAM、MULTIPART 和我可以在网上找到的许多其他方法,但由于某种原因我仍然无法实现它。

最佳答案

您可以使用这些 Virtuoso 示例通过 TCP 连接将 RDF 数据加载到 Virtuoso。 (示例采用 Gradle 项目格式。)

  1. RDFLoader via Jena API使用 Virtuoso Jena Provider
  2. RDFLoader via RDF4J API使用 Virtuoso RDF4J Provider

关于sparql - 上传一个大的 TTL 文件到 virtuoso graph,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72958941/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com