gpt4 book ai didi

Java n-triple RDF解析

转载 作者:搜寻专家 更新时间:2023-10-30 21:22:30 27 4
gpt4 key购买 nike

我想解析一个 n-triple 形式的 RDF 文件。

我可以编写自己的解析器,但我宁愿使用库,为此目的,Jena 似乎不必要地复杂化(或者至少我看不到他们的文档解释如何以合理的方式读取 n-triples)。

能否请您指出任何有用的库,或者如果您对 Sesame 或 Jena 很了解,您可能知道他们如何解决这个问题。

最佳答案

有了 Jena 就没那么难了:

给定一个包含以下 N-TRIPLE 形式的 RDF 的文件 rdfexample.ntriple(示例取自 here):

<http://www.recshop.fake/cd/Hide your heart> <http://www.recshop.fake/cd#year> "1988" .
<http://www.recshop.fake/cd/Hide your heart> <http://www.recshop.fake/cd#price> "9.90" .
<http://www.recshop.fake/cd/Hide your heart> <http://www.recshop.fake/cd#company> "CBS Records" .
<http://www.recshop.fake/cd/Hide your heart> <http://www.recshop.fake/cd#country> "UK" .
<http://www.recshop.fake/cd/Hide your heart> <http://www.recshop.fake/cd#artist> "Bonnie Tyler" .
<http://www.recshop.fake/cd/Empire Burlesque> <http://www.recshop.fake/cd#year> "1985" .
<http://www.recshop.fake/cd/Empire Burlesque> <http://www.recshop.fake/cd#price> "10.90" .
<http://www.recshop.fake/cd/Empire Burlesque> <http://www.recshop.fake/cd#company> "Columbia" .
<http://www.recshop.fake/cd/Empire Burlesque> <http://www.recshop.fake/cd#country> "USA" .
<http://www.recshop.fake/cd/Empire Burlesque> <http://www.recshop.fake/cd#artist> "Bob Dylan" .

下面的代码

public static void main(String[] args) {
String fileNameOrUri = "src/a/rdfexample.ntriple";
Model model = ModelFactory.createDefaultModel();
InputStream is = FileManager.get().open(fileNameOrUri);
if (is != null) {
model.read(is, null, "N-TRIPLE");
model.write(System.out, "TURTLE");
} else {
System.err.println("cannot read " + fileNameOrUri);;
}
}

读取文件,并以 TURTLE 形式打印出来:

<http://www.recshop.fake/cd/Hide your heart>
<http://www.recshop.fake/cd#artist>
"Bonnie Tyler" ;
<http://www.recshop.fake/cd#company>
"CBS Records" ;
<http://www.recshop.fake/cd#country>
"UK" ;
<http://www.recshop.fake/cd#price>
"9.90" ;
<http://www.recshop.fake/cd#year>
"1988" .

<http://www.recshop.fake/cd/Empire Burlesque>
<http://www.recshop.fake/cd#artist>
"Bob Dylan" ;
<http://www.recshop.fake/cd#company>
"Columbia" ;
<http://www.recshop.fake/cd#country>
"USA" ;
<http://www.recshop.fake/cd#price>
"10.90" ;
<http://www.recshop.fake/cd#year>
"1985" .

因此,使用 Jena,您可以轻松地将 RDF(以任何形式)解析为 com.hp.hpl.jena.rdf.model.Model 对象,这允许您以编程方式操作它。

关于Java n-triple RDF解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5814069/

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