Active Research Projects on Github
Find below project descriptions and source repository links for
my active research projects:
Language: Java
Licensing: MPL or GPL, see LICENSE file in project root directory
Documentation: See README file in project root directory
- Affine ADDs for Bayes Net and MDP Inference:
An implementation of Affine ADDs (also ADDs) with code for Bayes Net and MDP inference. Includes example
Bayes Nets (from the Bayes Net Repository) and factored MDPs in SPUDD format.
[Github Project]
- Extended ADDs (XADDs):
A new canonical decision diagram for general
algebraic expressions, currently used for inference in discrete/continuous graphical models and MDPs. Contains code and domains for multiple publications.
[Github Project]
- Diversity in Information Retrieval:
An evaluation framework for diversification algorithms in information retrieval; includes maximal
marginal relevance and expected 1-call@k with TF, TFIDF, BM25, LSI/LDA, and other kernels.
[Github Project]
- Social Media Recommendation:
A social collaborative filtering toolkit for Facebook data including baseline nearest neighbor
(BellKor Netflix-style), information diffusion, and probabilistic
and Bayesian matrix factorization algorithms (with social extensions).
[Github Project]
Historical Software Archive
The software below is freely available for research purposes,
however, please realize that I no longer
have the time to support it. If you've made a
useful modification to the software here and would like to contribute it,
please let me know.
Semantic Web (DL-FOL) Inference Engine
-
Description: This is an inference engine for a
first-order (FOL) extension of description logic (DL) which is
capable of loading ontologies in a native DL-FOL format or from
the Semantic Web in OWL (and soon FOL-SWRL) formats. A native
DL-FOL reasoner and interfaces to work with other first-order theorem
provers (Otter,Vampire) are supported.
- Language: Java
-
Code Archive: [Send email] (research use only)
Interactive Java Graph-viewer Applet
-
Description: This is a simple Java applet
based on Grappa
that can be embedded in any web page to allow interactive
viewing of GraphViz
formatted graphs (i.e., dot files).
-
Language: Java
-
Documentation: A demo and simple how-to guide.
[html]
-
Code Archive: See documentation.
HMM-based Text Mining and Extraction Tool
-
Description: This is an implementation of hierarchical
hidden-Markov model (HMM) text extraction from web pages as
proposed by Freitag and McCallum (1999). This method uses
shrinkage over the HMM hierarchy to balance the bias-variance
tradeoff of HMM parameter estimation. This method turns out
to be quite robust, even when training on small amounts of data.
-
Language: Java
-
Documentation:
[ps]
[pdf]
[README]
-
Code Archive: [tar.gz]
Database Mining Tool
-
Description: I originally developed this code for a
course I was helping to instruct. It has a command line and script
interface allowing one to specify data mining and visualization
commands using a DMQL-like language. The data mining
capabilities are somewhat limited but it stores database content
in an efficient and versatile data structure
that permits the implementation of a variety of
data mining algorithms. This software can access
any database having a JDBC interface (i.e. Microsoft, Oracle,
IBM, MySQL).
- Language: Java
-
Documentation: This is the project handout. [ps]
[pdf]
[README]
-
Code Archive: [tar.gz]
Neural Net Face Detector
-
Description: This is an implementation of the
Rowley-Baluja-Kanade face detector.
It uses a fairly
straightforward face detection method that scans
an image resolution pyramid with
a trained neural net.
Full algorithm details and empirical
results are given
in the on-line documentation.
-
Language: Matlab
-
Documentation:
[html]
[README]
-
Code Archive: [tar.gz]
Backgammon and Learning Agent
-
Description: This is a Backgammon implementation
with an easy-to-use interface for developing agents that
play against themselves or other agents. It includes
a revised version of the original ACT-R-Gammon agent
(Sanner et al., 2000) that
learns to play at a formidable level in only 5,000 games.
-
Language: C++
-
Documentation:
[README]
-
Code Archive:
[original tar.gz]
[updated tar.gz] Thanks to Morteza Kasravi for this second version updated to compile on Ubuntu 13.04.
Refutation-Complete BDD SAT Solver
-
Description: An implementation of a refutation-complete BDD SAT solver
that is more efficient than the standard BDD-based SAT-solving approach. This implementation
is built on top of the very efficient CUDD
ADD/BDD package.
-
Language: C++
-
Documentation:
[README]
[ps.gz]
[pdf]
-
Code Archive: [tar.gz]
Java Web Services (and Enterprise APIs)
-
Description: If you've ever wanted to know how to build your
own web services/interfaces in Java, this is a set of assignments and coding solutions
from the MIE354 Information Engineering Course on Web Services at Toronto
that I co-taught and developed labs for during the fall of 2005.
The running project was to build an on-line retail store (complete with transactional database, email
notification, and distributed internal messaging architecture) with both Java Servlet HTML
and SOAP-based Web Service interfaces.
All you need is Sun JDK 1.4+, all of the required jar files are included. Teaches
XML (JDOM, XPath), SOAP, UDDI, WSDL and Apache tools to work with these specifications.
Also covers Servlets (for HTML and SOAP interface)
and the Java Enterprise APIs: RMI, JDBC (Databases), JTA (Transactions), and JMS (Messaging).
-
Language: Java
-
Documentation:
[tar.gz]
-
Code Archive: [tar.gz]