Wikipedia:U.S. Census Migration

This page is for tracking the migration of external links to the US Census database website. The original content of this page was copied from WP:Village pump (technical), specifically, this revision.

Programming help - US Census links going dark
The main site for the US Census will be taken offline March 30 (https://factfinder.census.gov/faces/nav/jsf/pages/index.xhtml). We have Census links in about 40,000 articles on Enwiki, possibly more. They will be dead soon.. There are a number of technical complications that make it challenging to archive and/or move links to the new site. Most of the links are not and can not be archived at Wayback, but they can be archived at archive.today. Seeking a collaborator(s) to help with this project. My bot WaybackMedic can add archive.today links into Enwiki if they already exist at archive.today, and/or it can migrate links to the new form, if there is a translation program. Need one or both of these:
 * 1) Find all factfinder.census.gov links on Enwiki and save them at archive.today - most of the links are in templates so would need to be discovered by scraping HTML or something.
 * 2) A program (command-line driven) that can take as input an old link and output the new link. Documentation on old link format and new link format. This program can then be called from WaybackMedic which would do the updates on wiki - this is needed because it would handle archive URLs (adding and removing as needed),  tags etc..

If you would like to help let's try to save the Census data from disappearing. Note that #2 could be done any time in the future is not limited by the March 30 cut off. #1 will not work after that date since the site will be dead. -- Green  C  17:16, 9 February 2020 (UTC) Template:American Factfinder Template:American Factfinder2 Template:American Factfinder2/doc Template:American Factfinder2/sandbox Template:American Factfinder3 Template:American Factfinder3/doc Template:American Factfinder/doc Template:Cite American Factfinder Template:Cite American Factfinder2 Template:Cite American Factfinder3 Template:Data United States Template:Editnotices/Page/Spring, Texas Template:Historical populations Template:Historical populations/doc Template:Historical populations/sandbox Template:Historical populations/testcases Template:Historical populations/USCensusRef Template:Infobox ethnic group/testcases Template:Largest urban areas of Oceania Template:Middle Eastern American Template:NYC Chinatowns -- RoySmith (talk) 19:05, 9 February 2020 (UTC)
 * No need to HTML scrape. This looks like it should be relatively straight-forward via the wiki API and parsing the wikitext.  I'm taking a look at that right now.  I have also emailed cedsci.feedback@census.gov to make sure they are aware of this issue, and invited their participation in this discussion.  -- RoySmith (talk) 18:24, 9 February 2020 (UTC)
 * Surely Special:Linksearch (or its equivalent API:Exturlusage) can be used to conveniently get all the links? No need to scrape anything or parse wikitext. SD0001 (talk) 18:53, 9 February 2020 (UTC)
 * Does that expand templates? Also how to find which template is associated with a URL. -- Green  C  18:54, 9 February 2020 (UTC)
 * Yup, API:Exturlusage gets us most of the way there. I'm seeing 18203 external links directly in mainspace, plus a few in Templates:
 * Those tools both query the  table, which doesn't know or care how a link got into the page, just that it exists. Therefore, we can use Quarry to (fairly) easily generate a list of all ~20000 links from the English Wikipedia to http{s}://factfinder.census.gov: https://quarry.wmflabs.org/query/42039. That makes part 1 a bit easier, at least on the enwiki side. As far as figuring out where the links are coming from, https://quarry.wmflabs.org/query/42040 is the list of templatespace pages that link to FactFinder. --AntiCompositeNumber (talk) 19:29, 9 February 2020 (UTC)
 * Wonder what the Infobox Settlement link is? It is used on half a million pages and could be a lot, I'm unable to find anything. -- Green  C  19:56, 9 February 2020 (UTC)
 * , It's the FIPS links in the doc. --AntiCompositeNumber (talk) 20:00, 9 February 2020 (UTC)
 * Somewhat surprisingly, this is not just an enwiki problem. I'm seeing 7490 in dewiki and 1274 in eswiki.  I'm sure that's just the tip of the iceberg.  -- RoySmith (talk) 19:09, 9 February 2020 (UTC)
 * Just to keep stuff in one place, https://github.com/roysmith/factfinder-migration. Remember to like, share, and subscribe.  -- RoySmith (talk) 19:18, 9 February 2020 (UTC)
 * thanks for the help. Ideally could it be three columns: article name, template in the article and URL it equates to; or 2 columns if no template involved. I was informed by User:Fabrikator "there are over 40,000 Wikipedia articles that use these templates" hopefully we are not missing anything. -- Green  C  19:33, 9 February 2020 (UTC)
 * There are about 30,000 in Template:Historical populations -- Green  C  19:36, 9 February 2020 (UTC) There is a  in the template /doc page that contains a factfinder URL, but I don't see anything generated by the template code that is probably what Fabrikator was seeing. --  Green  C  19:42, 9 February 2020 (UTC)


 * I did some work on trying to rewrite URLs from AFF to CEDSCI (data.census.gov), and one thing became very apparent: the US Census Bureau put absolutely no thought into the transition between these two systems. We also seem to disagree on what "There are no changes in table IDs associated with the change to a new platform on data.census.gov" is supposed to mean. --AntiCompositeNumber (talk) 05:58, 10 February 2020 (UTC)
 * AntiCompositeNumber, nice work. Looking at the FAQ like page 21 it seems like they are not doing a 1:1 transition, there is data being left behind or only available via API. -- Green  C  15:21, 10 February 2020 (UTC)


 * My understanding is that nowadays, when you add a URL-based citation, that we have User:InternetArchiveBot that automatically attempts archiving at Wayback Machine or another source. These links should be in place, but you may want to check that. --M asem (t) 19:22, 9 February 2020 (UTC)
 * Gah, nevermind I see the issue of auto archiving was addressed :P --M asem (t) 19:24, 9 February 2020 (UTC)
 * Yeah WaybackMachine has trouble archiving many of these pages due to JS or whatever they are using. Archive.today seems to do OK on the few I tried manually. -- Green  C  19:25, 9 February 2020 (UTC)

Queries across wikis
is it possible to adjust the query ( https://quarry.wmflabs.org/query/42039 ) to work across all wiki languages and projects (including Wikidata and Commons) or does it require specifying the database? It would be good to try and save everything if possible even if we can't right away edit those other projects, in particular since the #2 option of translation might not be feasible. -- Green  C  16:24, 10 February 2020 (UTC)
 * , Somebody with better db-fu than myself may have a better answer, but as far as I know, there's no way to do queries across multiple wikis. That's what the "USE enwiki_p" line does, selects the enwiki database. -- RoySmith (talk) 16:36, 10 February 2020 (UTC)
 * On the other hand, you can discover all the wiki databases with .  From there, I could see writing a script which iterates over each one, executes the query there, and combines the result.  Beats me if there's some way to express all that in a single SQL query, however.  -- RoySmith (talk) 16:45, 10 February 2020 (UTC)
 * OK, I've got that going. A total of 64791 rows from 159 wiki databases (including commons and wikidata).  Trivia question of the day: what language wiki links to the US Census more often than enwiki?  -- RoySmith (talk) 17:24, 10 February 2020 (UTC)
 * Ah you beat me to it (and more elegant). I am using Toolforge with  which works but still needed a wrapper program to modify the .sql file for each site. I tried running your .py but unknown import of "toolforge" is that something I can find on Toolforge? --  Green  C  17:43, 10 February 2020 (UTC)
 * Or if you are on Toolforge and can copy the results to  that would be great. --  Green  C  17:46, 10 February 2020 (UTC)
 * It's just a thin wrapper around pymysql. You should be able to do 'pip install toolforge'.  Or 'pip install -r requirements.txt'  -- RoySmith (talk) 17:49, 10 February 2020 (UTC)
 * No write permission on /data/project/botwikiawk/census/, but I put it in /tmp/cross-wiki-links on dev.tools.wmflabs.org. -- RoySmith (talk) 17:59, 10 February 2020 (UTC)
 * Ok file copied, thank you! For some weird reason Toolforge doesn't have 'pip'. -- Green  C  18:30, 10 February 2020 (UTC)
 * It should be in your venv.  .  -- RoySmith (talk) 19:05, 10 February 2020 (UTC)
 * Ah virtual and python.. never got that far (not a Python programmer). Permission denied on pip. Roy, that program is generally useful. A similar request recently came up at WP:URLREQ a user wanted to track down instances of a domain cross-wiki since it was serving malware. AFAIK there is no easy way to search for URLs cross wiki. -- Green  C  20:04, 10 February 2020 (UTC)
 * No, there really isn't. I've been working on a toolforge tool to make it easier off and on for a bit though --AntiCompositeNumber (talk) 23:26, 10 February 2020 (UTC)
 * would it be possible to list the sites with the most factfinder links? Some sites might be fixed with IABot and the rest we can notify them so local bot or manual work can be done. And if AntiCompositeNumber is successful with a transform program. To answer your trivia question I guess Wikidata is the second highest overall, but for Wikipedia sites I guess Sweden (there was a user who made a bot that created millions of articles ). -- Green  C  15:09, 11 February 2020 (UTC)
 * That sounds straightforward. I'll take a look sometime in the next day or two.  Also,, I could probably get some sort of on-line tool working pretty quickly, but don't want to step on your efforts if you're already into that.  Let me know.  Oh, and PS, it's Catalan.  -- RoySmith (talk) 20:25, 11 February 2020 (UTC)

Creating archives
Now there is a list of target URLs (thank you RoySmith and AntiCompositeNumber) the next step is to create the archives. I've contacted Wayback to see if they can determine why the pages won't save correctly. I've also contacted archive.today - pages save correctly there but given the scale want to get their permission and how they want to manage archivals. -- Green  C  18:51, 10 February 2020 (UTC)


 * Archive.today agreed to do archives and they have the list (54k after sort/uniq). --  Green  C  19:33, 10 February 2020 (UTC)


 * Somebody should write an edit filter that catches any new links. Or maybe we just need to do a mop-up pass near the end of March to pick up any late additions. RoySmith-Mobile (talk) 22:48, 10 February 2020 (UTC)
 * yes.. easiest to run your python program again in late march and compare the old and new lists for additions. I'll send to archive.today or manual if not too many. -- Green  C  01:17, 11 February 2020 (UTC)


 * Informed by Archive.today that many links don't work. List here. Click any image for the original URL. Maybe the redirects created by the Census will resolve them. --  Green  C  14:47, 13 February 2020 (UTC)
 * I took a look at the first one. It's in Columbia,_Maryland, specifically:


 * So, this was known to be dead a while ago. In theory it was archived at archive.org, but when I try to access the archive URL, it hangs, with a bunch of errors in the javascript console.
 * Digging a bit deeper, if you search for "Selected Economic Characteristics site:factfinder.census.gov", you can get to https://factfinder.census.gov/faces/nav/jsf/pages/index.xhtml, and if you type "Columbia CDP, Maryland" into the search box, you get to a page which I suspect is what was originally being cited. Pinging User:FlugKerl who I think originally added that citation.  The problem is, this is one of those old-style javascript apps which doesn't store all of its state in the URL.  There's a bunch of cookies dropped under the census.gov domain.  If you delete, for example, the JSESSIONID cookie, the app loses track of the fact that you're looking at Columbia CDP, Maryland.  So, the bottom line is that I suspect many (if not most) of these external links were broken from the get-go, and any attempt at archiving is hopeless without a significant amount of work to recreate the original searches.  Yuck.  -- RoySmith (talk) 16:05, 13 February 2020 (UTC)
 * Exactly. Only the factfinder.census.gov/bkmk/ path is known to be stable. The factfinder.census.gov/servlet/ path sometimes contains usable data, sometimes falls back to search results when there's insufficient or outdated information in the URL, and sometimes doesn't work entirely. In the "By tool" table, any path marked in black is inaccessable and unrecoverable without additional citation information. --AntiCompositeNumber (talk) 01:45, 15 February 2020 (UTC)
 * At this point, the transformation script is about as functional as I can get it. The biggest problem is the lack of data availability: we'll have to rely on archived copies until (unless) the Census Bureau gets around to loading 2000-2010 data. There are instructions in the readme in https://github.com/roysmith/factfinder-migration --AntiComposite (talk) 03:51, 9 March 2020 (UTC)


 * Update The links have been saved at archive.today (54k) .. the next step I will be checking IABot database has an entry for each link and if not create it - this is via API and slow. Then upload the archive.today URLs to IABot. Slow. Then fix the links on Enwiki trying AntiComposite's script.  --  Green  C  03:22, 25 March 2020 (UTC)

Discussions with US Census Bureau
I've been in contact with sombody from the Dissemination Outreach Branch, Census Enterprise Dissemination Services and Consumer Innovation (CEDSCI), U.S. Census Bureau. I'm told that starting April 1st, they are going to be working on "deep link redirects from the American Fact Finder to data.census.gov". It's unclear how this impacts our archiving work. Possibly not at all, but I'm trying to obtain more details. -- RoySmith (talk) 20:22, 11 February 2020 (UTC)
 * So....we know it's definitely going to break, and then maybe magically start working again. --AntiCompositeNumber (talk) 21:51, 11 February 2020 (UTC)
 * Something like this happened with the Dept of Justice website and they were able to redirect maybe half the links as the new site was not a 1:1 map to the old. And the old links were often better than the new, more complete info. Our work to archive the pages while possible is a good idea. --  Green  C  15:06, 12 February 2020 (UTC)
 * , In your discussions, have you found out when the rest of the planned data will hit CEDSCI? FIPS references the 2010 Census Demographic Profile DP-1 table, which isn't available yet. There are also a lot of ACS and PEP links that haven't been migrated either. --AntiCompositeNumber (talk) 16:58, 20 February 2020 (UTC)
 * , Unfortunately, "discussions" (plural) is a bit of an overstatement. I had one exchange, and never got a response to my followup. -- RoySmith (talk) 17:17, 20 February 2020 (UTC)

Ready to add the archives
The archive.today links are loaded into IABot and it is ready to run across all wiki languages (that use IAbot about the top 20). Tomorrow (Saturday) I will set the domain to Blacklisted and begin the IABot queue to process Enwiki, unless there are other thoughts. -- Green  C  12:34, 27 March 2020 (UTC)
 * AntiCompositeNumber's Python script is quite remarkable and I'd like to use it. However it will require a headless browser check to verify transformed URLs are working/live due to uncertainties at Census. Given the scale, this is daunting in time and resources. For now I think we should archive them all and re-visit after Census has had time to settle at the new site and work out bugs. Hopefully they start returning 404s for dead pages. WaybackMedic can unwind archives and replace with new primary URLs.
 * About 3,000 URLs could not be loaded into IABot due to IABots normalization routines that rejected the URLs so I will process those via WaybackMedic.
 * About 2,000 URLs already had archives in the IABot database. Spot checks showed they work, I left them in place and did not replace with archive.today
 * About 57,000 URLs had archive.today links added into the IABot database. Not all of them are for Enwiki.

As expected issue have arisen: -- Green  C  22:19, 28 March 2020 (UTC)
 * 1) In this diff  the source URL is https://factfinder.census.gov/faces/tableservices/jsf/pages/productview.xhtml?src=bkmk however this is not the original URL. There are thousands of URLs exactly like this one, all broken and likely unrecoverable.
 * 2) There is another domain factfinder2.census.gov with over 7,000 links. None of them are not working as far as I can tell, so they will all be dead unless an incidental archive exists.
 * 3) IABot database has a feature of treating http and https as separate records. Even if it had a record for http it won't for https. This is causing trouble where it can't find one or the other. It's not too frequent and WaybckMedic should be able to resolve most of those with time.
 * 4) Most of the existing archives in the IABot database were not working so overwrote those with the archive.today links where possible. Some could not due to IABot refusing the archive so will have to fix those with WaybackMedic.

After 12 days of plugging away I am done with it. This was a huge job with more twist and turns than are worth documenting. Sample diff, repeat 60k+ times with endless variations. -- Green  C  00:01, 13 April 2020 (UTC)
 * , Thank you for diving into this a running with it. You deserve some kind of "Hero of the bit-rot wars, with archivist clusters" barnstar. -- RoySmith (talk) 00:28, 13 April 2020 (UTC)

United States Census 2000 demographics
This is a bit off subject, but rather important. In the beginning, Wikipedia generated demographic sections for all U.S. census places based upon United States Census 2000 data. This was not repeated for the United States Census 2010. The 2000 demographic sections are now obsolete and need to be removed. Will (and can) new demographic sections be generated for United States Census 2020? Yours aye, Buaidh  talk contribs 04:05, 19 December 2020 (UTC)