Maplesoft launched a new application center on its website on April 2, 2009. One objective of the update was to make it easier for visitors to find great content for both Maple and MapleSim. We wanted to make sure that all pages list the best applications first. While on many pages, including the home page, the MapleSim content page and the Tips & Techniques page, our editors can control the order of the applications, with almost 2000 applications, editors cannot rank all of the applications manually.
Fortunately, by simply using the Application Center, our users have helped to rank all of the rest of the applications. We can use statistics such as page views, downloads and user rating to calculate the “popularity” of applications, thus presenting the most interesting ones first to our readers.
Here are the statistics available for us to calculate the popularity:
- v - The number of times the application details page has been viewed
- d - The number of times the application file has been downloaded
- a - The average of all user ratings the application has received
- nr - The number of times the application has been rated
- days - The number of days since the application was published
I used Maple to take these statistics and create a function that will calculate a popularity score for each application. Maple’s embedded components made it easy to experiment with various functions and see how the popularity value changed as I modified each of the relevant statistics. This application is the document that I used to create the popularity function:
You can open the document in Maple and experiment with the embedded components to see how the popularity score changes as you modify the values such as average rating, number of downloads and age. The values are updated in real-time as you work with the components.
As you can see, the popularity score is divided by the number of days since the application was published. This is because we want newer applications to be weighted much higher. However, interesting applications that are older can continue to receive a high popularity score as well.
Great applications will get a large number of high ratings from users. And of course, will continue to be viewed and downloaded. So their popularity value continues to stay high, while applications with lower ratings or fewer downloads will have their score drop off.
We have found that this method is doing a great job of bringing the best applications to the top of the list. As the new application center grows in usage, we are taking in great feedback on how we can continue to improve this algorithm.