BibLaTeX. Ссылка на программный продукт

BibLaTeX. Ссылка на программный продукт.

Содержание

1 Общая информация

  • В BibLaTeX есть стандартное поле software.
  • Однако в стандартных стилях оно не реализовано (вернее, просто является заглушкой).

2 Пакет biblatex-software

  • CTAN: https://ctan.org/pkg/biblatex-software
  • Репозиторий: https://gitlab.inria.fr/gt-sw-citation/bibtex-sw-entry
  • Добавляет поддержку четырёх типов записей программного обеспечения к любому другому стилю BibLaTeX.
  • Состоит из следующих компонентов:
    • стиль ссылок (software.bbx);
    • расширение модели данных (software.dbx);
    • файлы локализации строк (<lang>-software.lbx).

2.1 Типы записей

  • Четыре типа записей:
    • @software;
    • @softwareversion;
    • @softwaremodule;
    • @codefragment.

2.1.1 @software

  • Применение : программное обеспечение.
  • Обязательные поля : author / editor, title, url, year.
  • Дополнительные поля : abstract, date, doi, eprint, eprintclass, eprinttype, file, hal_id, hal_version, institution, license, month, note, organization, publisher, related, relatedtype, relatedstring, repository, swhid, urldate, version.

2.1.2 @softwareversion

  • Применение : конкретная версия программного обеспечения.
  • Наследует значения отсутствующих полей из записи, упомянутой в поле crossref.
  • Обязательные поля : author / editor, title, url, version, year.
  • Дополнительные поля : abstract, crossref, date, doi, eprint, eprintclass, eprinttype, file, hal_id, hal_version, institution, introducedin, license, month, note, organization, publisher, related, relatedtype, relatedstring, repository, swhid, subtitle, urldate.

2.1.3 @softwaremodule

  • Применение : конкретный модуль более крупного программного проекта.
  • Наследует значения отсутствующих полей из записи, упомянутой в поле crossref.
  • Обязательные поля : author, subtitle, url, year.
  • Дополнительные поля : abstract, crossref, date, doi, eprint, eprintclass, eprinttype, editor, file, hal_id, hal_version, institution, introducedin, license, month, note, organization, publisher, related, relatedtype, relatedstring, repository, swhid, title, urldate, version.

2.1.4 @codefragment

  • Применение : фрагмент кода (например, конкретный алгоритм в программе или библиотеке).
  • Наследует значения отсутствующих полей из записи, упомянутой в поле crossref.
  • Обязательные поля : url.
  • Дополнительные поля : author, abstract, crossref, date, doi, eprint, eprintclass, eprinttype, file, hal_id, hal_version, institution, introducedin, license, month, note, organization, publisher, related, relatedtype, relatedstring, repository, swhid, subtitle, title, urldate, version, year.

2.2 Дополнительные поля

  • Пакет вводит новые поля, специфичные для пакета:
    • hal_id : цифровой идентификатор для запись программного обеспечения, включая его описание и метаданные в HAL;
    • hal_version : версия записи программного обеспечения HAL;
    • license : лицензия на право собственности в формате SPDX;
    • introducedin : если это программный модуль или фрагмент, версия содержащего проекта, в которой он был впервые представлен;
    • repository : URL-адрес репозитория кода (например, на GitHub, GitLab);
    • swhid : идентификатор цифрового объекта (https://docs.softwareheritage.org/devel/swh-model/persistent-identifiers.html):
      • swh-id : внутренний идентификатор элемента;
      • swh:cnt : для содержимого;
      • swh:dir : для каталога;
      • swh:rev : для ревизия;
      • swh:rel : для выпуска.

2.3 Использование

  • Добавить модель данных к biblatex:
    1\usepackage[datamodel=software]{biblatex}
    
  • Подключить стиль:
    1\usepackage{software-biblatex}
    
  • Установите опции пакета:
    1\ExecuteBibliographyOptions{
    2  halid=true,
    3  swhid=true,
    4  shortswhid=false,
    5  swlabels=true,
    6  vcs=true,
    7  license=true}
    
  • Опции пакета:
    • swlabels=true|false : программное обеспечение — это особый результат исследования, отличный от публикаций, поэтому записи о программном обеспечении в библиографии по умолчанию помечаются специальной меткой;
    • license=true|false : информация о лицензии (по умолчанию true);
    • halid=true|false : включением идентификатора в репозитории HAL (по умолчанию true);
    • swhid=true|false : включением идентификатора в архиве Software Heritage (SWHID) (по умолчанию true);
    • shortswhid=true|false : способ отображения SWHID; если true, в печатную версию будет включена только основная часть SWHID, а в гиперссылке будет сохранен полный SWHID со всей контекстной информацией (по умолчанию false);
    • vcs=true|false : URL-адрес платформы размещения кода, на которой разрабатывается программное обеспечение, описанное в записи (по умолчанию true).

2.4 Примеры

2.4.1 software, softwareversion

  • Пример описания выпуска программного обеспечения с использованием одной записи @softwareversion:

     1@softwareversion {delebecque:hal-02090402-condensed,
     2  title = {Scilab},
     3  author = {Delebecque, Fran{\c c}ois and Gomez, Claude and Goursat, Maurice and Nikoukhah, Ramine and Steer, Serge and Chancelier, Jean-Philippe},
     4  url = {https://www.scilab.org/},
     5  date = {1994-01},
     6  file = {https://hal.inria.fr/hal-02090402/file/scilab-1.1.tar.gz},
     7  institution = {Inria},
     8  license = {Scilab license},
     9  hal_id = {hal-02090402},
    10  hal_version = {v1},
    11  swhid = {swh:1:dir:1ba0b67b5d0c8f10961d878d91ae9d6e499d746a;origin=https://hal.archives-ouvertes.fr/hal-02090402},
    12  version = {1.1},
    13  note = {First Scilab version. It was distributed by anonymous ftp.},
    14  repository= {https://github.com/scilab/scilab},
    15  abstract = {Software for Numerical Computation freely distributed.}
    16}
    
  • Эту же информацию можно также представить с помощью пары @software и @softwareversion; общая информация в @software, изменения в @softwareversion:

     1@software {delebecque:hal-02090402,
     2  title = {Scilab},
     3  author = {Delebecque, Fran{\c c}ois and Gomez, Claude and Goursat, Maurice and Nikoukhah, Ramine and Steer, Serge and Chancelier, Jean-Philippe},
     4  date = {1994},
     5  institution = {Inria},
     6  license = {Scilab license},
     7  hal_id = {hal-02090402},
     8  hal_version = {v1},
     9  url = {https://www.scilab.org/},
    10  abstract = {Software for Numerical Computation freely distributed.},
    11  repository= {https://github.com/scilab/scilab},
    12}
    13
    14@softwareversion {delebecque:hal-02090402v1,
    15  version = {1.1},
    16  date = {1994-01},
    17  file = {https://hal.inria.fr/hal-02090402/file/scilab-1.1.tar.gz},
    18  swhid = {swh:1:dir:1ba0b67b5d0c8f10961d878d91ae9d6e499d746a;origin=https://hal.archives-ouvertes.fr/hal-02090402},
    19  note = {First Scilab version. It was distributed by anonymous ftp.},
    20  crossref = {delebecque:hal-02090402}
    21}
    

2.4.2 softwaremodule

  • Если программный продукт содержит много модулей, то может потребоваться ссылаться конкретно на конкретный модуль, который отличает авторов, и, возможно, он будет включен в проект позднее:
     1@software {cgal,
     2 title = {The Computational Geometry Algorithms Library},
     3 author = {The CGAL Project},
     4 editor = {CGAL Editorial Board},
     5 date = {1996},
     6 url = {https://cgal.org/}
     7}
     8
     9@softwareversion{cgal:5-0-2,
    10 crossref = {cgal},
    11 version = {5.0.2},
    12 url = {https://docs.cgal.org/5.02},
    13 date = {2020},
    14 swhid = {swh:1:rel:636541bbf6c77863908eae744610a3d91fa58855;
    15          origin=https://github.com/CGAL/cgal/}
    16}
    17
    18@softwaremodule{cgal:lp-gi-20a,
    19 crossref = {cgal:5-0-2},
    20 author = {Menelaos Karavelas},
    21 subtitle = {{2D} Voronoi Diagram Adaptor},
    22 license = {GPL},
    23 introducedin = {cgal:3-1},
    24 url = {https://doc.cgal.org/5.0.2/Manual/packages.html#PkgVoronoiDiagram2},
    25}
    
  • Можно использовать только одну запись, чтобы получить эквивалентный результат:
     1@softwaremodule{cgal:lp-gi-20a-condensed,
     2 title = {The Computational Geometry Algorithms Library},
     3 subtitle = {{2D} Voronoi Diagram Adaptor},
     4 author = {Menelaos Karavelas},
     5 editor = {CGAL Editorial Board},
     6 license = {GPL},
     7 version = {5.0.2},
     8 introducedin = {cgal:3-1},
     9 date = {2020},
    10 swhid = {swh:1:rel:636541bbf6c77863908eae744610a3d91fa58855;
    11          origin=https://github.com/CGAL/cgal/},
    12 url = {https://doc.cgal.org/5.0.2/Manual/packages.html#PkgVoronoiDiagram2},
    13}
    

2.4.3 codefragment

  • Если необходимо, чтобы определённый фрагмент кода появился в библиографии:
     1@software {parmap,
     2  title = {The Parmap library},
     3  author = {Di Cosmo, Roberto and Marco Danelutto},
     4  date = {2012},
     5  institution = {{Inria} and {University of Paris} and {University of Pisa}},
     6  license = {LGPL-2.0},
     7  url = {https://rdicosmo.github.io/parmap/},
     8  repository= {https://github.com/rdicosmo/parmap},
     9}
    10
    11@softwareversion {parmap-1.1.1,
    12  crossref = {parmap},
    13  date = {2020},
    14  version = {1.1.1},
    15  swhid = {swh:1:rel:373e2604d96de4ab1d505190b654c5c4045db773;
    16     origin=https://github.com/rdicosmo/parmap;
    17     visit=swh:1:snp:2a6c348c53eb77d458f24c9cbcecaf92e3c45615},
    18}
    19
    20@codefragment {simplemapper,
    21  subtitle = {Core mapping routine},
    22  swhid = {swh:1:cnt:43a6b232768017b03da934ba22d9cc3f2726a6c5;
    23     origin=https://github.com/rdicosmo/parmap;
    24     visit=swh:1:snp:2a6c348c53eb77d458f24c9cbcecaf92e3c45615;
    25     anchor=swh:1:rel:373e2604d96de4ab1d505190b654c5c4045db773;
    26     path=/src/parmap.ml;
    27     lines=192-228},
    28  crossref = {parmap-1.1.1}
    29}
    
  • Можно использовать только одну запись:
     1@codefragment {simplemapper-condensed,
     2  title = {The Parmap library},
     3  author = {Di Cosmo, Roberto and Marco Danelutto},
     4  date = {2020},
     5  institution = {{Inria} and {University of Paris} and {University of Pisa}},
     6  license = {LGPL-2.0},
     7  url = {https://rdicosmo.github.io/parmap/},
     8  repository= {https://github.com/rdicosmo/parmap},
     9  version = {1.1.1},
    10  subtitle = {Core mapping routine},
    11  swhid = {swh:1:cnt:43a6b232768017b03da934ba22d9cc3f2726a6c5;
    12     origin=https://github.com/rdicosmo/parmap;
    13     visit=swh:1:snp:2a6c348c53eb77d458f24c9cbcecaf92e3c45615;
    14     anchor=swh:1:rel:373e2604d96de4ab1d505190b654c5c4045db773;
    15     path=/src/parmap.ml;
    16     lines=192-228}
    17}
    

Links to this note

Дмитрий Сергеевич Кулябов
Дмитрий Сергеевич Кулябов
Профессор кафедры теории вероятностей и кибербезопасности

Мои научные интересы включают физику, администрирование Unix и сетей.

Похожие