newtheatre / history-project

:scroll: Historical record of happenings at the Nottingham New Theatre.
https://history.newtheatre.org.uk
MIT License
17 stars 16 forks source link

People with the same names #679

Open nhyty opened 7 years ago

nhyty commented 7 years ago

So we have 2 emma mcdonalds, https://history.newtheatre.org.uk/people/emma_mcdonald/ but only one file. (the one for wit is not the same as the other one)

davidtaylorhq commented 7 years ago

Well... this is going to be a fun one to solve...

Easy solution is to get a middle initial for one of them and avoid the problem ;)

wjdp commented 7 years ago

I have been dreading the coming of this day.

wjdp commented 7 years ago

We could pretend to be a union and make actors pick unique names.

nhyty commented 7 years ago

no

nhyty commented 7 years ago

Current fix i will usee is double spacing second ones name. but a more thought out fix should be made

davidtaylorhq commented 7 years ago

Have an optional "ID" number for a person? Not a pretty solution though

nhyty commented 7 years ago

surely that requires a rebuild of data structures etc

davidtaylorhq commented 7 years ago

Well I was just thinking where you currently have "David Taylor" you could optionally put "David Taylor (1)" or "David Taylor (2)", and then have some ruby strip out the brackets in the UI. But I'm sure Will has a less bodgy solution

nhyty commented 7 years ago

But I'm sure Will has a less bodgy solution

really?

davidtaylorhq commented 7 years ago

*I hope Will has a less bodgy solution ;)

wjdp commented 7 years ago

I've got two ways we could deal with this:

Add an ID to people

Make a second parameter on a person list to differentiate between two people, or tack on to the name field as @davidtaylorhq suggested.

- role: X
  name: Fred Bloggs
  id: A
- role: X
  name: Fred Bloggs
  id: B

This requires changing a bit of code for generating records from these lists. A number of issues with this approach are listed:

Deal with the small number of cases that will occur by selecting unique names

A small number of name collisions is manageable by finding unique names for each person. It may not be ideal in all cases but is technically cleaner than tacking on ID numbers, a whole new layer to an already quite complicated system. As an archival project creating a simple solution I would argue is desirable.

This solution breaks when there are many collisions. We have an incomplete data set so do not know the total number. We could do with a mathsy type to do some stats on what would be expected.

davidtaylorhq commented 7 years ago

I think having an optional ID for people would be better

samozzy commented 7 years ago

URLs: Could IDs be a trailing slash? /people/fred-bloggs/abcde or preceding slash /people/abcde/fred-bloggs? Allows a more general case: what if you do, say, people/fred-bloggs and /people/fred-j-bloggs and then another Fred J Bloggs turns up? To maintain URLs, could you have a landing page for /people/fred-bloggs that says "Hey we have X people by that name, did you mean: Fred Bloggs, graduated 1995 and worked on these shows, or Fred Bloggs, still a student and worked on these shows?"

I think something to consider is people inputting data. Whatever solution, it needs to be easy enough that they don't have to take a big step when putting in a cast list if there has been a previous person with that name. A year makes sense for this, as otherwise doing a (manual) lookup for names makes an already tedious process even more so. The correct person should be in the show data so you don't arrive on the landing page when you click their name in a show, as you already know which Fred Bloggs you want.

BenWoodford76 commented 7 years ago

Personally i like the idea of a wikipedia style, 'did you mean' page