Citiation Styles

  • Knut Krüger
    Knut Krüger

    Hi Matthias, and the rest of the Developer team.
    I read the pages and thougt about ...
    only in are more than 2000 journals. I think it is impossible to build thousands of style files. but there are  less styles for the single fileds.
    f.e the pages are mostly 122-144.
    What about building the style files not for each journal, than for each entry.
    Means you have one file for the Author filed one for the title filed and so on.
    Based on the SQL database the Main script of the export citiation could find the way to build the style for the journal.
    f.e if there is requested deep sees or J Glac:
    for volume and page and issue there is only the difference that volum is bold

    If there is one Database entry with the formataion instruction the main script could build the citiation

    f. e
    J Clace:   author and so on ..... /b[Volume]/([issue]/)/;[page-start]/-[page_end]
    Deep sees: author and so on .....   [Volume]/([issue]/)/;[page-start]/-[page_end]

    the only difference is the bold Volume (and maybe some changes in: author and so on ..... )

    The amount of work will be decreasing after a while if there are a couple of field styles implemented, and if there is a new journal to implement there must be implemented only a short database record instead a complete php file.

    maybe for this issue it would be better to use a second database, so that there is one equal database for all useres for the styles, submitted with the future updates.

    Looking to the code it is well structured so that it should be no problem to change the way of the export citation file.

    If it is not clear [as in the past treads ;-) ] we could phone about or mail with Pm in German - I think we are both in Germany

    Regards Knut

    • Hi Knut,

      improvements to the refbase citation system is a planned feature:

      If I understand you correctly, you're proposing a simple markup language with placeholders to do the citation styling for different journals. This is the most common approach and many tools have adopted something like that. Our Bibliophile initiative has also one flavour, named "OSBiB":

      While a simple markup language works, it can cause issues when more logic and if/then/else decisions need to be made during citation formatting. In most cases, this is actually the case, and this is why refbase currently uses PHP functions for citation formatting. While this is very powerful, it offers no easy way for users to add new styles.

      Others have implemented a "Citation Style Language" in XML (named CSL):

      Adopting something like OSBiB or CSL  also has the benefit that citation styles would work across different applications, and users may eventually be able to download/upload citation styles from/to a central repository server. Zotero ( already supports CSL files, and may eventually support them as well. So, instead of re-inventing the wheel, we plan do adopt one of these existing solutions. However, it may take some time until this becomes a reality.


    • Knut Krüger
      Knut Krüger

      >If I understand you correctly, you're proposing a simple markup language with placeholders to do the citation styling for >different journals. This is the most common approach and many tools have adopted something like that. Our Bibliophile >initiative has also one flavour, named "OSBiB":

      hmm I do not think so

      If I am right the the procedure just now is:

      The user is choosing f.e Pol Biol for his cititions
      The software is looking for the PHP file /cites/style/cite_PolarBiol_MarBiol_MEPS.php
      and in this file the citations style is described and will be proceeded.

      This file has 23Kb of data.
      building a couple of 1000 files (in the future) will a result of lot redundant entries f.e of the pages style format and a lot of files

      My suggestion is not to determinate what journal.php file must be used for the citation.

      The software should look to any MySQL Database entry f.e for the Record for J Clase

      Inside this Record is f.e the Sytyle for the citiation style

      (or any other notation and order)

      Now the suggetion for the code
      In this case there is only need for 1 php code file with subroutines for Volumes, delimiters and so on.
      The order of the entries is given from the Database the style comes from the php file
      To build a new volume style it is only necessary to add a new short Database record instead a new file.
      Only if there is a new Style to add it is necessary to change the code.
      The more journals are implemented new less changes must be done at the code.
      and if the journals will change the style it is easy to change the export style with the database entry.

      so my suggestion should only to reorder your PHP way of proceeding the citations.
      I would suggest a  style based PHP Solution instead of a journal based PHP solution

      J Clace:
      Deep Sees

      in this example you could use the same subroutines with the exception of volume
      but I think (I did not proofed it) you have used the same parts of codes in
      for the formatting after the entry Volume

      >So, instead of re-inventing the wheel,
      in any help page you suggested to implement new journal_style.php files so I thougt about the time to build each one and the diskspace for all that files and about to prevent the redundant code parts in every php file.

      If you plan another way, it is useless to build new style files.

      Hope that helps

      Did I understand something wrong?

      • I still think that (at least this time) I did understand your proposal correctly. You want to define the citation formats for the different journals by use of variables, in order to ease adding/editing of styles and to avoid redundancy. This is exactly what is described on our "planned features" page and what OSBiB or CSL does (and there are many more similar approaches to it).

        The thing is that refbase does NOT make use of any of these solutions (yet). I didn't mean to imply that refbase already uses OSBiB, CSL, or some other citation style definition language. Instead we currently use raw PHP files, and we're fully aware of its flaws. I was not proposing that users should routinely edit PHP files, we shoud probably clarify this better in the wiki, sorry for the confusion. Instead we'd like to adopt a more generic (and more user-friendly) solution such as OSBiB or CSL.

        While your proposed setup might work, it would introduce yet another citation style language & processing system, which would be incompatible with anything else out there. Also, it wouldn't support conditionals, which is a major drawback (IMHO). Implemeting a good citation style system is far from being trivial, even if it might look like this initially. In case of CSL and the xbib (xbiblio) project, *a lot* of thought has been spent on these issues and it'll be better to further contribute to their efforts (which we've done in the past and will try to do so in the future).