public BibtexEntry makeBibtexEntry() {
   BibtexEntry e = new BibtexEntry(IdGenerator.next(), BibtexEntryTypes.INCOLLECTION);
   e.setField("title", "Marine finfish larviculture in Europe");
   e.setField("bibtexkey", "shields01");
   e.setField("year", "2001");
   e.setField("author", "Kevin Shields");
   return e;
 }
Beispiel #2
0
 private static BibtexEntry getTestEntry() {
   if (PreviewPrefsTab.entry != null) {
     return PreviewPrefsTab.entry;
   }
   PreviewPrefsTab.entry = new BibtexEntry(IdGenerator.next(), BibtexEntryType.getType("article"));
   PreviewPrefsTab.entry.setField(BibtexFields.KEY_FIELD, "conceicao1997");
   PreviewPrefsTab.entry.setField(
       "author",
       "Luis E. C. Conceic{\\~a}o and Terje van der Meeren and Johan A. J. Verreth and M S. Evjen and D. F. Houlihan and H. J. Fyhn");
   PreviewPrefsTab.entry.setField(
       "title",
       "Amino acid metabolism and protein turnover in larval turbot (Scophthalmus maximus) fed natural zooplankton or Artemia");
   PreviewPrefsTab.entry.setField("year", "1997");
   PreviewPrefsTab.entry.setField("journal", "Marine Biology");
   PreviewPrefsTab.entry.setField("month", "January");
   PreviewPrefsTab.entry.setField("number", "2");
   PreviewPrefsTab.entry.setField("volume", "123");
   PreviewPrefsTab.entry.setField("pdf", "conceicao1997.pdf");
   PreviewPrefsTab.entry.setField("pages", "255--265");
   PreviewPrefsTab.entry.setField(
       "keywords", "energetics, artemia, metabolism, amino acid, turbot");
   PreviewPrefsTab.entry.setField(
       "url", "http://ejournals.ebsco.com/direct.asp?ArticleID=TYY4NT82XA9H7R8PFPPV");
   PreviewPrefsTab.entry.setField(
       "abstract",
       "Abstract The present paper studied the influence of different food regimes "
           + "on the free amino acid (FAA) pool, the rate of protein turnover, the flux of amino acids, and "
           + "their relation to growth of larval turbot (Scophthalmus maximus L.) from first feeding until "
           + "metamorphosis. The amino acid profile of protein was stable during the larval period although "
           + "some small, but significant, differences were found. Turbot larvae had proteins which were rich "
           + "in leucine and aspartate, and poor in glutamate, suggesting a high leucine requirement. The "
           + "profile of the FAA pool was highly variable and quite different from the amino acid profile in "
           + "protein. The proportion of essential FAA decreased with development. High contents of free tyrosine "
           + "and phenylalanine were found on Day 3, while free taurine was present at high levels throughout "
           + "the experimental period. Larval growth rates were positively correlated with taurine levels, "
           + "suggesting a dietary dependency for taurine and/or sulphur amino acids.\n\nReduced growth rates in "
           + "Artemia-fed larvae were associated with lower levels of free methionine, indicating that this diet "
           + "is deficient in methionine for turbot larvae. Leucine might also be limiting turbot growth as the "
           + "different diet organisms had lower levels of this amino acid in the free pool than was found in the "
           + "larval protein. A previously presented model was used to describe the flux of amino acids in growing "
           + "turbot larvae. The FAA pool was found to be small and variable. It was estimated that the daily dietary "
           + "amino acid intake might be up to ten times the larval FAA pool. In addition, protein synthesis and "
           + "protein degradation might daily remove and return, respectively, the equivalent of up to 20 and 10 "
           + "times the size of the FAA pool. In an early phase (Day 11) high growth rates were associated with a "
           + "relatively low protein turnover, while at a later stage (Day 17), a much higher turnover was observed.");
   return PreviewPrefsTab.entry;
 }
