LDSGospelSearch

LDSGospelSearch lets you specify a search/predicate tree to search verses or chapters of scriptures from the library of Gospel Library.

LDSGospelSearch is a free .net 4.7.2 console app that does advanced searching of the scriptures from the Gospel Library library. In the future I may write a GUI (Graphical User Interface) of this if there is enough demand for it. Also if there is enough demand I will write a paid version to search the whole library from Gospel Library, while always having a free version to search the scriptures.

I understand that console apps are not the easiest for everyone to use. I have included two script files that will run the settings in the Config.config file along with the search/predicate tree in Predicate.config and saves the output to Scriptures.txt. You can edit Predicate.config and Config.config from notepad.exe or your favorite xml editor.

download LDSGospelSearch.Console 1.0.1.27609

By default LDSGospelSearch uses the library from Gospel Library. But if you specify a source it will use that copy to do the searching instead.

The Map feature is to map unicode charactors to strings. In the included Config.config I included the six I have found helpful. This transformation happens before any searching from the predicates is done.

After a match is found, and you want to change the title some, say “Doctrine and Covenants” to “D&C”, you can accomplish that by using the Renames feature.

The Capitalizes feature lets you specify words or phrases you want to be in all caps.

Predicates:

  • Regex: Takes one <Pattern> node which consists of .net Regex Pattern. And an optional <Options> node which lets you specify the RegexOptions to use. I recommend using IgnoreCase for <Options>. For the <Pattern> node you can simply put in words or phares you are looking for or add more advanced features like \b which used to designate word boundaries.
  • Index: Takes one <Text> node, which is the text it will be looking for. And an optional <Comparision> node whichlets you specify the StringComparison to use. I recommend using CurrentCultureIgnoreCase for the <Comparision> node.
  • And: Performs a logical And of one or more nested <Predicate> nodes.
  • Or: Performs a logical Or of one or more nested <Predicate> nodes.
  • Not: Performs a logical Not on one nested <Predicate> node.
  • Xor: Performs a logical Xor on two nested <Predicate> nodes.
  • Count: Counts the number of one or more nested <Predicate> nodes that evaluates to true. And then compares that count to one or more <Compare> nodes, which is then Anded. Meaning if you want this node to return true all the <Compare> tests need to return true. Inside the <Compare> node you need to specify the type of compare and then the number the count is compared to. Here are the types of comparing you can perform:
    • EQ, eq or == which stands for Equals
    • NE, ne or != which stands for Not Equal
    • LT, lt or < which stands for Less Than
    • LE, le or <= which stands for Less Than or Equals
    • GT, gt or > which stands for Greater Than
    • GE, ge or >= which stands for Greater than or Equals

LDSGospelSearch will not search the summaries for each chapter. It does search the introductions that were translated from the gold plates for the Book of Mormon.

These are the “scriptures” that program will not search.

  • Songs of Solomon
  • D&C 129
  • D&C 130
  • D&C 131
  • D&C 132
  • D&C 135
  • D&C 136
  • D&C 138
  • OD 1
  • OD 2

Here are the languages that Gospel Library supports as of 2019-05-15:

Native Code
English eng
Español spa
American Sign Language ase
Ndee biyáti’ apw
Aymar Aru aym
Kaqchikel cak
Niwaklé cag
Avañe’ẽ grn
Kreyòl Ayisyen hat
Q’eqchi’ kek
Dulegaya cuk
Qyol Mam mam
Màaya T’àan yua
Diné bizaad nav
Papiamentu pap
Português por
Kechua (Buliwya) quh
Qhichwa simi (Piruw) quz
K’iche’ quc
Kichwa (Ikwayur) qvi
Bats’i k’op tzo
Tz’utujiil tzj
Shqip alb
اللغة العربية ara
Dansk dan
български bul
Català cat
Hrvatski hrv
Nederlands nld
Čeština ces
Eesti est
Suomi fin
ქართული kat
Ελληνικά ell
Magyar hun
Français fra
Қазақ тілі kaz
Deutsch deu
Latviešu lav
Lietuvių lit
Македонски mkd
Malti mlt
Italiano ita
Polski pol
Norsk nor
Română ron
Русский rus
Slovenčina slk
Slovenščina slv
Svenska swe
Türkçe tur
Íslenska isl
Українська ukr
Cymraeg cym
Հայերեն hye
Српски srp
Português (Portugal) ept
မြန်မာဘာသာ mya
ភាសាខ្មែរ khm
繁體中文 zho
简体中文 zhs
廣東話 yue
官話 cmn
हिन्दी hin
Hmoob hmn
Fiji Hindi hif
Bahasa Indonesia ind
日本語 jpn
한국어 kor
ພາສາລາວ lao
Bahasa Melayu msa
Монгол mon
नेपाली nep
فارسی pes
සිංහල sin
தமிழ் tam
తెలుగు tel
ภาษาไทย tha
اُردُو urd
Tiếng Việt vie
Afrikaans afr
Fante fat
Twi twi
ኣማርኛ amh
Efik efi
Igbo ibo
Kamba kam
EkeGusii guz
Lingála lin
Malagasy mlg
Ikinyarwanda kin
Shona sna
Sesotho sot
Kiswahili swa
Tshiluba lua
Setswana tsn
IsiXhosa xho
Èdè Yorùbá yor
IsiZulu zul
Bikol bik
Bislama bis
Cebuano ceb
Chamoru cha
Vosa vakaviti fij
Kiribati gil
Hiligaynon hil
Ilokano ilo
Kahs Kosrae kos
Te Reo Māori mri
Kajin M̧ajeļ mah
Tok Pisin tpi
Niuē niu
Palauan pau
Pampango pam
Pangasinan pag
Mahsen en Pohnpei pon
Māori Kūki ’Āirani rar
Gagana Samoa smo
Tagalog tgl
Reo Tahiti tah
Faka-tonga ton
Fosun Chuuk chk
Waray war
Thin Nu Wa’ab yap