TeX - LaTeX Asked on May 7, 2021
This is partly a ‘before I reinvent the wheel’ question and partly a question about best practice.
Do any existing solutions handle legal sources appropriately in documents using Biblatex/Biber which require a non-legal default style such as author-year for most sources?
If not, what approach to configuring Biblatex/Biber to do this would constitute best practice? I’m not asking for somebody to do this – the author-year style in my example actually differs somewhat from the one I’m using, so code addressing the problem here might not work well for me anyway. I’m more asking, what configuration tasks are required? Is there a parallel process somewhere I could apply to this case? Where should the configuration happen?
MWEB:
begin{filecontents}{jobname.bib}
@jurisdiction{case,
title = {{Somebody} v {Somebody Else} and Others (No 4)},
note = {[2016] AC 100},
pages = {100--178},
date = {2015-03-10,2015-03-12,2015-04-25,2015-04-27,2015-05-01}}
@legislation{deddf,
title = {{Deddf Ardderchog (Cymru)} 2014},
year = 2014,
author = {{Cynulliad Cenedlaethol Cymru}},
languageid = {cy}}
@article{article,
title = {Fantastic Findings and Where to Find Them},
author = {Vark, Aar D.},
journal = {Diligent Discoveries},
volume = 45,
number = 3,
pages = {23--32},
year = 2010}
@book{book,
title = {Brilliant Baths},
author = {Allard, M.},
publisher = {Empire Books},
address = {Alpha Centauri},
year = 1998}
end{filecontents}
documentclass[welsh,british,a4paper]{article}
usepackage[utf8]{inputenc}
usepackage{geometry}
usepackage{cfr-lm}
usepackage{babel}
usepackage{csquotes}
usepackage[style=authoryear-comp,backend=biber]{biblatex}
bibliography{jobname}
begin{document}
Most of my bibliography entries are `normal' sources, such as articles autocite[e.g.][]{article} and books autocite[e.g.][]{book}.
Textcite{article} and textcite{book} are cited using the author-year system.
However, I also need to cite legal sources, even though I'm not working in law or writing in this discipline.
Nonetheless, these need to be cited appropriately.
Unfortunately, Biblatex doesn't handle these out-of-the-box and the contributed styles which do are all designed for work in law, as opposed to, say, history, philosophy or quantum mechanics.
Hence, the standard styles do not handle these cases well:
begin{quote}
Textcite{deddf} is a law autocite{deddf}.
Textcite{case} is a case autocite{case}.
end{quote}
I emph{think} that these should be cited rather differently, although I'm not certain exactly how they should look.
I suspect something like the following is needed
begin{quote}
Deddf Ardderchog (Cymru) 2014 is a law (Deddf Ardderchog (Cymru) 2014).
emph{{Somebody} v {Somebody Else} and Others (No 4)} [2016] AC 100 is a case (emph{{Somebody} v {Somebody Else} and Others (No 4)} [2016] AC 100).
end{quote}
That is, specifically legal sources should follow the Oxford Standard for the Citation of Legal authorities (OSCOLA), except that inline rather than footnote citations are used.
Similar principles will also apply to the entries in the bibliography.
printbibliography
The entries for the book and the article are as desired.
The entries for the law and the case are not.
The year of legislation is part of the name of the act and shouldn't be separated from it.
The title should come first.
Probably I should not have an author but just a publisher or URL, but if I don't have an author, author-year citations go wrong.
I should not have `n.d.' in the entry for the case, but nor should I have the year in round brackets.
No full-stop should follow the year.
Not sure about the full-stops at the end of entries, but OSCLA doesn't use them, I don't think.
In some cases, citations and entries for cases are more complex, though I haven't yet got to grips with all the nuances.
What is the best way to configure Biblatex for legal sources, when using a non-legal style for all others?
end{document}
Keks Dose makes the good point in the comments that not only do the legal systems differ from country to country so do their citation practices.
The styles listed below come mainly from an English/American common law perspective.
A handful of biblatex
styles have some kind of support for legal citations with @jurisdiction
and @legislation
(I only listed styles that I consider to be of recent vintage, i.e. updated after the release of biblatex
v3.3 in 2016)
biblatex-abnt
aliases both to @article
.
biblatex-apa
defines the types @legislation
, @legadminmaterial
, @legal
and @jurisdiction
. Some (commented) example entries can be found in biblatex-apa-test-references.bib
. See also §4.2.5 Legal Entry Types of the biblatex-apa
documentation.
biblatex-bath
has support for UK legislation and parliamentary reports (@legislation
) as well as EU legislation and reports (as @legislation
) and case reports (@jurisdiction
). See §§4.8-4.10 of the documentation.
biblatex-chicago
offers the types @jurisdiction
, @legal
and @legislation
following CMS/Bluebook recommendations.
biblatex-oxref
(by the author of biblatex-bath
) also offers support for legal sources mimicking OSCOLA with a few minor differences. See §10 Legal references of the style documentations (here oxyear
) For the author-year style oxyear
the author notes
Since legal references are usually cited using footnotes, how
oxyear
should behave is not well defined. As a result, I have not configured it to do anything fancy: the full reference will be formatted just the same as withoxnotes
, and citations will typically be title–year using parentheses in the usual way.
biblatex-philosophy
has experimental support for @jurisdiction
.
oscola
has support for much of the English-speaking world.
biblatex-apa
, biblatex-bath
, biblatex-oxref
's oxyear
style and biblatex-chicago
's authordate
will be of particular interest since those styles usually follow an autho-year scheme and are otherwise not focused on legal citations.
As far as I can see biblatex-bath
and biblatex-oxref
can get away with not modifying the citation commands significantly (a few delimiters are modified but the cite bibmacro itself not), biblatex-chicago
has has dedicated macros set up for legal citations. All styles have dedicated drivers and supporting infrastructure for the accepted entry types.
There were also dedicated styles for German legal citations, Swiss legal style and French legal citations, but these styles have not been updated recently and will probably not work as intended any more. A more recent French style is https://github.com/ienissei/frenchlaw
2020 Update The German style biblatex-juradiss
got an emergency update so that it at least works again. There are also the two new styles biblatex-jura2
and biblatex-german-legal
.
Depending on the output you expect and the input you find reasonable the work you may have to do can vary.
I think it is fair to assume that you will have to write a dedicated bibliography driver for @legislation
and @jurisdiction
. Mapping to a standard driver like @article
, @misc
or @book
is probably not enough for you.
The general approach to writing a bibliography driver as shown in Creating Entry in Bibtex for Executive Orders and How can I create entirely new data types with BibLaTeX/Biber? is still valid. I would definitely prefer bibstrings over hard-coded text in macros and would usually try to avoid printtext
and try to use DeclareFieldFormat
as much as possible (but I guess to some extent that is just a matter of taste). As we are all painfully aware there are no comprehensive "introduction to writing a biblatex
style" or "my first bibdriver" available (yet?), so I would usually recommend to learn by looking at examples. Naturally you would start with the standard drivers, but I believe most of the styles listed above can also be used to learn best practices - if you keep in mind that some of them need to implement a complicated set of rules and so some tricks are required once in a while.
You may also have to add certain fields to the default data model if you feel that the available fields don't cover everything you need. (biblatex-oxref
adds a few non-standard fields for case reporting for example.) See Add field "tome" to biblatex entries.
With a bit of care those two things can happen almost independent of the style that is later used.
For citations the situation is not as clear.
As biblatex-oxref
and biblatex-bath
demonstrate it might not actually be necessary to modify the cite macros, it can be enough to use existing features like labeltitle
, labeldate
and a few modifications of their behaviour to obtain acceptable citation output. But depending on the rest of your style and your input it may be necessary to change the cite macro to incorporate legal citations. This gets harder to pull off in a way that is independent of the used citation style. If you use a complicated style such as authoryear-icomp
some care needs to be taken to make sure legal citations interact with the various features of the style in a reasonable way.
A dedicated lawcite
command might be an option that avoids messing with heavily style-dependent citation commands, but it does not feel as nice to me.
Answered by moewe on May 7, 2021
I cannot really say much about best practices on the matter, and neither on
legal sources in particular. So I guess technically I shouldn’t be
answering. But I do think I have some input that might be of interest. However, I intend to tackle the question from a somewhat specific perspective: Sharing my thoughts on how to handle non-regular entry types with biblatex
, of which legal sources can be considered a particular case.
My own relation to the problem comes from the need to cite/reference primary sources for Economic History research, which means mostly archive sources but may actually be quite diverse stuff. This includes legal sources, but I never really worried much about specific requirements of this type of source. I mention this because some of my choices here do stem from the requirements implied by this, but I do think most of the suggestions bellow are quite flexible (Indeed, "flexibility" is one of my key requirements, for I usually cannot predict in advance the required style for submission of any given work when I start it).
There is always a range of alternatives to deal with less than standard types of sources. moewe covers this very well in his answer, so there is no need for me to reiterate. But a comment on a natural choice may be worth it. Indeed, one of the obvious ways would be to choose a style that handles the particular type of source that we need. My view is that, unless there is a general reason to go for a specialized or heavily customized style, I feel it to be too much to choose it just to support a particular entry type we need. I prefer to stick to my style of choice (usually one of the standard ones), which provides me well with the desired results for regular entry types and layer on top of it the necessary structure to deal with the non regular ones. Normally regular entry types will comprise a large share of the sources anyway, so why change everything, for all entry types, just to be able to handle one or another kind of special source?
Given this, in the most general case, handling non-standard entry type entails three basic issues:
Providing the data structure (entry types, entry fields)
Specifying how the entry types should appear in the bibliography (bibdrivers, filtering)
Specifying how the citation for these entry types should behave.
As for the first two, moewe also covers them in the second part of his answer,
pointing to two good sources on the matter here on the site (Creating Entry in Bibtex for Executive Orders and How can I create entirely new data types with BibLaTeX/Biber?).
That’s about it. And it is a testimony to biblatex
’s capabilities, which was
designed to be both customizable and extensible.
But some comments. It is hard to escape from defining a bibdriver for your
special entry type(s). Well, at least if you want things nicely done
(theoretically you could always try to hammer / (ab)use one or another existing entry type). Anyway, biblatex
offers us a nice user interface with which this can be done without much fuss, so it is highly recommendable to do so.
As to extending or not the datamodel, the choices are not as clear and will
depend on your requirements (and taste). In particular, biblatex
has some entry types and entry fields readily available for such purposes (entrytypes custom[a-f]
, entry fields name[a-c]
, list[a-f]
, user[a-f]
etc.). So, if you only need some few of those, a proper extension of the datamodel may not be needed. Furthermore, if you’d like to use meaningful names for your types and fields, you can map the names of your choice to the existing ones with a sourcemap.
Another consideration regarding the extension of the data structure to support a special type of source is the portability of your (.bib
) data. And, related to this, how much support you will be able to get from existing software for management of your bibliography data (JabRef, Zotero, Mendeley and equivalents and related software) if you like or need those. My view on this matter is that, for less standard types of sources, portability (and software support) is not granted anyway, so I might as well leave portability behind (for these types of entries only!), and go for a meaningful data structure. Time and again I found myself "tayloring" the bibentry data to achieve desired end results for a particular style, resulting in, let’s say, "less than semantic and less than portable" bib data. In my experience, this is particularly true with heavily customized styles or specialized styles, which will be the ones that support your special source type to start with. Every time you resort to this, your data is not really portable anymore. So I choose to separate regular entry types, and keep them portable, letting standard styles handle them, and for the non standard sources/entry types, assuming they will not be portable anyway, I tend to a meaningful / semantic data structure. I keep "portable" and "non portable" data in separate .bib
files. However, notice that once you can carry the parallel structure for your special entry types to the style of your choice, that is not particularly restrictive (This is not unrestricted though. To start with, you won’t carry it outside biblatex
, which means you won’t carry it outside LaTeX and thus will only be able to achieve pdf, or similar, output).
How to handle citations then? Citation call-outs are creatures more delicate
than bibdrivers. To start with because bibdrivers let you have a specific
structure for each entry type, while citations (normally) require a single
overall standard structure, whatever the entrytype may be. This point is
interesting because the first temptation here would be: I can simply redefine
the relevant citation commands or citation macros to get them to handle my
special source types. Technically that is true, but it’s not the crux of the
problem. First we have to figure how our citation call outs should be displayed, and if there is any meaningful way to fit our special sources within the current style citation structure. E.g. would it make any sense to try to fit a decree or a law in an author-year structure? Out of this dilemma, I eventually converged to what I call a "mixed citation style". My usual kind of special sources practically requires a long citation in footnotes, both because the amount of information is usually long enough not to fit the flow of text and because primary/archive sources do not usually reach individually the bibliography (their "container" does). This blends organically with the verbose
style (or variants) but also works pretty well with, e.g. authoryear
style for the regular entry types, provided I choose properly the citation command for each occasion. I’m not claiming this is the only approach to the problem, quite the contrary would be true, but only that this is the most expedient way to do so I was able to find for my current needs in dealing with non standard sources.
From a technical point of view, given this perspective, how to deal with
citations? Given my flexibility requirements, I’ve opted for patching (well, sort of) the cite
bibmacro, which offers a reasonable hook for the purpose. This allows us to get the job done for whatever style we happen to choose ex post. (Ok, "whatever" is not completely true, more on this later). My current setup for this is in the form:
letbibmacro{cite:orig}{cite}
renewbibmacro*{cite}{%
ifcategory{primary}{%
usebibmacro{primary}}{%
usebibmacro{cite:orig}}}
Of course, you could substitute primary
there for legal
(or whatever you may choose), just taking care that your set of legal sources entry types are duly added to the corresponding category. (For other techniques for the same
purpose, see Biblatex - xpatch bibmacro with unbalanced braces).
This essentially, redefines the cite
bibmacro in a way that lets biblatex
do what it usually does for regular entry types, but allows you to control separately what happens for your special entry types. That given, you now can exert full control of the citation call-outs, for your special entry types only, through the primary
(legal
) bibmacro, leaving citations for regular entry types untouched. That’s no small feat, but comes at a cost.
Some comments on this approach. The patch allows one to have style flexibility
for the regular entry types, which may or may not be a requirement for
you. However, even if it’s not, I suggest it still may be interesting because,
if the structure of the call out is not really adjustable within the current
citation style logic, you’ll probably see the need to resort to a similar
conditional (wherever you choose to place it). And, if so, there will not be much difference in
requirements/limitations at the end of the day. So the patch may well be convenient.
Any way, as mentioned, redefining the relevant bibmacros and/or the relevant
citation commands are also options to consider. Defining dedicated citation
commands too. Patching the citation commands is not, though (See discussion in
the comments at Biblatex's bibmacros, bibliography drivers, formats - patch or redefine?). This is relevant because the cite
bibmacro is not a perfect universal hook, particularly not for comp
variants of the standard citation styles (not to mention contributed ones).
This approach gives us a reasonable flexibility in the choice of the underlying citation style (for regular entrytypes), but it is not quite "style agnostic", and this for two reasons.
First, given we hijacked the core citation bibmacro in this fashion, it means we are responsible for reimplementing any special features of the citation style on our own for the special entry types (e.g. ibid
handling, short vs long formats and so on). And it is hard to do this in a way which is independent of the style...
Second, not all styles get to build the full citation based solely in the cite
bibmacro, not even the standard ones, the comp
variants being the most conspicuous examples. (Though I still think this should be quite viable,
provided you don’t mix regular and non regular entry types in any single
citation command. This is untested though). Though, in principle, this approach may work with the standard styles and likely with (many?) contributed styles, whether it does or not hangs on this same issue. It must also be sensible (e.g. I don't think this would blend well with numeric
or alphabetic
, even if it technically works). Anyway, I have been using this with authoryear
, authortitle
and verbose
, alongside their ibid
variants quite successfully, without needing to get paranoid when citing any given source (due care is needed of course) and without worrying with any other adjustments beyond the choice of citation style.
A final touch. If you are like me, you may stumble upon some case where one of
your non regular source type(s) happens to be published within a regular one, and you’d like to treat it as a special type, because that’s meaningful/important, but still acknowledge the published version. You can do that in a way that is responsive to the citation style being used for the regular entry types by using the cite
bibmacro for the regular type within the citation of the non regular one within an entrydata
fed with a proper crossref. (moewe, now you know why I was so interested in nested entrydatas
a while ago).
Conceptually, those are my main points. To be somewhat less abstract, I include some key pieces in concrete form. The primary
bibmacro, which handles my citations for my primary sources uses mixed interfaces of biblatex (that is, uses a bibdriver to render the citation), and is something similar to:
newbibmacro*{primary}{%
ifciteseen
{ifboolexpr{
test {ifciteibid}
and
not test {iffirstonpage}}
{usebibmacro{cite:ibid}}
{ifdriver{thefield{entrytype}:short}
{usedriver{}{thefield{entrytype}:short}}
{usedriver{}{thefield{entrytype}}}}}
{usedriver{}{thefield{entrytype}}}}
Of course, you don’t have to use mixed interfaces, and could well go with regular bibmacros. I happen to think this is specially convenient to be able to get citation call outs for each of my special entry types by simply defining the relevant bibdrivers. Note that the above structure handles both short/long citation forms and ibid, doing so automatically with the corresponding citation styles without any further intervention, given biblatex turns on or off the relevant trackers according to the chosen style.
My legislation
drivers are the following:
DeclareBibliographyDriver{legislation}{%
usebibmacro{bibindex}%
usebibmacro{begentry}%
usebibmacro{legislation:typenumber}%
setunit{addcommaspace}%
printdate%
setunit{addcommaspace}%
printfield{leggov}%
setunit{addcommaspace}%
iffieldundef{shorttitle}
{printfield[title]{title}}
{printfield[title]{shorttitle}}%
setunit{addcommaspace}%
iffieldundef{pubin}
{}
{%
bibstring{in}%
setunit{addspace}%
usebibmacro{primpublishedin}%
}%
newunit
ifcitation
{}
{printfield{addendum}}%
usebibmacro{finentry}}
DeclareBibliographyDriver{legislation:short}{%
usebibmacro{bibindex}%
usebibmacro{begentry}%
usebibmacro{legislation:typenumber}%
setunit{addcommaspace}%
printshortdate%
setunit{addcommaspace}%
iffieldundef{shortleggov}
{printfield{leggov}}
{printfield{shortleggov}isdot}%
setunit{addcommaspace}%
iffieldundef{pubin}
{}
{%
bibstring{in}%
setunit{addspace}%
usebibmacro{primpublishedin}%
}%
usebibmacro{finentry}}
Which require:
newbibmacro*{legislation:typenumber}{%
ifboolexpr{
test {iffieldundef{pubin}}
and
test {ifcitation}
and not
test {iffieldundef{crossref}}
}{%
printtext[bibhyperref:crossref]{%
printfield{legtype}%
setunit{addspace}%
bibstring{number}%
setunit{addnbspace}%
printfield{legnumber}}%
}{%
printfield{legtype}%
setunit{addspace}%
bibstring{number}%
setunit{addnbspace}%
printfield{legnumber}}}
newbibmacro*{primpublishedin}{%
entrydata*{strfield{pubin}}{%
ifentrytype{primperiodical}{%
ifbibliography
{clearfield{urlintro}%
clearfield{url}%
clearfield{addendum}%
usedriver{}{thefield{entrytype}}}
{begingroup%
delimcontext{none}%
usebibmacro{cite}%
endgroup}%
setunit{addcommaspace}%
iffieldundef{savedvolume}
{}
{iffieldnum{savedvolume}
{bibstring{jourvol}addnbspace}
{}%
printfield{savedvolume}}%
setunit{addcommaspace}%
iffieldundef{savednumber}
{}
{iffieldnum{savednumber}
{bibstring{number}addnbspace}
{}%
printfield{savednumber}}%
setunit{addcommaspace}%
printsavedpubdate%
}{%
ifbibliography
{usedriver{}{thefield{entrytype}}}
{begingroup%
delimcontext{none}%
usebibmacro{cite}%
endgroup}%
}%
}%
ifboolexpr{
test {iffieldpages{postnote}}
and
not test {iffieldundef{pages}}}
{globaltoggletrue{prim:thiscite}}
{}%
setunit{bibpagespunct}%
printfield{pages}%
}
With this (and assuming the relevant fields are defined in your datamodel), you just have to add all entries of type legislation
to the category primary
(or legal
) to get your citation working for the legislation
entrytype (the standard AtEveryCitekey
hook should suffice for this).
To get things done in practice, I just fill out a proper template:
% legislation
% "legtype", "legnumber" and "date" are mandatory
% If "pubin" is not set, does not automatically crossref to any entry, if that's desired use the "crossref" field directly
@legislation{ID,
OPTdocid = {},
legtype = {},
legnumber = {},
OPTleggov = {},
OPTshortleggov = {},
date = {},
OPTtitle = {},
OPTshorttitle = {},
OPTpubin = {},
OPTvolume = {},
OPTnumber = {},
OPTpubdate = {},
OPTpages = {},
OPTcrossref = {},
OPTaddendum = {},
}
This, of course, does not attend OSCLA or any other reputable citation style for legal sources, it is also not self sufficient code, but hopefully can do as an example for how to use this citation approach more concretely.
Well, I think those are my thoughts on the matter, as promised. I hope they get to be useful.
Answered by gusbrs on May 7, 2021
Use the oxnotes
biblatex style. It does quite a good and robust job and has a sufficiently nuanced presentation. The laser-scapel precision of a full OSCOLA compliance is not really required outside a legal forum.
You were almost there in the MWE. Some additional adjustments:
In the bib file, for cases, put the case reference in the number
field. This will handle both hardcopy and electronic law reports. For printed cases, page ranges are not required.
For legislation, do not use an author
field. Having the year in the footnote is sufficient.
In the text, use autocite
. Part of the clear-writing ethos for lawyers is to de-clutter the page. Reference details go in the footnotes. (Notice in the MWE how textcite
wants to treat the legislation name - it should be plain.)
Note that you can put formatting commands (latex code) in the bib field items, emph
, etc., if you want.
As to the question of 'should', it is a matter of degree.
If you're feeling tempted to go as far as splitting the bibliography into a legal part and a non-legal part, to help the reader, easiest way is to use keywords
. (There are other ways as well: biblatex is a toolkit, in effect.)
MWE:
RequirePackage{filecontents}
begin{filecontents}{jobname.bib}
@jurisdiction{case,
title = {{Somebody} v {Somebody Else} and Others (No 4)},
number = {[2016] AC 100},
date={2016},
keywords={legal,case},
% pages = {100--178},
% date = {2015-03-10,2015-03-12,2015-04-25,2015-04-27,2015-05-01}
}
@legislation{teu,
keywords = {legal,legislation},
entrysubtype = {eu-treaty},
title = {Consolidated Version of the
Treaty on European Union},
date = {2010},
journaltitle = {OJ},
series = {C},
volume = {83},
pages = {13},
shorthand = {TEU},
pagination = {article},
}
@jurisdiction{c632,title = {Tenacity Investments v Ku-Ring-Gai Council and Ors (No 2)},keywords = {au},number = {[2008] NSWLEC 171},institution = {Land and Environment Court of New South Wales},date = {2008-08-22}, keywords={legal,case},}
@jurisdiction{c606,title = {Lee-Hirons v Secretary of State for Justice},keywords = {au},number = {[2016] UKSC 46},institution = {United Kingdom Supreme Court},date = {2016-07-27},keywords={legal,case},}
@legislation{deddf,
title = {{Deddf Ardderchog (Cymru)}},
year = {2014},
institution = {{Cynulliad Cenedlaethol Cymru}},
languageid = {cy},
keywords={legal,legislation},
}
@legislation{cansw,
title = {Crimes Act (NSW) },
year = {1900},
languageid = {en_AU},
keywords={legal,legislation},
}
@article{article,
title = {Fantastic Findings and Where to Find Them},
author = {Vark, Aar D.},
journal = {Diligent Discoveries},
volume = 45,
number = 3,
pages = {23--32},
year = 2010}
@book{book,
title = {Brilliant Baths},
author = {Allard, M.},
publisher = {Empire Books},
address = {Alpha Centauri},
year = 1998}
@book{austrams,
author = {Austin, Robert P. and Ramsay, Ian M},
title = {Ford, Austin and Ramsay's Principles of Corporations Law},
edition = {16},
publisher = {LexisNexis Butterworths},
date = {2015},
pagination = {paragraph},
ISBN = {9780409338386},
}
end{filecontents}
documentclass[welsh,british,a4paper]{article}
%usepackage[utf8]{inputenc}
%usepackage{geometry}
%usepackage{cfr-lm}
usepackage{babel}
usepackage{csquotes}
usepackage[style=oxnotes]{biblatex}
addbibresource{jobname.bib}
begin{document}
Most of my bibliography entries are `normal' sources, such as articles autocite[e.g.][]{article} and books autocite[e.g.][]{book}.
Textcite{article} and textcite{book} are cited using the author-year system.
However, I also need to cite legal sources, even though I'm not working in law or writing in this discipline.
Nonetheless, these need to be cited appropriately.
Unfortunately, Biblatex doesn't handle these out-of-the-box and the contributed styles which do are all designed for work in law, as opposed to, say, history, philosophy or quantum mechanics.
Hence, the standard styles do not handle these cases well:
begin{quote}
textcite{deddf} is a law autocite{deddf}.
Textcite[at 150]{case} is a case autocite{case}.
A legal textbookautocite{austrams}. And another caseautocite{c632}. And a medium-neutral citation of a case autocite[at para 23]{c606}. Some EU legislation to play with autocite{teu}. And a statuteautocite{cansw}. A law from another jurisdiction: textcite{cansw}
end{quote}
printbibheading
printbibliography [
heading=subbibliography,%
keyword=case,
title={Cases}
]
printbibliography [
heading=subbibliography,%
keyword=legislation,
title={Statutes}
]
printbibliography [
heading=subbibliography,%
notkeyword=case,
notkeyword=legislation,
title={General}
]
hrule
end{document}
giving:
and the footnotes:
and the bibliography:
Addendum: in the MWE, change
textcite{deddf} is a law autocite{deddf}.
Textcite[at 150]{case} is a case autocite{case}.
to
citetitle{deddf} is a law autocite{deddf}.
citetitle{case} is a case autocite[at 150]{case}.
That makes it cleaner.
P.S. It took me a few minutes to work out why I couldn't find "Deddf Ardderchog" on BAILII! :)
=============================
Completely alternatively (and a couple of days later), exploring moewe's idea about a dedicated lawcite
command:
I was able to get a workable (minimalist) lawcite
command up and running in about a dozen steps, using the title
and number
fields on the @rticle
bibentry type, with the use of two keywords, case
and legislation
(and in the background, like suporting cast members, the article
documentclass, and the ext-authortitle
biblatex style, an extension of one of the default styles).
Here is the full MWE, for those who need to start with the result
MWE
% arara: xelatex
% arara: biber
% arara: xelatex
% arara: xelatex
RequirePackage{filecontents}
begin{filecontents*}{jobname.bib}
@article{jones,
title ={Jones v City of Birmingham},
number={224 So. 2d 922 (1969)},
caseref={224 So. 2d 922},
fullcaseref={Jones v. City of Birmingham, 224 So. 2d 922},
partyfirst={Betty Lou JONES},%individual entity>last name as unit
partyfirstrole={appellant},
partysecond={CITY OF BIRMINGHAM},%corporate entity>full name as unit
partysecondrole={appellee},
casetype={appeal},
institution={Court of Appeals of Alabama},
hearingdate={April 22, 1969 and Rehearing Denied May 20, 1969},
decision={Appeal dismissed},
date={1969},
volume={224},
reportseriesname={Southern Reporter},
reportseriesabbrev={So},
reportseries={2},
page={922},
keywords={us, case},
}
@article{ordart,
title ={An Ordinary Article Title},
number={Issue 14},
journaltitle={The Journal},
date={2019-05},
page={10},
}
@article{stat1,
Title ={The Ordinaries Act},
date={2019},
keywords={uk, legislation},
}
end{filecontents*}
documentclass[12pt]{article}
usepackage{fontspec}
setmainfont{Noto Serif}
usepackage[british]{babel}
usepackage{csquotes}
usepackage{splitidx}
makeindex
newindex[Table of Cases]{cases}
newindex[Table of Statutes]{legislation}
newcommandabibname{ext-authortitle}
newcommandabibstyle{style=abibname}
usepackage[
abibstyle ,
indexing=cite,
citetracker,
autocite=footnote,
]{biblatex}
newcommandmynote{biblatex option used: texttt{abibstyle}.}
defbibnote{abibnote}{mynote}
usepackage{xcolor}
pagecolor{red!3}
addbibresource{jobname.bib}
DeclareFieldFormat[article]{title}{%
ifkeyword{case}%
{mkbibemph{#1}}%
{%
ifkeyword{legislation}%
{#1}%
{mkbibquote{#1}}%
}%
}
newbibmacro{sendtocaseindex}{%
ifboolexpr{
test {ifkeyword{case}}
}
{sindex[cases]{thefield{title}, thefield{number}}}%
{%
ifboolexpr{
test {ifkeyword{legislation}}
}
{sindex[legislation]{thefield{title} thefield{year}}}%
{}%
}%
}
newbibmacro{gettitle}{%
printfield{title}%
usebibmacro{sendtocaseindex}%
}
newbibmacro{getnumber}{%
ifkeyword{case}%
{addcommaaddspaceprintfield{number}}%
{%
ifkeyword{legislation}%
{addspaceprintfield{year}}%
{}%
}%
}
DeclareCiteCommand{lawcite}
{usebibmacro{prenote}}
{
usebibmacro{gettitle}
ifciteseen{}{usebibmacro{getnumber}}
}
{}
{usebibmacro{postnote}}
begin{document}
%https://stackoverflow.com/questions/2389689/single-column-long-index-pages-in-latex
%Apr 2 '11 at 2:39
%Smiley
%for two columns > one column
%addedL remove clearpage
letoldtwocolumntwocolumn
renewcommand{twocolumn}[1][]{#1}
letoldclearpageclearpage
renewcommandclearpage{relax}
printindex[cases]
printindex[legislation]
renewcommand{twocolumn}[1][]{oldtwocolumn}
renewcommandclearpage{oldclearpage}
section{Example}
lawcite{jones}
lawcite[under section 27A]{stat1}, provides that in the situation of ...
cite{ordart}
Second cite: lawcite[per Judge Cates at page 924]{jones}, was decided on the basis that (to paraphrase) ``what the court hasn't seen, the court can't review'', and that any redeeming social importance of prowess and endowment is a question of fact.
printbibliography[prenote=abibnote,nottype=jurisdiction,
notkeyword=case,notkeyword=legislation]
begin{center}
textemdash
textemdash
end{center}
end{document}
and the output
The starting point is deciding how granular the bibliographic information should be: the more granular, the more effort and prowess is required (just like with an image, from low-res to high-res).
In the end, a legal case citation is just composed of an identifier, the name of the case, and of a locator, the case reference, which is a way of finding the decision. This two-block structure, a name and address in effect, is the bare minimum.
We can capture, store and process the individual components, but in the end it has to come back to case name and case reference. Happily, both of those are constants, in programming terms, so we can start there.
The purpose of this exercise is to see what would be involved in building a fully-fledged biblatex style (not that we will; it is just to get the idea).
So let's arbitrarily choose a biblatex bibentry type, @article
(just because it's there), and, picking a case at random (via Google Scholar, starting at the jurisdictions beginning with "A", so Alabama), in our .bib
file's bibentry we put the case name in the title
field and the case reference in the number
field.
@article{jones,
title ={Jones v City of Birmingham},
number={224 So. 2d 922 (1969)},
keywords={us, case},
}
Note the keywords. They will become important later. Giving thought to how to classify the information flows into the processing design decisions that need to be made.
While we're in the bib file, let's also set up an ordinary article entry, for comparison purposes.
@article{ordart,
title ={An Ordinary Article Title},
number={Issue 14},
journaltitle={The Journal},
date={2019-05},
page={10},
}
Now, setting up a .tex
document which cites those two entries
section{Example}
cite{jones}
noindentcite{ordart}
and also prints a bibliography, we cycle through the workflow, latex
-biber
-latex
, and get this:
Firstly, cases mixed in with other general bibliography looks odd: we'll remove them from there and print them separately later (somewhere, yet to be decided).
Secondly, in the text, the case name has quotes, is upright and not italic; and the case reference (the number
field) has not printed.
Fixing the bibliography so that it does not print cases is easy via the keyword technique:
printbibliography[notkeyword=case]
Now starts the journey:
We want a cite command, something like lawcite{jones}
, that prints italic case names and then prints the number
field after the case name, but doesn't do any of that to "ordinary" articles (remember we are inside the @article
data structure).
Thinking about it, we will also need a comma and a space between the two pieces of text.
Declaring a cite command, giving it a name lawcite
, and getting it to print the title
field is done with DeclareCiteCommand
, which takes four parameters: what ti print before the citation, the citation itself, what delimiter to use if there is a list of cites, and what to print after.
So a barebones DeclareCiteCommand
would look like this:
DeclareCiteCommand{lawcite}
{}
{
printfield{title}
}
{}
{}
Beefing it up a bit with the biblatex built-in prenote
and postnode
bibmacros, for before and after, gives this:
DeclareCiteCommand{lawcite}
{usebibmacro{prenote}}
{
printfield{title}
}
{}
{usebibmacro{postnote}}
printfield
just prints the field according to whatever formatting instructions have been given to the field with DeclareFieldFormat
.
For the title
field formatting, we can use the ifkeyword
{condition}{true}{false} test to check if the bibentry currently being processed contains the keyword case
and conditionally print it with emphasis if it does (using mkbibemph
) and print it with quotes if it doesn't (using mkbibquote
).
DeclareFieldFormat
can also take an optional list of bibentry types to restrict the formatting to, so let's only change the title
format for article
:
DeclareFieldFormat[article]{title}{%
ifkeyword{case}%
{mkbibemph{#1}}%
{mkbibquote{#1}}%
}
Cycling through the workflow once more, we get:
Now to add the case reference to the cite: ifkeyword
comes in handy again, this time for printing the number
field (with comma and space in front).
DeclareCiteCommand{lawcite}
{usebibmacro{prenote}}
{
printfield{title}
ifkeyword{case}%
{addcommaaddspaceprintfield{number}}%
{}%
}
{}
{usebibmacro{postnote}}
We won't do any format changes to the number
field, just let it print in whatever the default format is.
Now, for ease of code maintenance, we can move code blocks that look like could be used in multiple places later into their own macros, called bibmacro
s (really, they are just a newcommand
with a wrapper).
Let's move the title
printing and the number
printing into bibmacros, call them gettitle
and getnumber
:
newbibmacro{gettitle}{%
printfield{title}%
}
newbibmacro{getnumber}{%
ifkeyword{case}%
{addcommaaddspaceprintfield{number}}%
{}%
}
and the cite command changes to
DeclareCiteCommand{lawcite}
{usebibmacro{prenote}}
{
usebibmacro{gettitle}
usebibmacro{getnumber}
}
{}
{usebibmacro{postnote}}
which, amongst other things, is clearer to read.
Now, the table of cases.
Two methods are available.
We can split the bibliography to print the cases separately, but then it won't show the page numbers the cases are referred to on (it is unlikely that a reader of a real-world 10-30 page article or essay would need the navigational aid of a table of cases, though).
The second method is to use an index, split it, and call it a table.
There are various packages and utilities available for this. Choosing randomly, let's use the splitidx
package in combination with the SplitIndex engine (a Perl script, I understand).
Activate the package with usepackage{splitidx}
, initiate index building with makeindex
, define a cases index title "Table of Cases" with newindex[Table of Cases]{cases}
, and we're ready to use the sindex
command to send entries to our split index.
But what do we want to do? We will index whenever a case is mentioned (=title
). Printing the title is the gettitle
bibmacro's job, so the action will happen there. It will have to decide if the entry is a case, and if it is, use the sindex
command to send the case name to the index.
Now, biblatex has access to the etoolbox
package, and from there we can use the ifboolexpr
command to build up a really complicated set of conditions if we wanted to, using and
and or
and brackets (rather than one or two (or three of four) nested if
s of different types). The structure is ifboolexpr
{condtions}{true}{false}, like this:
ifboolexpr{
test {ifkeyword{case}}
}
{true}%
{false}%
And because indexes don't understand biblatex code, we will send the raw data of the title
field to the cases index with:
sindex[cases]{thefield{title}}
The gettitle
bibmacro has now become:
newbibmacro{gettitle}{%
printfield{title}%
ifboolexpr{
test {ifkeyword{case}}
}
{sindex[cases]{thefield{title}}}%
{}%
}
Putting in the printindex[cases]
command and cycling through the worfklow, which has now expanded to latex-biber-latex-splitindex-latex, we get this:
The upright font is correct for indexes of cases, but the two-column format is a bit extravagant (and structurally distinct visually from the rest of the document) and the page-feed is unnecessary.
Applying an SE workaround to revert to one-column (and also not have a page feed)
%https://stackoverflow.com/questions/2389689/single-column-long-index-pages-in-latex
%Apr 2 '11 at 2:39
%Smiley
%for two columns > one column
%addedL remove clearpage
letoldtwocolumntwocolumn
renewcommand{twocolumn}[1][]{#1}
letoldclearpageclearpage
renewcommandclearpage{relax}
printindex[cases]
renewcommand{twocolumn}[1][]{oldtwocolumn}
renewcommandclearpage{oldclearpage}
we get this
Sidenote: because I like dots and square brackets, I'm feeding SplitIndex an index style file like this:
delim_0 "spacedotfillspace ["
delim_1 "spacedotfillspace ["
delim_2 "spacedotfillspace ["
delim_n "], ["
delim_r "--"
delim_t "]"
modified from the OSCOLA one (which does the dots).
Next on the journey, it might be nice to have the case reference in the index as well, especially now that it is wider and the whole line is available.
So the indexing command sindex
now gets given an extra bit, , thefield{number}
:
newbibmacro{gettitle}{%
printfield{title}%
ifboolexpr{
test {ifkeyword{case}}
}
{sindex[cases]{thefield{title}, thefield{number}}}%
{}%
}
Workflow cycle (again), and, result:
That's cases taken care of. What about legislation?
Put in a lawcite{stat1}
, cycle through, and we get:
Ooops. It's in the bibliography. And in the text it has quotes and no year.
Formatting of the legislation title without quotes is done with our old friend DeclareFieldFormat
and the legislation
keyword:
DeclareFieldFormat[article]{title}{%
ifkeyword{case}%
{mkbibemph{#1}}%
{%
ifkeyword{legislation}%
{#1}%
{mkbibquote{#1}}%
}%
}
Printing the legislation year can be done by adding
ifkeyword{legislation}%
{addspaceprintfield{year}}%
{}%
to the getnumber
bibmacro like this:
newbibmacro{getnumber}{%
ifkeyword{case}%
{addcommaaddspaceprintfield{number}}%
{%
ifkeyword{legislation}%
{addspaceprintfield{year}}%
{}%
}%
}
Perhaps getnumber
should be renamed? What it is actually doing is getting the second part of the citation block, which for legislation is, in this exercise, the year
field.
Indexing legislation (with title and year) is done in gettitle
with a nested test:
newbibmacro{gettitle}{%
printfield{title}%
ifboolexpr{
test {ifkeyword{case}}
}
{sindex[cases]{thefield{title}, thefield{number}}}%
{%
ifboolexpr{
test {ifkeyword{legislation}}
}
{sindex[cases]{thefield{title} thefield{year}}}%
{}%
}%
}
(Side remark: Astute readers will notice the typing error - I didn't, until later.)
And what do we want to print if a case is cited a second time? Legislation is OK, title and year; but what about a case?
Cycling through the workflow:
Oops. Too eager.
The bibliography can be cleaned of legislation with a notkeyword=legislation
added to the printbibliography
options.
The legislation was sent to the cases index, and there wasn't a printindex
command for it anyway. Easily fixed.
newbibmacro{gettitle}{%
printfield{title}%
ifboolexpr{
test {ifkeyword{case}}
}
{sindex[cases]{thefield{title}, thefield{number}}}%
{%
ifboolexpr{
test {ifkeyword{legislation}}
}
{sindex[legislation]{thefield{title} thefield{year}}}%
{}%
}%
}
and putting a printindex[legislation]
in the document.
Now, for second and subsequent citations, Biblatex has a ifciteseen
we can use (and Biblatex's citetracker
option must be turned on for this to work).
If it's the first time the entry has been cited, we want to print both data blocks (the "name and address" structure type); otherwise, just print the first one:
ifciteseen{}{usebibmacro{getnumber}}
The lawcite
cite command can have this task.
DeclareCiteCommand{lawcite}
{usebibmacro{prenote}}
{
usebibmacro{gettitle}
ifciteseen{}{usebibmacro{getnumber}}
}
{}
{usebibmacro{postnote}}
One last bit of tidy-up: the indexing code can go into its own bibmacro:
newbibmacro{sendtocaseindex}{%
ifboolexpr{
test {ifkeyword{case}}
}
{sindex[cases]{thefield{title}, thefield{number}}}%
{%
ifboolexpr{
test {ifkeyword{legislation}}
}
{sindex[legislation]{thefield{title} thefield{year}}}%
{}%
}%
}
so that gettitle
simplifies down to:
newbibmacro{gettitle}{%
printfield{title}%
usebibmacro{sendtocaseindex}%
}
Cycle workflow, and:
And so we end where we began.
===
That's the citation done.
Adding more and more logic in, tweaking and enhancing, will always continue (for example, the astute reader will be asking, "What happens to legislation cited a second time? Do we want to keep the year or not?"). More and more if-then-elses. And converting lawcite
to a footnote reference system (like the one that OSCOLA implements) would be straight-forward, code-wise. Putting in parallel reports would be a bit tricky, though, but maybe sets of biblatex literal lists could be used.
Using a four-part structure of case name, case reference, year as a separate and moveable item, and jursidiction would not be that hard, but the medium neutral citation (MNC) method - of year/court/casenumber-in-the-year - is simpler and more useful (a legal doi, in effect).
Aside from courts and judges not having a real requirement for bibliographies in their judgments, building a bibliography driver from scratch (why?) would be about the same amount of effort, with the added layer of real blocks of text and their arrangement to consider. There is large overlap with citations, hence the usefulness of bibmacros.
(Plus also: Biblatex can do mappings between sources, and dynamic redefinitions, and has various types of inheritance, which could be very powerful in a meta-metadata way.)
So overall, the major questions, the 'driver' questions if you will, are going to be the Librarians' Questions: What level of granularity should the bib data have? And: what classification methodology should be applied to it (e.g., what keywords, if the keyword method is used)? Everything else flows from that.
:) There is also the logically trivial (but probably most time-comsuning) component of: what should the metadata be? Is there an International Standard for Legal Citation Bibliographic Information Interchange (ISO-LCBII)?
If I had a bibentry like this one, stored under whatever bibentry type turns out to be suitable:
@article{jones,
partyfirst={Betty Lou JONES},%individual entity>last name as unit
partyfirstrole={appellant},
partysecond={CITY OF BIRMINGHAM},%corporate entity>full name as unit
partysecondrole={appellee},
casetype={appeal},
bench={Cates},
institution={Court of Appeals of Alabama},
hearingdates={April 22, 1969 and Rehearing Denied May 20, 1969},
decision={Appeal dismissed},
date={1969},
volume={224},
reportseriesname={Southern Reporter},
reportseriesabbrev={So},
reportseries={2},
page={922},
mnc={[1969] ALCA 420},
mncyear={1969},
mnccourt={ALCA},
mncnumber={420},
factslocation={The Blue Note Lounge},
factsdate={1967-12-03},
keywords={us, case},
}
of what use would it be?
Answered by Cicada on May 7, 2021
Completely different approach. (Not enough space in the other answer box to add it there.)
Keeping it simple, with the widest use and the least coding:
In terms of typesetting, a legal reference consists of an italic part and an upright part.
Using existing bibentry types and fields:
For the .bib
file:
Use the @jurisdiction
bibentry type. Store the italic part of the reference in the title=
field. Store the non-italic part of a case in the number=
field; and store the non-italic part (if any) of a statute in the location
field. Use keywords to act as filters if separate bibliographies or sub-bibliographies are needed.
In the preamble, after calling biblatex, define the field formats, and the citation command and bibliography driver (bibliographies are not really needed in legal work - meaning law essays and judgments -- but are quite common in non-legal fields; and where a Table of Cases will be too heavy-handed).
Since the legal item will appear in the same format in both the citation and the bibliography, one set of bibmacros can build up the formatting for both outputs.
Case will appear as: title number.
Statutes will appear as: title (location).
The citation command will be legal{}
.
Change as desired.
DeclareFieldFormat[jurisdiction]{title}{mkbibemph{#1}}
DeclareFieldFormat[jurisdiction]{number}{#1}
DeclareListFormat[jurisdiction]{location}{%
mkbibparens{#1%
ifthenelse{value{listcount}<value{liststop}}
{addcommaspace}
{}}}
newbibmacro{getlegaltitle}{%
printfield{title}%
}
newbibmacro{getlegalrefcase}{%
iffieldundef{number}{}{printfield{number}}%
}
newbibmacro{getlegalrefstat}{%
iflistundef{location}{}{printlist{location}}%
}
newbibmacro{getlegalref}{%
usebibmacro{getlegalrefstat}%
usebibmacro{getlegalrefcase}%
}
newbibmacro{getlegalfull}{%
usebibmacro{getlegaltitle}%
addspace%
usebibmacro{getlegalref}%
}
DeclareCiteCommand{legal}%
%@@@@@@@@@@@@@@@@ prenote
{usebibmacro{prenote}}%
%@@@@@@@@@@@@@@@@ item
{usebibmacro{getlegalfull}}%
%@@@@@@@@@@@@@@@@ delim
{multicitedelim}%
%@@@@@@@@@@@@@@@@ postnote
{usebibmacro{postnote}}
%
DeclareBibliographyDriver{jurisdiction}{%
usebibmacro{begentry}%
usebibmacro{getlegalfull}
usebibmacro{finentry}
}
%=================
Other citation commands, like parencite, footcite, titlecite etc commands, can be built up as desired: just plug in the relevant bibmacro, and if needed apply a formatter (like mkbibparens{}
or mkbibfootnote
, for example) as a wrapper.
As a shortcut, the wrapper command can be added to the citation command as an option, like so:
DeclareCiteCommand{legal}[mkbibfootnote]%
Full MWE
begin{filecontents*}{jobname.bib}
@jurisdiction{sc1,
title = {Kay v Foo Pty Ltd},
number = {[2020] XYZCA 92},
keywords={legal,case},
}
@jurisdiction{sc2,
title = {Elle v Emm},
number = {[2020] ABCCA 12},
keywords={legal,case},
}
@jurisdiction{st1,
title = {Planetary Building and Construction Industry Security of Payment Act 2999},
location = {OM},
keywords={legal,statute},
}
@jurisdiction{st2,
title = {Time Travel Capsules Building Act},
location = {2989, PX},
keywords={legal,statute},
}
end{filecontents*}
%===================================================
documentclass[12pt]{article}
newcommandrulesep{rule{0.4textwidth}{.4pt}}
usepackage{fontspec}
setmainfont{Noto Serif}
%------------------
newcommandabibname{ext-authortitle-ibid}
newcommandabibstyle{style=abibname}
usepackage[
abibstyle ,
indexing=cite,
citetracker=true,
ibidtracker=true,
pagetracker=true,
idemtracker=true,
opcittracker=true,
loccittracker=true,
autocite=footnote,
]{biblatex}
addbibresource{jobname.bib}
addbibresource{biblatex-examples.bib}
%============= legal
DeclareFieldFormat[jurisdiction]{title}{mkbibemph{#1}}
DeclareFieldFormat[jurisdiction]{number}{#1}
DeclareListFormat[jurisdiction]{location}{%
mkbibparens{#1%
ifthenelse{value{listcount}<value{liststop}}
{addcommaspace}
{}}}
newbibmacro{getlegaltitle}{%
printfield{title}%
}
newbibmacro{getlegalrefcase}{%
iffieldundef{number}{}{printfield{number}}%
}
newbibmacro{getlegalrefstat}{%
iflistundef{location}{}{printlist{location}}%
}
newbibmacro{getlegalref}{%
usebibmacro{getlegalrefstat}%
usebibmacro{getlegalrefcase}%
}
newbibmacro{getlegalfull}{%
usebibmacro{getlegaltitle}%
addspace%
usebibmacro{getlegalref}%
}
%DeclareCiteCommand{legal}[mkbibfootnote]%
DeclareCiteCommand{legal}%
%@@@@@@@@@@@@@@@@ prenote
{usebibmacro{prenote}}%
%@@@@@@@@@@@@@@@@ item
{usebibmacro{getlegalfull}}%
%@@@@@@@@@@@@@@@@ delim
{multicitedelim}%
%@@@@@@@@@@@@@@@@ postnote
{usebibmacro{postnote}}
%
DeclareBibliographyDriver{jurisdiction}{%
usebibmacro{begentry}%
usebibmacro{getlegalfull}
usebibmacro{finentry}
}
%=================
usepackage[
bookmarks,
colorlinks=true,
allcolors = black,
citecolor=blue,
hyperindex=false,
]{hyperref}
%------------------
begin{document}
Case and statute: legal{sc2,st1}. And with pinpoints: legal[s 4]{st2} and legal[at para 123]{sc1}.
Normal text with citations -- parencite{reese,kullback:related,aristotle:anima}.
printbibliography
Sorted into order by the authortitle style via the textit{name}, textit{title} fields.
bigskip
bigskip
hfill --oooOooo--hfill
end{document}
Answered by Cicada on May 7, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP