Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Markup case names #241

Open
wants to merge 24 commits into
base: main
Choose a base branch
from
Open

Markup case names #241

wants to merge 24 commits into from

Conversation

flooie
Copy link
Contributor

@flooie flooie commented Apr 2, 2025

@grossir

This PR adds support for identifying the full case name in markup text. When a plaintiff is identified
it calls a new method to check if the text is inside a tag and extracts that out.

Also supports antecedent guess

This should improve reference citation extraction and better identify citations.

flooie added 4 commits April 2, 2025 12:54
Add check inside method for plaintiff
Use that to identify the full plaintiff
name

Also improve regex building to avoid
unnecessary escapes
Identify antecedent guesses in markup
change method name
@flooie flooie requested a review from grossir April 2, 2025 17:39
Copy link
Contributor

@grossir grossir left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looking good, some comments below

Changed method for speed improvements

Added improvements for defendants as well.
More example tests
Fixed full span
@flooie
Copy link
Contributor Author

flooie commented Apr 3, 2025

---

Co.                                                                    --->      Silverthorne Lumber Co.
Silverthorne Lumber Co. v. United States, 251 U. S. 385
---

Portelli, 15 N. Y. 2d 235                                              --->      Portelli
People v. Portelli, 15 N. Y. 2d 235, 205 N. E. 2d 857
---

States                                                                 --->      United States
United States v. Grunewald, 233 F. 2d 556
---

States                                                                 --->      United States
Grunewald, 233 F. 2d 556, 579, 581-582 (Frank, J., dissenting), rev'd  --->      Grunewald
United States v. Grunewald, 233 F. 2d 556, 579, 581-582 (Frank, J., dissenting), rev'd, 353 U. S. 391
---

Dorado, 62 Cal. 2d 338, 351                                            --->      Dorado
People v. Dorado, 62 Cal. 2d 338, 351, 398 P. 2d 361
---

Dorado, 62 Cal. 2d 338, 351, 398 P. 2d 361, 369-370                    --->      Dorado
People v. Dorado, 62 Cal. 2d 338, 351, 398 P. 2d 361, 369-370, 42 Cal. Rptr. 169
---

U. S., 337 F. 2d 136 (1964), cert. den.                                --->      U. S.
Jackson v. U. S., 337 F. 2d 136 (1964), cert. den. 380 U. S. 935
---

S.                                                                     --->      U. S.
U. S. v. Konigsberg, 336 F. 2d 844
---

S.                                                                     --->      U. S.
Konigsberg, 336 F. 2d 844 (1964), cert. den.                           --->      Konigsberg
U. S. v. Konigsberg, 336 F. 2d 844 (1964), cert. den. 379 U. S. 933
---

States                                                                 --->      United States
United States v. Scully, 225 F. 2d 113
---

States                                                                 --->      United States
Carignan, *528                                                         --->      Carignan
United States v. Carignan, *528 342 U. S. 36
---

Hansen                                                                 --->      Sparf and Hansen
Sparf and Hansen v. United States, 156 U. S. 51
---

States                                                                 --->      United States
United States v. Mitchell, 322 U. S. 65
---

States                                                                 --->      United States
United States v. Carignan, 342 U. S. 36
---

States                                                                 --->      United States
United States v. Romano, 382 U. S. 136
---

State, 238 Md. 140                                                     --->      State
Johnson v. State, 238 Md. 140, 207 A. 2d 643
---

Modesto, 62 Cal. 2d 436, 446                                           --->      Modesto
People v. Modesto, 62 Cal. 2d 436, 446, 398 P. 2d 753
---

States                                                                 --->      United States
United States v. Drummond, 354 F. 2d 132
---

States                                                                 --->      United States
United States v. Childress, 347 F. 2d 448
---

Dorado, 62 Cal. 2d 338                                                 --->      Dorado
People v. Dorado, 62 Cal. 2d 338, 398 P. 2d 361
---

Dorado, 62 Cal. 2d 338, 398 P. 2d 361                                  --->      Dorado
People v. Dorado, 62 Cal. 2d 338, 398 P. 2d 361, 42 Cal. Rptr. 169
---

