RDF 온톨로지는 약 20MB입니다. 아래 코드와 같이 개인을 추가하려고 시도했습니다.기존 RDF 온톨로지에 개인을 더 추가
FileManager.get().addLocatorClassLoader(RDFWriter.class.getClassLoader());
OntModel model = ModelFactory.createOntologyModel(OntModelSpec.RDFS_MEM_RDFS_INF);
model.read("Ontology/LocationOntology_New2.owl");
String preFix = "LocationOntology_New.owl#";
OntClass Region = model.getOntClass(preFix+"Region");
Individual sabara = model.createIndividual(preFix+"Sabaragamuwa",Region);
try {
PrintStream p = new PrintStream("Ontology/LocationOntology_New2.owl");
model.write(p,null);
p.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
그러나이 코드는 모델을로드 된 파일에 다시 기록하는 데 많은 시간이 걸립니다. 처음부터 모든 것을 쓴 것처럼 보입니다 (기존 파일을 업데이트하지 않음). 아무도이 문제를 해결하는 방법을 알고 있습니까?
이것은 당신이 메모리 리소스를 구축하기 위해 전체 파일을 읽을 필요가 시스템의 모든 종류의 경우가 될 것입니다. 데이터를 N-triples에 저장하는 경우, 한 줄에 세 번만 있으면됩니다. 새 정보로 _new_ 모델을 만든 다음 기존 파일에 _append_하면됩니다. 그것은 여전히 잘 형성 될 것이고, 꽤 빠를 것이다. 귀하의 예제에서 기존 모델의 데이터를 사용하지 않으므로이 작업은 정상적으로 작동합니다. 당신은 새로운 트리플을 만들뿐입니다. –