Briefing Document: Python Parsing and Geocoding Tools

Briefing Document: Address Parsing and Geocoding Tools

This briefing document summarizes the main themes and important ideas from the provided sources, focusing on techniques and tools for address parsing, standardization, validation, and geocoding.

Main Themes:

  • The Complexity of Address Data: Addresses are unstructured and prone to variations, abbreviations, misspellings, and inconsistencies, making accurate processing challenging.
  • Need for Robust Parsing and Matching: Effective address management requires tools capable of breaking down addresses into components, standardizing formats, and matching records despite minor discrepancies.
  • Availability of Specialized Libraries: Several open-source and commercial libraries exist in various programming languages to address these challenges. These libraries employ different techniques, from rule-based parsing to statistical NLP and fuzzy matching.
  • Geocoding for Spatial Analysis: Converting addresses to geographic coordinates (latitude and longitude) enables location-based services, spatial analysis, and mapping.
  • Importance of Data Quality: Accurate address processing is crucial for various applications, including logistics, customer relationship management, and data analysis.

Key Ideas and Facts from the Sources:

1. Fuzzy Logic for Address Matching (Placekey):

  • Damerau-Levenshtein Distance: This method extends standard string distance calculations by including the operation of transposition of adjacent characters, allowing for more accurate matching that accounts for common typing errors.
  • “The Damerau-Levenshtein distance goes a step further, enabling another operation for data matching: transposition of two adjacent characters. This allows for even more flexibility in data matching, as it can help account for input errors.”
  • Customizable Comparisons: Matching can be tailored by specifying various comparison factors and setting thresholds to define acceptable results.
  • “As you can see, you can specify your comparison based on a number of factors. You can use this to customize it to the task you are trying to perform, as well as refine your search for addresses in a number of generic ways. Set up thresholds yourself to define what results are returned.”
  • Blocking: To improve efficiency and accuracy, comparisons can be restricted to records that share certain criteria, such as the same region (city or state), especially useful for deduplication.
  • “You can also refine your comparisons using blockers, ensuring that for a match to occur, certain criteria has to match. For example, if you are trying to deduplicate addresses, you want to restrict your comparisons to addresses within the same region, such as a city or state.”

2. Geocoding using Google Sheets Script (Reddit):

  • A user shared a Google Apps Script function (convertAddressToCoordinates()) that utilizes the Google Maps Geocoding API to convert addresses in a spreadsheet to latitude, longitude, and formatted address.
  • The script iterates through a specified range of addresses in a Google Sheet, geocodes them, and outputs the coordinates and formatted address into new columns.
  • The user sought information on where to run the script and the daily lookup quota for the Google Maps Geocoding API.
  • This highlights a practical, albeit potentially limited by quotas, approach to geocoding a moderate number of addresses.

3. Address Parsing with Libpostal (Geoapify & GitHub):

  • Libpostal: This is a C library focused on parsing and normalizing street addresses globally, leveraging statistical NLP and open geo data.
  • “libpostal is a C library for parsing/normalizing street addresses around the world using statistical NLP and open data. The goal of this project is to understand location-based strings in every language, everywhere.” (GitHub)
  • Multi-Language Support: Libpostal supports address parsing and normalization in over 60 languages.
  • Language Bindings: Bindings are available for various programming languages, including Python, Go, Ruby, Java, and NodeJS.
  • “The core library is written in pure C. Language bindings for Python, Ruby, Go, Java, PHP, and NodeJS are officially supported and it’s easy to write bindings in other languages.” (GitHub)
  • Open Source: Libpostal is open source and distributed under the MIT license.
  • Functionality: It can parse addresses into components like road, house number, postcode, city, state district, and country.
  • Example Output:
  • {
  •   “road” : “franz-rennefeld-weg”,
  •   “house_number” : “8”,
  •   “postcode” : “40472”,
  •   “city” : “düsseldorf”
  • }
  • Normalization: Libpostal can normalize address formats and expand abbreviations.
  • Example: “Quatre-vingt-douze Ave des Champs-Élysées” can be expanded to “quatre-vingt-douze avenue des champs élysées”. (GitHub)
  • Alternative Data Model (Senzing): An alternative data model from Senzing Inc. provides improved parsing for US, UK, and Singapore addresses, including better handling of US rural routes. (GitHub)
  • Installation: Instructions are provided for installing the C library on various operating systems, including Linux, macOS, and Windows (using Msys2). (GitHub)
  • Parser Training Data: Libpostal’s parser is trained on a large dataset of tagged addresses from various sources like OpenStreetMap and OpenAddresses. (GitHub)

