Arbital path

When a user wants to learn a par­tic­u­lar con­cept, Ar­bital can use the ex­ist­ing “re­quires” and “teaches” re­la­tion­ships to gen­er­ate a list of pages for the user to read. This list will pre­sent pages in or­der, so that the reader can build on the knowl­edge they already have, and by the end of it the reader will have all the nec­es­sary re­quire­ments to un­der­stand the con­cept they are try­ing to learn.

The algorithm

It will be eas­ier to cre­ate paths if you un­der­stand Ar­bital’s un­der­ly­ing al­gorithm. Here are the key steps:

  1. Gather the list of the req­ui­sites the user wants to learn.

  2. Re­move the ones the user already knows.

  3. For each re­quire­ment, find a page that teaches it and add it to the path. (There is a some­what com­plex scor­ing func­tion for pick­ing the best teach­ing page.)

  4. For each of those pages, take their re­quire­ments and re­peat from step #2.

  5. Once the en­tire tree is gen­er­ated, Ar­bital lin­earizes it, so that ev­ery req­ui­site is taught be­fore pages that re­quire it. (If there are de­pen­dency cy­cles, they are bro­ken ar­bi­trar­ily.) Note that as long as the re­quire­ment con­straints are satis­fied, the pages can oth­er­wise ap­pear in any or­der.

On the /​learn/​ page the re­sult­ing pages are dis­played in a se­quence. If you want to see the un­der­ly­ing tree struc­ture, use the ⋮ menu to switch the view. It should make it more clear why the al­gorithm chose cer­tain pages in cer­tain or­der, and you can also ex­plore the al­ter­na­tives.

For a demo, take a look at: Bayes’ rule: Guide.


Here are a few likely is­sues you might run into and tips on how to ad­dress them.

The or­der of the pages is not cor­rect:

  • If it makes sense, add more re­quire­ments to the pages you want to come later in the path.

  • Take a look at the learn link guide to see how you can man­u­ally spec­ify the or­der.

The al­gorithm is pick­ing an­other page in­stead of yours:

  • This is tech­ni­cally a fea­ture. If both pages teach a req­ui­site, then they should be in­ter­change­able. If the other page is lack­ing a re­quire­ment, you can add it. All things be­ing equal, the al­gorithm prefers to pick the page with fewer re­quire­ments.

  • Take a look at the learn link guide to see how you can man­u­ally re­quire your page to ap­pear on the path.

If all else fails, re­port your is­sue to us, and we’ll help you!