使用Java和RDF模型从文件读取和写入

加斯

我想从文件中读取内容,然后使用Java在另一个文件的RDF / XML模型中写入它,我已经完成了读取文件的初始部分,但是我不知道如何使用RDF将其写入另一个文件中/ XML模型,所以我可以使用正确的格式。

这是读取文件代码的一部分:

try {
        File file1 = new File("Data/960.txt");
    FileReader fileReader1 = new FileReader(file1);
    BufferedReader bufferedReader1 = new BufferedReader(fileReader1);
    StringBuffer stringBuffer = new StringBuffer();
    String line1;
        System.out.println("Proteins & Synonyms:");
        int count = 0;
            while ((line1=bufferedReader1.readLine()) != null) {
                            String[] list1 = line1.split("\t");
                            if (list1.length < 2) continue;

                        proteinG=model2.createResource(ProtURI+list1[0]);
                        hasSynonyms=model2.createProperty(SynoURI+hasSynonymStr);
                        Synonyms=list1[1];
                        proteinG.addProperty(hasSynonyms,Synonyms); 

            System.out.println(stringBuffer.toString());

        } catch (IOException e) {
            e.printStackTrace();}

    if(model2!=null){
            model2.write(System.out, "RDF/XML");

有人可以帮忙吗

安迪斯

写入一个FileOutputStream非System.out。您可能需要“ RDF-XML-ABBREV”作为预设输出。

作为一般改进,请使用RDFDataMgrwith Lang.RDFXML(默认情况下是漂亮的形式):

如今对于Java而言,这意味着使用try-resource块:

import org.apache.jena.riot.RDFDataMgr
import org.apache.jena.riot.Lang  
...

    Model model = null;
    try(OutputStream out = new FileOutputStream("filename.rdf")) {
        RDFDataMgr.write(out, model, Lang.RDFXML);
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

最终考虑:使用Turtle,而不是RDF / XML;更容易阅读。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章