将rdfxml转换为龟三元组

时间:2014-10-31 15:57:48

标签: java rdf semantic-web sesame

我编写了一个java程序,它从.csv中提取数据,并将这些数据转换为RDFXML。我在编写这个程序时使用了sesame's框架,程序成功完成了编写的工作。

但是,我试图使用jUnit对这个程序进行单元测试,我需要测试一个将RDF三元组(以乌龟格式)转换为RDFXML的方法。为了证明该方法正常工作,我想通过将RDFXML转换回三元组并将它们与我传入方法的原始三元组进行比较来实现。到目前为止,我还没有在sesame's文档中找到任何内容。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

几分钟前我刚解决了这个问题。这是我的解决方案:

@Test
public void testWriteStmtToRDFPos(){
    RDFParser parser = new RDFXMLParser();
    String baseURI = "";
    Model origStmts = new LinkedHashModel();
    Model processedStmts = new LinkedHashModel();
    StatementCollector collector = new StatementCollector(processedStmts);
    parser.setRDFHandler(collector);
    origStmts.add(sexOffend,predicate,object);

    try{

        converter.writeStmtToRDF(origStmts, rdfFile);

        FileReader reader = new FileReader(rdfFile);
        parser.parse(reader, baseURI);
        if(origStmts.equals(processedStmts)){
            assert(true);
        }

    }catch(FileNotFoundException e){
        e.printStackTrace();
        fail();
    }catch(Exception e){
        e.printStackTrace();
        fail();
    }
}

当您为上面的解析器设置收集器时,它只是收集解析器提取的任何语句。执行此操作后,您可以将收集器与origStmts进行比较。这并不是很明显,但在找到之后确实非常有用!