Difference between revisions of "Open Problem Library"
Line 13: | Line 13: | ||
$ cd /opt/webwork/libraries |
$ cd /opt/webwork/libraries |
||
$ cvs -d :pserver:anoncvs@cvs.webwork.rochester.edu:/webwork/cvs/asu co database_problems |
$ cvs -d :pserver:anoncvs@cvs.webwork.rochester.edu:/webwork/cvs/asu co database_problems |
||
+ | |||
+ | Courses will also look for problem libraries at /opt/webwork/libraries/ProblemLibrary, so create a symbolic link too: |
||
+ | |||
+ | $ ln -s /opt/webwork/libraries/database_problems /opt/webwork/libraries/ProblemLibrarr |
||
If you are running WeBWorK 2.3.x, you must create a <code>ProblemLibrary</code> database on your MySQL server. (<strong>*****</strong> represents the MySQL root password.) |
If you are running WeBWorK 2.3.x, you must create a <code>ProblemLibrary</code> database on your MySQL server. (<strong>*****</strong> represents the MySQL root password.) |
Revision as of 13:30, 14 May 2008
The National Problem Library contains problems from several of the File Based Problem Libraries, including all of the problems from the Arizona State, Rochester, Cal State Long Beach, University of Virginia libraries. It also contains most, if not all, of the problems from Union College, College of New Jersey, Dartmouth, Ohio State, Northern Arizona University, and Indiana University.
In addition to merging these problem collections into a single collection, WeBWorK provides a different interface to these problems. Problems in the NPL are marked internally with metadata, and instructors can search for problems on the basis of this data. This mechanism is built into WeBWorK's library browser. In particular, one can search hierarchically by course, chapter, section. To a limited extent, problems have been indexed against sections of textbooks in which case an instructor can also search for problems on that basis. WeBWorK stores this information in a database, so part of the installation involves loading metadata into the database.
Obtaining the NPL
First, make sure you have an /opt/webwork/libraries
directory:
$ mkdir -p /opt/webwork/libraries
The database problem library can be downloaded from the ASU CVS repository.
$ cd /opt/webwork/libraries $ cvs -d :pserver:anoncvs@cvs.webwork.rochester.edu:/webwork/cvs/asu co database_problems
Courses will also look for problem libraries at /opt/webwork/libraries/ProblemLibrary, so create a symbolic link too:
$ ln -s /opt/webwork/libraries/database_problems /opt/webwork/libraries/ProblemLibrarr
If you are running WeBWorK 2.3.x, you must create a ProblemLibrary
database on your MySQL server. (***** represents the MySQL root password.)
$ mysql -u root Password: ***** > CREATE DATABASE ProblemLibrary; > GRANT SELECT on ProblemLibrary.* TO webworkWrite@localhost; > quit Bye. $
If you are running WeBWorK 2.4.x, this is not necessary as the NPL indexes are stored within the main webwork
database.
Configure WeBWorK to access the problem library. The settings are in global.conf
:
For WeBWorK 2.3.x:
variable | description |
$problemLibrary{root} |
Path to database_problems directory. Should be /opt/webwork/libraries/database_problems .
|
$problemLibrary{version} |
Version of the problem library database. Should be =2=. |
$problemLibrary{sourceSQL} |
Name of the database. Should be ProblemLibrary .
|
$problemLibrary{userSQL} |
Username to use when connecting to the database. Can usually be left as $database_username .
|
$problemLibrary{passwordSQL} |
Password to use when connecting to the database. Can usually be left as $database_password .
|
For WeBWorK 2.4.x
variable | description |
$problemLibrary{root} |
Path to database_problems directory. Should be /opt/webwork/libraries/database_problems .
|
$problemLibrary{version} |
Version of the problem library database. Should be =2=. |
$problemLibrary_db{dbsource} |
Name of the database. Can usually be left as $database_dsn. |
$problemLibrary_db{user} |
Username to use when connecting to the database. Can usually be left as $database_username .
|
$problemLibrary_db{passwd} |
Password to use when connecting to the database. Can usually be left as $database_password .
|
Finally, populate the database:
For WeBWorK 2.3.x:
Run the loadDB2
script to populate the database. This script must be run from the database_problems
directory.
$ cd /opt/webwork/libraries/database_problems $ ./loadDB2 What is the root password for mysql? ***** Mysql database reinitialized Converting data from tagged pgfiles into mysql. $
For WeBWorK 2.4.x:
Run the NPL-update script to populate the database. This script is located in the webwork2/bin
directory and may be invoked from anywhere.
$ /opt/webwork/webwork2/bin/NPL-update Mysql database reinitialized. Reading in textbook data. Converting data from tagged pgfiles into mysql. Number of files processed: 100 200 300 400 500 600 700 800 900 1000 ... Done. $
There is no need to add symlinks to course templates
directory, as is necessary with file based Problem Libraries. It is done automatically.
Browsing the NPL
Log into a WeBWorK course and select Library Browser from the links menu. On the resulting screen, click the Problem Library button.
Updating the NPL
The CVS repository for the NPL is updated as problems are added, additional metadata is added, or problem bugs are fixed. So, it is a good idea to update your copy of the NPL periodically, say once per semester.
To update, run the cvs update
command to download the latest versions from our server. Then, re-run loadDB2
(WeBWorK 2.3.x) or NPL-update (WeBWorK 2.4.x).
$ cd /opt/webwork/libraries/database_problems $ cvs -q update -dPA $ ./loadDB2 What is the root password for mysql? ***** Mysql database reinitialized Converting data from tagged pgfiles into mysql. $
Contributing to the NPL
If you have written new problems, you might like to contribute contribute them to the NPL so others can benefit from them as well.