4. Python Style Guide (PEP 8):

  • While not directly about address processing, PEP 8 provides crucial guidelines for writing clean and consistent Python code, which is relevant when using Python libraries for address manipulation.
  • Key recommendations include:
  • Indentation: Use 4 spaces per indentation level.
  • Maximum Line Length: Limit lines to 79 characters (72 for docstrings and comments).
  • Imports: Organize imports into standard library, third-party, and local application/library imports, with blank lines separating groups. Use absolute imports generally.
  • Naming Conventions: Follow consistent naming styles for variables, functions, classes, and constants (e.g., lowercase with underscores for functions and variables, CamelCase for classes, uppercase with underscores for constants).
  • Whitespace: Use appropriate whitespace around operators, after commas, and in other syntactic elements for readability.
  • Comments: Write clear and up-to-date comments, using block comments for larger explanations and inline comments sparingly.
  • Adhering to PEP 8 enhances code readability and maintainability when working with address processing libraries in Python.

5. Google Maps Address Validation API Client (Python):

  • Google provides a Python client library for its Address Validation API.
  • Installation: The library can be installed using pip within a Python virtual environment.
  • python3 -m venv <your-env>
  • source <your-env>/bin/activate
  • pip install google-maps-addressvalidation
  • Prerequisites: Using the API requires a Google Cloud Platform project with billing enabled and the Address Validation API activated. Authentication setup is also necessary.
  • Supported Python Versions: The client library supports Python 3.7 and later.
  • Concurrency: The client is thread-safe and recommends creating client instances after os.fork() in multiprocessing scenarios.
  • The API and its client library offer a way to programmatically validate and standardize addresses using Google’s data and services.

6. GeoPy Library for Geocoding (Python):

  • GeoPy: This Python library provides geocoding services for various providers (e.g., Nominatim, GoogleV3, Bing) and allows calculating distances between geographic points.
  • Supported Python Versions: GeoPy is tested against various CPython versions (3.7 to 3.12) and PyPy3.
  • Geocoders: It supports a wide range of geocoding services, each with its own configuration and potential rate limits.
  • Examples include Nominatim, GoogleV3, HERE, MapBox, OpenCage, and many others.
  • Specifying Parameters: The functools.partial() function can be used to set common parameters (e.g., language, user agent) for geocoding requests.
  • from functools import partial
  • from geopy.geocoders import Nominatim
  • geolocator = Nominatim(user_agent=”specify_your_app_name_here”)
  • geocode = partial(geolocator.geocode, language=”es”)
  • Rate Limiting: GeoPy includes a RateLimiter utility to manage API call frequency and avoid exceeding provider limits.
  • from geopy.extra.rate_limiter import RateLimiter
  • geocode = RateLimiter(geolocator.geocode, min_delay_seconds=1)
  • Pandas Integration: GeoPy can be easily integrated with the Pandas library to geocode addresses stored in DataFrames.
  • df[‘location’] = df[‘name’].apply(geocode)
  • Distance Calculation: The geopy.distance module allows calculating distances between points using different methods (e.g., geodesic, great-circle) and units.
  • from geopy import distance
  • newport_ri = (41.49008, -71.312796)
  • cleveland_oh = (41.499498, -81.695391)
  • print(distance.distance(newport_ri, cleveland_oh).miles)
  • Point Class: GeoPy provides a Point class to represent geographic coordinates with latitude, longitude, and optional altitude, offering various formatting options.