Beispiel #3
0
  private BibtexEntry parseNextEntry(String allText, int startIndex) {
    BibtexEntry entry = null;

    int index = allText.indexOf("<div class=\"detail", piv);
    int endIndex = allText.indexOf("</div>", index);

    if (index >= 0 && endIndex > 0) {
      endIndex += 6;
      piv = endIndex;
      String text = allText.substring(index, endIndex);

      BibtexEntryType type = null;
      String sourceField = null;

      String typeName = "";
      Matcher typeMatcher = typePattern.matcher(text);
      if (typeMatcher.find()) {
        typeName = typeMatcher.group(1);
        if (typeName.equalsIgnoreCase("IEEE Journals &amp; Magazines")
            || typeName.equalsIgnoreCase("IEEE Early Access Articles")
            || typeName.equalsIgnoreCase("IET Journals &amp; Magazines")
            || typeName.equalsIgnoreCase("AIP Journals &amp; Magazines")
            || typeName.equalsIgnoreCase("AVS Journals &amp; Magazines")
            || typeName.equalsIgnoreCase("IBM Journals &amp; Magazines")
            || typeName.equalsIgnoreCase("TUP Journals &amp; Magazines")
            || typeName.equalsIgnoreCase("BIAI Journals &amp; Magazines")) {
          type = BibtexEntryType.getType("article");
          sourceField = "journal";
        } else if (typeName.equalsIgnoreCase("IEEE Conference Publications")
            || typeName.equalsIgnoreCase("IET Conference Publications")
            || typeName.equalsIgnoreCase("VDE Conference Publications")) {
          type = BibtexEntryType.getType("inproceedings");
          sourceField = "booktitle";
        } else if (typeName.equalsIgnoreCase("IEEE Standards")
            || typeName.equalsIgnoreCase("Standards")) {
          type = BibtexEntryType.getType("standard");
          sourceField = "number";
        } else if (typeName.equalsIgnoreCase("IEEE eLearning Library Courses")) {
          type = BibtexEntryType.getType("Electronic");
          sourceField = "note";
        } else if (typeName.equalsIgnoreCase("Wiley-IEEE Press eBook Chapters")
            || typeName.equalsIgnoreCase("MIT Press eBook Chapters")
            || typeName.equalsIgnoreCase("IEEE USA Books &amp; eBooks")) {
          type = BibtexEntryType.getType("inCollection");
          sourceField = "booktitle";
        }
      }

      if (type == null) {
        type = BibtexEntryType.getType("misc");
        sourceField = "note";
        System.err.println("Type detection failed. Use MISC instead.");
        unparseable++;
        System.err.println(text);
      }

      entry = new BibtexEntry(IdGenerator.next(), type);

      if (typeName.equalsIgnoreCase("IEEE Standards")) {
        entry.setField("organization", "IEEE");
      }

      if (typeName.equalsIgnoreCase("Wiley-IEEE Press eBook Chapters")) {
        entry.setField("publisher", "Wiley-IEEE Press");
      } else if (typeName.equalsIgnoreCase("MIT Press eBook Chapters")) {
        entry.setField("publisher", "MIT Press");
      } else if (typeName.equalsIgnoreCase("IEEE USA Books &amp; eBooks")) {
        entry.setField("publisher", "IEEE USA");
      }

      if (typeName.equalsIgnoreCase("IEEE Early Access Articles")) {
        entry.setField("note", "Early Access");
      }

      Set<String> fields = fieldPatterns.keySet();
      for (String field : fields) {
        Matcher fieldMatcher = Pattern.compile(fieldPatterns.get(field)).matcher(text);
        if (fieldMatcher.find()) {
          entry.setField(field, htmlConverter.format(fieldMatcher.group(1)));
          if (field.equals("title") && fieldMatcher.find()) {
            String sec_title = htmlConverter.format(fieldMatcher.group(1));
            if (entry.getType() == BibtexEntryType.getStandardType("standard")) {
              sec_title = sec_title.replaceAll("IEEE Std ", "");
            }
            entry.setField(sourceField, sec_title);
          }
          if (field.equals("pages") && fieldMatcher.groupCount() == 2) {
            entry.setField(field, fieldMatcher.group(1) + "-" + fieldMatcher.group(2));
          }
        }
      }

      Matcher authorMatcher = authorPattern.matcher(text);
      // System.out.println(text);
      StringBuilder authorNames = new StringBuilder("");
      int authorCount = 0;
      while (authorMatcher.find()) {
        if (authorCount >= 1) {
          authorNames.append(" and ");
        }
        authorNames.append(htmlConverter.format(authorMatcher.group(1)));
        // System.out.println(authorCount + ": " + authorMatcher.group(1));
        authorCount++;
      }
      entry.setField("author", authorNames.toString());
      if (entry.getField("author") == null
          || entry.getField("author").startsWith("a href")
          || entry
              .getField("author")
              .startsWith("Topic(s)")) { // Fix for some documents without authors
        entry.setField("author", "");
      }
      if (entry.getType() == BibtexEntryType.getStandardType("inproceedings")
          && entry.getField("author").equals("")) {
        entry.setType(BibtexEntryType.getStandardType("proceedings"));
      }

      if (includeAbstract) {
        index = text.indexOf("id=\"abstract");
        if (index >= 0) {
          endIndex = text.indexOf("</div>", index) + 6;

          text = text.substring(index, endIndex);
          Matcher absMatcher = absPattern.matcher(text);
          if (absMatcher.find()) {
            // Clean-up abstract
            String abstr = absMatcher.group(1);
            abstr = abstr.replaceAll("<span class='snippet'>([\\w]+)</span>", "$1");

            entry.setField("abstract", htmlConverter.format(abstr));
          }
        }
      }
    }

    if (entry == null) {
      return null;
    } else {
      return cleanup(entry);
    }
  }