Show HN: Six Degrees of Wikipedia
sixdegreesofwikipedia.com
sixdegreesofwikipedia.com
* Frontend: React (Create React App)
* Backend: Python Flask
* Database: SQLite
* Web (frontend) hosting: Firebase Hosting
* Server (backend) hosting: Google Compute Engine (it runs fine on a tiny f1-micro instance)
All the code is open source[1] and I'm happy to answer any questions about building or maintaining it!One suggestion I have is that the graph view seems to clutter up pretty fast. Maybe have a slider that increases the length of the lines between the vertices. Also, a SVG export would be cool for visualizing related concepts.
The graph visualization / performance is definitely not ideal. I spent a ton of time trying to make d3 more performant and layout the graph more nicely, but ultimately I just had to cut my losses and go with what I had. I do think there is room for improvement and I'll look into your suggestion, which is something I didn't consider. SVG export is also a great idea!
Easter egg? I never have JS enabled on random websites.
No, of course the word you're after is "tact". (And even as a foreigner, it annoys the heck out of me when people mix them up [which you didn't!], ususally as in "take another tact" when they mean "take another tack" [where 'tack' is a originally a sailing term for flipping the sail to the other side of the boat when going against the wind, IIUC; so the expression means "go in a slightly different direction"].)
I'm just riffing on Heikki's remark about foreign languages: In my primary language, Swedish, "tack" means "thank you" but is also often used for Eng. "please" -- so "Kan du ... , tack?" means "Could you ... , please?".
Rational fundamentalism is not the one ring to rule them all. There is room for love and compassion in the world. I know (painfully well) that Internet forums (and this one in particular) anything but empower empathy, but that doesn’t make it any less true or valuable.
There is room for love and empathy. There really is. Logical, rationalistic supremacy notwithstanding.
Nobody is perfect. We shouldn’t expect anyone to be. Being kind and considerate is not a waste of anyone’s time, it’s not disrespectful nor patronising.
Maybe all of this is not true for OP, maybe they’re so zen they immediately see past their human instinct to attach themselves to their work (a well known and documented human trait). But it can’t hurt to be tactful , just in case they’re not.
I know I personally would’ve felt hurt if that first comment were the reply to something I did. I might, hopefully, have realised that it was, indeed, a useful comment and that I should swallow my pride. And I hope I would have the presence of mind to reply with a smile and a thank you. But it would be a pretense.
Why put each other through that? We can be truthful and tactful. There is no reason to be blunt.
I can understand the desire to unshackle ourselves from the low entropy morass of politeness. It’s fake and not what you really feel, right? The truth shines through anyway, so do them the honour of not sugar coating it, and be straight? I do understand, but hear this: you lack the nonverbal cues to make that incredibly delicate call. Face to face you would see the twitch in someone’s eye, the soft breeze of disappointment whisking along their face. A tear of pain streaking their human heart while they smile and nod and say thank you. You have an incredibly attune radar for empathy, and you would adjust. But when you lose all that, and the medium for your truth is this harsh knife forged from the soulless steel of words, it cuts more sharply than you can imagine.
In a text only medium, I implore everyone on HN: take a moment to consider our humanity. Not just here, but in all threads. Not just of the person we reply to, but of those we speak of. They might read it one day. And they, too, are human.
(I should say the painful irony in this rant is palpable to anyone who knows me :( but I am not proud of it. Perhaps it’s precisely why I feel so strongly. It does, after all, take one to know one.)
This is a slight modification of the principle of charity, something I think is incredibly important and underemphasized, especially for online text communication.
Because, that could be the wrong action to take. Could you, Would you, Will you, I want you to, You should, The project is stupid unless you, etc.
Therefore, the author should communicate well enough to be understood.
It costs nothing to be polite.
The best route is probably to clarify that it seems like a good concept, and you think that adding x and y would be the best features to focus on that would make it even better.
I, of course, am merely propagating the cycle.
So from then on, when I wanted something, I said "please and thank you."
I think this was my first social hack. I just wish it had worked better!
I swear at least once there was more instances of "pls" and thnx" (there seems to be a significant overlap between people who overuse the words and people who don't bother to type them properly, though that may be the linguistic snob in me talking) than all other words combined. It backfired by making the message difficult to read so I binned it and read the next.
[1] https://github.com/jwngr/sdow/commit/6e42e06488a592784e5d3d2...
Any plans to filter by mutual paths?
Can you tell me more about what you mean by filtering by mutual paths?
I should have said mutual connections, my apologies. So if article A connects to B and article B also connects to A. I suppose you could do this mostly client-side, all you need is two searches (one the reverse of the other) and an intersection of the resulting graphs, no?
https://www.sixdegreesofwikipedia.com/?source=Uruguay&target...
I went to the Uruguayan wiki page and found nothing on Myanmar and nothing relating to Uruguay on the Myanmar page.
Awesome project btw, great idea.
Opposite direction: no Myanmar https://www.sixdegreesofwikipedia.com/?source=Uruguay&target...
[1] https://github.com/jwngr/sdow/blob/f0b5a9ebe47ea0eca49d8220a...
Every time a query is made, a bi-directional breadth-first search[3] is run which uses the |-separated incoming and outgoing links and runs a fairly standard BFS algorithm. A lot of the hard work was precomputed, which minimizes the number of required database queries and makes each search respond fairly quickly.
[1] https://github.com/jwngr/sdow/blob/master/database/buildData... [2] https://github.com/jwngr/sdow#database-creation-process [3] https://github.com/jwngr/sdow/blob/master/sdow/breadth_first...
Do you simply do a BFS to find the shortest paths? If so, are you doing any tricks to avoid the path explosion problem?
A* can't be used given that path cost or expected remaining distance is unknown.
Any ideas on how such an algorithm could be used without precomputing the entire graph?
[1] https://github.com/jwngr/sdow/blob/a2699dc95d884ec64a4641630... [2] https://github.com/jwngr/sdow/blob/a2699dc95d884ec64a4641630...
That's an impressive and well thought out performance enhancement, and that the app runs so blazingly fast on sqlite is very impressive.
The way my mind interprets that stack is the database is hosted on firebase while the page is hosted on the server?
Edit: Thank you all for the explanation. I used to think firebase was used as a database. I didn't know one could host front end files there. It seems I still have a long ways to go :)
So, the website files are hosted on Firebase while the backend is hosted on GCE. The database is actually not hosted; it's just a SQLite file stored on my GCE instance.
Is it because of the resources required to run one versus SQLite?
Your app likely would have been easier to write with python/Neo4j than python/SQLite due to Neo4j's query language (incidentally, Neo4j also prefers to use bidirectional BFS for shortest path, and executing the search is a very simple query similar to an SQL query). Neo4j would possibly perform better as well (I'm not sure about that, given SQLite is pretty optimized for reads).
However, as the neighboring comment states, Neo4j is quite resource-intensive. It wouldn't work on any kind of micro instance, I'm pretty sure.
The one difference that mine theoretically would have had is that I think it would be rad to include the paragraph you found the link along the edge in the graph, so you could see a little story.
Also, excluding years and places to make the routes more "interesting" (e.g. longest path under a limit without cycles).
[1] https://github.com/jwngr/sdow/blob/master/website/src/compon...
I've always enjoyed playing 6 degrees myself, so if it gives a link to the first page and names the second page, then only shows the available routes when I'm done, that would be a lot of fun.
I have a couple of "hub" articles that I like to use, but I'd like to see how much more effective I could have been with a tool like this. And if it randomizes my start and end like the placeholder text shows, that makes it even easier.
Thanks for the cool hack. Its nice.
How about representing the destination page as a circle around the whole graph, instead of a node? so that all the paths can be drawn in different directions but still reaching the same page. I somehow feel that it might look more beautiful.
Perhaps I misinterpreted the concept of “degrees of separation”, but I was expecting the site to tell me how to start at page X and get to page Y with the min number of clicks. If you wanted to achieve this, it doesn’t strike me as appropriate to use Bidirectional BFS but IANAL.
I did notice that someone pointed out that they get different results by swapping the order of X and Y. This seems pretty surprising?
Well done again!
> I was expecting the site to tell me how to start at page X and get to page Y with the min number of clicks.
Yup, this is exactly what the site does, and a bi-directional BFS is an efficient way to do it. The special thing about my bi-directional BFS is that I follow outgoing links when searching from the source page while following incoming links when searching from the target page[1].
> I did notice that someone pointed out that they get different results by swapping the order of X and Y. This seems pretty surprising?
This is expected, because it is a directed graph, with the links on Wikipedia being in one direction. Just because page A links to page B doesn't mean page B links to page A.
[1] https://github.com/jwngr/sdow/blob/master/sdow/breadth_first...
https://www.sixdegreesofwikipedia.com/?source=Carnegie%20Mel...
I was looking at the results of going from CMU to my little secondary school in Dublin, Ireland. I saw the results and saw that the last page before my Irish school was "College" and assumed it must be wrong, because how could my tiny secondary school be on the Wikipedia page for "College"? But alas, I was wrong!! I just checked and turns out it IS on the college wiki page!
I also assumed you were looking at outgoing links for both X and Y - that explains a lot.
I am super interested in this, but I have never done any graph theory or searching/planning (I'm EE) - how did you build up all of the incoming links for each wiki page? Are you storing all of this? How much data is that? Thanks for the reply!
Simple question I have is, are you hitting wikipedia api live? or you have dump of the wikipedia and running through it?
If running through dump do you update it regularly or how?
Thanks in advance.
[1] https://github.com/jwngr/sdow/blob/f39398d112fecf7b993c64bd4... [2] https://github.com/jwngr/sdow#data-source
Just a heads up - some of the node colors can be difficult to differentiate for people who are red/green colorblind. Very minor, just wanted to mention it though.
I'm interested in building a fact checker from a wikipedia graph, and your SDOW seems like a great place to start (I'm intending to use an algorithm inspired from researchers at Indiana University http://journals.plos.org/plosone/article?id=10.1371/journal....). I was wondering if your database has a non-GUI API. Is there a URL or something I can hit to get back JSON or XML as a response?
EDIT - I noticed this also applies to the Notes section.
I'm sure there are more classes and tags, but that hopefully should give you a solid place to start.
EDIT - You can also strip out or ignore anything inside of the ordered list for references - <ol class="references">...</ol>
Also, some pages aren't documented in the same way, so something like this page - https://en.wikipedia.org/wiki/X_Window_System - doesn't have any classes or easy way to parse it for the References section even though the Notes section was set up in a more organized way. However, you could take note that the <span> tag contains class="mw-headline" id="References" and the text value is also References and then ignore everything until the next <span> begins.
When two Wikipedia pages both link to each other they are usually related in some reasonable way, but unidirectional links give you things like Wikipedia -> California, which only exists because Wikipedia is headquartered in California, a pretty weak connection.
Other than the fact I have it running on an overburdened tiny VPS, my app is also really fast even though I only do a unidirectional BFS because I use a custom in-memory binary format that's mmapped directly from a file that's only 700MB, and a tight search loop written in D.
[1]: http://ratewith.science/#start=Goldeneye&stop=abbotsford
https://www.sixdegreesofwikipedia.com/?source=Anime&target=O...
Somehow, I didn't expect a one-stop layover in Dubai.
The result was a little more predictable... I guess I shouldn't have had to look it up.
https://www.sixdegreesofwikipedia.com/?source=Anime&target=A...
That adds noise, since articles now automatically use the wayback machine for "archived" links, thus generating many paths that do not really connect topics, just because the text "wayback machine" is part of the link text.
It may be an interesting exercise to find outliers like that and compute paths without those nodes.
I found a ton of 5 degree paths and only a couple of 6 degree ones. Then I pulled out the "big guns" (the dead-end pages category). https://en.wikipedia.org/wiki/Category:Dead-end_pages_from_F...
https://en.wikipedia.org/wiki/Help:Link https://en.wikipedia.org/wiki/Help:Searching
Like I said I spent too much time on this yesterday.
Wikipedia is highly connected. Even pretty darn different things often seem to have only three degrees of separation. For example, here's Ramesses II to Ankylosaurus in three:
https://www.sixdegreesofwikipedia.com/?source=Ramesses%20II&...
After trying a bunch of things, I finally found a fourth-degree separation: William the Conqueror to Ankylosaurus.
https://www.sixdegreesofwikipedia.com/?source=William%20the%...
For those uninitiated, the game was to click the "Random Article" link in the sidebar and count how many links it took to get to Hitler. It is really interesting to see just how big of an event WWII was. Every country article has a section on their involvement or why they were not involved.
After playing with it more, this is pretty fun. I vote that a "degrees from Hitler" score be added to the top of every article. I think it might be an interesting proxy for how esoteric a particular page is.
Found 1 path with 2 degrees of separation from Bitcoin to Adolf Hitler in 1.33 seconds!
Bitcoin -> Austria -> Adolf Hitler
(Look of Category: X exists and add some cutoff based on number of links there.)
Obviously also lists.
Almost anyone alive during WW2 will have a WW2 link. Almost every country is 1 degree from Hitler. Most companies/publications around than will link to Hitler.
Probably trimming top 5% of most linked pages will make for a fun game.
Mathematics -> Quantity -> Multitude -> Counting -> Elements -> Mathematics
[0] https://www.sixdegreesofwikipedia.com/?source=Age%20of%20Enl...
[0] https://www.sixdegreesofwikipedia.com/?source=Consumption%20...
https://www.sixdegreesofwikipedia.com/?source=Mensa%20Intern...
https://www.sixdegreesofwikipedia.com/?source=Meg%20Whitman&...
ಠ_ಠ
Found a no-path!
I managed to go from spud gun -> great depression -> dissolution of the soviet union -> soviet union -> sputnik, but I couldn't get the last step!
Well, rather, it DOES. Maybe the unencoded '/' in the URL (https://en.wikipedia.org/wiki/Sputnik-1_EMC/EMI_lab_model) breaks the 6 Degress of Wikipedia?
https://en.wikipedia.org/wiki/Special:WhatLinksHere/Sputnik-...
However, you can go the other way:
Sputnik-1_EMC/EMI_lab_model
Sputnik 1
Soviet space program
United Nations Committee on the Peaceful Uses of Outer Space
United Nations
Model United Nations
Dwight Schrute
Spud gun
Also I'm realizing after finding that that I could have used the site in this post..."Sorry internet hipster, this little side project requires JavaScript."
here is a quick example of how to get the pages the "traditional way"[FN1]:
#/bin/sh
test $# -eq 2||exec echo usage: $0 source target;
exec curl -H"Content-type: application/json" \
-d '{"source":"'$1'","target":"'$2'"}' \
https://api.sixdegreesofwikipedia.com/paths \
|exec sed '
s/\",/\"\
/g;s/,\"/\
\"/g;s/:{/:\
{/g;s/}/&\
/g;s/\"pages\":/&\
/'
It appears the author is using the Wikipedia API. I did not add any HTML tags, etc. to the output, although this is very easy to do.FN1. The original "web browsers" needed no GUI, no Javascript.
sdow true false
Output: {"isSourceRedirected":false
"isTargetRedirected":false
"pages":
{"161711":
{"description":"Value indicating the relation of a proposition to truth"
"title":"Truth value"
"url":"https://en.wikipedia.org/wiki/Truth_value"}
"228748":
{"description":"Wikimedia disambiguation page"
"title":"True"
"url":"https://en.wikipedia.org/wiki/True"}
"40805040":
{"description":"Wikimedia disambiguation page"
"title":"False"
"url":"https://en.wikipedia.org/wiki/False"}
}
"paths":[[228748,161711,40805040]]
"sourcePageTitle":"True"
"targetPageTitle":"False"}
Edit sed commands to make first line indented: |exec sed '
s/{/\
&/;
s/\",/\"\
/g;s/,\"/\
\"/g;s/:{/:\
{/g;s/}/&\
/g;s/\"pages\":/&\
/'I'd prefer to have a brief technical explanation why Javascript is needed instead of this condescending labeling.
Edit: NoScript is not a luxury for technically minded geeks anymore, it's a necessary protection against tracking, CPU-consuming advertisement and attacks like Spectre/Meltdown and who knows what else Intel has for us.
Parquetry -> Tromeo and Juliet, 508 paths (https://www.sixdegreesofwikipedia.com/?source=Parquetry&targ...). All through Shakespeare.
This isn't really the best measure though, because it only counts # of paths at the minimum depth level.
edit: although I found some deep searches with very few links: https://www.sixdegreesofwikipedia.com/?source=Frank%E2%80%93...
https://www.sixdegreesofwikipedia.com/?source=Six%20Degrees%...
I learned that the Maori people of New Zealand used ochre mixed with fish oil to paint wakas (war canoes), and also as an insect repellent.
"Philosophy" is connected to "Ethiopia" through "Sexism", but I couldn't find that phrase on either page.
https://www.sixdegreesofwikipedia.com/?source=Philosophy&tar...
Maybe both New Zealand and the Faroes reference Italy?
If you view-source the Italy page, you can find a link to both of those countries.
Wikipedia dumps raw database tables in a gzipped SQL format for the English language Wikipedia (enwiki) approximately once a month (e.g. dump from February 1, 2018)...By default, the script grabs the latest dump (available at https://dumps.wikimedia.your.org/enwiki/latest/), but you can also call the database creation script with a download date in the format YYYYMMDD as the first argument.
I'd guess the tool is working off an out of date article.
edit: in fact, the author describes the goal of his project in another comment here: "my goal for the project which is to traverse the links as any human would be able to".
[1] https://www.sixdegreesofwikipedia.com/?source=Facebook&targe... [2] https://www.sixdegreesofwikipedia.com/?source=Narcissism&tar...
Alternately it is directed, except when it doesn't find an easy route and uses an undirected result.
Likewise "Gender Bias" redirects to Sexism.
There used to be a live demo on an AT&T Labs website but it is not available now. There are published algorithms for all the phases of the proposed heuristic, but my recollection is that Yehuda found an efficient, robust implementation of k-disjoint-shortest-paths was not easy.
This is an interesting problem, thank you for making your work available. (I do agree the HTML form placeholders that change rapidly but are ignored when you press the GO button are a little confusing; it took me a minute or two to figure out what was going on.)
[1] https://github.com/jwngr/sdow/commit/6e42e06488a592784e5d3d2...
You'll probably want to choose the start and end pages before you hit that.
Took me a while to realize it didn't "lock in" the suggestions and I had to manually enter it.[1] https://github.com/jwngr/sdow/commit/6e42e06488a592784e5d3d2...
[0] https://www.sixdegreesofwikipedia.com/?source=Hemisphere%20D...
Purell_hack has managed a whopping 9°, based off dkuder's Phinney - https://news.ycombinator.com/item?id=16469620
Clearly this app makes it effortless, you could find some supplier like Recaro actually make the seats in both, even the van. Or you could find some joint venture in Brazil that both companies share, who knows... So I look forward to using this app on the M4 some time soon!
And yes, the graph is not connected (there are both nodes with no outgoing links and with no incoming links), but over 99% of the pages are connected, so the answer would still be interesting and worthwhile.
> Several people were asking about what's known as the "diameter" of Wikipedia, that is, the distance between the two articles furthest apart (the longest shortest path if that makes any sense to you). This was in fact the original goal of the project but it turned out not to be very interesting. Wikipedia has giant "tails", almost linear linked lists of articles that stretch out for 70 links. The worst offenders were the subpages of List of named asteroids as each is only linked from the previous one, and it takes about 70 links to get from anywhere to the last one. So, you find that the two articles furthest from each other are List of asteroids/145701-145800, linked to by List of asteroids/145601-145700, linked to by List of asteroids/145501-145600, and so on for 70 links until you get back to some vageuly normal article. This is far less interesting that I was hoping. Even when I special-cased out that string of 70 boring articles, a new one appeared (I think it was linked pages about administrations of Myanmar or something). Rather than special-casing out reams of articles, I decided to pick a different metric, one that better reflects the structure of wikipedia without arbitrarily removing parts of it.
It appears that the particular tail has been "cut" however.
Why? There were two random examples filled in the boxes. I have to retype them manually?
Really interesting and fun other than that! I'm trying something with 7 degrees, but so far most I could get are 4
*Non-italicised because of the disambiguation suggestions
Philosophy > Knowledge > Fact > Education > Learning > Evidence > Logic
> Ancient Greek > Greek language > Modern Greek > Colloquialism
> Vernacular > Human > Neontology > Biology > Natural science > Science
> Latin > Classical language > Language > Communication > Subject (philosophy)
> Subjective consciousness > Consciousness > Quality (philosophy) > Philosophy[1] https://www.sixdegreesofwikipedia.com/?source=Cheese&target=...
https://www.sixdegreesofwikipedia.com/?source=Double%20J%20%...
(The code may need some tweaks to work with the latest Neo4j version.)
My favorite mentioned which Wikipedia article had the longest article name:
Suzukake no Ki no Michi de "Kimi no Hohoemi o Yume ni Miru" to Itte Shimattara Bokutachi no Kankei wa Dō Kawatte Shimau no ka, Bokunari ni Nannichi ka Kangaeta Ue de no Yaya Kihazukashii Ketsuron no Yō na Mono (https://en.wikipedia.org/wiki/Suzukake_no_Ki_no_Michi_de_%22...)
[1] https://github.com/jwngr/sdow/blob/master/website/src/resour...
This basically quantifies what my wife and I jokingly refer to "rabbit-holing" online. She'll ask me what I'm reading and it will be something totally unrelated to what I said I was coming to look up. And she's always like "how did that happen?" And I never have a good answer. But now I do (if it involves Wikipedia)!
I haven't gotten 5 yet.
Xyloplax turnerae to Pagolo Arsago -- https://www.sixdegreesofwikipedia.com/?source=Xyloplax%20tur...
I love all the little touches, like the fun facts (2.51% of Wikipedia articles don't have incoming links) and UI touches ("wipes brow, I really had to work hard for this one").
Edit: I finally managed to find a 5 degree route! https://www.sixdegreesofwikipedia.com/?source=Taquaral&targe...
[1] https://github.com/jwngr/sdow/blob/a2699dc95d884ec64a4641630...
https://www.sixdegreesofwikipedia.com/?source=Adolf%20Hitler...
It's showing "Bill Gates" and "Mark Zuckerberg" as the hops, but on the start page I don't see links to those.
(Apologies for the subject matter. It was the first thing I thought of, because of a Wikipedia-path-finding game I had heard of before.)
...Further, Haffner claims that other than Alexander the Great, Hitler had a more significant impact than any other comparable historical figure...
However, I wasn't able to find out for sure with a quick browse through the page history.Nobody wants to have to click outside the graph view to change the state of the UI so that Scroll scrolls the page.
(Of course, Ctrl+Scroll is already taken for browser zoom; but hijacking browser zoom in this situation is more acceptable than hijacking vertical scroll).
https://www.sixdegreesofwikipedia.com/?source=Late%20capital...
I'm guessing it's part of an older copy of the page? Is there an easy way to search revisions?
I have built a very similar project some time ago and although it's not as beautiful and organized as yours, it's pretty fast! It's in Portuguese, but if any of you guys want to check it out: http://wikigraph.russoft.tech/
Context: https://www.youtube.com/watch?v=MuDLw1zIc94
Addendum - I thought it was a really cool idea, and you made it look amazing! Well done!
[0]: https://www.sixdegreesofwikipedia.com/?source=Riemann%20mani...
https://www.sixdegreesofwikipedia.com/?source=Roopmati&targe...
https://www.sixdegreesofwikipedia.com/?source=Fragile%20X%20...
https://www.sixdegreesofwikipedia.com/?source=Apocalyptic%20...
https://www.sixdegreesofwikipedia.com/?source=Red%20Solo%20C...
If the creator happens to read this comment, I'd love to compare notes!
It was always fun reviewing each round and seeing how everyone got to the destination.
[1] https://github.com/jwngr/sdow/blob/a2699dc95d884ec64a4641630...
Challenging part is keeping track of already visited pages to break cycles - some variant of a Bloom filter will help.
Just quck question, I have found that in Initial setup docs:
> Do not use Debian GNU/Linux 9 (stretch) due to degraded performance.
Could you elaborate or give some reference about that issue please? Thanks.
[1] https://github.com/jwngr/sdow#database-creation-process [2] https://lists.debian.org/debian-kernel/2017/12/msg00265.html
Right now it prompts you to enter something if you enter nothing in.
[1] https://github.com/jwngr/sdow/commit/b9164b4455661d7775aeb78...
However, 5 degrees between Emacs and Vim!
5 degrees if you pick Vim (disambiguation page). If you pick Vim (text editor) you get 1 degree. Which is interesting, since Vim (disambiguation page) links to Vim (text editor).
Found 209 paths with 3 degrees of separation from Judge Roy Bean to Unit 731 in 5.35 seconds!
I know you're getting swamped by feature requests, but a button to swap the endpoints would be great. In searching for ever bigger degrees of separation I found myself manually swapping them a lot to see the difference. It could also lessen some of the confusion expressed in this thread about whether these should be different at all.
As for how far I've gotten: I've found finite degrees all the way up to seven [1] and also pages with no path from one to the other [2]. I have yet to find a doubly-untraversable path or anything with a degree between seven and infinity, and I suspect the latter to be impossible, especially considering Goldbach's Extremely Strong Conjecture [3].
[1] https://www.sixdegreesofwikipedia.com/?source=Ramjohn&target...
[2] https://www.sixdegreesofwikipedia.com/?source=Coln%20Rogers&...
Limit and colimit of presheaves -> Nichkesaisk Formation
No way this is going to be addictive. Disappears for days
Edit: I finally got 4 steps! Clitoris->Dictation
I am a child.
Found 87 paths with 5 degrees of separation from Asteroid family to SIX
Found 460 paths with 4 degrees of separation from Imaginary unit to Borscht
Found 460 paths with 4 degrees of separation from 433 Eros to Shooting of Oscar Grant
Found 571 paths with 6 degrees of separation from Sepulchre (comics) to Separation
"Sorry internet hipster, this little side project requires JavaScript."
These kinds of condescending messages towards people concerned with privacy aren't going to win you any points here.
https://www.sixdegreesofwikipedia.com/?source=Firebase&targe...