7. usaddress Library for US Address Parsing (Python & GitHub):

  • usaddress: This Python library is specifically designed for parsing unstructured United States address strings into their components.
  • “🇺🇸 a python library for parsing unstructured United States address strings into address components” (GitHub)
  • Parsing and Tagging: It offers two main methods:
  • parse(): Splits the address string into components and labels each one.
  • Example: usaddress.parse(‘123 Main St. Suite 100 Chicago, IL’) would output [(u’123′, ‘AddressNumber’), (u’Main’, ‘StreetName’), (u’St.’, ‘StreetNamePostType’), (u’Suite’, ‘OccupancyType’), (u’100′, ‘OccupancyIdentifier’), (u’Chicago,’, ‘PlaceName’), (u’IL’, ‘StateName’)]
  • tag(): Attempts to be smarter by merging consecutive components, stripping commas, and returning an ordered dictionary of labeled components along with an address type.
  • Example: usaddress.tag(‘123 Main St. Suite 100 Chicago, IL’) would output (OrderedDict([(‘AddressNumber’, u’123′), (‘StreetName’, u’Main’), (‘StreetNamePostType’, u’St.’), (‘OccupancyType’, u’Suite’), (‘OccupancyIdentifier’, u’100′), (‘PlaceName’, u’Chicago’), (‘StateName’, u’IL’)]), ‘Street Address’)
  • Installation: It can be installed using pip install usaddress.
  • Open Source: Released under the MIT License.
  • Extensibility: Users can add new training data to improve the parser’s accuracy on specific address patterns.

Conclusion:

The provided sources highlight a range of tools and techniques for handling address data. From fuzzy matching algorithms that account for typographical errors to specialized libraries for parsing and geocoding, developers have access to sophisticated solutions. The choice of tool depends on the specific requirements, such as the geographic scope of the addresses, the need for parsing vs. geocoding, the volume of data, and the programming language being used. Furthermore, adhering to coding style guides like PEP 8 is essential for maintaining clean and effective code when implementing these solutions in Python.

2024 my health journey, weight loss 155 lbs and unexpected issues

Author Ira Warren Whiteside- IInformation  Sherpa 

Unexpected impact on  nerves of massive  weight  loss and some surprises

I believe, that  these were mostly caused by me following a state keto and a color for three years I am going with a neurologist

I want to inform you. I am not a doctor or the medical advice. This is what I have received on my own and only my story. in my my foot job increased my left arm became withdrawn, my voice message and my right hurt. These are all results of a massive weight loss over for years in my written article I will provide it the study that back this again this is my story. I did have a stroke in 2014 I mean very heavy over 300 pounds. I have lost that weight. I am now 175

Here I for me in my journey for way better health and weight loss.

Personal  Nerve Shin and FoofDrop

Ulnar Nervre  elbow Arm contracted

phrenic nerve 2024 my health journey, weight loss 155 lbs and unexpected issues

Author Ira Warren Whiteside- IInformation  Sherpa 

Unexpected impact on  nerves of massive  weight  loss and some surprises

I believe, that  these were mostly caused by me following a state keto and a color for three years I am going with a neurologist

I want to inform you. I am not a doctor or the medical advice. This is what I have received on my own and only my story. in my my foot job increased my left arm became withdrawn, my voice message and my right hurt. These are all results of a massive weight loss over for years in my written article I will provide it the study that back this again this is my story. I did have a stroke in 2014 I mean very heavy over 300 pounds. I have lost that weight. I am now 175

Here I for me in my journey for way better health and weight loss.

Personal  Nerve Shin and FoofDrop

Ulnar Nervre  elbow Arm contracted

phrenic nerve shoulder no pain

Slurred  .speech nutritional neuropathy

Hi glucose  glucose sparing

At this point I am this condition. Will heal overtime in a more. Nutritional  day.

 For the last time, this is my story I hope this helps shoulder no pain

Slurred  .speech nutritional neuropathy

Hi glucose  glucose sparing

At this point I am this condition. Will heal overtime in a more. Nutritional  day.

 For the last time, this is my story I hope this helps 

COMMON THEMES BETWEEN  THE BIBLE, WW2 , DOGE. Bible WWII and DOGE The Goverment Common Themes Bible WWII and DOGE Common Themes

The metaphor from the Bible to borrow from Peter to pay Paul is the basis of DOGE  ( Department of Government Expense) winning World War II unlike in times past  we can process the growing number  transactions and dispersing of money lightning speed with computers

The Genesis of computers includes work  in London to decipher German messages in the 1940s

In this effort, we matced letters here we matched the dollar amounts or totals we can find  them and find the match that’s called forensic auditing mini younger folks grew up with this technology

They e just need to feed it the transactions and it works on his own   They do not look at personal private information only amounts The mathematics   Are  centuries old only the speed that they  process has changed They may have to read the data several times, but eventually they’ll find the match. That’s why it takes more energy. You do not have to be a math. Genius just use currently available tools you cannot hide your child of transactions. Obviously, all  transactions can be traced This is not rocket science It is based on centuries  old logic. 

What I have learned on my health journey.

What I have learned on my health journey.

Ira Warren Whiteside

I weighed 300 pounds four years ago  I am now 174 pounds definitely help me understand what message I need and what I don’t first inform of, I am no order, diabetic or insulin resisten are several other issues that have been resolved  The bottom line is you should not have seed oils /vegetable oils

First, I corrected what I eat no see seen oil and no added sugar

Also, no alcohol. Ever

I went too far. I tried carnivore for a year.

I went down to 155 that was too low and I lost it too fast my buddy now after four years it’s going through a reset. 

I am getting in healthier , but I believe I caused myself Slimmers Palsy rare nerve damage similar but different to a stroke and it will resolve with proper nutrition hy

However, I feel much better and I have no brain fog

This will resolve after sometime I know have a normal  weight and no other issues Healthy I am 69

I’m in the making

Im in the making
Ira Warren Whiteside
Im 69
I’m a strokes victim
I have lost over 100 pounds
I’m not living in my past
I’m not thinking about my future
I’m in the now
I’ve come to know Carol widow
I’m a Ism in the making
Ira Warren Whiteside
Im 69
I’m a strokes victim
I have lost over 100 pounds
I’m not living in my past
I’m not thinking about my future
I’m in the now
I’ve come to know Carol
I’m a widow
My wife of 56 years passed away 4 years ago
The marriage vows contain the line “Till death do us part”
Carol and I have shared our thoughts and feelings
Over time we have climbed into our love
We have bonded
I say climbed not fell
Our love was made not just found
It was no accident
Ours was intentional
We havre obtained a peace
CD and love that we did not have before
To quote Carol “I’m an in the making”
We are engaged
My wife of 50 years passed away 4 years ago
The marriage contain the line “Till death do us part”
Carol and I have shared our thoughts and feelings
Over time we have climbed into our love
We have bonded
I say climbed not fell
It was no accident
Ours was intentional
We havre obtained a peace
CD and love that we did not have before
To quote Carol “I’m an in the making”
We are engaged

Ira “ Carols Beloved”

AI Data Preparation – Entity Resolution and Field Categorization

Briefing Doc: AI Data Preparation – Entity Resolution and Field Categorization

Source: Ira Warren Whiteside, Information Sherpa (Pasted Text Excerpts)

Main Theme: This source outlines a practical, step-by-step approach to AI data preparation, focusing on entity resolution and data field categorization. It leverages both traditional techniques and advanced AI-powered methods.

Key Ideas and Facts:

  1. Data Profiling is Essential: The process begins with comprehensive profiling of all data sources, including value frequency analysis for each column. This step provides a foundational understanding of the data landscape.
  2. Match Candidate Selection: Identifying columns or fields relevant for matching is crucial. The source mentions using available code to assist with this task, hinting at potential automation possibilities.
  3. Fuzzy Matching as a Foundation: “Fuzzy matching” is employed to identify potential matches between records across different sources. This technique accommodates variations in data entry, spelling errors, and other inconsistencies.
  4. Combining for Unique Identification: The results of fuzzy matching are combined to identify unique entities. This suggests a multi-step process where initial matches are refined to achieve higher accuracy.
  5. AI-Powered Enhancements (Optional): The source proposes optional AI-driven steps to enhance entity resolution:
  • LLM & Embeddings: Loading Large Language Models (LLMs) and embeddings allows for more sophisticated semantic understanding and comparison of data entities.
  • Similarity Search: Utilizing AI to identify “nearest neighbors” based on similarity can further refine entity matching, especially for complex or ambiguous cases.
  • Contextual Categorization: AI can be used to categorize data fields and entities based on context, leading to more meaningful and accurate analysis.
  1. Contextual Data Quality (DQ) Reporting: The process emphasizes generating contextual DQ reports, leveraging AI to provide insights into data quality issues related to entity resolution and categorization.
  2. SQL Integration for Scalability: The final step involves generating SQL code via AI to load the context file. This suggests a focus on integrating these processes into existing data pipelines and databases.
  3. Comparative Analysis: The source highlights the importance of comparing results achieved through fuzzy matching versus AI-driven approaches. This allows for an evaluation of the benefits and potential trade-offs of each method.

Key Takeaway: The source advocates for a hybrid approach to AI data preparation, combining traditional techniques like fuzzy matching with advanced AI capabilities. This blend aims to achieve higher accuracy, scalability, and actionable insights in the context of entity resolution and data field categorization.

Video

AI Data Preparation FAQ

1. What is the purpose of AI data preparation?

AI data preparation involves cleaning, transforming, and organizing data to make it suitable for use in machine learning models. This process ensures that the data is accurate, consistent, and relevant, which is crucial for training effective AI models.

2. What are the key steps involved in AI data preparation?

Key steps include:

  • Profiling data sources: Analyzing each data column for value frequency and data types.
  • Identifying match candidates: Selecting columns/fields for matching across different sources.
  • Fuzzy matching: Using algorithms to identify similar records even with minor discrepancies.
  • Entity resolution: Combining matched records to uniquely identify entities.
  • Optional steps: Utilizing Large Language Models (LLMs) and embeddings for enhanced similarity matching and categorization.
  • Context and Data Quality (DQ) reporting: Generating reports on data quality and context for informed decision-making.

3. How does fuzzy matching help in AI data preparation?

Fuzzy matching algorithms identify similar records even if they contain spelling errors, variations in formatting, or other minor discrepancies. This is particularly useful when merging data from multiple sources where inconsistencies are likely.

4. What is the role of Large Language Models (LLMs) in AI data preparation?

LLMs can be employed for:

  • Enhanced similarity matching: Leveraging their language understanding capabilities to identify semantically similar records.
  • Categorization: Automatically classifying data into relevant categories based on context.

5. What is the significance of context in AI data preparation?

Understanding the context of data is crucial for accurate interpretation and analysis. Contextual information helps in resolving ambiguities, identifying relevant data points, and ensuring the reliability of insights derived from the data.

6. How does AI data preparation impact data quality?

AI data preparation significantly improves data quality by:

  • Identifying and correcting errors: Removing inconsistencies and inaccuracies.
  • Enhancing data completeness: Filling in missing values and merging data from multiple sources.
  • Improving data consistency: Ensuring uniformity in data formatting and representation.

7. What are the benefits of using AI for data preparation?

  • Increased efficiency: Automating tasks like data cleaning and transformation, freeing up human resources.
  • Improved accuracy: Reducing human error and improving data quality.
  • Enhanced scalability: Handling large volumes of data efficiently.

8. How does AI data preparation contribute to the effectiveness of AI models?

Well-prepared data provides a solid foundation for training accurate and reliable AI models. By ensuring data quality, consistency, and relevance, AI data preparation enables models to learn effectively and generate meaningful insights.

NotebookLM Sample

The Text

2024 my health journey, weight loss 155 lbs 

Author Ira Warren Whiteside- IInformation  Sherpa 

Unexpected impact on  nerves of massive  weight  loss and some surprises

I believe, that  these were mostly caused by me following a state keto and a color for three years I am going with a neurologist

I want to inform you. I am not a doctor or the medical advice. This is what I have received on my own and only my story. in my my foot job increased my left arm became withdrawn, my voice message and my right hurt. These are all results of a massive weight loss over for years in my written article I will provide it the study that back this again this is my story. I did have a stroke in 2014 I mean very heavy over 300 pounds. I have lost that weight. I am now 175

Here I die nurse that were in bed for me in my journey for way better health and weight loss.

Personal  Nerve Shin and Foof Drop

Ulnar Nervre  elbow Arm contracted

phrenic nerve shoulder no pain

Slurred  .speech nutritional neuropathy

Hi glucose  glucose sparing

At this point I am this condition. Will heal overtime in a more. Nutritional  day.

 For the last time, this is my story I hope this helps 

The AI Generated Podcast

The Agentic AI

There is much to decide about HOW this however , in the future.

For now it is important to realize the chance in our ability currently and the ease of use in today’s world .Also this is an example of Agentic AI Content Generation

Forgiveness – Merry’s. Wisdom

Inspired by Mary Wisdom

BRAVE, STRONG & HAPPY or THE GIFT YOU GIVE YOURSELFAugust 25, 2024May the words of my mouth and the meditation of my heart be acceptableto you O Lord, my rock and my redeemer. Amen.Romans 12:19 Do not take revenge, my dear friends, but leave room forGod’s wrath, for it is written: “It is mine to avenge; I will repay,” says theLord.I recently found a plaque with this saying.The 1st to apologize is the bravest.The 1st to forgive is the strongest.The 1st to forget is the happiest.These words really struck home with me. I think we can all benefit fromfrequent reminders of the importance to both apologize and forgive.

People who have a hard time apologizing frequently have an inflated egowhich gives them a sense of superiority. People who have a hard timeforgiving others, usually have a hard time forgiving themselves. There arethree things that reveal the depth of our relationship with God:The way we love people,the way we accept people andthe way we forgive people.1When we refuse to forgive another person, we put that person, andourselves, in bondage to our unforgiveness.We hear a lot about forgiveness, how God will forgive us if we ask, butwhat does that really mean? WHAT IS FORGIVENESS?

DEFINE FORGIVENESSto cease to feel resentment against (an offender)the act of forgiving somebody; the quality of being willing to forgivesomebodyBiblicalTwo types of forgiveness appear in the Bible: God’s pardon of our sins, andour obligation to pardon others. This subject is so important becauseour eternal destiny depends on it. God promises not to count our sins against us. Requires repentance (turning away from sin) and faith in JesusChrist. Willingness to forgive others is a condition for receivingforgiveness from God. It means pardoning offenses and letting go of resentment. Responding to wrongdoing with mercy rather than vengeance.The opposite of forgiveness is often considered to be resentment orvengeance.

The While forgiveness involves letting go of anger and the desire2for retribution, resentment involves holding onto those negative feelingsand seeking revenge. Seeking revenge could be as obvious as overtlytrying to hurt or destroy someone or as subtle as avoidance of someone, orlittle snide remarks about them.Mental and Emotional Benefits of Forgiveness1. Reduces Stress: Holding onto anger and resentment can increasestress levels. Forgiveness helps to release these negative emotions,leading to a more relaxed state of mind.2. Improves Mental Health: Forgiveness can reduce symptoms ofdepression, anxiety, and other mental health issues.3. Enhances Relationships:

Forgiving someone can improve yourrelationships by fostering trust and understanding.4. Increases Happiness: Letting go of grudges can lead to a morepositive outlook on life and increase overall happiness.Physical Benefits1. Lowers Blood Pressure: Reducing stress through forgiveness canhelp lower blood pressure.2. Improves Heart Health: Forgiveness has been linked to better hearthealth and a lower risk of heart disease.3. Boosts Immune System: A positive mental state can strengthenyour immune system, making you less susceptible to illnesses.34. Reduces Pain: Some studies suggest that forgiveness can lead to areduction in chronic pain.Social Benefits1. Builds Empathy: Forgiving others can help you develop a greatersense of empathy and compassion.2. Promotes Reconciliation: It can pave the way for reconciliation andhealing in relationships.3. Creates a Positive Environment: Forgiveness can contribute to amore positive and supportive social environment.Forgiveness is a powerful tool for personal growth and well-being. Is therea particular situation you’re thinking about where forgiveness might bebeneficial?I think generally people would rather be happy and at peace with thosearound them rather than stressed out, frustrated, angry or dismissive. Yet Ialso know that the people who are stressed out and angry have made achoice to be that way. Probably they don’t realize that’s the choicethey’ve made, but they have. Most people who are stressed out & angrybelieve it is a person or set or circumstances that cause them to have thisnegative anxiety.People do and say things that make us angry. Fact of life. Things happenthat are not fair and make us angry or frustrated. Fact of life. Many times,we have no control situations that make us angry, or stress us out. Fact oflife. We do, however, have control how we react to these negative4situations. Gad gave us free will, but free will is not free. The choiceis ours to hang onto the injustice and all the negative feelings it created, orto determine what we can learn from that situation, or about that personthat wronged us, and move on to more positive things in life.I remember a long time ago, listening to a teenager complain about asituation at school where he felt he was being treated unfairly. Quitehonestly, I don’t remember the specific details of the incident, but decadeslater I do remember how angry this person was for quite a long time..Even after more than a week had passed, his anger was still boiling over.Any attempts I made to talk to him about the situation and diffuse the angerwere met with hostility or rejection, and the comment. “What happenwasn’t right, it wasn’t fair. Don’t I have a right to be angry?”Now I need to let you know that this person had very little knowledge aboutGod’s desire to forgive us and for us to forgive others. He thought that anymention of God was ‘sissy stuff’ that really had no bearing on the real worldwe live in. He had not been brought up going to church; nor had he or hisfamily made lifestyle choices that would be pleasing to God. They weren’treally ‘bad people’.. just good people doing bad things, without thinkingthere were any negative consequences to negative behavior. They wereliving completely in this temporary material world; aware only of thephysical things that were either pleasing or not pleasing. They werepeople who didn’t think God was very important to them. That there wasnothing beyond this life.We have a CHOICE to be angry or not. Hanging on to an unjust situationis only detrimental to ourselves. Nothing good can come from it.5Mark Twain said “ Anger is an acid that can do more harm to the vessel inwhich it is stored than to anything on which it is poured,”“Forgiveness is not an occasional act, it is a constant attitude.” ―Martin Luther King Jr.”Always forgive your enemies – nothing annoys them so much.” -Oscar WildeSCRIPTURE ABOUT FORGIVENESS….Colossians 3:13 “Bear with each other and forgive one another if any ofyou has a grievance against someone. Forgive as the Lord forgave you.”Think back to King David, the sins he committed. In trying to cover themup or hide them he committed more sins. He did not see the need to askGod to forgive him for the terrible things he had purposely done. Godhates sin, so David was punished. When David realized how angry Godwas with him, he was able to truly repent. Only then was he able to riseabove the pain & suffering his actions had caused, and find peace.(Mark 11:26) “If you do not forgive neither can my Father forgive you.Matthew 6:14-15 “For if you forgive other people when they sin againstyou, your heavenly father will also forgive you. But if you do not forgiveothers their sins, your father will not forgive your sins.”This reason alone is good enough reason why we should forgive others,even though we find it to be very difficult thing. When you consider how6much more important God forgiving you is in comparison to the wrongsomeone does you, it should be a no brainer. Without God’s forgivenesswe are doomed to spend eternity in hell. The sin of not forgiving othersplaces a barrier between ourselves and God.The Need for us to forgive others is just as important as the need forGod to forgive us.We don’t forgive people to change them or how they act. We forgivepeople to cleanse ourselves of the pain & suffering their actions havecaused us….I know a lot of people who have a very hard time in forgiving others.What could be ONE reason why we have a hard time forgiving others whohave hurt us? Usually because we have a hard time forgiving ourselves.Remember that what we see in the world around us usually mirrors whatand how we feel about ourselves. People who see more negative thingsin this world than good are frequently stressed because there’s a pieceinside them that is either damaged or missing. Many times these peoplecan’t see the love others have for them because they rejected the love Godwants to pour into them.In order to change that negativity we need to start looking at the worlddifferently. We need to start looking at the people in our lives differently.That can only happen when our relationship with God changes. When weembrace God’s unconditional love for us, we can then start to love people,7accept them (flaws and all), and not judge them for their mistakes. Then,and only then can we truly forgive them. Then, all those negative, badfeelings will no longer be part of who we are. They will be gone. We willbe set free. That should be our goal – to get rid of the feelings that causeus emotional.STORY – There was a person I used to have to work with that knit pickedeverything to death. The meetings we had were very stressful, not just formyself but for others. For the sake of this story, let’s call this woman Sally.Now Sally was a very intelligent, well-educated person with lots of gifts,one of them being a lot of financial resources. She did a lot with theseresources, was generous to the church and others. But these gifts alsogave her a very large ego. She frequently tried to intimidate others to gethet point across, or convince others that her ideas were better than theirs.Well, you get the idea. It seemed like she took pleasure in theseconfrontations with people. I found myself dreading interactions with her,as I would only remember the hurt & anxiety I felt around her. Feelings Ididn’t like to feel. So I started to examine why I felt this way and how Icould change how I felt. Certainly I couldn’t change her or her behavior,but I could change how I felt about her.After lots of prayer, studying scriptures about forgiving others I was finallyable to see her differently. It’s like someone turned the light on. Here wasSally, a God loving generous person who was flawed (just as you & I areflawed). Nothing more, nothing less. It was after this revelation that I wasable to accept her flaws and not have them upset me. I was focusing onthe many gifts she was sharing with others instead of her flaws. I was8able to look at her in a way similar to how God looks at us. He doesn’tfocus on our flaws; he see the good inside each of us.I remembered a quote from Oscar Wilde“Always forgive your enemies, nothing annoys them so much”Being human and, flawed I’ll admit that to this day I still take pleasure inremembering this quote.Try ‘killing with kindness’ – that’s something I still take great pleasure in -it gives me a sense of power knowing that people cannot provoke me. Myactions in negative situations remain positive, and hopefully pleasing toGod.Luke 23:24 “Father, forgive them, for they know not what they ae doing.”It still amazes me how powerful this short scripture is. “Father, forgivethem, for they know not what they ae doing.”Why is forgiving so important? Carrying around all that anger & hurt isdamaging us more than we often realize. First and foremost it puts abarrier between God and ourselves.To be a Christian means to forgive the inexcusable because God hasforgiven the inexcusable in you.C. S. Lewis9CONCLUSION Holding on to anger and resentment can be a very painfuland potentially harmful process. Author Stephen Hayes writes“Unforgiveness is like being on a giant hook. Next to the hook is theperson who has hurt you. The hook is extremely painful. Everywhere yougo, so does the hook and so does the offender, The only way you can getoff the hook is if you allow the offender off first, The cost of not allowingthe offender off the hook is, perhaps a lifetime of unhappiness. Don’t put awall between you and the love God is offering you.Remember: The 1st to apologize is the bravest, the 1st to forgive is thestrongest, and the 1st to forget is the happiest. AMEN