'L' stands for 'Livre' ('Book' in English) 'C' stands for 'Chapitre' ('Chapter' in English) 'V' stands for 'Verset' ('Verse' in English)
Here are the different Bible reference types with an example following each one:
# Explicit Bible Reference Types LCVLCV Ge 1:1-Ex 1:1 LCVCV Ge 1:1-2:1 LCCV Ge 1-2:5 LCVV Ge 1:2-5 LCV Ge 1:1 LCC Ge 1-12 LC Ge 1 # Implicit Bible Reference Types CVCV 1:1-2:1 CCV 1-2:5 CVV 1:2-5 CV 1:1 CC 1-12 C 1 VV 1-5 V 1
We say the Bible reference is explicit when it has enough information within the reference to identify an exact location within the Bible.
Examples of explicit Bible references include:
Genesis 1:1 Ge 1:1 Ge 1 Genesis 1
An explicit reference must have a book and a chapter but not necessarily a verse.
We say that a Bible reference is implicit when the reference itself does not contain enough information to find its location in the Bible. often times within a commentary we will find implicit Bible references that use the context of the text to identify the Bible reference.
Examples of implicit Bible references include:
in Chapter 4 in verse 17 see 4:17 as we see in chapter 5 (4:7)
An implicit preference must be proceeded by some identifying phrase or character(s), referred to as the context word(s). Context words allow these Bible reference objects to identify and distinguish him between Bible references and other numbers that might be in the text of the commentary.
In the examples above the context words are respectively:
'in Chapter' 'in verse' 'see' 'as we see in chapter' '('
When a Bible reference is parsed it is divided up into a number of different parts as follows:
First of all, a Bible reference can have an interval. Both sides of the interval, '-' can have a book, chapter and verse. For example, 'Genesis 1:1 - Revelation 22:21', 'Ge 1:1-2:3', and 'Ge 1:1-5' are all verses with intervals.
key: A key is a unique numeric identifier which is defined in the configuration file for a particular book of the Bible. For example, Genesis is often defined as '1'. any alternative spellings and abbreviations will also map to this number. So for example, if the configuration file defines the book of Genesis with French spellings like this:
books: 1: Match: Book: ['Genèse', 'Genese'] Abbreviation: ['Ge'] Normalized: Book: Genèse Abbreviation: Ge Then 'Genèse', 'Genese', 'Ge' would all map to a key value of '1'.
c : this is the chapter in the beginning part of the reference. For example, for 'Genesis 11', c is '11' for 'Genesis 1-11', c is '1' for 'Romans 3:23', c is '3'
v : this is the verse in the beginning part of the reference. For example, for 'John 14:6', v is '6'. for 'John 3:16', v is '16'. for 'Psalm 23:1-3', v is '1'
cvs : Chapter And Verse Separator In most English Bibles this character is a ':'. Often in Europe the '.' character is used as a separator. For example,
'Ephesians 2:8', cvs is ':' 'Actes 1.8', cvs is '.'
cvs2 : Chapter And Verse Separator for the interval part of the Bible reference In most English Bibles this character is a ':'. Often in Europe the '.' character is used as a separator. For example,
'Ephesians 2:8-3:10', cvs is ':' 'Actes 1.8-2.1', cvs is '.'
dash : the interval operator. In most English Bibles this character is simply a '-'. However in many European Bibles a long dash is used if the interval separates two chapters, and a normal dash is used if the interval is between two verses.
'Genesis 1:1 - Revelation 22:21', dash is '-'.
key2 : The same as key except used when this Bible verse has an interval. So for example, if the configuration file defines the book of Genesis with French spellings like this:
books: 1: Match: Book: ['Genèse', 'Genese'] Abbreviation: ['Ge'] Normalized: Book: Genèse Abbreviation: Ge 66: Match: Book: ['Revelation'] Abbreviation: ['Re', 'Rev'] Normalized: Book: Revelation Abbreviation: Re for example, for 'Genesis 1:1 - Revelation 22:21', key2 is '66'.
c2 : The same as c except this is the chapter when this Bible verse has an interval.
For example,
'Genesis 1:1 - Revelation 22:21', c2 is '22'.
v2 : The same as v except this is the verse when this Bible verse has an interval.
'Genesis 1:1 - Revelation 22:21', v2 is '21'.
The various parts of the Bible verse may have spaces, (ascii 32), or non-breakable spaces, (ascii 160), between them.
Here they are defined as s2, s3, s4, s5, s6, s7, s8 and s9. There are no spaces defined before or after a Bible verse, which is why s1 and s10 are no longer present.
Spaces are defined like this on a LCVLCV reference.
L(s2)C(s3):(s4)V(s5)-(s6)L2(s7)C2(s8):(s9)V2 s2 : between L and C s3 : between C and the CVS s4 : between CVS and V s5 : between V and the dash s6 : between the dash and L2 s7 : between L2 and C2 s8 : between C2 and CVS2 s9 : between CVS2 and V2
Creates a new Religion::Bible::Regex::Reference. Requires two parameters a Religion::Bible::Regex::Config object and a Religion::Bible::Regex::Regex object
Returns the Religion::Bible::Regex::Config object used by this reference.
Returns the Religion::Bible::Regex::Builder object used by this reference.
Returns the hash that contains all of the parts of the current Bible reference.
An alias for get_reference_hash
Returns true if all the information is there to reference an exact verse or verses in the Bible.
Takes a hash and uses it to define a Bible reference.
For example, this hash defines the LCVLCV reference, Ge 1:1-Ex 2:5. {b=>'Ge',s2=>' ',c=>'1',cvs=>':',v=>'1', dash=>'-',b2=>'Ex',s7=>' ',c2=>'2',v2=>'5'}
This function takes a book or an abbreviation as defined under the Match sections in the configurations file and sets the key. Use this function because when you're parsing a Bible reference this function this function will be able to set the correct book whether you pass it an abbreviation or a book name based upon the possible defined spellings of each.
For example given the configuration:
books: 1: Match: Book: ['Genèse', 'Genese'] Abbreviation: ['Ge'] Normalized: Book: Genèse Abbreviation: Ge set_b('Ge'), set_b('Genèse') and set_b('Genese') all set the key to '1'
This function sets the chapter for a Bible reference.
This function sets the verse for a Bible reference.
The same as set_b except used on the interval section of a Bible reference. This function takes a book or an abbreviation as defined under the Match sections in the configurations file and sets the key2.
Sets the chapter for the interval part of the Bible reference.
Sets the verse for the interval part of the Bible reference.
Sets CVS for the interval part of the Bible reference.
Sets the CVS for the interval part of the Bible reference.
Sets the DASH for the Bible reference.
Sets s2
Sets s3
Sets s4
Sets s5
Sets s6
Sets s7
Sets s8
Sets s9
Returns key
Returns c
Returns v
Returns key2
Returns c2
Returns v2
Returns the cvs for a reference.
Returns the dash for a reference.
Returns the original book or abbreviation
Returns the original book or abbreviation for the intervale part of the reference
Returns the original chapter
Returns the original chapter for the intervale part of the reference
Returns the original verse
Returns the original verse for the intervale part of the reference
Returns s2
Returns s3
Returns s4
Returns s5
Returns s6
Returns s7
Returns s8
Returns s9
Returns the canonical book defined by the key
Returns the canonical book defined by the key for the intervale part of the reference.
Returns the normalize abbreviation for a reference.
Returns the normalize abbreviation for a reference for the intervale part of the reference.
Returns the chapter as a number. Usually this is the same as the getter $self->c except when $self->c is a roman number.
Returns the chapter as a number for the intervale part of the reference. Usually this is the same as the getter $self->c2 except when $self->c2 is a roman number.
Returns the context words. context words or phrases that begin an implicit biblical reference. For example, 'in the chapter', or 'see verses'.
This function follows the following rules to return a chapter for separator:
If a chapter and a verse are defined and the configuration file defines a character to use for the CVS then return it. Otherwise returns the CVS character that was parsed from the original reference. otherwise return ':'
If the chapter and verse are not defined then return a null string.
If any part of the interval part of the Bible verse is defined then return the dash character defined in the configuration file. Otherwise returns the dash character that was parsed from the original reference. otherwise return '-'
If The current reference has no interval and then return a null string.
Returns the verse as a number. Usually this is the same as the getter $self->v except when $self->v is a roman number.
Returns the verse as a number for the intervale part of the reference. Usually this is the same as the getter $self->v2 except when $self->v2 is a roman number.
Given any of the abbreviations defined under the match section of a reference in the configuration file, then returned its normalized book name.
Given any of the abbreviations defined under the match section of a reference in the configuration file, then returned its key.
Given any of the book names defined under the match section of a reference in the configuration file, then returned its normalized abbreviation.
Given any of the book names defined under the match section of a reference in the configuration file, then returned its key.
Given the key of a reference defined under the match section in the configuration file, then returned its normalize abbreviation.
Given the key of a reference defined under the match section in the configuration file, then returned its normalize book name.
If this reference is implicit then this function returns 'NONE'. For example, the reference 'see verse 5:1' returns a book_type of 'NONE'.
If the original reference that was parsed contained an abbreviation for a book of the Bible then this returns 'ABBREVIATION'. For example, the reference 'Ro 12:16' returns a book_type of 'ABBREVIATION'.
If the original reference that was parsed contained a book name then this returns 'CANONICAL_NAME'. For example, the reference 'Ephesians 4:32' returns a book_type of 'CANONICAL_NAME'.
This function checks to see if the originally parsed reference was of type 'CANONICAL_NAME' or 'ABBREVIATION' and then returns the corresponding normalized book name or abbreviation for book.
This function checks to see if the originally parsed reference was of type 'CANONICAL_NAME' or 'ABBREVIATION' and then returns the corresponding normalized book name or abbreviation for book2.
Given two references, this function returns -1 if the first reference is before the second reference, 0 if the references are identical, and 1 if the first reference is after the second.
For example, given this configuration file:
books: 1: Match: Book: ['Genèse', 'Genese'] Abbreviation: ['Ge'] Normalized: Book: Genèse Abbreviation: Ge 66: Match: Book: ['Revelation'] Abbreviation: ['Re', 'Rev'] Normalized: Book: Revelation Abbreviation: Re
and these references
$ref1->parse('Genesis 1:1'); $ref2->parse('Revelation 22:21'); $ref1->compare($ref2);
This function first compares their keys, which are respectively '1' and '66'. Since 1 < 66, compare returns '-1' which means the first reference is before the second reference.
Given two references, this function returns nil if the first reference is after the second reference, and 1 if the first reference is before or identical to the second reference.
$ref1->parse('Genesis 1:1'); $ref2->parse('Revelation 22:21'); $ref1->gt($ref2);
This function first compares their keys, which are respectively '1' and '66'. Since 1 < 66, gt returns nil which means the first reference is not after the second reference.
Given two references, this function returns '1' if the first reference is before the second reference, and nil if the first reference is after or identical to the second reference.
$ref1->parse('Genesis 1:1'); $ref2->parse('Revelation 22:21'); $ref1->lt($ref2);
This function first compares their keys, which are respectively '1' and '66'. Since 1 < 66, gt returns '1' which means the first reference is before the second reference.
Given two references this function returns one reference which is the interval of the two. The interval reference always sorts the two references.
$ref1->parse('Genesis 1:1'); $ref2->parse('Revelation 22:21'); $ref3 = $ref1->interval($ref2); print $ref3->normalize; # Returns 'Genesis 1:1 - Revelation 22:21' # If we reverse the order of the references note the output is correctly ordered with 'Genesis' before 'Revelation' $ref1->parse('Revelation 22:21'); $ref2->parse('Genesis 1:1'); $ref3 = $ref1->interval($ref2); print $ref3->normalize; # Returns 'Genesis 1:1 - Revelation 22:21'
Given an array of references, this function returns the reference that is before all others.
For example assuming the configuration file defines the book used below,
$ref1->parse('Galatians 5:13'); $ref2->parse('Colossians 3:16'); $ref3->parse('1 Thessalonians 5:11'); $ref4->parse('James 5:16'); # $min is set to 'Galatians 5:13' $min = $ref1->min($ref2, $ref3, $ref4);
Given an array of references, this function returns the reference that is after all others.
$ref1->parse('Galatians 5:13'); $ref2->parse('Colossians 3:16'); $ref3->parse('1 Thessalonians 5:11'); $ref4->parse('James 5:16'); # $max is set to 'James 5:16' $max = $ref1->max($ref2, $ref3, $ref4);
Returns '1' if a reference has an inteval component otherwise returns nil.
$ref1->parse('1 Peter 3:7-8')->has_interval; # returns '1' $ref2->parse('1 Peter 4:9')->has_interval; # returns nil
Given a reference with an interval, this function returns the beginning part of the reference.
$ref2 = $ref1->parse('Matthew 5:3-11')->begin_interval_reference; print $ref2->normalize; # Prints 'Matthew 5:3' $ref2 = $ref1->parse('Matthew 16-17')->begin_interval_reference; print $ref2->normalize; # Prints 'Matthew 16'
Given a reference with an interval, this function returns the interval part of the reference.
$ref2 = $ref1->parse('Matthew 5:3-11')->end_interval_reference; print $ref2->normalize; # Prints 'Matthew 5:11' $ref2 = $ref1->parse('Matthew 16-17')->end_interval_reference; print $ref2->normalize; # Prints 'Matthew 17'
This functions combines two references using the context of the first reference to complete the second. This is useful when parsing references from commentaries or text.
For example:
If you are using the Religion::Bible::Regex::Lexer to parse a string like :
'Luke 23:26, 28'
There are two references found 'Luke 23:26' and '28'.
The combine function allows the you to combine 'Luke 23:26' and '28' to produce the reference 'Luke 23:28'.
So the key and chapter of 'Luke 23:26' are transfered to 'Luke 23:28'.
In general, if the second verse is implicit this function takes enough information from the first to make it an explicit reference.
Prints the Bible reference in a standardized way.
First, the context words and book/abbreviation are printed. This is then followed by a space and then the chapter, cvs and verse. If there is an interval part then it's printed next.
For example: John 3:16 Ge 1:1 =head2 n =head2 bol =head2 shared_state =head2 state =head2 context =head2 context_is_book =head2 context_is_chapitre =head2 context_is_verset =head2 context_words
Requires a hash of values to initalize the Bible reference. Optional argument a previous reference which can provide context for initializing a reference =head2 state_is_verset Returns true if the current the state is VERSE =head2 state_is_chapitre Returns true if the current the state is CHAPTER =head2 state_is_book Returns true if the current the state is BOOK =head2 parse =head2 parse_chapitre =head2 parse_verset =head2 parse_context_words =head2 set_context_words =head1 DIAGNOSTICS =for author to fill in: List every single error and warning message that the module can generate (even the ones that will "never happen"), with a full explanation of each problem, one or more likely causes, and any suggested remedies. =over =item C<< Error message here, perhaps with %s placeholders >>
[Description of error here]
=item C<< Another error message here >>
[Et cetera, et cetera]
=back =head1 CONFIGURATION AND ENVIRONMENT =for author to fill in: A full explanation of any configuration system(s) used by the module, including the names and locations of any configuration files, and the meaning of any environment variables or properties that can be set. These descriptions must also include details of any configuration language used. Religion::Bible::Regex::Reference requires no configuration files or environment variables. =head1 DEPENDENCIES =over 4 =item * Religion::Bible::Regex::Config =item * Religion::Bible::Regex::Builder =back =head1 INCOMPATIBILITIES =for author to fill in: A list of any modules that this module cannot be used in conjunction with. This may be due to name conflicts in the interface, or competition for system or program resources, or due to internal limitations of Perl (for example, many modules that use source code filters are mutually incompatible). None reported. =head1 BUGS AND LIMITATIONS =for author to fill in: A list of known problems with the module, together with some indication Whether they are likely to be fixed in an upcoming release. Also a list of restrictions on the features the module does provide: data types that cannot be handled, performance issues and the circumstances in which they may arise, practical limitations on the size of data sets, special cases that are not (yet) handled, etc. No bugs have been reported. Please report any bugs or feature requests to C<bug-religion-bible-regex-reference@rt.cpan.org>, or through the web interface at L<http://rt.cpan.org>. =head1 AUTHOR Daniel Holmlund C<< <holmlund.dev@gmail.com> >> =head1 LICENCE AND COPYRIGHT Copyright (c) 2009, Daniel Holmlund C<< <holmlund.dev@gmail.com> >>. All rights reserved. This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See L<perlartistic>.
1 POD Error
The following errors were encountered while parsing the POD:
Non-ASCII character seen before =encoding in '['Genèse','. Assuming UTF-8
To install Religion::Bible::Regex::Reference, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Religion::Bible::Regex::Reference
CPAN shell
perl -MCPAN -e shell install Religion::Bible::Regex::Reference
For more information on module installation, please visit the detailed CPAN module installation guide.