Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make abbreviations also working for conferences #360

Open
koppor opened this issue Oct 20, 2019 · 10 comments
Open

Make abbreviations also working for conferences #360

koppor opened this issue Oct 20, 2019 · 10 comments
Labels

Comments

@koppor
Copy link
Owner

koppor commented Oct 20, 2019

Abbreviations are listed at https://github.com/JabRef/abbrv.jabref.org.
The system is currently not used for conference proceedings (field booktitle)

Support abbrevations also for "booktitle" (data model, GUI) (This is JabRef#1285)

@koppor
Copy link
Owner Author

koppor commented Sep 22, 2021

Example based on: https://dblp.uni-trier.de/rec/conf/bpm/Rinderle-MaM21.html?view=bibtex&param=1 (condensed, standard)

Before shortening:

@inproceedings{DBLP:conf/bpm/Rinderle-MaM21,
  author    = {Stefanie Rinderle{-}Ma and
               Juergen Mangler},
  title     = {Process Automation and Process Mining in Manufacturing},
  booktitle = {International Conference on Business Process Management},
  series    = {Lecture Notes in Computer Science},
  volume    = {12875},
  pages     = {3--14},
  publisher = {Springer},
  year      = {2021}
}

After shortening:

@inproceedings{DBLP:conf/bpm/Rinderle-MaM21,
  author    = {Stefanie Rinderle{-}Ma and
               Juergen Mangler},
  title     = {Process Automation and Process Mining in Manufacturing},
  booktitle = {BPM},
  series    = {Lecture Notes in Computer Science},
  volume    = {12875},
  pages     = {3--14},
  publisher = {Springer},
  year      = {2021}
}

There will be a CSV file:

International Conference on Business Process Management,BPM

TODOs:

  • Understand how journal abbreviations work in JabRef.
  • Think of difference of journal abbreviations and conference abbreviations
    • Simple: "BPM" - "Business Process Management"
    • Medium: Offer "dotless" abbreviation: "BPM" - "Business Process Management" - "International Conference of Business Process Management"
    • Hint: conferences use booktitle, journals use journaltitle and journal
    • Hint: They have different abbreviations and reside in different fields
  • Create an example CSV file
    • The CSV file has to be filled with example conferences
  • Create a ConferenceAbbreviationRepository (based on JournalAbbreviationRepository). Maybe introduce inheritance.
    • Rename journal-lists.mv to abbreviations.mv in both groovy and Java code
  • Write tests (based on custom abbreviations)
  • The CSV file should be imported into JabRef similar to journal abbreviations
  • The UI should offer abbreviating.
    • Rename "Abbreviate journal names" to "Abbreviate journals and book titles"
    • Rename "Unabbreviate journal names" to "Expand journals and book titles"
    • Implemenatation: Run both abbreviators (instead of checking the type)

@xianghao-wang
Copy link

Hello, could you assign this issue to me? I am really glad to contribute to this project.

@xianghao-wang
Copy link

Hello, @koppor would you like to combine the journal abbreviations and book title abbreviations as a single functional part (share the same abbreviation data) or develop the book title abbreviation as an independent functional part (independent database and independent module)?

@koppor
Copy link
Owner Author

koppor commented Oct 27, 2022

Hello, @koppor would you like to combine the journal abbreviations and book title abbreviations as a single functional part (share the same abbreviation data)

The abbreviation data should be different. Instead of "journals" sub directory at https://github.com/JabRef/abbrv.jabref.org, the abbreviations should go into "conferences". Otherwise, the lists won't be maintainable IMHO.

develop the book title abbreviation as an independent functional part (independent database and independent module)?

I think, you can resue the journal code. Some renaming and generalization fo the methods is necessary. I refined the list at #360 (comment) to focus on the core funtionality. I also added a hint.

grafik

@Siedlerchr
Copy link
Collaborator

@koppor
Copy link
Owner Author

koppor commented Jan 4, 2023

Currently, that checker uses the Journal Abbreviation Repository. I ask for conference names (and abbreviations), which are different from journal names.

@koppor
Copy link
Owner Author

koppor commented Mar 16, 2023

CSV file format

The CSV file will have the format <full name>,<abbreviation>[,<shortest unique abbreviation>]. Thus, it is a subset of https://github.com/JabRef/abbrv.jabref.org/#format-of-the-csv-files (no frequency shown). Currently, JabRef does not handle "frequency". See /src/main/java/org/jabref/logic/journals/Abbreviation.java#L29. Thus, the class org.jabref.logic.journals.Abbreviation can be re-used as is.

Preferences

In "CSV file format", we learned that an Abbreviation object is the same for a conference and a journal. Consequently, List<Abbrevation> is also the same. This leads to the conclusion that JournalAbbreviationPreferences and ConferenceAbbreviationPreferences have a list of abbreviations in common. To have something in common, in object-oriented programming, inheritance is used. Thus: Introduce new abstract AbbreviationPreferences and new ConferenceAbbreviationPreferences (inheriting from AbbreviationPreferences). The JournalAbbreviationPreferences need also inherit from AbbreviationPreferences.

Where to put the externalLists? In the AbbreviationPreferences, because both the conference abbreviation and the journal abbreviations make use of the list.

Where to put useFJournalField? This is very specific to journals. Thus, it has to stay in org.jabref.logic.journals.JournalAbbreviationPreferences.

classDiagram
    AbbreviationPreferences <|-- JournalAbbreviationPreferences
    AbbreviationPreferences <|-- ConferenceAbbreviationPreferences
    <<Abstract>> AbbreviationPreferences

    AbbreviationPreferences : -externalLists
    JournalAbbreviationPreferences : -useFJournalField
Loading

Action points:

  • Rename externalJournalLists to externalLists (in JournalAbbreviationPreferences) and move up the class hierarchy to AbbreviationPreferences
  • Rename the respective setter, getter and constructor parameter - and move up the class hierarchy to AbbreviationPreferences

Repository

The org.jabref.logic.journals.JournalAbbreviationRepository has no journal specifics in (reason: See "CSV file format" above).

Action: Refactor: Rename JournalAbbreviationRepository to AbbreviationRepository.

Loader

The org.jabref.logic.journals.JournalAbbreviationLoader has some journal specifics in.

The journal specifics are journal-list.mv and /journals/journal-list.mv

Two options: A) parameterize the class or B) hide these internals in a class hierarchy. I go for B)

