@Override public void clear() { dictionary.clear(); triples.clear(); isOrganized = false; }
@Override public void close() throws IOException { dictionary.close(); triples.close(); }
@Override public void insert(CharSequence subject, CharSequence predicate, CharSequence object) { rawsize += subject.length()+predicate.length()+object.length()+4; this.triples.insert( dictionary.insert(subject, TripleComponentRole.SUBJECT), dictionary.insert(predicate, TripleComponentRole.PREDICATE), dictionary.insert(object, TripleComponentRole.OBJECT) ); isOrganized = false; modeOfLoading = null; }
@Override public void reorganizeTriples(ProgressListener listener) { if (isOrganized) return; if (!dictionary.isOrganized()) throw new RuntimeException("Cannot reorganize triples before dictionary is reorganized!"); // Sort and remove duplicates. //StopWatch sortDupTime = new StopWatch(); triples.sort(listener); triples.removeDuplicates(listener); //System.out.println("Sort triples and remove duplicates: "+sortDupTime.stopAndShow()); isOrganized = true; }
@Override public void load(TempTriples input, ProgressListener listener) { IteratorTripleID iterator = input.searchAll(); while (iterator.hasNext()) { arrayOfTriples.add(iterator.next()); numValidTriples++; } sorted = false; }
@Override public void addTriple(TripleString triple) throws IOException { triples.insert( dictionary.insert(triple.getSubject(), TripleComponentRole.SUBJECT), dictionary.insert(triple.getPredicate(), TripleComponentRole.PREDICATE), dictionary.insert(triple.getObject(), TripleComponentRole.OBJECT) ); num++; size+=triple.getSubject().length()+triple.getPredicate().length()+triple.getObject().length()+4; // Spaces and final dot }
@Override public void processTriple(TripleString triple, long pos) { triples.insert( dict.insert(triple.getSubject(), TripleComponentRole.SUBJECT), dict.insert(triple.getPredicate(), TripleComponentRole.PREDICATE), dict.insert(triple.getObject(), TripleComponentRole.OBJECT) ); num++; size+=triple.getSubject().length()+triple.getPredicate().length()+triple.getObject().length()+4; // Spaces and final dot ListenerUtil.notifyCond(listener, "Loaded "+num+" triples", num, 0, 100); } }
@Override public void processTriple(TripleString triple, long pos) { triples.insert( dict.stringToId(triple.getSubject(), TripleComponentRole.SUBJECT), dict.stringToId(triple.getPredicate(), TripleComponentRole.PREDICATE), dict.stringToId(triple.getObject(), TripleComponentRole.OBJECT) ); count++; ListenerUtil.notifyCond(listener, "Generating triples "+count+" triples processed.", count, 0, 100); } }
while(iterator.hasNext()) { TripleString triple = iterator.next(); triples.insert( dictionary.insert(triple.getSubject(), TripleComponentRole.SUBJECT), dictionary.insert(triple.getPredicate(), TripleComponentRole.PREDICATE),