Hartgraves, 31 Ill. 2d 375                                             --->      Hartgraves
People v. Hartgraves, 31 Ill. 2d 375, 202 N. E. 2d 33
---

Wakat, 415 Ill. 610                                                    --->      Wakat
People v. Wakat, 415 Ill. 610, 114 N. E. 2d 706
---

State, 213 Md. 556                                                     --->      State
Kier v. State, 213 Md. 556, 132 A. 2d 494
---

People, 113 Colo. 194                                                  --->      People
Bruner v. People, 113 Colo. 194, 156 P. 2d 111
---

Matlock, 51 Cal. 2d 682                                                --->      Matlock
People v. Matlock, 51 Cal. 2d 682, 336 P. 2d 505
---

States                                                                 --->      United States
United States v. Murphy, 222 F. 2d 698
---

Bonino, 1 N. Y. 2d 752                                                 --->      Bonino
People v. Bonino, 1 N. Y. 2d 752, 135 N. E. 2d 51
---

States                                                                 --->      United States
United States v. Carignan, 342 U. S. 36
---

Donovan, 13 N. Y. 2d 148                                               --->      Donovan
People v. Donovan, 13 N. Y. 2d 148, 193 N. E. 2d 628
---

Brown                                                                  --->      United States ex rel. Brown
United States ex rel. Brown v. Fay, 242 F. Supp. 273
---

Witenski, 15 N. Y. 2d 392                                              --->      Witenski
People v. Witenski, 15 N. Y. 2d 392, 207 N. E. 2d 358
---

Dorado, 62 Cal. 2d 338, 354                                            --->      Dorado
People v. Dorado, 62 Cal. 2d 338, 354, 398 P. 2d 361
---

Dorado, 62 Cal. 2d 338, 354, 398 P. 2d 361, 371                        --->      Dorado
People v. Dorado, 62 Cal. 2d 338, 354, 398 P. 2d 361, 371, 42 Cal. Rptr. 169
---

States                                                                 --->      United States
United States v. Rose, 24 CMR 251
---

States                                                                 --->      United States
United States v. Gunnels, 23 CMR 354
---

Angelet                                                                --->      United States ex rel. Angelet
United States ex rel. Angelet v. Fay, 333 F. 2d 12
---

Inc.                                                                   --->      Ziffrin, Inc.
Ziffrin, Inc. v. United States, 318 U. S. 73
---

Morse, 60 Cal. 2d 631                                                  --->      Morse
People v. Morse, 60 Cal. 2d 631, 388 P. 2d 33
---

Morse, 60 Cal. 2d 631, 388 P. 2d 33                                    --->      Morse
People v. Morse, 60 Cal. 2d 631, 388 P. 2d 33, 36 Cal. Rptr. 201
---

States                                                                 --->      United States
United States v. Carignan, 342 U. S. 36
---

Co.                                                                    --->      Shotwell Mfg. Co.
Shotwell Mfg. Co. v. United States, 371 U. S. 341
---

States                                                                 --->      United States
United States v. Robinson, 354 F. 2d 109
---

Townsend                                                               --->      United States ex rel. Townsend
United States ex rel. Townsend v. Ogilvie, 334 F. 2d 837
---

Hartgraves, 31 Ill. 2d 375                                             --->      Hartgraves
People v. Hartgraves, 31 Ill. 2d 375, 202 N. E. 2d 33
---

Fox, ___ Iowa ___                                                      --->      Fox
State v. Fox, ___ Iowa ___, 131 N. W. 2d 684
---

Warden, 236 Md. 236                                                    --->      Warden
Parker v. Warden, 236 Md. 236, 203 A. 2d 418
---

State, ___ Nev. ___                                                    --->      State
Bean v. State, ___ Nev. ___, 398 P. 2d 251
---

Hodgson, 44 N. J. 151                                                  --->      Hodgson
State v. Hodgson, 44 N. J. 151, 207 A. 2d 542
---

Gunner, 15 N. Y. 2d 226                                                --->      Gunner
People v. Gunner, 15 N. Y. 2d 226, 205 N. E. 2d 852
---

Linde                                                                  --->      Commonwealth ex rel. Linde
Commonwealth ex rel. Linde v. Maroney, 416 Pa. 331
---

