public class RepecNepImporter extends ImportFormat
RePEc (Research Papers in Economics)
is a collaborative effort of over 100 volunteers in 49 countries
to enhance the dissemination of research in economics. The heart of
the project is a decentralized database of working papers, journal
articles and software components. All RePEc material is freely available.
NEP (New Economic Papers) is an announcement
service which filters information on new additions to RePEc into edited
reports. The goal is to provide subscribers with up-to-date information
to the research literature.
This importer is capable of importing NEP messages into JabRef.
There is no officially defined message format for NEP. NEP messages are assumed to have (and almost always have) the form given by the following semi-formal grammar:
NEPMessage:
MessageSection NEPMessage
MessageSection
MessageSection:
OverviewMessageSection
OtherMessageSection
# we skip the overview
OverviewMessageSection:
'In this issue we have: ' SectionSeparator OtherStuff
OtherMessageSection:
SectionSeparator OtherMessageSectionContent
# we skip other stuff and read only full working paper references
OtherMessageSectionContent:
WorkingPaper EmptyLine OtherMessageSectionContent
OtherStuff EmptyLine OtherMessageSectionContent
''
OtherStuff:
NonEmptyLine OtherStuff
NonEmptyLine
NonEmptyLine:
a non-empty String that does not start with a number followed by a '.'
# working papers are recognized by a number followed by a '.'
# in a non-overview section
WorkingPaper:
Number'.' WhiteSpace TitleString EmptyLine Authors EmptyLine Abstract AdditionalFields
Number'.' WhiteSpace TitleString AdditionalFields Abstract AdditionalFields
TitleString:
a String that may span several lines and should be joined
# there must be at least one author
Authors:
Author '\n' Authors
Author '\n'
# optionally, an institution is given for an author
Author:
AuthorName
AuthorName '(' Institution ')'
# there are no rules about the name, it may be firstname lastname or lastname, firstname or anything else
AuthorName:
a non-empty String without '(' or ')' characters, not spanning more that one line
Institution:
a non-empty String that may span several lines
Abstract:
a (possibly empty) String that may span several lines
AdditionalFields:
AdditionalField '\n' AdditionalFields
EmptyLine AdditionalFields
''
AdditionalField:
'Keywords:' KeywordList
'URL:' non-empty String
'Date:' DateString
'JEL:' JelClassificationList
'By': Authors
KeywordList:
Keyword ',' KeywordList
Keyword ';' KeywordList
Keyword
Keyword:
non-empty String that does not contain ',' (may contain whitespace)
# if no date is given, the current year as given by the system clock is assumed
DateString:
'yyyy-MM-dd'
'yyyy-MM'
'yyyy'
JelClassificationList:
JelClassification JelClassificationList
JelClassification
# the JEL Classifications are set into a new BIBTEX-field 'jel'
# they will appear if you add it as a field to one of the BIBTex Entry sections
JelClassification:
one of the allowed classes, see http://ideas.repec.org/j/
SectionSeparator:
'\n-----------------------------'
http://nep.repec.org| Constructor and Description |
|---|
RepecNepImporter() |
| Modifier and Type | Method and Description |
|---|---|
java.lang.String |
getCLIId()
Short, one token ID to identify the format from the command line.
|
java.lang.String |
getDescription()
Description of the ImportFormat.
|
java.lang.String |
getExtensions()
Extensions that this importer can read.
|
java.lang.String |
getFormatName()
Return the name of this import format.
|
java.util.List<BibtexEntry> |
importEntries(java.io.InputStream stream,
OutputPrinter status)
Parse the entries in the source, and return a List of BibtexEntry
objects.
|
boolean |
isRecognizedFormat(java.io.InputStream stream)
Check whether the source is in the correct format for this importer.
|
compareTo, equals, getIsCustomImporter, hashCode, setIsCustomImporter, toStringpublic java.lang.String getFormatName()
getFormatName in class ImportFormatnullpublic java.lang.String getCLIId()
ImportFormatgetCLIId in class ImportFormatpublic java.lang.String getExtensions()
ImportFormatgetExtensions in class ImportFormatnull for the defaultpublic java.lang.String getDescription()
ImportFormatImplementors of ImportFormats should override this. Ideally, it should specify
recognizes an import format
getDescription in class ImportFormatpublic boolean isRecognizedFormat(java.io.InputStream stream)
throws java.io.IOException
ImportFormatisRecognizedFormat in class ImportFormatjava.io.IOExceptionpublic java.util.List<BibtexEntry> importEntries(java.io.InputStream stream, OutputPrinter status) throws java.io.IOException
ImportFormatimportEntries in class ImportFormatjava.io.IOException