GSoC Projects for 2008
THIS PAGE IS OBSOLETE
OpenCog projects for the 2008 Google Summer of Code (GSoC) program, based on ideas collected from the community of OpenCog contributors. For due dates and other questions, please see the GSoC Student FAQ.
For 2009's projects, please see GSoC Projects for 2009.
The goal of this project is to develop an interface to Opensim for OpenCog, like AGISim via either RealXTend and/or LibSL. OpenSim provides a shared interconnected 3D environment compatible with Second Life clients. This will allow multiple people to interact with a OpenCog controlled avatar and perpare for OpenCog to interact with socially open online worlds. We will examine and extend existing methods relevant to controlling avatars or robots in virtual worlds (AGISim, RealXTend, LibSecondlife, Player/Stage/Gazebo). One result will be the ability for OpenCog to access all Second Life derived environments (OpenSim, SecondLife, RealXTend) and provide a similar ability for other virtual human researchers.
Implementing a SAT/SMT Based Link Grammar Parser
by Filip Marić, mentored by Predrag Janicic
The Link Grammar Parser, developed at CMU, is a syntactic parser of English, based on link grammar, an original theory of English syntax. Given a sentence, the system assigns to it a syntactic structure, which consists of a set of labeled links connecting pairs of words. The parser also produces a "constituent" representation of a sentence (showing noun phrases, verb phrases, etc.). The link parser is in use in many software systems, including the AbiWord open- source word processor and RelEx Semantic Relation Extractor, and it has also been adapted for use in other languages. Therefore, having its faster implementation would be quite beneficial. The goal of this project is to develop a novel implementation of link parser based on the SAT/SMT solving. Since RelEx (and hence the link parser) is already integrated with OpenCog, the proposed SAT/SMT- based grammar parser would be operational within the OpenCog framework right from the start. It has been hypothesized that a SAT/SMT version of the link parser may be an order of magnitude or more faster than the current version of the link parser, and if this hypothesis proves to be true, this could possibly make the link parser by far the fastest open-source full-sentence parser available.
Detailed project description and the current project status can be found at http://www.matf.bg.ac.yu/~filip/gsoc/.
Bayesian And Causal Network Inference using Indefinite Probabilities
Although initially, I was working on Indefinite Probabilities and Bayesian Networks, I got real interest in the workings of PLN (Probabilistic Logic Network) that is one of the key pieces to general intelligence in Novamente System. Thus, after discussing with mentors, I switched gears and worked diligently on PLN and its refactory. The main goals were changed to (1) replace the Indefinite Formulas with a more generic programming style, and (2) remove dependencies from Novamente Pseudocore and other core structures through understanding the opencog atomspace and other components (like opencog server) - changes in the xml pieces, atomtablewrapper using opencog server, among others, (3) documentation such that other opencog programmers and people that want to use PLN in their research could have a faster learning curve. Additionally, I worked on a MAC OS port of opencog.
- Code: (Many commits to 2 branches)
- Work log: PLN refactory GSOC 2008 - PLN - Cesar work log
OpenBiomind-GUI (earlier Java GUI for OpenBiomind)
Many biologists using microarrayers and other tools are command-line-phobic. A simple graphical user interface could significantly improve OpenBiomind's usability and lower the barrier to entry.
OpenBiomind-GUI tries to provide a graphical interface to execute the tasks provided by OpenBiomind. It provides wizards for all the tasks provided by OpenBiomind. In addition, it also provides wizards that chain multiple tasks together so that they can be executed together. The GUI also display the results in an easy-to-use interface.
OpenBiomind-GUI is written in Java, based on the Eclipse Rich-Client Platform (RCP). Binaries are available for Windows, Linux and Mac OS X.
(This project is based on the OpenBiomind Java GUI idea suggested in OpenCog list of ideas at http://opencog.org/wiki/Ideas#Java_GUI.)
Related links are as follows:
- Home: http://code.google.com/p/openbiomind-gui/
- Current Source Code: http://code.google.com/p/openbiomind-gui/source/browse/#svn/trunk
- 2008/08/18 Release: http://code.google.com/p/openbiomind-gui/source/browse/#svn/tags/release-0.1.0.20080818.beta
- Wiki: http://opencog.org/wiki/Java_GUI_for_OpenBiomind
- Blog: http://openbiomind-gui.blogspot.com/
Learning: the cognitive process of acquiring skill or knowledge. There are now a lot of ways for machines to learn, but the question of speed, quality and overall effectiveness is always present. “Program Learning via Ensemble Analysis and SUbstitution of Repeated Entities.” or in short PLEASURE is a learning algorithm aimed at taking effective use of the strong bias toward hierarchically structured programs. The goal is to implement and test the effectiveness of the algorithm during the summer.
- Source code: http://code.google.com/p/pleasure
by Guo Junfei, mentored by Ben Goertzel
Finally, I have finished the transformer which can convert an AtomTable hypergraph to a graph, represented in terms of the Boost Graph Library.
Also I finished a minimum-cost spanning trees algorithm .Also I design a algorithm to Convert minimum-cost spanning trees (MST) to minimum-cost spanning hypertrees (MSHT).So now I can convert hypergraph to graph,using the graph to create the minimum-cost spanning trees and finally convert back to minimum-cost spanning hypertrees (MSHT).
However, there are still little bugs in my code,but I think the algorithm are good and I am still debugging. all the codes and documents see attached files. I like the work, I am going to code and debug other algorithms after the deadline.
The code and documents at present are at
by ChenShuo, mentored by Moshe Looks
In order to make MOSES more efficient, a new algorithm may be put in place of or be incorporated into hBOA, within MOSES. This is an theoretical & experimenting project.
Information on the work done is at the wiki page:
and the code produced (which is experimental code designed to obtain scientific results) is here:
Click on the title to read more about the project.
by Rich Jones, mentored by David Hart
by Elizabeth Dawn Alpert, mentored by Lukasz Kaiser
This project is to investigate and improve the Link Grammar Parser's parsing of ungrammatical writing, focusing on chat and similar internet styles of writing. Most work has been done on word-level improvements, which also benefits the parsing of phrases.
by Costa Ciprian, mentored by Borislav Iordanov
The aim is to create a distributed version of the HyperGraphDB database (HGDB). While there are no clear cut requirements of what a distributed HGDB should do, we intend to develop the basic building blocks from which behavior tailored towards specific application needs can be constructed. This includes the basic communication layer for transferring atoms and performing queries between HGDB instances in a plain client-server fashion as well as an extensible high level protocol that can be used to implement a peer-to-peer HGDB networks.
Ongoing discussion about the effort is at http://groups.google.com/group/hypergraphdb
by Paul Cao, mentored by Lucio de Souza Coelho
This project developed a new ML feature in OpenBiomind, using its method for determining important features for classification in a recursive way, allowing it to mine ever more useful features from the original dataset and use then for producing hopefully better classification results. Preliminary testing has shown that the method is indeed effective and can noticeably boost the quality of results.
The recursive feature elimination process is already present in later versions of OpenBiomind, available for download. The project site has also a short description about how to use the corresponding new OpenBiomind command.