Prerequisite: To work on this task, you MUST have knowledge of Lua programming already, or another language plus Lua tasks #01 to #09 here in Google Code-in. You will need to do considerable research and creation of test cases before starting to do the programming.
Wikipedia uses citations extensively to verify the content. A citation may have an author's name as a single piece of text, e.g. "Joe Orton" or sometimes "J Orton". Optionally, it may refine it into two pieces of information: a last name (often a family name) such as "Orton" and a given name such as "Joe". This is called increasing the data granularity.
The task of transforming from a single name to last name and given name can have complications that are difficult to encode algorithmically, so we might create a look-up table of exceptions to the general rule that the last name is the last word in the author's name.
1 Find as many examples as you can of authors whose names are not simply "Firstname(s) Lastname" and make a list of them in a new sandbox or section. You may need to search further to work out which have complex last names.
You can consult lists like https://www.theguardian.com/books/list/authorsaz for examples, and you can look through Wikipedia articles' citations for more.
2 Mark them up in your sandbox in a way that you can tell which part is first name and which is last name.
3 Write a new sandbox module that takes a single name and returns two parts: the first names and the last name. Give links here.