Multiple search criteria to find bibtex entries
Posted April 08, 2014 at 08:45 PM | categories: bibtex | tags:
I have been thinking about ways to search my bibtex file with multiple criteria. Eventually, I want a decent natural language search like "au=kitchin and alloy" to find papers authored by me about alloys. For now, I am going to settle with a way to find these. This strategy will create a search function that prints the entries that are found. Here is the prototype idea:
(defun my-search (key start end) (when (and (re-search-forward "kitchin" end t) (re-search-forward "alloy" end t)) (princ (format "%s\n" (buffer-substring start end))))) (with-temp-buffer (insert-file-contents "../../bibliography/references.bib") (bibtex-map-entries 'my-search))
@ARTICLE{inoglu-2011-ident-sulfur,
pdf = {[[file:bibtex-pdfs/inoglu-2011-ident-sulfur.pdf]]},
org-notes =
{[[file:~/Dropbox/bibliography/notes.org::inoglu-2011-ident-sulfur]]},
author = {Inoglu, Nilay and Kitchin, John R.},
title = {Identification of Sulfur-Tolerant Bimetallic
Surfaces Using {DFT} Parametrized Models and
Atomistic Thermodynamics},
journal = {ACS Catalysis},
year = 2011,
pages = {399--407},
abstract = {The identification of sulfur-tolerant alloys for
catalytic applications is difficult due to the
combinatorially large number of alloy compositions
and surface structures that may be
considered. Density functional theory calculations
(DFT) are not fast enough to enumerate all the
possible structures and their sulfur tolerance. In
this work, a DFT parametrized algebraic model that
accounts for structure and composition was used to
estimate the d-band properties and sulfur adsorption
energies of 370 transition metal-based bimetallic
alloy surfaces. The estimated properties were
validated by DFT calculations for 110 of the surface
structures. We then utilized an atomistic
thermodynamic framework that includes surface
segregation, the presence of adsorbates, and effects
of environmental conditions to identify alloy
compositions and structures with enhanced sulfur
tolerance that are likely to be stable under the
environmental conditions. As a case study, we show
how this database can be used to identify
sulfur-tolerant Cu-based catalysts and compare the
results with what is known about these catalysts
experimentally.},
doi = {10.1021/cs200039t},
issn = {null},
type = {Journal Article}
}
@ARTICLE{kitchin-2008-alloy,
pdf = {[[file:bibtex-pdfs/kitchin-2008-alloy.pdf]]},
org-notes =
{[[file:~/Dropbox/bibliography/notes.org::kitchin-2008-alloy]]},
author = {Kitchin, J. R. and Reuter, K. and Scheffler, M.},
title = {Alloy surface segregation in reactive environments:
First-principles atomistic thermodynamics study of
\ce{Ag_3Pd}(111) in oxygen atmospheres},
journal = {Physical Review B},
year = 2008,
volume = 77,
number = 7,
abstract = {We present a first-principles atomistic
thermodynamics framework to describe the structure,
composition, and segregation profile of an alloy
surface in contact with a (reactive)
environment. The method is illustrated with the
application to a Ag3Pd(111) surface in an oxygen
atmosphere, and we analyze trends in segregation,
adsorption, and surface free energies. We observe a
wide range of oxygen adsorption energies on the
various alloy surface configurations, including
binding that is stronger than on a Pd(111) surface
and weaker than that on a Ag(111) surface. This and
the consideration of even small amounts of
nonstoichiometries in the ordered bulk alloy are
found to be crucial to accurately model the Pd
surface segregation occurring in increasingly O-rich
gas phases.},
doi = {https://doi.org/10.1103/PhysRevB.77.075437},
pages = 075437,
issn = {1098-0121},
type = {Journal Article}
}
@ARTICLE{tierney-2009-hydrog-dissoc,
pdf = {[[file:bibtex-pdfs/tierney-2009-hydrog-dissoc.pdf]]},
org-notes =
{[[file:~/Dropbox/bibliography/notes.org::tierney-2009-hydrog-dissoc]]},
author = {Tierney, H. L. and Baber, A. E. and Kitchin,
J. R. and Sykes, E. C. H.},
title = {Hydrogen Dissociation and Spillover on Individual
Isolated Palladium Atoms},
journal = {Physical Review Letters},
year = 2009,
volume = 103,
number = 24,
abstract = {Using a combination of low-temperature scanning
tunneling microscopy and density functional theory
it is demonstrated how the nature of an inert host
metal of an alloy can affect the thermodynamics and
kinetics of a reaction pathway in a much more
profound way than simply a dilution, electronic, or
geometric effect. This study reveals that
individual, isolated Pd atoms can promote H-2
dissociation and spillover onto a Cu(111) surface,
but that the same mechanism is not observed for an
identical array of Pd atoms in Au(111).},
pages = 246102,
doi = {10.1103/PhysRevLett.103.246102},
issn = {0031-9007},
url = {http://prl.aps.org/abstract/PRL/v103/i24/e246102},
type = {Journal Article}
}
That is not too bad. If I had a parser like this one , I could do some reasonable searches. I could try integrating it with reftex or something similar for selecting citations. I would like that a lot.
What if I wanted to find articles with Kitchin as an author, and alloy in the title? This is my best effort at doing that, where I explicitly match the fields in the bibtex entries.
(find-file "~/Dropbox/bibliography/references.bib") (bibtex-map-entries (lambda (bibtex-key start end) (let* ((entry (bibtex-parse-entry)) (title (cdr (assoc "title" entry))) (authors (cdr (assoc "author" entry)))) (when (and title (string-match "alloy" title) authors (string-match "kitchin" authors)) (princ (buffer-substring start end)))))))
@ARTICLE{kitchin-2008-alloy,
pdf = {[[file:bibtex-pdfs/kitchin-2008-alloy.pdf]]},
org-notes =
{[[file:~/Dropbox/bibliography/notes.org::kitchin-2008-alloy]]},
author = {Kitchin, J. R. and Reuter, K. and Scheffler, M.},
title = {Alloy surface segregation in reactive environments:
First-principles atomistic thermodynamics study of
\ce{Ag_3Pd}(111) in oxygen atmospheres},
journal = {Physical Review B},
year = 2008,
volume = 77,
number = 7,
abstract = {We present a first-principles atomistic
thermodynamics framework to describe the structure,
composition, and segregation profile of an alloy
surface in contact with a (reactive)
environment. The method is illustrated with the
application to a Ag3Pd(111) surface in an oxygen
atmosphere, and we analyze trends in segregation,
adsorption, and surface free energies. We observe a
wide range of oxygen adsorption energies on the
various alloy surface configurations, including
binding that is stronger than on a Pd(111) surface
and weaker than that on a Ag(111) surface. This and
the consideration of even small amounts of
nonstoichiometries in the ordered bulk alloy are
found to be crucial to accurately model the Pd
surface segregation occurring in increasingly O-rich
gas phases.},
doi = {https://doi.org/10.1103/PhysRevB.77.075437},
pages = 075437,
issn = {1098-0121},
type = {Journal Article}
}
This is a more precise search, which yields only one entry. That is not exactly nimble searching, but it does provide precision. I need to think about this some more.
Copyright (C) 2014 by John Kitchin. See the License for information about copying.
Org-mode version = 8.2.5h