classDiagram
    AbbreviationLoader<|-- JournalAbbreviationLoader
    AbbreviationLoader<|-- ConferenceAbbreviationLoader
    <<Abstract>> AbbreviationLoader

    AbbreviationLoader: +readListFromFile
	AbbreviationLoader: AbbreviationLoader(String mvName)
	AbbreviationLoader: +AbbreviationRepository loadloadRepository(AbbreviationPreferences)
    AbbreviationLoader: -mvName
Loading

Just using AbbreviationPreferences works here as fjournal is not needed here.

Using the variable mvName, the variable tempJournalList and the path to JournalAbbreviationRepository.class.getResourceAsStream("/journals/journal-list.mv") can be dynamically be made. The tempDir can be named "jabref-abbreviation-loading" (instead of "jabref-journal")

Constructors

  • public JournalAbbreviationLoader(super("journal-list.mv"))
  • public ConferenceAbbreviationLoader(super("conference-list.mv"))

@koppor koppor moved this from Free to take to In Progress in Candidates for University Projects Mar 17, 2023
@ThiloteE ThiloteE moved this from In Progress to Reserved in Candidates for University Projects Apr 10, 2023
@HoussemNasri
Copy link

HoussemNasri commented Sep 23, 2023

One problem is that booktitle usually contains the name of the proceedings, which if I understand correctly, is the name of a publication (usually a book) that gets published after the conference and contains all papers presented. So we can't just read the booktitle value and try to look up its abbreviation. We either have to keep track of the proceedings abbreviations or use conference abbreviations and try to inject the abbreviated conference name into the proceedings name.

I'm not sure if injecting conferences names is gonna work, as it's not clear that we can extract conference names from proceedings. It's seems that there is this pattern that repeats "Proceedings of (conference name)" but I don't know if it's always the case.

@koppor
Copy link
Owner Author

koppor commented Sep 24, 2023

One problem is that booktitle usually contains the name of the proceedings, which if I understand correctly, is the name of a publication (usually a book) that gets published after the conference and contains all papers presented.

Yes. Example:


"International Conference on Business Process Management" - https://bpm-conference.org/

Proceedings: https://link.springer.com/conference/bpm

Example paper: https://link.springer.com/chapter/10.1007/978-3-031-41620-0_1

BibTeX from springer:

@InProceedings{10.1007/978-3-031-41620-0_1,
author="Christfort, Axel Kjeld Fjelrad
and Slaats, Tijs",
editor="Di Francescomarino, Chiara
and Burattin, Andrea
and Janiesch, Christian
and Sadiq, Shazia",
title="Efficient Optimal Alignment Between Dynamic Condition Response Graphs and Traces",
booktitle="Business Process Management",
year="2023",
publisher="Springer Nature Switzerland",
address="Cham",
pages="3--19",
abstract="Dynamic Condition Response (DCR) Graphs is a popular declarative process modelling notation which is supported by commercial modelling tools and has seen significant industrial adoption. The problem of aligning traces with DCR Graphs, with it's multitude of applications such as conformance checking and log repair, has surprisingly not been solved yet. In this paper we address this open gap in the research by developing an algorithm for efficiently computing the optimal alignment of a DCR Graph and a trace. We evaluate the algorithm on the PDC 2022 dataset, showing that even for large models and traces alignment problems can be solved within milliseconds, and present a case study based on test-driven modelling.",
isbn="978-3-031-41620-0"
}

