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