diff --git a/talks-public/2020-05-05-biblatex-software/2020-05-05-biblatex-software.org b/talks-public/2020-05-05-biblatex-software/2020-05-05-biblatex-software.org index 32b33a4..4661a93 100644 --- a/talks-public/2020-05-05-biblatex-software/2020-05-05-biblatex-software.org +++ b/talks-public/2020-05-05-biblatex-software/2020-05-05-biblatex-software.org @@ -1,261 +1,286 @@ #+COLUMNS: %40ITEM %10BEAMER_env(Env) %9BEAMER_envargs(Env Args) %10BEAMER_act(Act) %4BEAMER_col(Col) %10BEAMER_extra(Extra) %8BEAMER_opt(Opt) #+TITLE: Software in bibliographies with biblatex-software #+SUBTITLE: #+AUTHOR: Roberto Di Cosmo #+EMAIL: roberto@dicosmo.org @rdicosmo @swheritage #+BEAMER_HEADER: \date{May 5th, 2020} #+BEAMER_HEADER: \title[The \texttt{biblatex-software} package]{Software in bibliographies with \texttt{biblatex-software}} #+BEAMER_HEADER: \author[Roberto Di Cosmo \hspace{5em} www.dicosmo.org]{Roberto Di Cosmo\\[2em]} # #+BEAMER_HEADER: \setbeameroption{show notes on second screen} #+BEAMER_HEADER: \setbeameroption{hide notes} #+KEYWORDS: software heritage legacy preservation knowledge mankind technology #+LATEX_HEADER: \usepackage{tcolorbox} #+LATEX_HEADER: \definecolor{links}{HTML}{2A1B81} #+LATEX_HEADER: \hypersetup{colorlinks,linkcolor=,urlcolor=links} # +#+LATEX_HEADER: \usepackage{scrextend} #+LATEX_HEADER: \input{preamble.tex} # # prelude.org contains all the information needed to export the main beamer latex source # use prelude-toc.org to get the table of contents # #+INCLUDE: "../../common/modules/prelude-toc.org" :minlevel 1 #+INCLUDE: "../../common/modules/169.org" # +LaTeX_CLASS_OPTIONS: [aspectratio=169,handout,xcolor=table] #+LATEX_HEADER: \usepackage{bbding} #+LATEX_HEADER: \DeclareUnicodeCharacter{66D}{\FiveStar} #+LATEX_HEADER: \usepackage[anythingbreaks]{breakurl} # # If you want to change the title logo it's here # # +BEAMER_HEADER: \titlegraphic{\includegraphics[width=0.7\textwidth]{SWH-logo}} # aspect ratio can be changed, but the slides need to be adapted # - compute a "resizing factor" for the images (macro for picblocks?) # # set the background image # # https://pacoup.com/2011/06/12/list-of-true-169-resolutions/ # #+BEAMER_HEADER: \pgfdeclareimage[height=90mm,width=160mm]{bgd}{swh-world-169.png} #+BEAMER_HEADER: \setbeamertemplate{background}{\pgfuseimage{bgd}} #+LATEX: \addtocounter{framenumber}{-1} * Introduction ** Software at Inria *** Inria (https://www.inria.fr) - French national research institution for digital sciences (CS, applied Maths, ...) - some 2000 researchers in 200 teams - over 1000 open source software developed and distributed over 50 years #+BEAMER: \pause *** The software citation working group - Contributors :: Pierre Alliez, Roberto Di Cosmo, Benjamin Guedj, Alain Girault, Mohand-Said Hacid, Arnaud Legrand, Xavier Leroy, Nicolas Rougier, Manuel Serrano - Outputs :: + P. Alliez, R. Di Cosmo, B. Guedj, A. Girault, M. Hacid, A. Legrand, N. Rougier, [[https://dx.doi.org/10.1109/MCSE.2019.2949413][\emph{Attributing and Referencing (Research) Software: Best Practices and Outlook From Inria}]], Computing in Science and Engineering, 22 (1), 2020. DOI: 10.1109/MCSE.2019.2949413 + ~biblatex-software~ : software bibitems for BibLaTeX ** BibTeX/BibLaTeX reminder *** BibTeX Bibliographic format widely used in the scholarly world by LaTeX users to store and exchange bibliographic information. At Inria it is used to generate bibliographies for the activity reports of 200 teams *** BibLaTeX Modern LaTeX package (and tool set) that produces rich bibliographies from BibTeX entries *** State of software: No support for software in BibTeX/BibLaTeX up to now: - BibLaTeX has a ~@software~ bibitem, that is treated like ~@misc~ ** biblatex-software: new entries *** Four new bibliographic entries - @software :: Computer software. /Required fields:/ ~author~ / ~editor~, ~title~, ~url~, ~year~ #+BEAMER: \pause - @softwareversion :: A specific version of a software. /Required fields:/ ~author~ / ~editor~, ~title~, ~url~, ~version~, ~year~ #+BEAMER: \pause - @softwaremodule :: A specific module of a larger software project. /Required fields:/ ~author~, ~subtitle~, ~url~, ~year~ #+BEAMER: \pause - @codefragment :: A code fragment (e.g. a specific algorithm in a program or library). /Required fields:/ ~url~ #+BEAMER: \pause *** Inheritance *softwareversion*, *softwaremodule* and *codefragment* entries can inherit missing fields from entries designated via the /crossref/ field ** biblatex-software: new fields *** Four new software-specific fields - license :: list (literal). The license/s of the title in SPDX format. - introducedin :: field (literal). If this is a software module or fragment, the version of the containing project where it has been first introduced. - repository :: field (uri). The url of the code repository (e.g on GitHub, GitLab). - swhid :: field (verbatim). The identifier of the digital object (a.k.a the software artifact itself). The intrinsic identifier of the item is an swh-id (swh:cnt for a content, swh:dir for a directory, swh:rev for a revision, swh:rel for a release, etc.). See [[https://docs.softwareheritage.org/devel/swh-model/persistent-identifiers.html][the SWH-ID specification]]. #+BEAMER: \pause *** Two more new software-specific fields for HAL - ~hal_id~ :: field (verbatim). A digital identifier for the software record including its description and metadata on HAL. - ~hal_version~ :: field (verbatim). The version of the HAL software record. - ** Examples are worth a thousand words :PROPERTIES: :BEAMER_opt: fragile :END: *** Software, Softwareversion and Softwaremodule #+BEGIN_EXPORT latex \lstset{% backgroundcolor=\color[gray]{.90}, basicstyle=\tiny\ttfamily, breaklines = true, keywordstyle=\color{blue!85}, columns=fullflexible, }% \lstdefinelanguage{BibTeX} {keywords={% @article,@book,@collectedbook,@conference,@electronic,@ieeetranbstctl,% @inbook,@incollectedbook,@incollection,@injournal,@inproceedings,% @manual,@mastersthesis,@misc,@patent,@periodical,@phdthesis,@preamble,% @proceedings,@standard,@string,@techreport,@unpublished,% @software,@softwareversion,@codefragment,% title,author,year,vcs,license,swhid,version,subtitle, crossref,institution,editor,introducedin,url% }, comment=[l][\itshape]{@comment}, sensitive=false, } \begin{lstlisting}[language=BibTeX] @software {cgal, title = {The Computational Geometry Algorithms Library}, author = {{The CGAL Project}}, editor = {{CGAL Editorial Board}}, year = 1996, url = {https://cgal.org/} } @softwareversion{cgal:5-0-2, crossref = {cgal}, version = {{5.0.2}}, url = {https://docs.cgal.org/5.02}, year = 2020, swhid = {swh:1:rel:636541bbf6c77863908eae744610a3d91fa58855; origin=https://github.com/CGAL/cgal/} } @softwaremodule{cgal:lp-gi-20a, crossref = {cgal:5-0-2}, author = {Menelaos Karavelas}, subtitle = {{2D} Voronoi Diagram Adaptor}, license = {GPL}, introducedin = {cgal:3-1}, url = {https://doc.cgal.org/5.0.2/Manual/packages.html#PkgVoronoiDiagram2}, } \end{lstlisting} #+END_EXPORT ** Output \nocite{*} \tiny + \changefontsizes{7pt} \printbibliography[heading=none,title="Example bibliography",keyword=first] - ** Examples are worth a thousand words, cont'd :PROPERTIES: :BEAMER_opt: fragile :END: *** Software, Softwareversion and Codefragment #+BEGIN_EXPORT latex \lstset{% backgroundcolor=\color[gray]{.90}, basicstyle=\tiny\ttfamily, breaklines = true, keywordstyle=\color{blue!85}, columns=fullflexible, }% \lstdefinelanguage{BibTeX} {keywords={% @article,@book,@collectedbook,@conference,@electronic,@ieeetranbstctl,% @inbook,@incollectedbook,@incollection,@injournal,@inproceedings,% @manual,@mastersthesis,@misc,@patent,@periodical,@phdthesis,@preamble,% @proceedings,@standard,@string,@techreport,@unpublished,% @software,@softwareversion,@codefragment,% title,author,year,vcs,license,swhid,version,subtitle, crossref,institution,editor,introducedin,url% }, comment=[l][\itshape]{@comment}, sensitive=false, } \begin{lstlisting}[language=BibTeX] @software {parmap, title = {The Parmap library}, author = {Di Cosmo, Roberto and Marco Danelutto}, year = {2012}, institution = {{University Paris Diderot} and {University of Pisa}}, url = {https://rdicosmo.github.io/parmap/}, license = {LGPL-2.0}, } @softwareversion {parmap-0.9.8, title = {The Parmap library}, author = {Di Cosmo, Roberto and Marco Danelutto}, version = {0.9.8}, swhid = {swh:1:rev:0064fbd0ad69de205ea6ec6999f3d3895e9442c2; origin=https://gitorious.org/parmap/parmap.git}, crossref = {parmap} } @codefragment {simplemapper, subtitle = {Core mapping routine}, swhid = {swh:1:cnt:d5214ff9562a1fe78db51944506ba48c20de3379; origin=https://gitorious.org/parmap/parmap.git; anchor=swh:1:rev:0064fbd0ad69de205ea6ec6999f3d3895e9442c2;path=/parmap.ml;lines=101-143}, crossref = {parmap-0.9.8} } \end{lstlisting} #+END_EXPORT ** Output - \nocite{*} \tiny + \changefontsizes{7pt} \printbibliography[heading=none,title="Example bibliography",keyword=second] ** biblatex-software: new options and support for other identifiers *** Five new options to control typesetting of software related entries - swlabels=true|false :: add a special label to software entries - license=true|false :: show license information - halid=true|false :: show the HAL identifier - swhid=true|false :: show the SWHID identifier - vcs=true|false :: show the repository URL #+BEAMER: \pause *** Adding other identifiers - ~doi~, ~hal_id~, ~shwid~, ~vcs~, ~url~ are *built-in* - other identifiers are easy to add using ~eprint~ (see full documentation) -** Use, availability and contributions -*** It provides a /style extension/ - compatible with /all existing BibLaTeX style/! Super easy to use, see documentation. +** A /style extension/ compatible with /all existing BibLaTeX style/ + Three simple steps +*** 1) copy the relevant files into your article's directory + ~software.bbx software.dbx software-biblatex.sty english-software.lbx~ #+BEAMER: \pause -*** Development - contributions are welcome on https://gitlab.inria.fr/gt-sw-citation/bibtex-sw-entry +*** 2) pass the ~datamodel=software~ option when loading biblatex +#+BEGIN_EXPORT latex +\begin{lstlisting} + \usepackage[datamodel=software]{biblatex} +\end{lstlisting} +#+END_EXPORT +#+BEAMER: \pause +*** 3) load ~software-biblatex~ +#+BEGIN_EXPORT latex +\begin{lstlisting} + \usepackage{software-biblatex} +\end{lstlisting} +#+END_EXPORT +#+BEAMER: \pause +*** + \hfill That's it! \hfill (see the documentation for full details) +** Availability and contributions *** Distribution and documentation ~biblatex-software~ is available on CTAN as https://www.ctan.org/tex-archive/macros/latex/contrib/biblatex-contrib/biblatex-software - documentation in [[http://mirrors.ctan.org/macros/latex/contrib/biblatex-contrib/biblatex-software/software-biblatex.pdf][~software-biblatex.pdf~]] - demo example in [[http://mirrors.ctan.org/macros/latex/contrib/biblatex-contrib/biblatex-software/sample-use-sty.pdf][~sample-use-sty.pdf~]] - sample bibliography in [[http://mirrors.ctan.org/macros/latex/contrib/biblatex-contrib/biblatex-software/biblio.bib][~biblio.bib~]] +*** Development + contributions are welcome on https://gitlab.inria.fr/gt-sw-citation/bibtex-sw-entry + +** Conclusion + BibLaTeX users can finally properly handle software in their bibliographies! +*** Articles using biblatex-software and Software Heritage + \changefontsizes{7pt} + \printbibliography[heading=bibliography,title="References",keyword=biblio] +