Linde                                                                  --->      Commonwealth ex rel. Linde
Maroney, 416 Pa. 331                                                   --->      Maroney
Commonwealth ex rel. Linde v. Maroney, 416 Pa. 331, 206 A. 2d 288
---

State, 24 Wis. 2d 491                                                  --->      State
Browne v. State, 24 Wis. 2d 491, 131 N. W. 2d 169
---

Russo                                                                  --->      United States ex rel. Russo
United States ex rel. Russo v. New Jersey, 351 F. 2d 429
---

Dorado, 62 Cal. 2d 338                                                 --->      Dorado
People v. Dorado, 62 Cal. 2d 338, 398 P. 2d 361
---

Dufour, ___ R. I. ___                                                  --->      Dufour
State v. Dufour, ___ R. I. ___, 206 A. 2d 82
---

Neely, 239 Ore. 487                                                    --->      Neely
State v. Neely, 239 Ore. 487, 395 P. 2d 557
---

Neely, 239 Ore. 487, 395 P. 2d 557, modified                           --->      Neely
State v. Neely, 239 Ore. 487, 395 P. 2d 557, modified, 398 P. 2d 482
---

Dorado, 62 Cal. 2d 338                                                 --->      Dorado
People v. Dorado, 62 Cal. 2d 338, 398 P. 2d 361
---

States                                                                 --->      United States
United States v. Bolden, 355 F. 2d 453
---

Du Bont, 235 Cal. App. 2d 844                                          --->      Du Bont

I ran a test on Miranda v. Arizona to illustrate the improvements. It lists only changes identified.

In this case you can see accurate plaintiff parsing and you can also see better defendant parsing. Especially when or usually when the citation is a parallel to the main. It no longer mistakenly identifies the previous citation with the defendant name when handling markup text.

flooie added 4 commits April 3, 2025 13:18
Refactor methods for readability
Add support for antecedents
Strip out stop words if starting extraction
Pagination has long been in the way
and this helps identify cites with
pagination in the middle of the citation
Add test to illustrate L.A. support
Can now extract defendant out properly
Copy link
Contributor

@grossir grossir left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The names that this PR are able to collect look great.

However, there are some weird losses on the benchmark

Since it's picking everything inside the emphasis tag, it is picking 'Cf' as part of the name. This makes it lose the following Akins standalone reference, since it's looking for Cf. Akins. Solvable by cleaning up stopwords like Cf. Another one that happens a lot inside the same style tags as the name is "See", you should probably include these in the tests

image

 FullCaseCitation('104 So.3d 1173', groups={'volume': '104', 'reporter': 'So.3d', 'page': '1173'}, metadata=FullCaseCitation.Metadata(parenthetical='reversing nonhomicide sentence of life without parole where trial court exercised its discretion in imposing a sentence of twenty-seven years on the related homicide offense of second-degree murder, an offense punishable by a maximum of life in prison', pin_cite=None, pin_cite_span_start=None, pin_cite_span_end=None, year='2012', court=None, plaintiff='Cf. Akins', defendant='State', extra=None, antecedent_guess=None, resolved_case_name_short=None, resolved_case_name=None)),

This is the full citation "The opinion in Thrift Funds Canal, Inc. v. Foy, 261 La. 573, 260 So.2d 628 (1972), classifies conventional mortgages into three categories:"

On this branch, it's not picking up "Foy" as defendant

 FullCaseCitation('261 La. 573', groups={'volume': '261', 'reporter': 'La.', 'page': '573'}, metadata=FullCaseCitation.Metadata(parenthetical=None, pin_cite=None, pin_cite_span_start=None, pin_cite_span_end=None, year='1972', court=None, plaintiff='Inc.', defendant=None, extra='260 So.2d 628', antecedent_guess=None, resolved_case_name_short=None, resolved_case_name=None)),
 FullCaseCitation('260 So.2d 628', groups={'volume': '260', 'reporter': 'So.2d', 'page': '628'}, metadata=FullCaseCitation.Metadata(parenthetical=None, pin_cite=None, pin_cite_span_start=None, pin_cite_span_end=None, year='1972', court=None, plaintiff='Inc.', defendant=None, extra=None, antecedent_guess=None, resolved_case_name_short=None, resolved_case_name=None)),

