0

I am maintaining a special list of software packages via biblatex/biber. Often, I am referring to a general piece of software and not a specific version. Therefore, it is hard to give a precise year or date for the bibtex entry. So, they might look as follows:

@software{Boost,
 label = {Boost},
 title = {Boost C++~Libraries},
 url = {http://www.boost.org/},
 urldate = {2016-09-08}
}

I have used the solution from this question to make biber aware of the software entry type at all, so most warnings are gone when using the --validate-datamodel command line flag. However, what remains is:

Biber reported the following issues with 'Boost': - Datamodel: Entry 'Boost' (thesis.bib): Missing mandatory field - one of 'date, year' must be defined. (page 1)

Since I have manually assigned a label I am completely happy with the way of how things get printed. I just want to silence this warning. Any way to achieve this?

  • Well date or year is mandatory for all entry types. Either ignore the warning or rewrite the datamodel. – moewe Mar 21 '17 at 12:59
  • How would I overwrite the data model for this purpose? – languitar Mar 21 '17 at 13:05
  • Have a look at tex.stackexchange.com/q/283238/35864 But you should really ask yourself if the hassle is worth it. I'm not sure yet, but if you are out of luck you might have to rewrite the entire datamodel just to get rid of a few warnings. – moewe Mar 21 '17 at 13:09
1

For this you will really have to roll your own datamodel, see Define required bib fields in biblatex with biber and What does the mandatory constraint type in biblatex do?.

If you do that, this will automatically solve your problem from Silence biber warning “Invalid field 'XXX' for entrytype 'YYY'” as well, you will not need the aliasing with \DeclareDriverSourcemap (in fact it will create problems if you do!), just go back to \DeclareBibliographyAlias.

Create file called languitar.dbx with the following content

\DeclareDatamodelEntryfields[software]{
  title,
  url,
  addendum,
  author,
  editor,
  editortype,
  language,
  month,
  note,
  organization,
  pubstate,
  subtitle,
  titleaddon,
  urlhour,
  urlminute,
  urlsecond,
  urltimezone,
  urlendhour,
  urlendminute,
  urlendsecond,
  urlendtimezone,
  urlday,
  urlendday,
  urlendmonth,
  urlendyear,
  urlmonth,
  urlyear,
  version,
  year}

(This is for @software, but you can do the same for @standard.)

Then load that model with the datamodel=languitar option whenever you load biblatex.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.