Which is "good enough"

BibTeX from the doi

@InCollection{Christfort2023,
  author    = {Axel Kjeld Fjelrad Christfort and Tijs Slaats},
  booktitle = {Lecture Notes in Computer Science},
  publisher = {Springer Nature Switzerland},
  title     = {Efficient Optimal Alignment Between Dynamic Condition Response Graphs and~Traces},
  year      = {2023},
  pages     = {3--19},
  doi       = {10.1007/978-3-031-41620-0_1},
}

authors wrong, booktitle wrong.

Let's work with the springer-provided one :)


One more example:

IEEE INDIN - https://2023.ieee-indin.org/

IEEE International Conference on Industrial Informatics, INDIN’23

Information from IEEE:

@InProceedings{Koenig2023a,
  author          = {Simone König and Birgit Vogel-Heuser and Jan Wilch and Tobias Unger and Michael Hahn and Stjepan Soldo and Oliver Kopp},
  title           = {BPMN4CARS: A Car-Tailored Workflow Engine},
  year            = {2023},
  address         = {Lemgo, Germany},
  pages           = {1--6},
  publisher       = {IEEE},
  abstract        = {The importance of high-performance computers in car networks increases to realize software assistance functions. These computers offer new opportunities for use cases in car testing and diagnostics towards vehicle software and services. Therefore, car testing and diagnostics are no longer limited to the testing and functional checking of electric and electronic components. Proven concepts from computer science, such as business process management, can be integrated into the car network to provide a uniform basis for automotive use cases. In this paper, (i) the Business Process Model and Notation (BPMN) standard is used to model diagnostic processes in future car production lines and (ii) a car-tailored BPMN workflow engine is introduced to execute the processes in a high-performance vehicular computer. The research on executable BPMN models in car networks bridges the gap between interdisciplinary business processes and execution in automotive IT systems.},
  date            = {18-20 July 2023},
  doi             = {10.1109/INDIN51400.2023.10218082},
  eventdate       = {18-20 July 2023},
  eventtitleaddon = {Lemgo, Germany},
  file            = {:https\://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=10218082:PDF},
  isbn            = {978-1-6654-9314-7},
  issn            = {1935-4576},
  journal         = {2023 IEEE 21st International Conference on Industrial Informatics (INDIN)},
  keywords        = {Computers, Computational modeling, Production, Software, Automobiles, Engines, Standards, Software-defined car, Service-oriented vehicle diagnostics, Control and testing, Car-tailored workflow engine, Executing BPMN},
}

DOI information:

@InProceedings{Koenig2023,
  author    = {Simone König and Birgit Vogel-Heuser and Jan Wilch and Tobias Unger and Michael Hahn and Stjepan Soldo and Oliver Kopp},
  booktitle = {2023 {IEEE} 21st International Conference on Industrial Informatics ({INDIN})},
  title     = {{BPMN}4CARS: A Car-Tailored Workflow Engine},
  year      = {2023},
  month     = {jul},
  publisher = {{IEEE}},
  doi       = {10.1109/indin51400.2023.10218082},
}

OMG, there is so much wrong. I opened to https://github.com/JabRef/jabref-issue-melting-pot/issues/293 so that we move journal to booktitle during fetching.

booktitle for "journal" is OK.


Another example:

IEEE CBI - The Premiere Conference on Business Informatics - https://www.cbi-series.org/

Example Paper: https://ieeexplore.ieee.org/document/10218082

Explanation: TBD


So we can't just read the booktitle value and try to look up its abbreviation. We either have to keep track of the proceedings abbreviations or use conference abbreviations and try to inject the abbreviated conference name into the proceedings name.

We currently have:

  • default
  • dotless
  • shortest unique

image

Proposal:

2023 {IEEE} 21st International Conference on Industrial Informatics ({INDIN}) -> 21st INDIN (default) ->INDIN (shortest unique)

Heuristics:

  • Remove year in front
  • Remove publisher in front (even if in {}
  • Store 21st as conference count
  • Use International Conference on Industrial Informatics as long conference name
  • Use the value in braces as shortest unique abbreviation INDIN

I'm not sure if injecting conferences names is gonna work, as it's not clear that we can extract conference names from proceedings. It's seems that there is this pattern that repeats "Proceedings of (conference name)" but I don't know if it's always the case.

Sometimes yes, sometimes not. Just cover that case. A 80% solution is OK for the first round. Can still be improved.

@koppor
Copy link
Owner Author

koppor commented Sep 24, 2023

I know that with the heuristics, one does not need an abbreviation list. However, the BPM conference shows that the abbreviation is not included in the conference title in that case. Thus, one needs the list in that case.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

5 participants