~krause/annis/vers3

« back to all changes in this revision

Viewing changes to annis-service-impl/src/main/java/annis/AnnisRunner.java

  • Committer: Benjamin Weißenfels
  • Date: 2012-05-21 16:39:25 UTC
  • mfrom: (861.1.22 lazytable)
  • Revision ID: b.pixeldrama@googlemail.com-20120521163925-w9pce6rylfaqv8tg
Add find to rest api.

Show diffs side-by-side

added added

removed removed

Lines of Context:
15
15
 */
16
16
package annis;
17
17
 
18
 
import java.io.File;
19
 
import java.io.FileWriter;
20
 
import java.io.IOException;
21
 
import java.io.Writer;
22
18
import java.util.ArrayList;
23
19
import java.util.Collections;
24
20
import java.util.Date;
41
37
import annis.service.ifaces.AnnisAttribute;
42
38
import annis.service.objects.AnnisCorpus;
43
39
import annis.service.objects.AnnisAttributeSetImpl;
 
40
import annis.sqlgen.AnnotateQueryData;
44
41
import annis.sqlgen.AnnotateSqlGenerator;
45
 
import annis.sqlgen.AnnotateSqlGenerator.AnnotateQueryData;
 
42
import annis.sqlgen.LimitOffsetQueryData;
46
43
import annis.sqlgen.SqlGenerator;
47
44
import annis.utils.Utils;
48
45
import au.com.bytecode.opencsv.CSVWriter;
410
407
        + options));
411
408
    }
412
409
    out.println();
413
 
    
 
410
 
414
411
    // CSV output
415
 
        try
 
412
    try
416
413
    {
417
 
      CSVWriter csv = new CSVWriter(new FileWriter(new File("annis_benchmark_result.csv")));
418
 
      
419
 
      String[] header = new String[] {"corpora", "query", "avg", "diff-best", "diff-worst"};
 
414
      CSVWriter csv = new CSVWriter(new FileWriter(new File(
 
415
        "annis_benchmark_result.csv")));
 
416
 
 
417
      String[] header = new String[]
 
418
      {
 
419
        "corpora", "query", "avg", "diff-best", "diff-worst"
 
420
      };
420
421
      csv.writeNext(header);
421
422
      for (AnnisRunner.Benchmark benchmark : benchmarks)
422
423
      {
423
 
        String[] line = new String[5];        
 
424
        String[] line = new String[5];
424
425
        line[0] = StringUtils.join(benchmark.queryData.getCorpusList(), ",");
425
426
        line[1] = benchmark.functionCall;
426
 
        line[2] = "" +  benchmark.avgTimeInMilliseconds;
427
 
        line[3] = "" + Math.abs(benchmark.bestTimeInMilliseconds - benchmark.avgTimeInMilliseconds);
428
 
        line[4] = "" + Math.abs(benchmark.avgTimeInMilliseconds - benchmark.worstTimeInMilliseconds);
 
427
        line[2] = "" + benchmark.avgTimeInMilliseconds;
 
428
        line[3] = "" + Math.abs(benchmark.bestTimeInMilliseconds
 
429
          - benchmark.avgTimeInMilliseconds);
 
430
        line[4] = "" + Math.abs(benchmark.avgTimeInMilliseconds
 
431
          - benchmark.worstTimeInMilliseconds);
429
432
        csv.writeNext(line);
430
433
      }
431
 
      
 
434
 
432
435
      csv.close();
433
 
      
 
436
 
434
437
    }
435
438
    catch (IOException ex)
436
439
    {
437
440
      java.util.logging.Logger.getLogger(AnnisRunner.class.getName()).
438
441
        log(Level.SEVERE, null, ex);
439
442
    }
440
 
    
 
443
 
441
444
  }
442
445
 
443
446
  public String benchmarkOptions(QueryData queryData)
642
645
    doSet("?" + setting);
643
646
  }
644
647
 
645
 
 
646
648
  private QueryData analyzeQuery(String annisQuery, String queryFunction)
647
649
  {
648
650
    QueryData queryData = annisDao.parseAQL(annisQuery, corpusList);
649
651
    queryData.setCorpusConfiguration(annisDao.getCorpusConfiguration());
650
 
    queryData.addExtension(new AnnotateQueryData(offset, limit, left, right));
651
652
    
652
653
    // filter by meta data
653
654
    queryData.setDocuments(metaDataFilter.getDocumentsForMetadata(queryData));
654
655
    
 
656
 
 
657
    queryData.addExtension(new LimitOffsetQueryData(offset, limit));
 
658
    queryData.addExtension(new AnnotateQueryData(left, right));
 
659
 
655
660
    if (annisQuery != null)
656
661
    {
657
662
      benchmarks.add(new AnnisRunner.Benchmark(queryFunction + " " + annisQuery,
759
764
    long l = Long.parseLong(textID);
760
765
    System.out.println(annotateSqlGenerator.getTextQuery(l));
761
766
  }
762
 
  
 
767
 
763
768
  public void doText(String textID)
764
769
  {
765
770
    long l = Long.parseLong(textID);
773
778
 
774
779
    Validate.isTrue(splitted.length > 1,
775
780
      "must have to arguments (toplevel corpus name and document name");
776
 
    System.out.println(annotateSqlGenerator.getDocumentQuery(splitted[0], splitted[1]));
 
781
    System.out.println(annotateSqlGenerator.getDocumentQuery(splitted[0],
 
782
      splitted[1]));
777
783
  }
778
 
  
 
784
 
779
785
  public void doDoc(String docCall)
780
786
  {
781
787
    String[] splitted = docCall.split("( )+");
920
926
    this.corpusList = corpusList;
921
927
  }
922
928
 
923
 
 
924
929
  public int getContext()
925
930
  {
926
931
    return context;