The Semantic Web
The majority of the grade for this class will be based on a semester-long
project. Since students in the class are likely to have different skills
and interests, I am allowing you to develop your own Semantic Web project
(subject to my approval, of course). The project may either be a paper
on some topic related to the Semantic Web or can be the development of
software that demonstrates a capability of the Semantic Web. If you choose
a programming project, you will be expected to demo it (either prior to
the end of classes or during the exam period).
Your project proposal will serve as your project description. Therefore,
it should describe what you intend to do in as much detail as possible.
If the proposed project is a paper, then this proposal should describe
the problem you are examining and why you think it is interesting. It should
also suggest what kind of work you intend to do to solve the problem. If
you choose a programming project, then the proposal should provide a detailed
description of what your software will do and why this would be useful.
Your proposal should be at least one full page in length, but no more than
four pages. A hardcopy is due at the beginning of class on Friday, October
I realize that you may have some difficulty choosing a project, so I
have included some suggestions below.
Please realize that you are not required to choose one of these projects!
If you think you have a cool idea, then talk to me about it. If you are
having trouble choosing a project, then you may also wish to look at the
class reading list to see if the topic
of an upcoming paper might inspire a project. In all cases, it is
strongly recommended that you discuss your project ideas with me prior
to writing the project proposal.
This list of projects is only meant as a starting point. Some of the projects
described here may be more difficult than others, and some projects may
be easier if you have a particular background or skill set. Each student
is encouraged to develop a project that meets his or her interests and
Web page creator - Create an ontology on some topic. Create a tool that
helps users create pages about this topic. The tool should create both
HTML and semantic web annotations
Semi-automatic annotation - Create a tool that uses either NLP, information
retrieval, or machine learning techniques to suggest possible annotations
to a user, given a web page. This might be customized to a particular ontology
Wrapper generator - Create a tool that helps users extract semantic markup
from HTML pages with regular structured data.
XML to semantic markup convertor - Create a tool that automatically or
semi-automatically takes an XML document and creates an equivalent version
that uses a semantic markup language. Convert both DTDs (or Schemas) and
On-line search agent - Write software that answers a query by performing
a live focused crawl of the Web
Domain specific intelligent agent - Write an agent that can perform some
interesting/useful task on the Web by processing semantic web markup. You
may have to create an ontology and markup or create wrappers for a set
Create an interesting query tool; it may be either domain specific or general
Use a relational database management system (RDBMS) as a knowledge base
for DAML or SHOE. Evaluate different implementation alternatives
Create an ontology repository, provide features to help users find ontologies
Ontology authoring tool (big project) - The tool should provide a graphical
user interface for creating and editing semantic web ontologies. The tool
should be able to read and write files in the ontology language.
Ontology integration tool - Allows users to create an ontology that specifies
that mappings between two other ontologies
Write a repository system for semantic web systems, preferably in Java.
This could be a big project, so you might need to restrict the kinds of
queries that can be asked or inferential capabilities.
Define a method for evaluating semantic web languages and use it to compare
3 or more languages
Propose language extensions that handle one or more of the following:
user-defined functions (remote procedure calls?)
Propose a method for establishing trust of semantic web data
Propose a method for resolving inconsistencies between different data sources.
This might be closely tied to the development of trust models
Design a strategy for handling dynamic data (i.e., data that changes frequently).
Describe necessary language extensions if any, and how tools would use
Perform a comparison of different candidate repository systems (e.g., RDBMS,
XSB, etc.) (some programming required)
Propose an extension to a semantic web language that defines localized
closed world (LCW) statements. LCW statements specify whether a source
has all the information on a given topic (e.g., the entire list of students
Lehigh), and can be used to determine if a query's answers are complete
Examine the problems associated with identity on the Web. Propose a method
that makes it possible to determine when two people are referring to the
same object without requiring them to use the same identifier.
Perform a usability study (i.e., use multiple test subjects) of a semantic
web language or semantic web language tool. Discuss the results of your
study and suggest ways to improve the language or tool.