but on main, it is picking it up. I am not sure about the reason for the change...

 FullCaseCitation('261 La. 573', groups={'volume': '261', 'reporter': 'La.', 'page': '573'}, metadata=FullCaseCitation.Metadata(parenthetical=None, pin_cite=None, pin_cite_span_start=None, pin_cite_span_end=None, year='1972', court=None, plaintiff='Inc.', defendant='Foy', extra='260 So.2d 628', antecedent_guess=None, resolved_case_name_short=None, resolved_case_name=None)),
 FullCaseCitation('260 So.2d 628', groups={'volume': '260', 'reporter': 'So.2d', 'page': '628'}, metadata=FullCaseCitation.Metadata(parenthetical=None, pin_cite=None, pin_cite_span_start=None, pin_cite_span_end=None, year='1972', court=None, plaintiff='Inc.', defendant='Foy', extra=None, antecedent_guess=None, resolved_case_name_short=None, resolved_case_name=None)),

Which makes it able to pick up 2 references below

image

You should probably check the "gain" column (which is actually the loss)

Comment on lines 162 to 166
if (
document.markup_text
and document.plain_to_markup
and document.markup_to_plain
):
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

these checks are also repeated in lines 203-207, shouldn't they just be done inside the functions themselves? And just return the same input values if there are no markup related attributes

In fact, a couple of the checks are already repeated inside of extract_full_text_from_markup, but not inside the other one

    # Convert plain text offset to a markup offset. and bail if no markup
    if not document.plain_to_markup or not document.markup_to_plain:
        return base_offset, default_text

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this was done to satisfy mypy

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment on lines 209 to 211
new_text = update_defendant_markup(document, stop_word)
if citation.metadata.defendant != new_text:
citation.metadata.defendant = new_text
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if the text is updated, shouldn't the full_span_start be updated too?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this wont affect the start, this actually just reduces the defendant on the back end. Thats why no update.

Comment on lines 487 to 493
Parameters:
document: The Document instance.
base_offset: The plain text offset to convert
default_text: The current text stored for this field.
source_end: Optional plain text end index to use when extracting text.
If provided, full text is extracted as:
document.plain_text[plain_text_start:source_end]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should keep the standard docstring format we are using in eyecite

:param document: ...
:param base_offset: ...

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

actually I think the format is somewhere in the middle

    (e.g., a judicial opinion or other legal doc), return a list of
    `eyecite.models.CitationBase` objects representing the citations found
    in the doc.

    Args:
        plain_text: The text to parse. You may wish to use the
            `eyecite.clean.clean_text` function to pre-process your text
            before passing it here.
        remove_ambiguous: Whether to remove citations that might refer to more
            than one reporter and can't be narrowed down by date.
        tokenizer: An instance of a Tokenizer object. See `eyecite.tokenizers`
            for information about available tokenizers. Uses the
            `eyecite.tokenizers.AhocorasickTokenizer` by default.
        markup_text: if the source text has markup (XML or HTML mostly), pass
            it to extract ReferenceCitations that may be detectable via
            markup style tags
        clean_steps: Cleanup steps and methods

    Returns:
        A list of `eyecite.models.CitationBase` objects

# Not inside an emphasis/i tag
return base_offset, default_text

# Use the first and only matching emphasis tag.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there are no checks in place for to ensure it is the "only" tag in filtered_results

document: The Document instance.
base_offset: The plain text offset to convert
default_text: The current text stored for this field.
source_end: Optional plain text end index to use when extracting text.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why not call this argument plain_text_end instead of source_end

@flooie
Copy link
Contributor Author

flooie commented Apr 3, 2025

  1. Judge Regan (dissenting) in <i>Thrift Funds Canal,</i> Inc. v. Foy, 242 So.2d 253, 257 (La.App. 4 Cir. 1970), calls

we lose FOY because its not correctly tagged in HTML

@flooie flooie requested a review from grossir April 3, 2025 22:10
Copy link
Contributor

@grossir grossir left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks great, I think it's mostly ready

