OxCLIC_MDID
Contents
Overview
MDID is a web application designed to deliver digital images for Teaching and Learning. It was designed and developed at James Madison University and has been continually refined since 1998. It is used by around 80 colleges and made available under an open source GPL license. It has been customised to run within Oxford University's authentication. {OxCLIC_MDID_server
From the MDID site http://mdid.org/
"The Madison Digital Image Database is an online image database and multimedia instructional system designed to create and show Internet-based lectures using digitized images. The system permits instructors to remotely generate "slideshows", which can be annotated, placed online for student study, or archived for testing or future use. Though many image databases provide flexible faculty and student access to online images, those systems generally do not provide a tool via which faculty can teach and student can learn. MDID brings the digital image and data library into the teaching and learning process, in and outside the classroom."
- Remote Collections
- Personal Images
- IPTC Injection
ImageViewer:classroom application
- Integration with RLG CAMIO
- Image Moderation
- Support for multiple collections
- Custom catalog data structures
- Search and browse functions
- Cross-collection searching
- Personal collections in "My Images"
- Slideshow light table
- Tools for managing slideshows
- User image notes and annotations
- Web-based slideshow viewer
- Packaged slideshows for offline presentation
- Printable flashcards
- Tools for managing user accounts and authentication
- Data exchange through XML
OxCLIC MDID resources and documentation
Setting up MDID to work with Oxford Authentication and Authorisation
Full documentation on the System Administrator steps to running MDID at Oxford OxCLIC_MDID_server
Customising MDID look and feel - OxCLIC_MDID_customising
Connecting between collections at Oxford - OxCLIC_remote_collections
Importing material from a catalogue into MDID
An overview of importing material catalogued in Portfolio into MDID - OxCLIC_MDIDimporting
Further References
The main MDID website http://mdid.org/
A-Z list of all pages/topics on MDID - http://mdid.org/mdidwiki/index.php?title=Special:Allpages
The MDID web site has a series of //mdid.org/mdidwiki/index.php?title=Tutorials:tutorials, online videos and guide books for both user and administrator.]
http://mdid.org/mdidwiki/images/b/bb/MDID2CuratorWorkshop.pdf
Importing images and catalogue metadata into MDID
The Curator Workshop manual
The Curator Workshop manual available for the MDID web site is a key guide for importing, administrating and maintaining collections in MDID.It covers the step by step process of converting and moving a .csv metadata catalogue (e.g. Exported from Portfolio) and the associated images into MDID.
Material can be imported one at a time via the browser. However this process is too slow and time consuming for more than a few odd images. MDID has support for multiple images and their catalogue information being imported through a simple batch off-line import process on using MDID tools on the server. The MDID Curator Workshop manual, section 3 and 4 explains the step by step process for doing this. Briefly the steps are
- Create a new empty collection in MDID
- Convert the .csv metadata file to XML via a MDID helper tool ( This step may become obsolete after version 0.7 )
- Import the XML file into MDID.
- Use the MDID image importer tool to import the images
The Curator workshop manual - http://mdid.org/mdidwiki/images/b/bb/MDID2CuratorWorkshop.pdf
Further OxCLIC details of importing a catalogued collection into MDID is in OxCLIC_MDIDimporting
An visual overview of how image material can be added to MDID
Suggestions for work by OxCLIC to improve MDID
Work for ACDT
There is a fair amount of IIS and ASP work that could be done locally.
Investigate running MDID under WebAuth, probably using the new IIS module rather than the proxy solution WebAuth]. This requires that we:
- Purchase a blade server with a large hard drive
- Install a windows server on it.
- Install MDID onto the server
Configure and test WebAuth under IIS
Modify MDID such that it utilises WebAuth (login page accessed by https, remaining pages accessible by standard http as per WebLearn - I have no idea whether this is remotely possible under IIS or ASP )
- Determine whether there is any point in drawing on the oxford LDAP information, and if so implementing this ( or whether we can make this information available to departments outside OUCS)
- User testing of the MDID interface to determine its useability and accessibility. This should probably be the first task undertaken, to see how well end users are able to comprehend MDID.
- Perhaps rework the search interface to be a bit more friendly to end users rather than cataloguers.
- Add in thumbnails to search/browse results. This should be a quick and easy task.
- Add a 'browse by thumbnail' option.
Investigate the feasibility of guest access to the collection by default, offering unregistered users access to items in catalogues based upon each item's Rights field. This will be tied in with the first item above, WebAuthing the server.
- Produce a wizard for publishing a slideshow/collection from the private sphere to the public sphere, based upon a Rights field within the collection metadata as above.
Work for MDID Developers
rewrite the import script to generate better XML files.
MySQL database, table and column names have certain restrictions:
max Length 64 characters May not end with a space, and may not contain the characters: ‘/’, ‘\’, ‘.’
The utility currently converts field names from the CSV file into XML element names. XML element names have a different set of restrictions:
- Names can contain letters, numbers, and other characters
- Names must not start with a number or punctuation character
- Names must not start with the letters xml (or XML, or Xml, etc)
- Names cannot contain spaces
- Names cannot contain the : (colon) character as this has a special meaning.
This means that it is inappropriate to convert column names that could contain spaces and other characters into XML entity names. Rather the solution would be to do the following
CSV file: Title,Description,ID,File Name,DC:Date.created,Author/Creator,Catalogued By, etc.
The headers should be made MySQL-safe by removing / \ and . from the column names and limiting the length to 64 characters. The whole file should be made XML safe by converting < > & to < > and & respectively.
<data>
<row>
<column>
<name>Title</name> <content>The Christmas Album</content>
</column> <column>
<name>Description</name> <content>Textual description & information</content> # & converted to &
</column> <column identifier="Y"> # use an attribute to show that this is the Identifier field?
<name>ID</name> <content>ARTH_aa9999</content>
</column> <column resource="Y"> # use an attribute to show that this is the resource field?
<name>File Name</name> # spaces are allowed in MySQL column names. <content>ARTH_aa9999.jpg</content>
</column> <column>
<name>DC:Date_created</name> # . converted to _ <content>Not > 50 years ago</content>
</column> <column>
<name>Author_Creator</name> # / converted to _ <content>Nana Mouskouri</content>
</column> <column>
<name>Catalogued By</name> # spaces are allowed in MySQL column names. <content>Jonathan's Mum</content>
</column>
</row>
</data>
MDID Work Packages
Work Packages for ACDT
- Installing it on a new OUCS server
- Authentication
- Authorisation
- Customisation
- External work by the US MDID developers
MDID under WebAuth
Any authentication work needs to be designed and documented in a way that the goal is a department or division can install MDID and the Authentication work as a complete package.
This work is
Authentication
Stanford have a IIS WebAuth solution. Update Aug 2006: It has been customised to run within Oxford University's authentication. Configuaration documentation for server setup and also changes needed to the MDID code - see here {OxCLIC_MDID_server
- MDID Authentication documentation
<http://mdid.org/mdidwiki/index.php?title=Authentication_section>
- MDID Single Sign-ON mechanism ( N.B. Very different to how Oxford SSO works )
<http://mdid.org/mdidwiki/index.php?title=Single_Sign-on_Integration>
Authorisation
LDAP work
Some work could be done on pulling in LDAP user ID information after gaining the WebAuth username for the test system.
Is there a way that we could pass any group or attribute details from the LDAP from within OUCS or if the server is located outside of OUCS. Yes, perhaps using the single sign-on method built into MDID. This trusts another server to be the authentication stage and to pass to it the username and IT attributes such as roles. If this trusted server was in the OUCS domain then it could have access to the LDAP details. The mechanism suggests that this trusted MDID auth server would be able to support multiple instances of MDID. this federated set-up might just be to difficult to support in terms of resources and expertise and the central model might win out.
MDID has an LDAP authentication configuration script where you specify the IP address of the LDAP server but at first glance it looks like it uses LDAP to cover both authentication and authorisation. Can we decouple it presuming the authentication is done elsewhere, could this be built in as a config script for the application.
Customisation
a) Notes and Annotations / Browsing and Searching
Gathering user requirements might discover some needs here especially for the non-HOA users. They may wish to template out the search display in some way. Although I believe each individual collection has different fields displayed depending on the preferencess for those fields.
b) Video and multimedia support
We need to gather some Oxford requirements for video and audio and see how they map to the new features in this area coming shortly within MDID
The developer has indicated that there is a draft version with support for media player on the website for pulling in Podcasts from another server.
c) Linking to Weblearn
Is there any work to be done here? SSO obviously helps, simple links between the two would help, the slideshow links can be placed in the VLE for student access. What would be a standard use case for this.
d) The ability to have a public open version a collection would appeal to research projects who want a quick fix for getting visual material such as research collections or digitisation projects on the net with open access and with a search interface. At the moment you can do this with MDID as guest access to the collection but there isn't a thumbnail display view once you are in, just a Search and/or Browse view.
External work by the MDID developers
a) Adding authentication config script to the bundled version of MDID that tells it to check the WebAuth usernname session variable to see if someone is login in. i.e when they click login it uses a different script for checking credentials. (LDAP look up is difficult here in a federated model.)
MDID under Linux/Mac OS X: Fun and Games
It is apparently possible to run MDID under Linux by making use of the MONO] software. MONO is a port of ASP to Linux, and includes an apache module mod_mono that will allow ASP pages to be run under apache httpd.
The basic process should be as follows:
- Obtain and install MONO for your platform I used the Mac OS X Framework installer, and it worked very nicely, and includes xsp, so you don't need to worry about installing that.
- Install mod_mono into your current apache setup. This was essentially a case of download, ./configure make and make install, I just had to point it to the appropriate apxs ( /opt/apache2/bin/apxs under OSX ) and apr-config (/opt/apache2/bin/apr-config) and tell it where to install ( /opt/apache2 )
- Install nant on your system (requires pkg-config to be installed, and that you set PKG_CONFIG_PATH=/path/to/your/mono/installation/pkgconfig/directory and export $PKG_CONFIG_PATH before running make
- The current runtime framework 'mono-2.0' is not correctly configured in the NAnt configuration file.:
NAnt.Core.BuildException: The current runtime framework 'mono-2.0' is not correctly configured in the NAnt configuration file. ---> Unable to locate 'mono' module using pkg-config. Download the Mono development packages from http://www.mono-project.com/downloads/.: NAnt.Core.BuildException: Unable to locate 'mono' module using pkg-config. Download the Mono development packages from http://www.mono-project.com/downloads/.
I also had to edit the nant Makefile:
- install: bootstrap # $(NANT) -f:NAnt.build install -D:install.prefix="$(prefix)"
- $(NANT) -f:NAnt.build install -D:install.prefix="/usr/local"
- * unpack MDID under your apache setup
set config.xml <database><upgradeable>true</upgradeable></database>
- use the 'nant' tool to compile MDID into the necessary dll files by running 'nant go' in the MDID directory. I am currently trying to sort out the following error:
[csc] Starting '/Library/Frameworks/Mono.framework/Versions/1.1.13.8/bin/mono ("/Library/Frameworks/Mono.framework/Versions/1.1.13.8/lib/mono/2.0/gmcs.exe" @"/var/tmp/tmp4b361d76.tmp")' in '/Library/WebServer/ASP/MDID/lib/packages' [csc] /Library/WebServer/ASP/MDID/lib/packages/seclib-1.0/seclib/Security/Ssl/Tls1/ExpansionDeriveBytes.cs(116,11): error CS0104: HMAC' is an ambiguous reference between System.Security.Cryptography.HMAC' and `Org.Mentalis.Security.Cryptography.HMAC' [csc] Compilation failed: 1 error(s), 0 warnings BUILD FAILED - 0 non-fatal error(s), 1 warning(s) /Library/WebServer/ASP/MDID/lib/packages/default.build(89,4): External Program Failed: /Library/Frameworks/Mono.framework/Versions/1.1.13.8/lib/mono/2.0/gmcs.exe (return code was 1): NAnt.Core.BuildException: /Library/WebServer/ASP/MDID/lib/packages/default.build(89,4): External Program Failed: /Library/Frameworks/Mono.framework/Versions/1.1.13.8/lib/mono/2.0/gmcs.exe (return code was 1) in <0x00454> NAnt.Core.Tasks.ExternalProgramBase:ExecuteTask ()
This appears to be because nant is building against the mono 2.0 framework, rather than the 1.0 framework. The only way that I can see to alter this setting is by editing Nant.exe.conf and changing <platform name="unix" default="auto"> to <platform name="unix" default="mono-1.0"> and then running "nant go' again - all seemed to work.
- use apache or mono's xsp webserver to configure the database via a web browser... unfortunately after entering the username and password Apache hengs, or returns a 500 Error, and trying the same thing under xsp also gives a hang or a 500 error, and the following output
- ancalagon:/Library/WebServer/ASP/MDID/wwwroot jmiller$ xsp xsp Listening on port: 8080 (non-secure) Listening on address: 0.0.0.0 Root directory: /Library/WebServer/ASP/MDID/wwwroot Hit Return to stop the server.
- * (/Library/Frameworks/Mono.framework/Versions/1.1.13.8/lib/xsp/1.0/xsp.exe:4226): WARNING **: _wapi_handle_unref: Attempting to unref unused handle 0x51
- * (/Library/Frameworks/Mono.framework/Versions/1.1.13.8/lib/xsp/1.0/xsp.exe:4226): WARNING **: _wapi_handle_unref: Attempting to unref unused handle 0x50
- * (/Library/Frameworks/Mono.framework/Versions/1.1.13.8/lib/xsp/1.0/xsp.exe:4226): WARNING **: _wapi_handle_unref: Attempting to unref unused handle 0x50
- * (/Library/Frameworks/Mono.framework/Versions/1.1.13.8/lib/xsp/1.0/xsp.exe:4226): WARNING **: _wapi_handle_unref: Attempting to unref unused handle 0x51
- * (/Library/Frameworks/Mono.framework/Versions/1.1.13.8/lib/xsp/1.0/xsp.exe:4226): WARNING **: _wapi_handle_unref: Attempting to unref unused handle 0x51
- * (/Library/Frameworks/Mono.framework/Versions/1.1.13.8/lib/xsp/1.0/xsp.exe:4226): WARNING **: _wapi_handle_unref: Attempting to unref unused handle 0x51
- * (/Library/Frameworks/Mono.framework/Versions/1.1.13.8/lib/xsp/1.0/xsp.exe:4226): WARNING **: _wapi_handle_unref: Attempting to unref unused handle 0x51
System.Threading.ThreadAbortException: Thread was being aborted in <0x001d8> System.Web.UI.Page:ProcessRequest (System.Web.HttpContext context) in <0x00000> <unknown method>
in (wrapper xdomain-dispatch) Mono.WebServer.XSPApplicationHost:ProcessRequest (object,byte[]&,byte[]&,int,long,int,long,int,string,string,string,string,byte[],string)
in (wrapper xdomain-invoke) Mono.WebServer.XSPApplicationHost:ProcessRequest (int,long,int,long,int,string,string,string,string,byte[],string,intptr,Mono.WebServer.SslInformations) in (wrapper remoting-invoke-with-check) Mono.WebServer.XSPApplicationHost:ProcessRequest (int,long,int,long,int,string,string,string,string,byte[],string,intptr,Mono.WebServer.SslInformations) in <0x006f4> Mono.WebServer.XSPWorker:InnerRun (System.Object state) in <0x0003c> Mono.WebServer.XSPWorker:Run (System.Object state)
* reset config.xml <database><upgradeable>false</upgradeable></database>
make use of MDID under your apache setup (I wish )
Cross your fingers and hope it worked.