CS 431
Architecture of Web Information Systems
Spring 2004

Assignments

Reaction Papers

The reaction paper assignments are structured as follows: you should cover at least two closely related papers relevant to the current section of the course.  One of the papers should be from the course syllabus (assigned for discussion section on which the paper is due or the two preceding sections).  Another should be a related paper that you discover via another method such as references in the papers you have read, searching on Google, ResearchIndex, via the library gateway, or from other information source.  Think of finding this paper as a mini resource discovery exercise.  You should then write approximately 3-4 pages (approximately 1500-2000 words) in which you address the following points:

Reaction papers should not just be summaries of the papers you read; most of your text should be focused on synthesis of the underlying ideas, your own perspective on the papers, and thinking on how the content of the papers relates to the overall content of the course. Reaction papers should be done individually (i.e. not in groups). 

The reaction papers will be graded on a 12 point scale, with points allocated in the following categories:

 

Submission procedure for reaction papers is as follows:

Reaction paper due dates are on the syllabus.

Programming Projects

Programming projects tentative due dates are April 5 and May 17.

The projects are designed to give students some practical experience in dealing with the technologies that make the Web and digital libraries work.  In general, the assignments will require students to understand relevant protocol or specifications documents and write a moderate amount of java code that demonstrates an understanding of those specifications.

These assignments are not mainly a test of your programming skills.  Rather they meant to encourage you to read protocol specifications and understand the APIs that implement them.  In the real world this is not done in isolation.  Thus,  students are expected to work in groups on these assignments.  At the beginning of the semester the class will break up into groups of 2 that will remain together for the remainder of the semester.  Members of the group are expected to share information, jointly understand protocol documents and APIs, and write the final code product.  Grades will be awarded based on the final product of the group and each student's contribution to the work of the group.

Prerequisites

The assignments assume that students can program in Java and understand how to download and use class libraries.  No java or programming tutorials will be offered.

Grading Criteria

This is not a programming course.  Imaginative algorithms or data structures will not be required or play a role in grading.  Instead, grading will be based on completion of the assigned task and demonstrated understanding of the concepts and protocols underlying the assignment.  Nevertheless, assignments should demonstrate good programming practices and documentation commensurate with the 400 level of this course. 

Programming Environment

Programming assignments should be done using the Eclipse IDE.  This is available for free from http://www.eclipse.org for all major operating systems.  Submissions will be in the form of Eclipse projects.

Tools

Working with XML, XSLT, and the like is considerably easier if you don't have to worry about syntactic details.  Fortunately, there are a number of excellent tools available to avoid this.  Two that I recommend are:

Submitting Assignments

All assignments are due by 11:59PM on the due date.  NO LATE ASSIGNMENTS WILL BE ACCEPTED.

To identify your assignments and  make grading easier, assignments MUST conform to the following guidelines.  :

Submissions that fail to conform to these guidelines will be rejected.

Assignment 0 - Due 2/6/2003

The purpose of this assignment is to ensure that you are familiar with the assignment submission process.  It will not be graded but your submission of it registers the existence of your project group.

Resources for assignment 0

Directions for assignment 0

Write a java program that prints to the console two lines:

  1. firstlastassignment0
  2. The three names of group members separated by commas

Assignment 1 - Due 4/5/2004 (11:59PM)

In this assignment you will harvest Dublin Core metadata via the OAI-PMH, transform that metadata via XSLT to conform to a new FRBR-based schema that you design, and publish that metadata via RSS 1.0,

Resources for assignment 1

Directions for assignment 1

  1. The first part of the assignment involves some modeling work based on Dublin Core and FRBR. The DC properties have been criticized because they are a simple flat list.  Semantically the properties can be partitioned among the four entities in the IFLA FRBR entity model: work, manifestation, expression, and item.  Write a new RDF schema (expressed in RDF/XML) that expresses the four classes of resources expressed by the FRBR, expresses properties to associate the FRBR entities with the described resource, and then associates the respective Dublin Core properties with the proper FRBR entity via domain constraints.  You should include the schema in your submitted zip file with the name dc_frbr.rdfs.  You should include comments in your rdfs file sufficient to justify your modeling decisions.
  2. Building on this modeling work, you should then write a single java program that takes no arguments and does the following:

Guidance for assignment 1

This assignment really doesn't require a significant amount of programming.  The bulk of the work is understanding the schema design, protocol specifications, APIs, and tools such as XSLT.  Much of the material will be introduced in lecture over the next few weeks.  I'd recommend, however, that you get an early start by looking at and downloading the relevant resources and experimenting with them.  Before writing the XSLT transformation, I recommend manually (using Oxygen) writing a trial RSS 1.0 channel to see what you are headed towards. 

Assignment 2 - Due 5/17/2004 (11:59PM)

In this assignment, you will integrate Fedora and Jena to provide a metadata repository for various entities and reflect the relationships among those entities in a Jena model.  The entities (content) that you work with be based on a simple modeling of information on Amazon.

Resources for assignment 2

Directions for assignment 2

Guidance for assignment 2

You should run your fedora repository with the built-in McKoi java-based database.  This is the easiest way to get fedora up and running.

Make sure to take a look at some of the sample objects that come with the fedora distribution.  The use of XSLT transforms in the sample objects is a template for the type of objects you will set up in your fedora repository.

As said above, don't spend a huge amount of time creating the metadata for each object.  Your grade will not be based on how complete the metadata is.  You only need enough to supply the material for the rest of the project.

Submission Procedure

You will use the standard CMS submission procedure for packaging your Java code and associated rdf and xml files by the due date.  However, it will difficult for you to "submit" your fedora repository to us.  Therefore, we will grade you via short 15-20 minute presentations on Tuesday May 18 during which you will have the chance to give an overview of your work. The schedule for presentation is as follows;

Time Group
9:00  Joseph Egbulefu & Marc Almendarez
9:30  
10:00  Ricky M. Yu & Gee-Hsien Chuang
10:30  Stephanie Moy & Ari Tivon Epstein
11:00  Michael Mahar
11:30  Boris Suchkov & Theodore Tang
12:00  Mikolaj Franaszczuk & Gerald Yean
12:30  Dave Vitek & Mike Pape
13:00  Brian Rogan & Karl Schulze
13:30  Mina Radhakrishnan & Patty Reeder
14:00  Benjamin Ee & David Boxer
14:30  Deva Mishra & Chaitanya Desai
15:00  
15:30  
16:00  
16:30  
17:00  
17:30  
18:00  Abhiram Rajendran & Judhajit De
18:30  Jackie Bodine & Vlad Muste
19:00  Arthur Chitikian & Todd Defilippi
19:30  Will Kruse & Matthew Wachs
20:00 Raghav Venkat Agnihothri & Carlos Zednik

 

[CS 431 Home Page]

Carl Lagoze (lagoze@cs.cornell.edu
Last changed: 05/18/2004