My only nitpick is that add_defendant is now a big and complex function, and adds both plaintiff and defendant, and we should refactor it eventually

Comment on lines 162 to 166
if (
document.markup_text
and document.plain_to_markup
and document.markup_to_plain
):
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mlissner
Copy link
Member

mlissner commented Apr 4, 2025

My only nitpick is that add_defendant is now a big and complex function, and adds both plaintiff and defendant, and we should refactor it eventually

I haven't looked at the PR, but I think now may be the best time to clean things up, since we probably won't return to eyecite for a while, and when we do it'll be harder to do the refactoring.

@flooie
Copy link
Contributor Author

flooie commented Apr 4, 2025

My only nitpick is that add_defendant is now a big and complex function, and adds both plaintiff and defendant, and we should refactor it eventually

I haven't looked at the PR, but I think now may be the best time to clean things up, since we probably won't return to eyecite for a while, and when we do it'll be harder to do the refactoring.

Just seeing this. It did both plaintiff and defendant previously. But plaintiff was always a throw-a-way process.

flooie added 3 commits April 4, 2025 18:29
This is a large refactor

It is meant to improve case title extraction
by removing add defendants and relying
on either HTML or a series of heurestics to
make educated guesses about when a title
stops

It separates the logic between html and plaintext

It adds to stop words
it removes add defendant
I didnt update a test for our new improved
extraction.  This one caputres the full text
@flooie
Copy link
Contributor Author

flooie commented Apr 5, 2025

@grossir something is cached or broken about the benchmark ... I found one in particular weird but others I couldn't replicate.

