\ProvidesFile{software.dbx}[2022/08/01 datamodel extension for software entries, Roberto Di Cosmo] \RequireBiber[3] % % the software entry type family, with their fields % \DeclareDatamodelEntrytypes{software,softwareversion,softwaremodule,codefragment} \DeclareDatamodelFields[type=field,datatype=literal]{ introducedin, } \DeclareDatamodelFields[type=list,datatype=literal]{ license, } \DeclareDatamodelFields[type=field,datatype=uri]{ repository, } \DeclareDatamodelFields[type=field, datatype=verbatim]{ hal_id, hal_version, swhid, swhidcore, } % % Fields for software entry % \DeclareDatamodelEntryfields[software]{ abstract, author, date, doi, editor, eprint, eprintclass, eprinttype, file, hal_id, hal_version, institution, license, month, note, organization, publisher, related, relatedstring, repository, swhid, title, url, urldate, version, year, } \DeclareDatamodelConstraints[software]{ \constraint[type=mandatory]{ \constraintfieldsor{ \constraintfield{author} \constraintfield{editor} } \constraintfield{title} \constraintfield{url} \constraintfield{year} } } % % Fields for softwareversion entry % \DeclareDatamodelEntryfields[softwareversion]{ abstract, author, crossref, date, doi, editor, eprint, eprintclass, eprinttype, file, hal_id, hal_version, institution, introducedin, license, month, note, organization, publisher, related, relatedstring, relatedtype, repository, subtitle, swhid, title, url, urldate, version, year, } \DeclareDatamodelConstraints[softwareversion]{ \constraint[type=mandatory]{ \constraintfieldsor{ \constraintfield{author} \constraintfield{editor} } \constraintfield{title} \constraintfield{url} \constraintfield{version} \constraintfield{year} } } % % Fields for softwaremodule entry % \DeclareDatamodelEntryfields[softwaremodule]{ abstract, author, crossref, date, doi, editor, eprint, eprintclass, eprinttype, file, hal_id, hal_version, institution, introducedin, license, month, note, organization, publisher, related, relatedstring, relatedtype, repository, subtitle, swhid, title, url, urldate, version, year, } \DeclareDatamodelConstraints[softwaremodule]{ \constraint[type=mandatory]{ \constraintfield{author} \constraintfield{subtitle} \constraintfield{url} \constraintfield{year} } } % % Fields for codefragment entry % \DeclareDatamodelEntryfields[codefragment]{ abstract, author, crossref, date, doi, eprint, eprintclass, eprinttype, file, hal_id, hal_version, institution, introducedin, license, month, note, organization, publisher, related, relatedstring, relatedtype, repository, subtitle, swhid, title, url, urldate, version, year, } \DeclareDatamodelConstraints[codefragment]{ \constraint[type=mandatory]{ \constraintfield{url} } }