JabRef / jabref

Graphical Java application for managing BibTeX and biblatex (.bib) databases
https://devdocs.jabref.org
MIT License
3.65k stars 2.59k forks source link

Add support of BibLaTeX extended name format #4558

Open douglasrizzo opened 5 years ago

douglasrizzo commented 5 years ago
JabRef version 4.3.1

Steps to reproduce the behavior:

  1. Have an entry in the database in which the first author name is written using the BibTeX extended name format, for example:
    @InProceedings{Hasselt2016,
    author     = {family=Hasselt, given=Hado P., prefix=van useprefix=false and Guez, Arthur and Hessel, Matteo and Mnih, Volodymyr and Silver, David},
    title      = {Learning Values across Many Orders of Magnitude},
    booktitle  = {Advances in Neural Information Processing Systems},
    date       = {2016},
    pages      = {4287--4295},
    url        = {http://papers.nips.cc/paper/6076-learning-values-across-many-orders-of-magnitude},
    urldate    = {2017-06-07}
    }
  2. In the main table, click the header of the column author/editor to sort entries by author/editor name.

Expected behavior: the example entry should be listed under the letter H (for Hasselt) or maybe V (for the van prefix).

Actual behavior: The example entry is listed first in my database, probably using the "f" letter of the "family" word for sorting.

Additional info: The BibTeX extended name format is somewhat described in section 3.8 of the Biber manual.

Siedlerchr commented 5 years ago

Hi, JabRef and BibTeX don't support semantic annotations of authors, e.g. given or prefix. JabRef applies a similiar author parsing algorithm as bibtex. So you can just write Hado P van Hasselt and JabRef will figure the name parts automatically.

And also please always test the latest dvelopment version (There's a reason why we put that in the issue description)

http://mirrors.ibiblio.org/CTAN/macros/latex/contrib/biblatex/doc/biblatex.pdf

tobiasdiez commented 5 years ago

@NorwayMaple this might be a good issue for you. In the end it concerns mainly https://github.com/JabRef/jabref/blob/master/src/main/java/org/jabref/model/entry/AuthorListParser.java and does not involve any frontend programming.

abepolk commented 5 years ago

@tobiasdiez I was thinking of working on the issue I mentioned on Gitter relating to multiple instances of JabRef. See the issue there for details.

douglasrizzo commented 5 years ago

@Siedlerchr the problem is not necessarily how JabRef actually parses author names, but that there are some annotations in the "name-level" that are actually useful and can't be directly translated by simply parsing an author's name. In my example, the useprefix annotation alters the behavior of some citation styles. If useprefix=true, the citation style prints "van Hasselt" in citations and references. If its value is false, it prints only "Hasselt".

When working with LaTeX, biblatex allows many of these annotations to be set for an entire document, like so:

\usepackage[useprefix=true]{biblatex}

I've also seen some entries in my bib file keeping "entry-level" configurations in an options field:

@InProceedings{Ree2013,
  author        = {van der Ree, Michiel and Wiering, Marco},
  title         = {Reinforcement learning in the game of Othello: Learning against a fixed opponent and learning from self-play},
  booktitle     = {2013 IEEE Symposium on Adaptive Dynamic Programming and Reinforcement Learning (ADPRL)},
  year          = {2013},
  date          = {2013-04},
  eventtitle    = {2013 IEEE Symposium on Adaptive Dynamic Programming and Reinforcement Learning (ADPRL)},
  note          = {00026},
  publisher     = {IEEE},
  location      = {Singapore, Singapore},
  month         = apr,
  isbn          = {978-1-4673-5925-2},
  pages         = {108--115},
  doi           = {10.1109/adprl.2013.6614996},
  url           = {http://ieeexplore.ieee.org/document/6614996/},
  options       = {useprefix=true}
}

But suppose I have two authors in the same entry, one which would need useprefix=true and the other with useprefix=false in order to have their names printed correctly. JabRef could use the annotations to initially parse a name and strip the annotations afterwards, but these configuration annotations would need to somehow be kept.

Keep in mind that useprefix is not the only annotation that behaves like this. There are others that dictate how each author's initials should be created (by either adding or ignoring dashes, prefixes and suffixes) and so on.

calixtus commented 3 years ago

Whoever does this should be very concise and must provide tests to show that this enhancement is not breaking something else.

marcelolaia commented 10 months ago

I believe I can contribute to this topic and would like to bring up a related issue.

In the BibTeX entry (Ignacio2019), the current citation format displays "da Silva Ignacio, 2019," while the ideal format should be "Ignacio, 2019."

In the reference lists, the prefixes "da" and "de" in names like "da Silva" and "de Almeida" are treated as family names. However, these prefixes should be considered as prefix names, not separate surnames.

I noticed a similar issue in a different context in this forum topic, where the author had a case with the prefix "van." I thought it could be relevant to point out that this issue also applies to Latin names in Brazil.

I hope that this information can help address this issue effectively. Thank you.

@Article{Ignacio2019,
  author    = {Luís Henrique da Silva Ignacio and Pedro Eduardo de Almeida Santos and Carlos Antonio Ribeiro Duarte},
  journal   = {Renewable and Sustainable Energy Reviews},
  title     = {An experimental assessment of \emph{Eucalyptus} urosemente energy potential for biomass production in Brazil, energia or energética},
  year      = {2019},
  issn      = {1364-0321},
  pages     = {361--369},
  url       = {https://doi.org/10.1016/j.rser.2018.12.053},
  urldate   = {2024-01-15},
  volume    = {103},
  doi       = {10.1016/j.rser.2018.12.053},
  groups    = {Óleo Essencial},
  month     = apr,
  publisher = {Elsevier BV},
}

JabRef prevew:

Article (Ignacio2019) 

da Silva Ignacio, Luís Henrique / de Almeida Santos, Pedro Eduardo / Duarte, Carlos Antonio Ribeiro 
An experimental assessment of Eucalyptus urosemente energy potential for biomass production in Brazil, energia or energética 
2019-04 

Renewable and Sustainable Energy Reviews , Vol. 103 
Elsevier BV 
p. 361-369

Citation in LibreOffice reference list:

da Silva Ignacio, L.H., Santos, P.E.d.A., Duarte, C.A.R.. 2019. An experimental assessment of Eucalyptus urosemente energy potential for biomass production in Brazil, energia or energética. Renewable and Sustainable Energy Reviews. 103, 361-369. https://doi.org/10.1016/j.rser.2018.12.053.

ThiloteE commented 10 months ago

Sure, I will assign you.

github-actions[bot] commented 10 months ago

As a general advice for newcomers: check out Contributing for a start. Also, guidelines for setting up a local workspace is worth having a look at.

Feel free to ask here at GitHub, if you have any issue related questions. If you have questions about how to setup your workspace use JabRef's Gitter chat. Try to open a (draft) pull-request early on, so that people can see you are working on the issue and so that they can see the direction the pull request is heading towards. This way, you will likely receive valuable feedback.

marcelolaia commented 10 months ago

I want to clarify a potential misunderstanding and express that I am not a developer, and, unfortunately, I am unable to directly contribute to the project.

My previous message may have given the impression that I am a developer looking to contribute code. However, I am a user who noticed a citation formatting issue in the BibTeX entry (Ignacio2019), which I described in my earlier message.

I understand that addressing this issue requires technical expertise, which I do not possess. My intention was solely to bring this matter to the attention of the developers who can make the necessary adjustments to improve citation formatting.

I apologize for any confusion, and I appreciate the work that the developers do to enhance the project. If there's any way I can assist in providing further information or testing, please let me know. Thank you for your understanding.

ThiloteE commented 10 months ago

Oh, my bad. Then I will unassign you. Sorry for the noise.

koppor commented 10 months ago

Implementing this strongly contributes to https://github.com/JabRef/jabref/issues/6856.

A new JavaFX component to handle "person names" has to be a) designed and b) implemented.

Ideas:

Type - Value lists:

In other words: a key-value input for the content of the fields

The data model of JabRef already supports these name fields (check org.jabref.model.entry.Author). Thus, it is "just" about implementing the UI.

koppor commented 8 months ago

Issue https://github.com/JabRef/jabref/issues/8760 also describes this. Can be used as testing input.

koppor commented 8 months ago

Historical note - the BibTeX name format is described in following article:

@Article{Hufflen:TB27-2-243,
  author =       "Jean-Michel Hufflen",
  title =        "Names in {{\sl BibTeX}} and ml{{\sl BibTeX}}",
  journal =      [j-TUGboat](http://ftp.math.utah.edu/pub/tex/bib/tugboat.html#j-TUGboat),
  volume =       "27",
  number =       "2",
  pages =        "243--253",
  year =         "2006",
  ISSN =         "0896-3207",
  ISSN-L =       "0896-3207",
  bibdate =      "Mon May 25 14:17:16 MDT 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat;
                 https://www.math.utah.edu/pub/tex/bib/tugboat.bib;
                 https://www.tug.org/tug2006/",
  URL =          "https://tug.org/TUGboat/tb27-2/tb87hufflen.pdf",
  acknowledgement = ack-bnb # " and " # ack-nhfb,
  confnote =     "TUG 2006 Proceedings (Marrakesh, Morocco), and regular
                 articles.",
  fjournal =     "TUGboat",
  issue =        "87",
  journal-URL =  "https://tug.org/TUGboat/",
  remark =       "Advanced{\Dash}parsing names in bibliographies in a
                 robust and extensible way.",
}
u7302654 commented 1 month ago

Hi I am interested in implementing this, would I be able to be assigned?

github-actions[bot] commented 1 month ago

Welcome to the vibrant world of open-source development with JabRef!

Newcomers, we're excited to have you on board. Start by exploring our Contributing guidelines, and don't forget to check out our workspace setup guidelines to get started smoothly.

In case you encounter failing tests during development, please check our developer FAQs!

Having any questions or issues? Feel free to ask here on GitHub. Need help setting up your local workspace? Join the conversation on JabRef's Gitter chat. And don't hesitate to open a (draft) pull request early on to show the direction it is heading towards. This way, you will receive valuable feedback.

Happy coding! 🚀

ThiloteE commented 1 month ago

@u7302654 This is not a good first issue. If you have the confidence and skills, go for it. If not, please unassign yourself and choose a "free to take" issue from https://github.com/orgs/JabRef/projects/5.

Image

u7302654 commented 1 week ago

May I be unassigned from this issue please, I had some troubles and no longer have time to fix my code

koppor commented 1 week ago

/unassign @u7302654

github-actions[bot] commented 1 week ago

👋 Hey @u7302654, you've been automatically unassigned from this issue due to inactivity.

[!NOTE] If you'd like to be re-assigned, just leave another comment or ask a maintainer to assign you again. If you're still actively working on the issue, let us know by commenting, and we can pin it to prevent automatic unassignment.