Discussion:
[NTG-context] Issues using publications subsystem for non-bibliographic database
Rik Kabel
2018-12-07 04:00:57 UTC
Permalink
List,

I am trying to use the publications subsystem to support a
non-bibliographic database, as chapter 10 of mkiv-publications suggests
one can. My example is a database of quotations.

I have been partially successful, which is another way of saying there
are some issues I have not been able to resolve.

First, what goes into a specification lua file (I think that is what the
document suggests I need) that says my author field should be handled as
a bibliographic author field? There is some processing: {Schopenhauer,
Arthur} gets displayed as ArthurSchopenhauer (with no space). Specifying
an authorconversion in \setupbtx has no effect, so it looks like I have
to do something else.

Second, how can I link one entry to another. The example shows my
almost-working attempt, adding a linking key (translation in the
example) and recursively using it in processing. This fails, but when I
use the literal equivalent, it works. (And the recursion does not seem
to be the problem.) I know that this description is not clear, but the
example should demonstrate the issue.

Finally, the document loses all data from the quotation database when
\placebtxrendering for that database is omitted.

I apologize for the larger-than-usual example size.

%{[(

\startbuffer[quotesources]
@book{Schopenhauer1862v2,
title = {Parerga und Paralipomena},
subtitle = {Kleine Philosophische Schriften},
publisher = {A. W. Hahn},
year = {1862},
volume = {2},
volumes = {2},
author = {Arthur Schopenhauer},
editor = {Julius FrauenstÀdt},
address = {Berlin},
language = {german},
}
@book{SchopenhauerPayne2000,
title = {Parerga and Paralipomena},
subtitle = {Short Philosophical Essays},
publisher = {Oxford University Press Clarendon Press},
address = {New York and Oxford},
year = {2000},
author = {Arthur Schopenhauer},
volumes = {2},
origyear = {1974},
origlanguage= {german},
translator = {Eric F. J. Payne},
}
\stopbuffer

\startbuffer[quotedatabase]
@quote{qSchopA02,
extract = {Es wÀre gut BÌcher kaufen, wenn man die Zeit, sie zu
lesen, mitkaufen könnte, aber man verweschelt meistens
den Ankauf der BÃŒcher mit dem Aneignen ihres Inhalts.},
author = {Schopenhauer, Arthur},
born = {1788},
died = {1860},
work = {\cite[title][sources::Schopenhauer1862v2]},
year = {1862},
location = {chapter\btxnbsp24},
translation = {\cite[tag][qPayneE01]},
attribnote = {The selection was inserted posthumously into the work,
probably based on notes Schopenhauer left, by Julius
FrauenstÀdt, his literary executor, and has appeared
in different locations in various editions.},
}
@quote{qPayneE01,
extract = {Buying books would be a good thing if one could also
buy the time to read them in: but as a rule the
purchase of books is mistaken for the appropriation
of their contents.},
author = {Eric F. J. Payne},
born = {1895},
died = {1983},
year = {1974/2000},
work = {\cite[title][sources::SchopenhauerPayne2000]},
page = {559},
}
\stopbuffer

\loadbtxdefinitionfile
[apa]
\usebtxdefinitions
[apa]
\usebtxdataset
[sources]
[quotesources.buffer]
\definebtxrendering
[sources]
[apa]
[group=bib,
dataset=sources]
\setupbtx
[sources]
[specification=apa,
dataset=sources]

\usebtxdataset
[quotedb]
[quotedatabase.buffer]
\definebtxrendering
[quotedb]
[group=quotes,
sorttype=cite,
numbering=no,
dataset=quotedb]
\setupbtx
[specification=quotedb,
authorconversion=normalshort,
dataset=quotedb]

\startsetups btx:quotedb:cite:attribnote
{\rm\btxfield{attribnote}}
\stopsetups
\startsetups btx:quotedb:cite:born
{\rm\btxfield{born}}
\stopsetups
\startsetups btx:quotedb:cite:died
{\rm\btxfield{died}}
\stopsetups
\startsetups btx:quotedb:cite:location
{\rm\btxfield{location}}
\stopsetups
\startsetups btx:quotedb:cite:page
{\rm\btxfield{page}}
\stopsetups
\startsetups btx:quotedb:cite:work
{\rm\btxfield{work}}
\stopsetups
\startsetups btx:quotedb:cite:extract
{\rm\btxfield{extract}}
\stopsetups
\startsetups btx:quotedb:cite:title
{\rm\it\btxfield{title}}
\stopsetups

\startsetups btx:quotedb:list:quote
\limitatetext{\btxfield{extract}}{\textwidth}{\unknown}
\blank[none]
-\btxspace\btxflush{author}
\btxcomma\btxfield{year}
\stopsetups

\starttexdefinition Quotation #QUOTE
\startnarrower
\blank[halfline]
\startparagraph
\cite[extract][#QUOTE]
\stopparagraph
\startparagraph\noindentation
\blank[halfline]
\dontleavehmode\llap{– }\cite[author][#QUOTE]
\btxspace \doifnotempty{\cite[born][#QUOTE]}
{(\cite[born][#QUOTE]|–|\doiftext{\cite[died][#QUOTE]}
{\cite[died][#QUOTE]})}
\btxspace in \cite[work][#QUOTE]
\doiftextelse{\cite[page][#QUOTE]}
{\btxcomma p\btxperiod\btxnbsp\cite[page][#QUOTE]}
{\doiftext{\cite[location][#QUOTE]}
{\btxcomma \cite[location][#QUOTE]}}
\btxcomma \cite[year][#QUOTE]
\btxperiod
\cite[attribnote][#QUOTE]
\doiftext{\cite[translation][#QUOTE]}
{\btxspace A translation is:}
\stopparagraph
\doiftext{\cite[translation][#QUOTE]}
{\stopnarrower
%%----------------------------------------------------------------------
%% When this form is used, the compilation fails.
%
% \Quotation{\cite[translation][#QUOTE]}
%
%% When this form is used, the compilation works, but of course, this
%% form is not what is wanted.
%
\Quotation{qPayneE01}
%
%%----------------------------------------------------------------------
\startnarrower
}
\blank[3*halfline]
\stopnarrower
\stoptexdefinition

\starttext

\Quotation{qSchopA02}

%%----------------------------------------------------------------------
%% When this form is used, the compilation fails as well, so it isn't
%% the recursion that is the problem.
%
% \Quotation{\cite[translation][qSchopA02]}
%
%%----------------------------------------------------------------------

\hrule\blank

%%----------------------------------------------------------------------
%% When \placebtxrendering for the quotation database is removed,
%% none of the text from the database is printed, even though the
%% dataset completeness shows the data
%
\placebtxrendering [quotedb][method=dataset]
%
%%----------------------------------------------------------------------

\hrule\blank

\placebtxrendering [sources][method=dataset]

\page

\showbtxdatasetcompleteness[dataset=quotedb]

\page

\showbtxdatasetcompleteness[dataset=sources,specification=apa]

\stoptext
%)]}
--
Rik
Rik Kabel
2018-12-07 22:19:35 UTC
Permalink
List,

As a followup, here is a close-to-minimal example which demonstrates the
failure when \placebtxrendering is omitted.

When run as given, the extract field content is not displayed. When the
commented line is uncommented, the result includes the content.

\startbuffer[quotedatabase]
@quote{qSchopA02,
extract = {Es wÀre gut BÌcher kaufen, wenn man die Zeit, sie zu
lesen, mitkaufen könnte, aber man verweschelt meistens
den Ankauf der BÃŒcher mit dem Aneignen ihres Inhalts.},
author = {Schopenhauer, Arthur},
}
\stopbuffer
\usebtxdataset
[quotedb]
[quotedatabase.buffer]
\definebtxrendering
[quotedb]
[dataset=quotedb]
\setupbtx
[dataset=quotedb]

\starttext

Extract:\par
\cite[extract][qSchopA02]

Rendering:\par
% \placebtxrendering [quotedb][method=dataset]

Completeness:\par
\showbtxdatasetcompleteness[dataset=quotedb]
\stoptext

The log does not indicate any issues.

Is this expected? Is \placebtxrendering required?
--
Rik
Alan Braslau
2018-12-07 23:01:12 UTC
Permalink
On Fri, 7 Dec 2018 17:19:35 -0500
Post by Rik Kabel
As a followup, here is a close-to-minimal example which demonstrates the
failure when \placebtxrendering is omitted.
It is not a failure. The whole intent is to place an appropriate rendering that you can tailor to your specific needs. There is little sense in a cross-reference (link) or reference number if there is not sort of list.

Alan
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-***@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://context.aanhet.net
archive : https://bitbucket.org/phg/context-mirror/commits/
wiki : http://contextgarden.net
_________________________________________________________________________
Rik Kabel
2018-12-08 03:36:02 UTC
Permalink
Post by Alan Braslau
On Fri, 7 Dec 2018 17:19:35 -0500
Post by Rik Kabel
As a followup, here is a close-to-minimal example which demonstrates the
failure when \placebtxrendering is omitted.
It is not a failure. The whole intent is to place an appropriate rendering that you can tailor to your specific needs. There is little sense in a cross-reference (link) or reference number if there is not sort of list.
Alan
That makes absolutely no sense. That means that an informal paper that
puts all references in footnotes and has no bibliography and does not
need cross-referencing or reference numbering cannot take advantage of a
bibliographic database. And in fact, that is the case shown below. The
footnotes appear only when the comment line is uncommented.

(I also tried \nocite[*] together with \placebtxrendering[method=none]
and also with \placebtxrendering[criterium=none] for the rendering, but
that does not help. It seems that the entries only display when
something gets added to the rendering list.)

\startbuffer[quotesources]
@book{Schopenhauer1862v2,
title = {Parerga und Paralipomena},
subtitle = {Kleine Philosophische Schriften},
publisher = {A. W. Hahn},
year = {1862},
volume = {2},
volumes = {2},
author = {Arthur Schopenhauer},
editor = {Julius FrauenstÀdt},
address = {Berlin},
language = {german},
}
@book{SchopenhauerPayne2000,
title = {Parerga and Paralipomena},
subtitle = {Short Philosophical Essays},
publisher = {Oxford University Press Clarendon Press},
address = {New York and Oxford},
year = {2000},
author = {Arthur Schopenhauer},
volumes = {2},
origyear = {1974},
origlanguage= {german},
translator = {Eric F. J. Payne},
}
\stopbuffer

\loadbtxdefinitionfile
[apa]
\usebtxdefinitions
[apa]
\usebtxdataset
[quotesources.buffer]

\starttext

As Artie said:\footnote{\placecitation[Schopenhauer1862v2]}

Es wÀre gut BÌcher kaufen, wenn man die Zeit, sie zu
lesen, mitkaufen könnte, aber man verweschelt meistens
den Ankauf der BÃŒcher mit dem Aneignen ihres Inhalts.

Payne translates this as:\footnote{\cite[entry][SchopenhauerPayne2000]}

Buying books would be a good thing if one could also
buy the time to read them in: but as a rule the
purchase of books is mistaken for the appropriation
of their contents.

% \placebtxrendering [method=dataset]
\stoptext

I understood §5.4 of the manual to mean that rendering definitions
(created by \definebtxrendering and related setups) do not have an
effect on \placecitation (and \cite[field][tag]) commands. Rereading it,
I wonder if the meaning is supposed to be more than that, and to cover
this situation?

Surely this can be changed!
--
Rik
Alan Braslau
2018-12-08 03:51:47 UTC
Permalink
You can place references rendered as you need, not necessarily in one
single bibliography list, but they must be rendered somewhere,
otherwise numbering and cross-referencing is meaningless. In the case
of footnote references, each footnote contains a rendering (not a
citation) of a fragment of the list.

You are thinking too much in a standard frame, and I'm not sure what
you want to accomplish.

One "other use" case that I make is a catalog of hundreds of
mesophases. I "cite" them and their various properties throughout the
text, an my "list rendering" has become an index.

Alan


On Fri, 7 Dec 2018 22:36:02 -0500
Post by Rik Kabel
Post by Alan Braslau
On Fri, 7 Dec 2018 17:19:35 -0500
Post by Rik Kabel
As a followup, here is a close-to-minimal example which
demonstrates the failure when \placebtxrendering is omitted.
It is not a failure. The whole intent is to place an appropriate
rendering that you can tailor to your specific needs. There is
little sense in a cross-reference (link) or reference number if
there is not sort of list.
Alan
That makes absolutely no sense. That means that an informal paper
that puts all references in footnotes and has no bibliography and
does not need cross-referencing or reference numbering cannot take
advantage of a bibliographic database. And in fact, that is the case
shown below. The footnotes appear only when the comment line is
uncommented.
(I also tried \nocite[*] together with
\placebtxrendering[method=none] and also with
\placebtxrendering[criterium=none] for the rendering, but that does
not help. It seems that the entries only display when something gets
added to the rendering list.)
\startbuffer[quotesources]
@book{Schopenhauer1862v2,
title = {Parerga und Paralipomena},
subtitle = {Kleine Philosophische Schriften},
publisher = {A. W. Hahn},
year = {1862},
volume = {2},
volumes = {2},
author = {Arthur Schopenhauer},
editor = {Julius Frauenstädt},
address = {Berlin},
language = {german},
}
@book{SchopenhauerPayne2000,
title = {Parerga and Paralipomena},
subtitle = {Short Philosophical Essays},
publisher = {Oxford University Press Clarendon Press},
address = {New York and Oxford},
year = {2000},
author = {Arthur Schopenhauer},
volumes = {2},
origyear = {1974},
origlanguage= {german},
translator = {Eric F. J. Payne},
}
\stopbuffer
\loadbtxdefinitionfile
[apa]
\usebtxdefinitions
[apa]
\usebtxdataset
[quotesources.buffer]
\starttext
As Artie said:\footnote{\placecitation[Schopenhauer1862v2]}
Es wäre gut Bücher kaufen, wenn man die Zeit, sie zu
lesen, mitkaufen könnte, aber man verweschelt meistens
den Ankauf der Bücher mit dem Aneignen ihres Inhalts.
Payne translates this
as:\footnote{\cite[entry][SchopenhauerPayne2000]}
Buying books would be a good thing if one could also
buy the time to read them in: but as a rule the
purchase of books is mistaken for the appropriation
of their contents.
% \placebtxrendering [method=dataset]
\stoptext
I understood §5.4 of the manual to mean that rendering definitions
(created by \definebtxrendering and related setups) do not have an
effect on \placecitation (and \cite[field][tag]) commands. Rereading
it, I wonder if the meaning is supposed to be more than that, and to
cover this situation?
Surely this can be changed!
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-***@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://context.aanhet.net
archive : https://bitbucket.org/phg/context-mirror/commits/
wiki : http://contextgarden.net
____________________________________________________________________________
Rik Kabel
2018-12-08 04:34:58 UTC
Permalink
Post by Alan Braslau
You can place references rendered as you need, not necessarily in one
single bibliography list, but they must be rendered somewhere,
otherwise numbering and cross-referencing is meaningless. In the case
of footnote references, each footnote contains a rendering (not a
citation) of a fragment of the list.
You are thinking too much in a standard frame, and I'm not sure what
you want to accomplish.
One "other use" case that I make is a catalog of hundreds of
mesophases. I "cite" them and their various properties throughout the
text, an my "list rendering" has become an index.
Alan
I would like simply to prepare a paper structured like the one found at
https://tannerlectures.utah.edu/Greenblatt%20Lecture.pdf. There is no
biblography; there are bibliographic references in footnotes. There is
no interaction. The only cross-references are the footnote indices.

If I could in addition pull in blocks of text from a secondary database,
that is lagniappe. Neither function requires rendering in a separate
list or lists.

Certainly ConTeXt's bibliographic subsystem should be capable of
supporting such a basic format as that, but I can see no way to get it
to do so.
--
Rik

___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-***@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://context.aanhet.net
archive : https://bitbucket.org/phg/context-mirror/commits/
wiki : http://contextgarden.net
___________________________________________
Alan Braslau
2018-12-08 05:03:43 UTC
Permalink
On Fri, 7 Dec 2018 23:34:58 -0500
Post by Rik Kabel
Post by Alan Braslau
You can place references rendered as you need, not necessarily in
one single bibliography list, but they must be rendered somewhere,
otherwise numbering and cross-referencing is meaningless. In the
case of footnote references, each footnote contains a rendering
(not a citation) of a fragment of the list.
You are thinking too much in a standard frame, and I'm not sure what
you want to accomplish.
One "other use" case that I make is a catalog of hundreds of
mesophases. I "cite" them and their various properties throughout
the text, an my "list rendering" has become an index.
Alan
I would like simply to prepare a paper structured like the one found
at https://tannerlectures.utah.edu/Greenblatt%20Lecture.pdf. There is
no biblography; there are bibliographic references in footnotes.
There is no interaction. The only cross-references are the footnote
indices.
If I could in addition pull in blocks of text from a secondary
database, that is lagniappe. Neither function requires rendering in a
separate list or lists.
Certainly ConTeXt's bibliographic subsystem should be capable of
supporting such a basic format as that, but I can see no way to get
it to do so.
As I wrote, "rendering" to footnotes as elements of a "list" can be
done, and your cross-reference *is* the footnote index. We have not
written setups that do this already as I have never needed this format
myself, although it is rather common in certain fields.

"Pulling-in" blocks of text in general (without a basis) is not the aim.
Again, the entire point is to associate fields to an entry, and the
notion of a "list" is more general than a traditional bibliography list.
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-***@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://context.aanhet.net
archive : https://bitbucket.org/phg/context-mirror/commits/
wiki : http://contextgarden.net
______________________________________________________________
Rik Kabel
2018-12-08 17:43:34 UTC
Permalink
Post by Alan Braslau
As I wrote, "rendering" to footnotes as elements of a "list" can be
done, and your cross-reference *is* the footnote index. We have not
written setups that do this already as I have never needed this format
myself, although it is rather common in certain fields. "Pulling-in"
blocks of text in general (without a basis) is not the aim. Again, the
entire point is to associate fields to an entry, and the notion of a
"list" is more general than a traditional bibliography list.
Well, you have my vote for moving it up the priority list. I would
request that the implementation allow additional text beyond the
rendered entry, as demonstrated in the cited example document, in the
footnote (or endnote, or marginnote).

As you note, it is a common requirement in some fields. It is also quite
useful in earlier stages of larger projects where it is important to
document sources (for circulation copies) but one is not ready to tackle
the design and generation of more formal backmatter.
--
Rik

___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-***@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://context.aanhet.net
archive : https://bitbucket.org/phg/context-mirror/commits/
wiki : http://contextgarden.net
___________________________________________________________________
Alan Braslau
2018-12-08 19:50:09 UTC
Permalink
On Sat, 8 Dec 2018 12:43:34 -0500
Post by Rik Kabel
It is also quite
useful in earlier stages of larger projects where it is important to
document sources (for circulation copies) but one is not ready to tackle
the design and generation of more formal backmatter.
In my incremental development, I place a bibliography at the end of a chapter, part, or even section - there is no need for this to be backmatter. Using modes, these then can remain or not be rendered as design advances.

Again, what is the point of pulling references if they do not refer to anything? In the Latex/bibtex workflow, the list is generated by bibtex, and this can, and does, lead to de-synchronization in a partial development process as you describe. Here, the list is generated and exists in lua, and we take great pains to insure that it remains synchronized.

Alan
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-***@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://context.aanhet.net
archive : https://bitbucket.org/phg/context-mirror/commits/
wiki : http://contextgarden.net
_____________________________________________________________________
Thomas A. Schmitz
2018-12-08 20:11:17 UTC
Permalink
Post by Alan Braslau
In my incremental development, I place a bibliography at the end of a chapter, part, or even section - there is no need for this to be backmatter. Using modes, these then can remain or not be rendered as design advances.
I've been following this thread somewhat distractedly... From a
systematic point of view, Alan is of course right: a reference should
refer to something, which is normally a list. However, I find myself in
situations where I want a reference, but this list should not be
included in the document. Example: you distribute a bibliographical list
on your handout and want your slides to display the numeric reference,
but not the list itself. So I wonder if one possible solution would be
to provide the possibility to have the list calculated but not typeset
(hidden). In a naive way, I tried something like

\hbox to width 0cm{\placelistofpublications}

but that doesn't work. But I'm sure this should be easily doable? As for
something like full citation information in the footnote, with
crossreference (something like "above, n. XXX"): the format seems
obsolete, I agree, but at least in the humanities, it is still often
used and would be very handy to have.

All best

Thomas
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-***@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://context.aanhet.net
archive : https://bitbucket.org/phg/context-mirror/commits/
wiki : http://contextgarden.net
______________________________________________
Alan Braslau
2018-12-08 20:30:45 UTC
Permalink
On Sat, 8 Dec 2018 21:11:17 +0100
Post by Thomas A. Schmitz
I find myself in
situations where I want a reference, but this list should not be
included in the document. Example: you distribute a bibliographical list
on your handout and want your slides to display the numeric reference,
but not the list itself.
I used to think like Rik is suggesting, and had long debates with Hans (with Mojca contributing) about preparing drafts... Typesetting a single chapter (of a thesis, for example) led to problems of references. The solution, of course, as I wrote is to use partial bibliographies and modes.

In the case of slides + handout, I always typeset them together as one "document" which I then split, as a sort of body and back matter. There likely is a better way.

Finally, footnote style references is indeed obsolete, or becoming obsolete, yet they are still very much used in many disciplines. It's just a question of time getting to implement this (and Hans quite often, rightfully, criticizes my *abuse* of footnotes in general, not simply due to their typesetting complication and interference with an *abuse* of floats).

Alan
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-***@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://context.aanhet.net
archive : https://bitbucket.org/phg/context-mirror/commits/
wiki : http://contextgarden.net
___________________________________________________________

Rik Kabel
2018-12-08 20:11:32 UTC
Permalink
Post by Alan Braslau
On Sat, 8 Dec 2018 12:43:34 -0500
Post by Rik Kabel
It is also quite
useful in earlier stages of larger projects where it is important to
document sources (for circulation copies) but one is not ready to tackle
the design and generation of more formal backmatter.
In my incremental development, I place a bibliography at the end of a chapter, part, or even section - there is no need for this to be backmatter. Using modes, these then can remain or not be rendered as design advances.
Again, what is the point of pulling references if they do not refer to anything? In the Latex/bibtex workflow, the list is generated by bibtex, and this can, and does, lead to de-synchronization in a partial development process as you describe. Here, the list is generated and exists in lua, and we take great pains to insure that it remains synchronized.
Alan
The purpose is to reduce entry effort, prevent simple errors, ensure
consistency across instances in the same and additional documents, and
encourage reuse.

Or are you suggesting that a document like the paper I cited does not
benefit from a bibliographic support subsystem?
--
Rik

___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-***@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://context.aanhet.net
archive : https://bitbucket.org/phg/context-mirror/commits/
wiki : http://contextgarden.net
____________________________________________________________________
Loading...