Message Boards Message Boards

7
|
20402 Views
|
7 Replies
|
14 Total Likes
View groups...
Share
Share this post:

Collaborative packages organized like Wikipedia

Posted 12 years ago
Hello, Wolfram Community! This is a continuation of a discussion we've been having the past week on the Mathematica Stack Exchange site, which is a continuation of a discussion we were having on the Wikidata mailing list linked therein: Collaborative packages organized like Wikipedia

The basic idea is to collaboratively develop packages associated with Wikipedia articles. The current plan is to just start by using wiki pages and then retreat to a more constrained hosting environment as we run into problems. To kick things off last night I was reading the "Solar cycles" article, and I noticed it has a plot (that hasn't been updated in a few years) that shows the daily total solar irradiance measurements for the past couple of decades. So I added some code to import and retrieve the TSI for a specific date from the World Radiation Center site. The current guidelines for relevance are any code that can be used to enhance, generate, or verify content in the associated Wikipedia article: http://en.wikipedia.org/wiki/User:Wakebrdkid/Wikicode

Anyone can now go expand that code or add their own (even without registering). The impression I've been getting is that people are interested in developing packages that extend the standard Mathematica library like this but don't have time. I do have a lot of spare time, so for now it just provides an outlet for me to organize and integrate code I write or find.
POSTED BY: Michael Hale
7 Replies
Bump. This is a really cool idea.
POSTED BY: Taliesin Beynon
This is a great idea, and something we hope to be able to ultimately facilitate here on the Community. In the meantime, though, have you checked out what people are working on on GitHub? There are some great projects being collaboratively developed over there... and of course, I'd love to see more!
POSTED BY: Dan Newman
Posted 12 years ago
I've just skimmed through a few pages of the Mathematica projects on GitHub. I'll look through the rest in the next few days, but I already saw a few that I think contain functionality that would be more discoverable and better leveraged if it was organized in packages associated with Wikipedia articles. I'm certainly open to hosting the project on GitHub once we have some momentum. I was just starting with subpages of my Wikipedia userpage to minimize barriers to entry for people that want to contribute. Obviously, software projects are less resilient to vandalism than natural language articles in an encylopedia though (although I think some sort of wiki-model could be used for software development with appropriate constraints that wouldn't require pre-approval of all participants). I plan to just start making small contributions once or twice a week to the project for now. We have lots of existing code sources (blog posts, Stack Exchange answers, answers here, etc) we can pull from to start integrating valuable functionality that we already know about though to make it easier to use in the future. I have several specific areas I'm interested in working on first. For example, there are lots of computational chemistry simulations that I like to do that would be easier to initialize, modify, run, and visualize with a library organized like this. I have a simple notebook (available on my wiki page) that lets me browse article categories by popularity, and sometimes I choose fun coding projects by sifting through the computer science articles by popularity until I come to an article describing something Mathematica can't do out of the box.
POSTED BY: Michael Hale
Great ! This is in relationship with the discussion launched in the Mathematica online group: "Building the corpus of network computer science (NCS) with Mathematica". Indeed, your suggestion regards not only cooperative packages but also cooperative documentation and cooperative (online) books made of Mathematica notebooks. Astronomers have been working that way since the early nineties, thus sharing data, papers, models, programs…

Major questions are: which user interface would support such a feature: probably some hybrid of an operating system (with document organization, access rights, sharing rules…), of a website and of project management software. Which (desktop or other) metaphor should be used to manage and visualize public, shared or personal documents, to focus on information or knowledge rather than files? Would it be possible to put packages or notebooks on the web and directly access them from within Mathematica; actually, this is already partly possible with Import but issues remain with packages that call other ones or with notebooks linked by hyperlinks. Would it be possible to treat the set of collaborative packages and their documentation simply as an extension of the set of standard and installed packages, and to reach them through the documentation center? Would it be possible to put online courses, textbooks, research papers or books on the web and reach them directly through the documentation center?

Et caetera. Let us continue this discussion !
POSTED BY: Remi Barrere
Posted 12 years ago
If I quickly glance at the "Computer networks" and "Computer networking" categories on Wikipedia I can think of a lot of functionality that would fall under the scope of this collaborative library. Making it easier to run sophisticated simulations is a key personal motivator for this project. We could use the articles about specific network equipment (historical and modern wires, routers, etc) as scaffolding and inclusion guidelines (regarding significance) to expand the Modelica library to higher-level objects in this domain. Many computations will remain outside the scope of Wolfram Alpha due to the requirements to limit freely available server-side computation times, so there is definitely the need for efforts to make significantly more advanced client-side libraries. I also think to match the scope of Wikipedia it will take a collaborative, open-source effort.

There is also a lot of data in those articles that should be made computable for purposes outside of simulations. The advantage of this project compared to DBpedia and Wikidata is that you have a lot more flexibility in how to represent data associated with articles when you are using a full programming language (especially a homoiconic one as expressive as Mathematica) as compared to just tables.

Leonid Shifrin on the Stack Exchange site has started writing some code to load packages that people post on GitHub. He provides links to it in his comments in the discussion linked in the first post. I'm not convinced GitHub is our ideal host because you either have to pre-approve contributors to a repository or every new editor causes a new project fork when using Gists. If we use Wikipedia articles as a design scaffold it helps to resolve a lot of potential naming, discoverability, modularity, encapsulation, and significance for inclusion issues. I can see a spectrum of collaboration approaches that might work for this project. Maybe we could just start with a few small utility functions to periodically run all of the tests on the wiki pages and then automatically revert the articles to the last known good state if a break occurs. Maybe we could use a proof-of-work system similar to Bitcoin that shows you have already verified that your check-in works on a recent revision of all of the test cases before a check-in is allowed. I think for documentation a traditional wiki would work. I kind of like the idea of extending the functionality of something like $Path to support URL's for web-based package repositories. Then we could just use Needs with a URL to declare dependencies like we already do for ordinary packages.

I was just at a beach a month ago, but I'm willingly being dragged to another one for a few days tomorrow. However, you mentioned astronomy, so I think I will add a fun, small update this week to support approximate solar irradiance computations for various planets at different times using the inverse-square law and AstronomicalData.
POSTED BY: Michael Hale
Posted 12 years ago
I added some code to do approximate total solar irradiance computations for other planets to Solar cycle. Now there is a test to find the TSI for Mars on the first day of 2020. I'm certainly open for suggestions on what to add next if people have specific requests but don't have time to contribute or merge their code. I should be able to do another contribution before the end of the week.
POSTED BY: Michael Hale
Posted 12 years ago
I started Sunlight. Now you can compute the solar irradiance for specific ranges of wavelengths. I'll do another contribution in the next few days.
POSTED BY: Michael Hale
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract