将turtle文件加载到OpenRDF存储库

将turtle文件加载到OpenRDF存储库,rdf,sesame,Rdf,Sesame,我试图使用OpenRDF/Sesame框架将一个turtle文件(.ttl)加载到存储库中,我编写的代码如下- public class RepositoryAPI { public static void main(String[] args) { File dataDir = new File("C:\\Temp\\sesameRepo\\KB_Exemplar"); try { Repository repo = createRepository(dat

我试图使用OpenRDF/Sesame框架将一个turtle文件(.ttl)加载到存储库中,我编写的代码如下-

public class RepositoryAPI {

public static void main(String[] args) {

    File dataDir = new File("C:\\Temp\\sesameRepo\\KB_Exemplar");
    try {
        Repository repo = createRepository(dataDir);
        addRDFToRepository(repo);
    } catch (RepositoryException e) {
        e.printStackTrace();
    }
}

private static Repository createRepository(File dataDir) throws RepositoryException {
    Repository repos = new SailRepository(new MemoryStore(dataDir));
    repos.initialize();
    return repos;
}

private static void addRDFToRepository(Repository repo) {
    File file = new File("C:\\LDMVelocityWork\\KB_Quality_Exemplar_BE_Ownership.ttl");
    String baseURI = "http://data.jpmchase.net/cib/cia/KBQualityExemplar";
    try{
        RepositoryConnection con = repo.getConnection();
        try{
            con.add(file, baseURI, RDFFormat.RDFXML);
        } catch (IOException e) {
            e.printStackTrace();
        }
        finally {
              con.close();
           }
    }
    catch (OpenRDFException e) {
        }
}

}

名为KB_Exemplar的目录正在生成,但在创建的文件中没有任何正确的值。名为“memorystore.data”的文件的内容有些奇怪。请找人检查一下,让我知道我写的代码是否正确。

你的代码有很多地方看起来很奇怪

首先,您声明您正在尝试加载一个Turtle文件,但您有以下代码:

File file = new File("C:\\LDMVelocityWork\\KB_Quality_Exemplar_BE_Ownership.ttl");
String baseURI = "http://data.jpmchase.net/cib/cia/KBQualityExemplar";
try{
    RepositoryConnection con = repo.getConnection();
    try{
        con.add(file, baseURI, RDFFormat.RDFXML);
    } catch (IOException e) {
        e.printStackTrace();
    }
    finally {
          con.close();
       }
}
catch (OpenRDFException e) {
    }
它告诉Sesame从给定的Turtle文件中读取,但在这一行将其视为RDF/XML:

con.add(file, baseURI, RDFFormat.RDFXML);
这几乎肯定会抛出一个错误,但您在外部catch块(您捕获的是
OpenRDFException
)中没有执行任何操作,因此您隐藏了这个错误,几乎肯定没有数据被添加到存储库中

您的代码最有可能执行以下
add()
调用:

con.add(file, baseURI, RDFFormat.TURTLE);
另外,您需要向外部catch块添加一些实际的错误处理逻辑,这样您就不会隐藏错误

第二,你声明如下:

conn.export(new TurtleWriter());
名为KB_Exemplar的目录正在生成,但位于 创建的文件没有任何正确的值。内容 那个名为“memorystore.data”的文件有些奇怪

Sesame存储库格式不是供人阅读的,它是RDF数据的二进制表示形式,并索引到该数据中

如果希望以人类可读的格式返回数据,则可以编写代码来执行此操作。例如,要将数据作为海龟返回,您可以执行以下操作:

conn.export(new TurtleWriter());

谢谢,我现在在查询存储库时遇到了一个问题,请检查我刚才问的这个问题,你能提供一个答案吗-