this entry ```

1744543   I am not going to let you represent yourself

made no sense - so I ran it locally to test it out 

[
    {
        "cites": [
            "\u00a7",
            "\u00a7",
            "\u00a7",
            "422 U.S. 806",
            "95 S.Ct. 2525",
            "45 L.Ed.2d 562",
            "\u00a7",
            "542 S.W.2d 549",
            "685 S.W.2d 942",
            "587 S.W.2d 611",
            "589 F.2d 45",
            "77 Cal.App.3d 45",
            "143 Cal.Rptr. 379",
            "270 Ind. 55",
            "383 N.E.2d 309",
            "267 Ind. 289",
            "370 N.E.2d 318",
            "95 Nev. 933",
            "604 P.2d 338",
            "590 P.2d 679",
            "588 P.2d 572",
            "98 A.L.R.3d 13",
            "\u00a7",
            "572 S.W.2d 440",
            "622 S.W.2d 416",
            "\u00a7",
            "\u00a7",
            "\u00a7",
            "\u00a7",
            "647 S.W.2d 799",
            "\u00a7",
            "558 S.W.2d 646",
            "593 S.W.2d 208",
            "\u00a7",
            "694 S.W.2d 903",
            "603 S.W.2d 569",
            "676 S.W.2d 304",
            "664 S.W.2d 617",
            "463 U.S. 277",
            "103 S.Ct. 3001",
            "77 L.Ed.2d 637",
            "supra,",
            "\u00a7\u00a7",
            "\u00a7\u00a7",
            "\u00a7",
            "\u00a7",
            "\u00a7\u00a7",
            "\u00a7\u00a7",
            "\u00a7\u00a7",
            "\u00a7\u00a7",
            "\u00a7\u00a7",
            "\u00a7\u00a7",
            "\u00a7\u00a7",
            "\u00a7",
            "\u00a7",
            "\u00a7\u00a7",
            "\u00a7",
            "\u00a7",
            "\u00a7",
            "459 U.S. 359",
            "103 S.Ct. 673",
            "74 L.Ed.2d 535",
            "647 S.W.2d 799",
            "624 S.W.2d 16",
            "689 S.W.2d 758",
            "657 S.W.2d 677",
            "653 S.W.2d 227",
            "supra,",
            "664 S.W.2d 617",
            "603 S.W.2d 683",
            "588 S.W.2d 65"
        ],
        "time": 0.243268
    }
]

and this was the output - you can see there is no random long string.  

@flooie
Copy link
Contributor Author

flooie commented Apr 5, 2025

@grossir there we go - I need to re run name extraction because many html files have some tagged nicely and some not.

Fix bug in index shift and text cleanup
Copy link
Contributor

github-actions bot commented Apr 5, 2025

The Eyecite Report 👁️

Gains and Losses

There were 5 gains and 21 losses.

Click here to see details.

There were 53 changes so we are only displaying the first 50. You can review the
entire list by downloading the output.csv file linked above.

id Gain Loss
5329531 German Savings Bank
5656104 Sime
6207147 Arrington
1917661 Vanner
1662392 Belton
1783747 Parish of East Baton Rouge
1537257 St. Cloud
1717506 Blue Bell
2357843 State ex rel. Utility Consumers Council
2414924 City of Boerne at 2170
2414924 Boerne at 2170
2414924 City of Boerne
2410732 Williams
1431414 Memphis Development Foundation
280035 Reece
2925642 Buckner
2330285 Terry
203607 Fustaguio do Nascimento
7124861 Hocker
1433305 Grayson
2411681 Sumner I
901384 Setliff I
901384 Setliff I
1440932 San Giovanni
6596585 Beckwith
6776333 Susser

Time Chart

image

Generated Files

Branch 1 Output
Branch 2 Output
Full Output CSV

@flooie flooie requested a review from grossir April 5, 2025 01:01
@flooie
Copy link
Contributor Author

flooie commented Apr 5, 2025

Old Data New Extraction
Inc. v. Toups, E.g., New Orleans Silversmiths, Inc. v. Toups,
Inc. v. Foy, Thrift Funds Canal, Inc. v. Foy,
Inc. v. Foy, 261 La. 573, Thrift Funds Canal, Inc. v. Foy, 261 La. 573,
cit. cit.
Foy, Foy,
cit. cit.
Toups, Toups,
Odom v. Cherokee Homes, Inc., Odom v. Cherokee Homes, Inc.,
Inc. v. I.D.S. Mortgage Corp., Slidell Building Supply, Inc. v. I.D.S. Mortgage Corp.,
Inc. v. I.D.S. Mortgage Corp., 273 So.2d 343 (La.App. 1 Cir. 1972), writ den. La., La.,
Company v. Subco, Inc., of Baton Rouge Bank and Trust Company v. Subco, Inc.,
Foy, Foy,
cit. cit.
Union v. Montgomery, League Central Credit Union v. Montgomery,
Union v. Montgomery, 251 La. 971, League Central Credit Union v. Montgomery, 251 La. 971,
Monroe v. Carson Homes, Inc., Monroe v. Carson Homes, Inc.,
Reed v. Meaux, Reed v. Meaux,
Corporation v. Breaux, Chrysler Credit Corporation v. Breaux,
Tapp v. Guaranty Finance Co., Tapp v. Guaranty Finance Co.,
Union v. Montgomery, supra, at Montgomery,
Co. v. Cappel and Curry, Miller, Lyon and Co. v. Cappel and Curry,
Rocchi v. Keen, Li Rocchi v. Keen,
Rocchi v. Keen, 242 La. 111, Li Rocchi v. Keen, 242 La. 111,
Buckner v. Carmack, Buckner v. Carmack,
Company v. Mones, Myrtle Grove Packing Company v. Mones,
Company v. Mones, 226 La. 287, Myrtle Grove Packing Company v. Mones, 226 La. 287,
Co. v. Cappel and Curry, Co. v. Cappel and Curry,
Rouge v. Heroman, Louisiana National Bank of Baton Rouge v. Heroman,
Scarborough v. Duke, Scarborough v. Duke,
Foy, Foy,
Inc., Inc.,
Company v. Soileau, E.g., Ford Motor Credit Company v. Soileau,
Breaux, Breaux,
Inc. v. Vicaro, Polk Chevrolet, Inc. v. Vicaro,
Breaux, Breaux,
Inc. v. Foy, Thrift Funds Canal, Inc. v. Foy,
the Court of Appeal (for different reasons),
the Court of Appeal (for different reasons), 261 La. 573,

@flooie
Copy link
Contributor Author

flooie commented Apr 5, 2025

I added a list of old vs new name extraction for a random case. using only plain text.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants