몇 분 전에 문제가 해결되었습니다. 여기 내 해결책이 있습니다 :
@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와 비교할 수 있습니다. 이것은 즉시 명백하지는 않았지만 그것을 찾은 후에 정말 유용합니다!
RDF/XML이 아닌 TTL로 데이터를 쓰고 싶습니까? RDF/XML (코드, 제발 :)에서 데이터를 어떻게 써야합니까?) –
나는 실제로 그것을 알아 냈다. TTL에서 다시 작성할 필요가 없다는 것이 밝혀졌습니다. 방금 RDFXML 파서로 RDFXML 파일을 구문 분석 할 필요가 있었으며 문제없이 문을 처리합니다. 아래에 내 솔루션을 게시합니다. – DivDiff
나중에 참조 할 수 있도록 Sesame의 Rio 파서/작성기 툴킷은 문서화되어 있습니다 (http://rdf4j.org/sesame/2.7/docs/users.docbook?view#Parsing_and_Writing_RDF_with_Rio). 실제로 한 형식에서 다른 형식으로 변환하는 방법을 보여주는 코드 예제가 포함되어 있습니다. –