← Back to team overview

wintermute-devel team mailing list archive

[Merge] lp:~jackyalcine/wintermute/database into lp:~wintermute-devel/wintermute/database

 

Adrian Borucki has proposed merging lp:~jackyalcine/wintermute/database into lp:~wintermute-devel/wintermute/database.

Requested reviews:
  Adrian Borucki (gentoolx): merge, packaging

For more details, see:
https://code.launchpad.net/~jackyalcine/wintermute/database/+merge/56196

*** A lot is in this little bad boy; it requires libjson.a (in lp:~wintermute-devel/wintermute/json) and needs the Boost Filesystem library >= 1.4.0

*** removed Glib dependencies.
-- 
https://code.launchpad.net/~jackyalcine/wintermute/database/+merge/56196
Your team Wintermute Developers is subscribed to branch lp:~wintermute-devel/wintermute/database.
=== modified file '.bzrignore'
--- .bzrignore	2011-02-19 15:53:08 +0000
+++ .bzrignore	2011-04-04 16:09:29 +0000
@@ -1,1 +1,5 @@
 nbproject
+wintermute-database-cli/nbproject
+wintermute-database/nbproject
+dist
+build

=== added directory 'bin'
=== added file 'bin/onto.xml'
--- bin/onto.xml	1970-01-01 00:00:00 +0000
+++ bin/onto.xml	2011-04-04 16:09:29 +0000
@@ -0,0 +1,17 @@
+<!--
+    onto.xml - Wintermute's Ontology
+    
+    Represents the notation that Wintermute'll use to
+    render information about anything. Hopefully, this will
+    be in a very friendly format. Entries in the ontology
+    are issued specific IDs, or ontoids. Quick lookups can
+    be done by using xPaths (ie: Ontology/Entry[ontoid='4546543545']).
+    
+    Default Attributes:
+    
+    'isA' : ontoid to the object that inherits from (ie: Man -> Human -> Mammal)
+-->
+<Ontology>
+    <Entry ontoid="0x023490349a0d35fe0fefd">
+    </Entry>            
+<Ontology>

=== added directory 'debian'
=== added file 'wintermute-database-cli/.dep.inc'
--- wintermute-database-cli/.dep.inc	1970-01-01 00:00:00 +0000
+++ wintermute-database-cli/.dep.inc	2011-04-04 16:09:29 +0000
@@ -0,0 +1,5 @@
+# This code depends on make tool being used
+DEPFILES=$(wildcard $(addsuffix .d, ${OBJECTFILES}))
+ifneq (${DEPFILES},)
+include ${DEPFILES}
+endif

=== removed file 'wintermute-database-cli/Makefile'
--- wintermute-database-cli/Makefile	2011-02-19 15:53:08 +0000
+++ wintermute-database-cli/Makefile	1970-01-01 00:00:00 +0000
@@ -1,128 +0,0 @@
-#
-#  There exist several targets which are by default empty and which can be 
-#  used for execution of your targets. These targets are usually executed 
-#  before and after some main targets. They are: 
-#
-#     .build-pre:              called before 'build' target
-#     .build-post:             called after 'build' target
-#     .clean-pre:              called before 'clean' target
-#     .clean-post:             called after 'clean' target
-#     .clobber-pre:            called before 'clobber' target
-#     .clobber-post:           called after 'clobber' target
-#     .all-pre:                called before 'all' target
-#     .all-post:               called after 'all' target
-#     .help-pre:               called before 'help' target
-#     .help-post:              called after 'help' target
-#
-#  Targets beginning with '.' are not intended to be called on their own.
-#
-#  Main targets can be executed directly, and they are:
-#  
-#     build                    build a specific configuration
-#     clean                    remove built files from a configuration
-#     clobber                  remove all built files
-#     all                      build all configurations
-#     help                     print help mesage
-#  
-#  Targets .build-impl, .clean-impl, .clobber-impl, .all-impl, and
-#  .help-impl are implemented in nbproject/makefile-impl.mk.
-#
-#  Available make variables:
-#
-#     CND_BASEDIR                base directory for relative paths
-#     CND_DISTDIR                default top distribution directory (build artifacts)
-#     CND_BUILDDIR               default top build directory (object files, ...)
-#     CONF                       name of current configuration
-#     CND_PLATFORM_${CONF}       platform name (current configuration)
-#     CND_ARTIFACT_DIR_${CONF}   directory of build artifact (current configuration)
-#     CND_ARTIFACT_NAME_${CONF}  name of build artifact (current configuration)
-#     CND_ARTIFACT_PATH_${CONF}  path to build artifact (current configuration)
-#     CND_PACKAGE_DIR_${CONF}    directory of package (current configuration)
-#     CND_PACKAGE_NAME_${CONF}   name of package (current configuration)
-#     CND_PACKAGE_PATH_${CONF}   path to package (current configuration)
-#
-# NOCDDL
-
-
-# Environment 
-MKDIR=mkdir
-CP=cp
-CCADMIN=CCadmin
-
-
-# build
-build: .build-post
-
-.build-pre:
-# Add your pre 'build' code here...
-
-.build-post: .build-impl
-# Add your post 'build' code here...
-
-
-# clean
-clean: .clean-post
-
-.clean-pre:
-# Add your pre 'clean' code here...
-
-.clean-post: .clean-impl
-# Add your post 'clean' code here...
-
-
-# clobber
-clobber: .clobber-post
-
-.clobber-pre:
-# Add your pre 'clobber' code here...
-
-.clobber-post: .clobber-impl
-# Add your post 'clobber' code here...
-
-
-# all
-all: .all-post
-
-.all-pre:
-# Add your pre 'all' code here...
-
-.all-post: .all-impl
-# Add your post 'all' code here...
-
-
-# build tests
-build-tests: .build-tests-post
-
-.build-tests-pre:
-# Add your pre 'build-tests' code here...
-
-.build-tests-post: .build-tests-impl
-# Add your post 'build-tests' code here...
-
-
-# run tests
-test: .test-post
-
-.test-pre:
-# Add your pre 'test' code here...
-
-.test-post: .test-impl
-# Add your post 'test' code here...
-
-
-# help
-help: .help-post
-
-.help-pre:
-# Add your pre 'help' code here...
-
-.help-post: .help-impl
-# Add your post 'help' code here...
-
-
-
-# include project implementation makefile
-include nbproject/Makefile-impl.mk
-
-# include project make variables
-include nbproject/Makefile-variables.mk

=== added directory 'wintermute-database-cli/debian'
=== removed file 'wintermute-database-cli/main.cpp'
--- wintermute-database-cli/main.cpp	2011-02-19 15:53:08 +0000
+++ wintermute-database-cli/main.cpp	1970-01-01 00:00:00 +0000
@@ -1,19 +0,0 @@
-/* 
- * File:   main.cpp
- * Author: jacky
- *
- * Created on February 19, 2011, 8:46 AM
- */
-
-#include <cstdlib>
-
-using namespace std;
-
-/*
- * 
- */
-int main(int argc, char** argv) {
-
-    return 0;
-}
-

=== removed directory 'wintermute-database-cli/nbproject'
=== removed file 'wintermute-database-cli/nbproject/Makefile-Debug.mk'
--- wintermute-database-cli/nbproject/Makefile-Debug.mk	2011-02-19 15:53:08 +0000
+++ wintermute-database-cli/nbproject/Makefile-Debug.mk	1970-01-01 00:00:00 +0000
@@ -1,82 +0,0 @@
-#
-# Generated Makefile - do not edit!
-#
-# Edit the Makefile in the project folder instead (../Makefile). Each target
-# has a -pre and a -post target defined where you can add customized code.
-#
-# This makefile implements configuration specific macros and targets.
-
-
-# Environment
-MKDIR=mkdir
-CP=cp
-GREP=grep
-NM=nm
-CCADMIN=CCadmin
-RANLIB=ranlib
-CC=gcc
-CCC=g++
-CXX=g++
-FC=
-AS=as
-
-# Macros
-CND_PLATFORM=GNU-Linux-x86
-CND_CONF=Debug
-CND_DISTDIR=dist
-
-# Include project Makefile
-include Makefile
-
-# Object Directory
-OBJECTDIR=build/${CND_CONF}/${CND_PLATFORM}
-
-# Object Files
-OBJECTFILES= \
-	${OBJECTDIR}/main.o
-
-
-# C Compiler Flags
-CFLAGS=
-
-# CC Compiler Flags
-CCFLAGS=
-CXXFLAGS=
-
-# Fortran Compiler Flags
-FFLAGS=
-
-# Assembler Flags
-ASFLAGS=
-
-# Link Libraries and Options
-LDLIBSOPTIONS=
-
-# Build Targets
-.build-conf: ${BUILD_SUBPROJECTS}
-	"${MAKE}"  -f nbproject/Makefile-Debug.mk dist/Debug/GNU-Linux-x86/wintermute-database-cli
-
-dist/Debug/GNU-Linux-x86/wintermute-database-cli: ${OBJECTFILES}
-	${MKDIR} -p dist/Debug/GNU-Linux-x86
-	${LINK.cc} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/wintermute-database-cli ${OBJECTFILES} ${LDLIBSOPTIONS} 
-
-${OBJECTDIR}/main.o: main.cpp 
-	${MKDIR} -p ${OBJECTDIR}
-	${RM} $@.d
-	$(COMPILE.cc) -g -MMD -MP -MF $@.d -o ${OBJECTDIR}/main.o main.cpp
-
-# Subprojects
-.build-subprojects:
-
-# Clean Targets
-.clean-conf: ${CLEAN_SUBPROJECTS}
-	${RM} -r build/Debug
-	${RM} dist/Debug/GNU-Linux-x86/wintermute-database-cli
-
-# Subprojects
-.clean-subprojects:
-
-# Enable dependency checking
-.dep.inc: .depcheck-impl
-
-include .dep.inc

=== removed file 'wintermute-database-cli/nbproject/Makefile-Release.mk'
--- wintermute-database-cli/nbproject/Makefile-Release.mk	2011-02-19 15:53:08 +0000
+++ wintermute-database-cli/nbproject/Makefile-Release.mk	1970-01-01 00:00:00 +0000
@@ -1,82 +0,0 @@
-#
-# Generated Makefile - do not edit!
-#
-# Edit the Makefile in the project folder instead (../Makefile). Each target
-# has a -pre and a -post target defined where you can add customized code.
-#
-# This makefile implements configuration specific macros and targets.
-
-
-# Environment
-MKDIR=mkdir
-CP=cp
-GREP=grep
-NM=nm
-CCADMIN=CCadmin
-RANLIB=ranlib
-CC=gcc
-CCC=g++
-CXX=g++
-FC=
-AS=as
-
-# Macros
-CND_PLATFORM=GNU-Linux-x86
-CND_CONF=Release
-CND_DISTDIR=dist
-
-# Include project Makefile
-include Makefile
-
-# Object Directory
-OBJECTDIR=build/${CND_CONF}/${CND_PLATFORM}
-
-# Object Files
-OBJECTFILES= \
-	${OBJECTDIR}/main.o
-
-
-# C Compiler Flags
-CFLAGS=
-
-# CC Compiler Flags
-CCFLAGS=
-CXXFLAGS=
-
-# Fortran Compiler Flags
-FFLAGS=
-
-# Assembler Flags
-ASFLAGS=
-
-# Link Libraries and Options
-LDLIBSOPTIONS=
-
-# Build Targets
-.build-conf: ${BUILD_SUBPROJECTS}
-	"${MAKE}"  -f nbproject/Makefile-Release.mk dist/Release/GNU-Linux-x86/wintermute-database-cli
-
-dist/Release/GNU-Linux-x86/wintermute-database-cli: ${OBJECTFILES}
-	${MKDIR} -p dist/Release/GNU-Linux-x86
-	${LINK.cc} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/wintermute-database-cli ${OBJECTFILES} ${LDLIBSOPTIONS} 
-
-${OBJECTDIR}/main.o: main.cpp 
-	${MKDIR} -p ${OBJECTDIR}
-	${RM} $@.d
-	$(COMPILE.cc) -O2 -MMD -MP -MF $@.d -o ${OBJECTDIR}/main.o main.cpp
-
-# Subprojects
-.build-subprojects:
-
-# Clean Targets
-.clean-conf: ${CLEAN_SUBPROJECTS}
-	${RM} -r build/Release
-	${RM} dist/Release/GNU-Linux-x86/wintermute-database-cli
-
-# Subprojects
-.clean-subprojects:
-
-# Enable dependency checking
-.dep.inc: .depcheck-impl
-
-include .dep.inc

=== removed file 'wintermute-database-cli/nbproject/Makefile-impl.mk'
--- wintermute-database-cli/nbproject/Makefile-impl.mk	2011-02-19 15:53:08 +0000
+++ wintermute-database-cli/nbproject/Makefile-impl.mk	1970-01-01 00:00:00 +0000
@@ -1,133 +0,0 @@
-# 
-# Generated Makefile - do not edit! 
-# 
-# Edit the Makefile in the project folder instead (../Makefile). Each target
-# has a pre- and a post- target defined where you can add customization code.
-#
-# This makefile implements macros and targets common to all configurations.
-#
-# NOCDDL
-
-
-# Building and Cleaning subprojects are done by default, but can be controlled with the SUB
-# macro. If SUB=no, subprojects will not be built or cleaned. The following macro
-# statements set BUILD_SUB-CONF and CLEAN_SUB-CONF to .build-reqprojects-conf
-# and .clean-reqprojects-conf unless SUB has the value 'no'
-SUB_no=NO
-SUBPROJECTS=${SUB_${SUB}}
-BUILD_SUBPROJECTS_=.build-subprojects
-BUILD_SUBPROJECTS_NO=
-BUILD_SUBPROJECTS=${BUILD_SUBPROJECTS_${SUBPROJECTS}}
-CLEAN_SUBPROJECTS_=.clean-subprojects
-CLEAN_SUBPROJECTS_NO=
-CLEAN_SUBPROJECTS=${CLEAN_SUBPROJECTS_${SUBPROJECTS}}
-
-
-# Project Name
-PROJECTNAME=wintermute-database-cli
-
-# Active Configuration
-DEFAULTCONF=Debug
-CONF=${DEFAULTCONF}
-
-# All Configurations
-ALLCONFS=Debug Release 
-
-
-# build
-.build-impl: .build-pre .validate-impl .depcheck-impl
-	@#echo "=> Running $@... Configuration=$(CONF)"
-	"${MAKE}" -f nbproject/Makefile-${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .build-conf
-
-
-# clean
-.clean-impl: .clean-pre .validate-impl .depcheck-impl
-	@#echo "=> Running $@... Configuration=$(CONF)"
-	"${MAKE}" -f nbproject/Makefile-${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .clean-conf
-
-
-# clobber 
-.clobber-impl: .clobber-pre .depcheck-impl
-	@#echo "=> Running $@..."
-	for CONF in ${ALLCONFS}; \
-	do \
-	    "${MAKE}" -f nbproject/Makefile-$${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .clean-conf; \
-	done
-
-# all 
-.all-impl: .all-pre .depcheck-impl
-	@#echo "=> Running $@..."
-	for CONF in ${ALLCONFS}; \
-	do \
-	    "${MAKE}" -f nbproject/Makefile-$${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .build-conf; \
-	done
-
-# build tests
-.build-tests-impl: .build-impl .build-tests-pre
-	@#echo "=> Running $@... Configuration=$(CONF)"
-	"${MAKE}" -f nbproject/Makefile-${CONF}.mk SUBPROJECTS=${SUBPROJECTS} .build-tests-conf
-
-# run tests
-.test-impl: .build-tests-impl .test-pre
-	@#echo "=> Running $@... Configuration=$(CONF)"
-	"${MAKE}" -f nbproject/Makefile-${CONF}.mk SUBPROJECTS=${SUBPROJECTS} .test-conf
-
-# dependency checking support
-.depcheck-impl:
-	@echo "# This code depends on make tool being used" >.dep.inc
-	@if [ -n "${MAKE_VERSION}" ]; then \
-	    echo "DEPFILES=\$$(wildcard \$$(addsuffix .d, \$${OBJECTFILES}))" >>.dep.inc; \
-	    echo "ifneq (\$${DEPFILES},)" >>.dep.inc; \
-	    echo "include \$${DEPFILES}" >>.dep.inc; \
-	    echo "endif" >>.dep.inc; \
-	else \
-	    echo ".KEEP_STATE:" >>.dep.inc; \
-	    echo ".KEEP_STATE_FILE:.make.state.\$${CONF}" >>.dep.inc; \
-	fi
-
-# configuration validation
-.validate-impl:
-	@if [ ! -f nbproject/Makefile-${CONF}.mk ]; \
-	then \
-	    echo ""; \
-	    echo "Error: can not find the makefile for configuration '${CONF}' in project ${PROJECTNAME}"; \
-	    echo "See 'make help' for details."; \
-	    echo "Current directory: " `pwd`; \
-	    echo ""; \
-	fi
-	@if [ ! -f nbproject/Makefile-${CONF}.mk ]; \
-	then \
-	    exit 1; \
-	fi
-
-
-# help
-.help-impl: .help-pre
-	@echo "This makefile supports the following configurations:"
-	@echo "    ${ALLCONFS}"
-	@echo ""
-	@echo "and the following targets:"
-	@echo "    build  (default target)"
-	@echo "    clean"
-	@echo "    clobber"
-	@echo "    all"
-	@echo "    help"
-	@echo ""
-	@echo "Makefile Usage:"
-	@echo "    make [CONF=<CONFIGURATION>] [SUB=no] build"
-	@echo "    make [CONF=<CONFIGURATION>] [SUB=no] clean"
-	@echo "    make [SUB=no] clobber"
-	@echo "    make [SUB=no] all"
-	@echo "    make help"
-	@echo ""
-	@echo "Target 'build' will build a specific configuration and, unless 'SUB=no',"
-	@echo "    also build subprojects."
-	@echo "Target 'clean' will clean a specific configuration and, unless 'SUB=no',"
-	@echo "    also clean subprojects."
-	@echo "Target 'clobber' will remove all built files from all configurations and,"
-	@echo "    unless 'SUB=no', also from subprojects."
-	@echo "Target 'all' will will build all configurations and, unless 'SUB=no',"
-	@echo "    also build subprojects."
-	@echo "Target 'help' prints this message."
-	@echo ""
-

=== removed file 'wintermute-database-cli/nbproject/Makefile-variables.mk'
--- wintermute-database-cli/nbproject/Makefile-variables.mk	2011-02-19 15:53:08 +0000
+++ wintermute-database-cli/nbproject/Makefile-variables.mk	1970-01-01 00:00:00 +0000
@@ -1,24 +0,0 @@
-#
-# Generated - do not edit!
-#
-# NOCDDL
-#
-CND_BASEDIR=`pwd`
-CND_BUILDDIR=build
-CND_DISTDIR=dist
-# Debug configuration
-CND_PLATFORM_Debug=GNU-Linux-x86
-CND_ARTIFACT_DIR_Debug=dist/Debug/GNU-Linux-x86
-CND_ARTIFACT_NAME_Debug=wintermute-database-cli
-CND_ARTIFACT_PATH_Debug=dist/Debug/GNU-Linux-x86/wintermute-database-cli
-CND_PACKAGE_DIR_Debug=dist/Debug/GNU-Linux-x86/package
-CND_PACKAGE_NAME_Debug=wintermute-database-cli.tar
-CND_PACKAGE_PATH_Debug=dist/Debug/GNU-Linux-x86/package/wintermute-database-cli.tar
-# Release configuration
-CND_PLATFORM_Release=GNU-Linux-x86
-CND_ARTIFACT_DIR_Release=dist/Release/GNU-Linux-x86
-CND_ARTIFACT_NAME_Release=wintermute-database-cli
-CND_ARTIFACT_PATH_Release=dist/Release/GNU-Linux-x86/wintermute-database-cli
-CND_PACKAGE_DIR_Release=dist/Release/GNU-Linux-x86/package
-CND_PACKAGE_NAME_Release=wintermute-database-cli.tar
-CND_PACKAGE_PATH_Release=dist/Release/GNU-Linux-x86/package/wintermute-database-cli.tar

=== removed file 'wintermute-database-cli/nbproject/Package-Debug.bash'
--- wintermute-database-cli/nbproject/Package-Debug.bash	2011-02-19 15:53:08 +0000
+++ wintermute-database-cli/nbproject/Package-Debug.bash	1970-01-01 00:00:00 +0000
@@ -1,74 +0,0 @@
-#!/bin/bash -x
-
-#
-# Generated - do not edit!
-#
-
-# Macros
-TOP=`pwd`
-CND_PLATFORM=GNU-Linux-x86
-CND_CONF=Debug
-CND_DISTDIR=dist
-NBTMPDIR=build/${CND_CONF}/${CND_PLATFORM}/tmp-packaging
-TMPDIRNAME=tmp-packaging
-OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/wintermute-database-cli
-OUTPUT_BASENAME=wintermute-database-cli
-PACKAGE_TOP_DIR=wintermute-database-cli/
-
-# Functions
-function checkReturnCode
-{
-    rc=$?
-    if [ $rc != 0 ]
-    then
-        exit $rc
-    fi
-}
-function makeDirectory
-# $1 directory path
-# $2 permission (optional)
-{
-    mkdir -p "$1"
-    checkReturnCode
-    if [ "$2" != "" ]
-    then
-      chmod $2 "$1"
-      checkReturnCode
-    fi
-}
-function copyFileToTmpDir
-# $1 from-file path
-# $2 to-file path
-# $3 permission
-{
-    cp "$1" "$2"
-    checkReturnCode
-    if [ "$3" != "" ]
-    then
-        chmod $3 "$2"
-        checkReturnCode
-    fi
-}
-
-# Setup
-cd "${TOP}"
-mkdir -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package
-rm -rf ${NBTMPDIR}
-mkdir -p ${NBTMPDIR}
-
-# Copy files and create directories and links
-cd "${TOP}"
-makeDirectory "${NBTMPDIR}/wintermute-database-cli/bin"
-copyFileToTmpDir "${OUTPUT_PATH}" "${NBTMPDIR}/${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" 0755
-
-
-# Generate tar file
-cd "${TOP}"
-rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/wintermute-database-cli.tar
-cd ${NBTMPDIR}
-tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/wintermute-database-cli.tar *
-checkReturnCode
-
-# Cleanup
-cd "${TOP}"
-rm -rf ${NBTMPDIR}

=== removed file 'wintermute-database-cli/nbproject/Package-Release.bash'
--- wintermute-database-cli/nbproject/Package-Release.bash	2011-02-19 15:53:08 +0000
+++ wintermute-database-cli/nbproject/Package-Release.bash	1970-01-01 00:00:00 +0000
@@ -1,74 +0,0 @@
-#!/bin/bash -x
-
-#
-# Generated - do not edit!
-#
-
-# Macros
-TOP=`pwd`
-CND_PLATFORM=GNU-Linux-x86
-CND_CONF=Release
-CND_DISTDIR=dist
-NBTMPDIR=build/${CND_CONF}/${CND_PLATFORM}/tmp-packaging
-TMPDIRNAME=tmp-packaging
-OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/wintermute-database-cli
-OUTPUT_BASENAME=wintermute-database-cli
-PACKAGE_TOP_DIR=wintermute-database-cli/
-
-# Functions
-function checkReturnCode
-{
-    rc=$?
-    if [ $rc != 0 ]
-    then
-        exit $rc
-    fi
-}
-function makeDirectory
-# $1 directory path
-# $2 permission (optional)
-{
-    mkdir -p "$1"
-    checkReturnCode
-    if [ "$2" != "" ]
-    then
-      chmod $2 "$1"
-      checkReturnCode
-    fi
-}
-function copyFileToTmpDir
-# $1 from-file path
-# $2 to-file path
-# $3 permission
-{
-    cp "$1" "$2"
-    checkReturnCode
-    if [ "$3" != "" ]
-    then
-        chmod $3 "$2"
-        checkReturnCode
-    fi
-}
-
-# Setup
-cd "${TOP}"
-mkdir -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package
-rm -rf ${NBTMPDIR}
-mkdir -p ${NBTMPDIR}
-
-# Copy files and create directories and links
-cd "${TOP}"
-makeDirectory "${NBTMPDIR}/wintermute-database-cli/bin"
-copyFileToTmpDir "${OUTPUT_PATH}" "${NBTMPDIR}/${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" 0755
-
-
-# Generate tar file
-cd "${TOP}"
-rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/wintermute-database-cli.tar
-cd ${NBTMPDIR}
-tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/wintermute-database-cli.tar *
-checkReturnCode
-
-# Cleanup
-cd "${TOP}"
-rm -rf ${NBTMPDIR}

=== removed file 'wintermute-database-cli/nbproject/configurations.xml'
--- wintermute-database-cli/nbproject/configurations.xml	2011-02-19 15:53:08 +0000
+++ wintermute-database-cli/nbproject/configurations.xml	1970-01-01 00:00:00 +0000
@@ -1,65 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<configurationDescriptor version="69">
-  <logicalFolder name="root" displayName="root" projectFiles="true">
-    <logicalFolder name="HeaderFiles"
-                   displayName="Header Files"
-                   projectFiles="true"
-                   kind="SOURCE_LOGICAL_FOLDER">
-    </logicalFolder>
-    <logicalFolder name="ResourceFiles"
-                   displayName="Resource Files"
-                   projectFiles="true"
-                   kind="SOURCE_LOGICAL_FOLDER">
-    </logicalFolder>
-    <logicalFolder name="SourceFiles"
-                   displayName="Source Files"
-                   projectFiles="true"
-                   kind="SOURCE_LOGICAL_FOLDER">
-      <itemPath>main.cpp</itemPath>
-    </logicalFolder>
-    <logicalFolder name="TestFiles"
-                   displayName="Test Files"
-                   projectFiles="false"
-                   kind="TEST_LOGICAL_FOLDER">
-    </logicalFolder>
-    <logicalFolder name="ExternalFiles"
-                   displayName="Important Files"
-                   projectFiles="false"
-                   kind="IMPORTANT_FILES_FOLDER">
-      <itemPath>Makefile</itemPath>
-    </logicalFolder>
-  </logicalFolder>
-  <projectmakefile>Makefile</projectmakefile>
-  <confs>
-    <conf name="Debug" type="1">
-      <toolsSet>
-        <developmentServer>localhost</developmentServer>
-        <compilerSet>GNU|GNU</compilerSet>
-        <platform>2</platform>
-      </toolsSet>
-      <compileType>
-      </compileType>
-    </conf>
-    <conf name="Release" type="1">
-      <toolsSet>
-        <developmentServer>localhost</developmentServer>
-        <compilerSet>GNU|GNU</compilerSet>
-        <platform>2</platform>
-      </toolsSet>
-      <compileType>
-        <cTool>
-          <developmentMode>5</developmentMode>
-        </cTool>
-        <ccTool>
-          <developmentMode>5</developmentMode>
-        </ccTool>
-        <fortranCompilerTool>
-          <developmentMode>5</developmentMode>
-        </fortranCompilerTool>
-        <asmTool>
-          <developmentMode>5</developmentMode>
-        </asmTool>
-      </compileType>
-    </conf>
-  </confs>
-</configurationDescriptor>

=== removed directory 'wintermute-database-cli/nbproject/private'
=== removed file 'wintermute-database-cli/nbproject/private/configurations.xml'
--- wintermute-database-cli/nbproject/private/configurations.xml	2011-02-19 15:53:08 +0000
+++ wintermute-database-cli/nbproject/private/configurations.xml	1970-01-01 00:00:00 +0000
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<configurationDescriptor version="69">
-  <projectmakefile>Makefile</projectmakefile>
-  <defaultConf>0</defaultConf>
-  <confs>
-    <conf name="Debug" type="1">
-      <gizmo_options version="3">
-      </gizmo_options>
-      <runprofile version="6">
-        <args></args>
-        <rundir></rundir>
-        <buildfirst>true</buildfirst>
-        <console-type>0</console-type>
-        <terminal-type>0</terminal-type>
-        <remove-instrumentation>0</remove-instrumentation>
-        <environment>
-        </environment>
-      </runprofile>
-    </conf>
-    <conf name="Release" type="1">
-      <gizmo_options version="3">
-      </gizmo_options>
-      <runprofile version="6">
-        <args></args>
-        <rundir></rundir>
-        <buildfirst>true</buildfirst>
-        <console-type>0</console-type>
-        <terminal-type>0</terminal-type>
-        <remove-instrumentation>0</remove-instrumentation>
-        <environment>
-        </environment>
-      </runprofile>
-    </conf>
-  </confs>
-</configurationDescriptor>

=== removed file 'wintermute-database-cli/nbproject/private/private.properties'
=== removed file 'wintermute-database-cli/nbproject/project.properties'
=== removed file 'wintermute-database-cli/nbproject/project.xml'
--- wintermute-database-cli/nbproject/project.xml	2011-02-19 15:53:08 +0000
+++ wintermute-database-cli/nbproject/project.xml	1970-01-01 00:00:00 +0000
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://www.netbeans.org/ns/project/1";>
-    <type>org.netbeans.modules.cnd.makeproject</type>
-    <configuration>
-        <data xmlns="http://www.netbeans.org/ns/make-project/1";>
-            <name>wintermute-database-cli</name>
-            <make-project-type>0</make-project-type>
-            <c-extensions/>
-            <cpp-extensions>cpp</cpp-extensions>
-            <header-extensions/>
-            <make-dep-projects/>
-            <sourceRootList/>
-            <confList>
-                <confElem>Debug</confElem>
-                <confElem>Release</confElem>
-            </confList>
-            <sourceEncoding>UTF-8</sourceEncoding>
-        </data>
-    </configuration>
-</project>

=== added directory 'wintermute-database-cli/src'
=== added file 'wintermute-database-cli/src/main.cpp'
--- wintermute-database-cli/src/main.cpp	1970-01-01 00:00:00 +0000
+++ wintermute-database-cli/src/main.cpp	2011-04-04 16:09:29 +0000
@@ -0,0 +1,27 @@
+/*
+ *  Author: $NAME <$EMAIL>
+ *
+ *  Copyright 2011 $NAME
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ *
+ */
+
+int main(int argc, char** argv) {
+
+    return 0;
+}
+

=== added file 'wintermute-database/.dep.inc'
--- wintermute-database/.dep.inc	1970-01-01 00:00:00 +0000
+++ wintermute-database/.dep.inc	2011-04-04 16:09:29 +0000
@@ -0,0 +1,5 @@
+# This code depends on make tool being used
+DEPFILES=$(wildcard $(addsuffix .d, ${OBJECTFILES}))
+ifneq (${DEPFILES},)
+include ${DEPFILES}
+endif

=== modified file 'wintermute-database/README'
--- wintermute-database/README	2011-02-19 15:53:08 +0000
+++ wintermute-database/README	2011-04-04 16:09:29 +0000
@@ -20,4 +20,6 @@
  *
  *
 
-This module is the core of the datab
\ No newline at end of file
+This module is the core of the data engines of Wintermute. In this module, the
+essence of ontology structures are found, as well as Wintermute's ability to store
+and retrieve data via a flexible data framework.

=== modified file 'wintermute-database/TODO'
--- wintermute-database/TODO	2011-02-19 15:53:08 +0000
+++ wintermute-database/TODO	2011-04-04 16:09:29 +0000
@@ -0,0 +1,2 @@
+** Add more data serialization handlers
+	- Perhaps to MySQL, JSON, XML

=== added directory 'wintermute-database/debian'
=== removed directory 'wintermute-database/nbproject'
=== removed file 'wintermute-database/nbproject/Makefile-Debug.mk'
--- wintermute-database/nbproject/Makefile-Debug.mk	2011-02-19 15:53:08 +0000
+++ wintermute-database/nbproject/Makefile-Debug.mk	1970-01-01 00:00:00 +0000
@@ -1,76 +0,0 @@
-#
-# Generated Makefile - do not edit!
-#
-# Edit the Makefile in the project folder instead (../Makefile). Each target
-# has a -pre and a -post target defined where you can add customized code.
-#
-# This makefile implements configuration specific macros and targets.
-
-
-# Environment
-MKDIR=mkdir
-CP=cp
-GREP=grep
-NM=nm
-CCADMIN=CCadmin
-RANLIB=ranlib
-CC=gcc
-CCC=g++
-CXX=g++
-FC=
-AS=as
-
-# Macros
-CND_PLATFORM=GNU-Linux-x86
-CND_CONF=Debug
-CND_DISTDIR=dist
-
-# Include project Makefile
-include Makefile
-
-# Object Directory
-OBJECTDIR=build/${CND_CONF}/${CND_PLATFORM}
-
-# Object Files
-OBJECTFILES=
-
-
-# C Compiler Flags
-CFLAGS=
-
-# CC Compiler Flags
-CCFLAGS=
-CXXFLAGS=
-
-# Fortran Compiler Flags
-FFLAGS=
-
-# Assembler Flags
-ASFLAGS=
-
-# Link Libraries and Options
-LDLIBSOPTIONS=
-
-# Build Targets
-.build-conf: ${BUILD_SUBPROJECTS}
-	"${MAKE}"  -f nbproject/Makefile-Debug.mk dist/Debug/GNU-Linux-x86/libwintermute-database.so
-
-dist/Debug/GNU-Linux-x86/libwintermute-database.so: ${OBJECTFILES}
-	${MKDIR} -p dist/Debug/GNU-Linux-x86
-	${LINK.c} -shared -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/libwintermute-database.so -fPIC ${OBJECTFILES} ${LDLIBSOPTIONS} 
-
-# Subprojects
-.build-subprojects:
-
-# Clean Targets
-.clean-conf: ${CLEAN_SUBPROJECTS}
-	${RM} -r build/Debug
-	${RM} dist/Debug/GNU-Linux-x86/libwintermute-database.so
-
-# Subprojects
-.clean-subprojects:
-
-# Enable dependency checking
-.dep.inc: .depcheck-impl
-
-include .dep.inc

=== removed file 'wintermute-database/nbproject/Makefile-Release.mk'
--- wintermute-database/nbproject/Makefile-Release.mk	2011-02-19 15:53:08 +0000
+++ wintermute-database/nbproject/Makefile-Release.mk	1970-01-01 00:00:00 +0000
@@ -1,76 +0,0 @@
-#
-# Generated Makefile - do not edit!
-#
-# Edit the Makefile in the project folder instead (../Makefile). Each target
-# has a -pre and a -post target defined where you can add customized code.
-#
-# This makefile implements configuration specific macros and targets.
-
-
-# Environment
-MKDIR=mkdir
-CP=cp
-GREP=grep
-NM=nm
-CCADMIN=CCadmin
-RANLIB=ranlib
-CC=gcc
-CCC=g++
-CXX=g++
-FC=
-AS=as
-
-# Macros
-CND_PLATFORM=GNU-Linux-x86
-CND_CONF=Release
-CND_DISTDIR=dist
-
-# Include project Makefile
-include Makefile
-
-# Object Directory
-OBJECTDIR=build/${CND_CONF}/${CND_PLATFORM}
-
-# Object Files
-OBJECTFILES=
-
-
-# C Compiler Flags
-CFLAGS=
-
-# CC Compiler Flags
-CCFLAGS=
-CXXFLAGS=
-
-# Fortran Compiler Flags
-FFLAGS=
-
-# Assembler Flags
-ASFLAGS=
-
-# Link Libraries and Options
-LDLIBSOPTIONS=
-
-# Build Targets
-.build-conf: ${BUILD_SUBPROJECTS}
-	"${MAKE}"  -f nbproject/Makefile-Release.mk dist/Release/GNU-Linux-x86/libwintermute-database.so
-
-dist/Release/GNU-Linux-x86/libwintermute-database.so: ${OBJECTFILES}
-	${MKDIR} -p dist/Release/GNU-Linux-x86
-	${LINK.c} -shared -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/libwintermute-database.so -fPIC ${OBJECTFILES} ${LDLIBSOPTIONS} 
-
-# Subprojects
-.build-subprojects:
-
-# Clean Targets
-.clean-conf: ${CLEAN_SUBPROJECTS}
-	${RM} -r build/Release
-	${RM} dist/Release/GNU-Linux-x86/libwintermute-database.so
-
-# Subprojects
-.clean-subprojects:
-
-# Enable dependency checking
-.dep.inc: .depcheck-impl
-
-include .dep.inc

=== removed file 'wintermute-database/nbproject/Makefile-impl.mk'
--- wintermute-database/nbproject/Makefile-impl.mk	2011-02-19 15:53:08 +0000
+++ wintermute-database/nbproject/Makefile-impl.mk	1970-01-01 00:00:00 +0000
@@ -1,133 +0,0 @@
-# 
-# Generated Makefile - do not edit! 
-# 
-# Edit the Makefile in the project folder instead (../Makefile). Each target
-# has a pre- and a post- target defined where you can add customization code.
-#
-# This makefile implements macros and targets common to all configurations.
-#
-# NOCDDL
-
-
-# Building and Cleaning subprojects are done by default, but can be controlled with the SUB
-# macro. If SUB=no, subprojects will not be built or cleaned. The following macro
-# statements set BUILD_SUB-CONF and CLEAN_SUB-CONF to .build-reqprojects-conf
-# and .clean-reqprojects-conf unless SUB has the value 'no'
-SUB_no=NO
-SUBPROJECTS=${SUB_${SUB}}
-BUILD_SUBPROJECTS_=.build-subprojects
-BUILD_SUBPROJECTS_NO=
-BUILD_SUBPROJECTS=${BUILD_SUBPROJECTS_${SUBPROJECTS}}
-CLEAN_SUBPROJECTS_=.clean-subprojects
-CLEAN_SUBPROJECTS_NO=
-CLEAN_SUBPROJECTS=${CLEAN_SUBPROJECTS_${SUBPROJECTS}}
-
-
-# Project Name
-PROJECTNAME=wintermute-database
-
-# Active Configuration
-DEFAULTCONF=Debug
-CONF=${DEFAULTCONF}
-
-# All Configurations
-ALLCONFS=Debug Release 
-
-
-# build
-.build-impl: .build-pre .validate-impl .depcheck-impl
-	@#echo "=> Running $@... Configuration=$(CONF)"
-	"${MAKE}" -f nbproject/Makefile-${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .build-conf
-
-
-# clean
-.clean-impl: .clean-pre .validate-impl .depcheck-impl
-	@#echo "=> Running $@... Configuration=$(CONF)"
-	"${MAKE}" -f nbproject/Makefile-${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .clean-conf
-
-
-# clobber 
-.clobber-impl: .clobber-pre .depcheck-impl
-	@#echo "=> Running $@..."
-	for CONF in ${ALLCONFS}; \
-	do \
-	    "${MAKE}" -f nbproject/Makefile-$${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .clean-conf; \
-	done
-
-# all 
-.all-impl: .all-pre .depcheck-impl
-	@#echo "=> Running $@..."
-	for CONF in ${ALLCONFS}; \
-	do \
-	    "${MAKE}" -f nbproject/Makefile-$${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .build-conf; \
-	done
-
-# build tests
-.build-tests-impl: .build-impl .build-tests-pre
-	@#echo "=> Running $@... Configuration=$(CONF)"
-	"${MAKE}" -f nbproject/Makefile-${CONF}.mk SUBPROJECTS=${SUBPROJECTS} .build-tests-conf
-
-# run tests
-.test-impl: .build-tests-impl .test-pre
-	@#echo "=> Running $@... Configuration=$(CONF)"
-	"${MAKE}" -f nbproject/Makefile-${CONF}.mk SUBPROJECTS=${SUBPROJECTS} .test-conf
-
-# dependency checking support
-.depcheck-impl:
-	@echo "# This code depends on make tool being used" >.dep.inc
-	@if [ -n "${MAKE_VERSION}" ]; then \
-	    echo "DEPFILES=\$$(wildcard \$$(addsuffix .d, \$${OBJECTFILES}))" >>.dep.inc; \
-	    echo "ifneq (\$${DEPFILES},)" >>.dep.inc; \
-	    echo "include \$${DEPFILES}" >>.dep.inc; \
-	    echo "endif" >>.dep.inc; \
-	else \
-	    echo ".KEEP_STATE:" >>.dep.inc; \
-	    echo ".KEEP_STATE_FILE:.make.state.\$${CONF}" >>.dep.inc; \
-	fi
-
-# configuration validation
-.validate-impl:
-	@if [ ! -f nbproject/Makefile-${CONF}.mk ]; \
-	then \
-	    echo ""; \
-	    echo "Error: can not find the makefile for configuration '${CONF}' in project ${PROJECTNAME}"; \
-	    echo "See 'make help' for details."; \
-	    echo "Current directory: " `pwd`; \
-	    echo ""; \
-	fi
-	@if [ ! -f nbproject/Makefile-${CONF}.mk ]; \
-	then \
-	    exit 1; \
-	fi
-
-
-# help
-.help-impl: .help-pre
-	@echo "This makefile supports the following configurations:"
-	@echo "    ${ALLCONFS}"
-	@echo ""
-	@echo "and the following targets:"
-	@echo "    build  (default target)"
-	@echo "    clean"
-	@echo "    clobber"
-	@echo "    all"
-	@echo "    help"
-	@echo ""
-	@echo "Makefile Usage:"
-	@echo "    make [CONF=<CONFIGURATION>] [SUB=no] build"
-	@echo "    make [CONF=<CONFIGURATION>] [SUB=no] clean"
-	@echo "    make [SUB=no] clobber"
-	@echo "    make [SUB=no] all"
-	@echo "    make help"
-	@echo ""
-	@echo "Target 'build' will build a specific configuration and, unless 'SUB=no',"
-	@echo "    also build subprojects."
-	@echo "Target 'clean' will clean a specific configuration and, unless 'SUB=no',"
-	@echo "    also clean subprojects."
-	@echo "Target 'clobber' will remove all built files from all configurations and,"
-	@echo "    unless 'SUB=no', also from subprojects."
-	@echo "Target 'all' will will build all configurations and, unless 'SUB=no',"
-	@echo "    also build subprojects."
-	@echo "Target 'help' prints this message."
-	@echo ""
-

=== removed file 'wintermute-database/nbproject/Makefile-variables.mk'
--- wintermute-database/nbproject/Makefile-variables.mk	2011-02-19 15:53:08 +0000
+++ wintermute-database/nbproject/Makefile-variables.mk	1970-01-01 00:00:00 +0000
@@ -1,24 +0,0 @@
-#
-# Generated - do not edit!
-#
-# NOCDDL
-#
-CND_BASEDIR=`pwd`
-CND_BUILDDIR=build
-CND_DISTDIR=dist
-# Debug configuration
-CND_PLATFORM_Debug=GNU-Linux-x86
-CND_ARTIFACT_DIR_Debug=dist/Debug/GNU-Linux-x86
-CND_ARTIFACT_NAME_Debug=libwintermute-database.so
-CND_ARTIFACT_PATH_Debug=dist/Debug/GNU-Linux-x86/libwintermute-database.so
-CND_PACKAGE_DIR_Debug=dist/Debug/GNU-Linux-x86/package
-CND_PACKAGE_NAME_Debug=libwintermute-database.so.tar
-CND_PACKAGE_PATH_Debug=dist/Debug/GNU-Linux-x86/package/libwintermute-database.so.tar
-# Release configuration
-CND_PLATFORM_Release=GNU-Linux-x86
-CND_ARTIFACT_DIR_Release=dist/Release/GNU-Linux-x86
-CND_ARTIFACT_NAME_Release=libwintermute-database.so
-CND_ARTIFACT_PATH_Release=dist/Release/GNU-Linux-x86/libwintermute-database.so
-CND_PACKAGE_DIR_Release=dist/Release/GNU-Linux-x86/package
-CND_PACKAGE_NAME_Release=libwintermute-database.so.tar
-CND_PACKAGE_PATH_Release=dist/Release/GNU-Linux-x86/package/libwintermute-database.so.tar

=== removed file 'wintermute-database/nbproject/Package-Debug.bash'
--- wintermute-database/nbproject/Package-Debug.bash	2011-02-19 15:53:08 +0000
+++ wintermute-database/nbproject/Package-Debug.bash	1970-01-01 00:00:00 +0000
@@ -1,74 +0,0 @@
-#!/bin/bash -x
-
-#
-# Generated - do not edit!
-#
-
-# Macros
-TOP=`pwd`
-CND_PLATFORM=GNU-Linux-x86
-CND_CONF=Debug
-CND_DISTDIR=dist
-NBTMPDIR=build/${CND_CONF}/${CND_PLATFORM}/tmp-packaging
-TMPDIRNAME=tmp-packaging
-OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/libwintermute-database.so
-OUTPUT_BASENAME=libwintermute-database.so
-PACKAGE_TOP_DIR=libwintermute-database.so/
-
-# Functions
-function checkReturnCode
-{
-    rc=$?
-    if [ $rc != 0 ]
-    then
-        exit $rc
-    fi
-}
-function makeDirectory
-# $1 directory path
-# $2 permission (optional)
-{
-    mkdir -p "$1"
-    checkReturnCode
-    if [ "$2" != "" ]
-    then
-      chmod $2 "$1"
-      checkReturnCode
-    fi
-}
-function copyFileToTmpDir
-# $1 from-file path
-# $2 to-file path
-# $3 permission
-{
-    cp "$1" "$2"
-    checkReturnCode
-    if [ "$3" != "" ]
-    then
-        chmod $3 "$2"
-        checkReturnCode
-    fi
-}
-
-# Setup
-cd "${TOP}"
-mkdir -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package
-rm -rf ${NBTMPDIR}
-mkdir -p ${NBTMPDIR}
-
-# Copy files and create directories and links
-cd "${TOP}"
-makeDirectory "${NBTMPDIR}/libwintermute-database.so/lib"
-copyFileToTmpDir "${OUTPUT_PATH}" "${NBTMPDIR}/${PACKAGE_TOP_DIR}lib/${OUTPUT_BASENAME}" 0644
-
-
-# Generate tar file
-cd "${TOP}"
-rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/libwintermute-database.so.tar
-cd ${NBTMPDIR}
-tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/libwintermute-database.so.tar *
-checkReturnCode
-
-# Cleanup
-cd "${TOP}"
-rm -rf ${NBTMPDIR}

=== removed file 'wintermute-database/nbproject/Package-Release.bash'
--- wintermute-database/nbproject/Package-Release.bash	2011-02-19 15:53:08 +0000
+++ wintermute-database/nbproject/Package-Release.bash	1970-01-01 00:00:00 +0000
@@ -1,74 +0,0 @@
-#!/bin/bash -x
-
-#
-# Generated - do not edit!
-#
-
-# Macros
-TOP=`pwd`
-CND_PLATFORM=GNU-Linux-x86
-CND_CONF=Release
-CND_DISTDIR=dist
-NBTMPDIR=build/${CND_CONF}/${CND_PLATFORM}/tmp-packaging
-TMPDIRNAME=tmp-packaging
-OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/libwintermute-database.so
-OUTPUT_BASENAME=libwintermute-database.so
-PACKAGE_TOP_DIR=libwintermute-database.so/
-
-# Functions
-function checkReturnCode
-{
-    rc=$?
-    if [ $rc != 0 ]
-    then
-        exit $rc
-    fi
-}
-function makeDirectory
-# $1 directory path
-# $2 permission (optional)
-{
-    mkdir -p "$1"
-    checkReturnCode
-    if [ "$2" != "" ]
-    then
-      chmod $2 "$1"
-      checkReturnCode
-    fi
-}
-function copyFileToTmpDir
-# $1 from-file path
-# $2 to-file path
-# $3 permission
-{
-    cp "$1" "$2"
-    checkReturnCode
-    if [ "$3" != "" ]
-    then
-        chmod $3 "$2"
-        checkReturnCode
-    fi
-}
-
-# Setup
-cd "${TOP}"
-mkdir -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package
-rm -rf ${NBTMPDIR}
-mkdir -p ${NBTMPDIR}
-
-# Copy files and create directories and links
-cd "${TOP}"
-makeDirectory "${NBTMPDIR}/libwintermute-database.so/lib"
-copyFileToTmpDir "${OUTPUT_PATH}" "${NBTMPDIR}/${PACKAGE_TOP_DIR}lib/${OUTPUT_BASENAME}" 0644
-
-
-# Generate tar file
-cd "${TOP}"
-rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/libwintermute-database.so.tar
-cd ${NBTMPDIR}
-tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/libwintermute-database.so.tar *
-checkReturnCode
-
-# Cleanup
-cd "${TOP}"
-rm -rf ${NBTMPDIR}

=== removed file 'wintermute-database/nbproject/configurations.xml'
--- wintermute-database/nbproject/configurations.xml	2011-02-19 15:53:08 +0000
+++ wintermute-database/nbproject/configurations.xml	1970-01-01 00:00:00 +0000
@@ -1,68 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<configurationDescriptor version="69">
-  <logicalFolder name="root" displayName="root" projectFiles="true">
-    <logicalFolder name="HeaderFiles"
-                   displayName="Header Files"
-                   projectFiles="true"
-                   kind="SOURCE_LOGICAL_FOLDER">
-    </logicalFolder>
-    <logicalFolder name="ResourceFiles"
-                   displayName="Resource Files"
-                   projectFiles="true"
-                   kind="SOURCE_LOGICAL_FOLDER">
-      <itemPath>AUTHORS</itemPath>
-      <itemPath>HACKING</itemPath>
-      <itemPath>README</itemPath>
-      <itemPath>TODO</itemPath>
-    </logicalFolder>
-    <logicalFolder name="SourceFiles"
-                   displayName="Source Files"
-                   projectFiles="true"
-                   kind="SOURCE_LOGICAL_FOLDER">
-    </logicalFolder>
-    <logicalFolder name="TestFiles"
-                   displayName="Test Files"
-                   projectFiles="false"
-                   kind="TEST_LOGICAL_FOLDER">
-    </logicalFolder>
-    <logicalFolder name="ExternalFiles"
-                   displayName="Important Files"
-                   projectFiles="false"
-                   kind="IMPORTANT_FILES_FOLDER">
-      <itemPath>Makefile</itemPath>
-    </logicalFolder>
-  </logicalFolder>
-  <projectmakefile>Makefile</projectmakefile>
-  <confs>
-    <conf name="Debug" type="2">
-      <toolsSet>
-        <developmentServer>localhost</developmentServer>
-        <compilerSet>GNU|GNU</compilerSet>
-        <platform>2</platform>
-      </toolsSet>
-      <compileType>
-      </compileType>
-    </conf>
-    <conf name="Release" type="2">
-      <toolsSet>
-        <developmentServer>localhost</developmentServer>
-        <compilerSet>GNU|GNU</compilerSet>
-        <platform>2</platform>
-      </toolsSet>
-      <compileType>
-        <cTool>
-          <developmentMode>5</developmentMode>
-        </cTool>
-        <ccTool>
-          <developmentMode>5</developmentMode>
-        </ccTool>
-        <fortranCompilerTool>
-          <developmentMode>5</developmentMode>
-        </fortranCompilerTool>
-        <asmTool>
-          <developmentMode>5</developmentMode>
-        </asmTool>
-      </compileType>
-    </conf>
-  </confs>
-</configurationDescriptor>

=== removed directory 'wintermute-database/nbproject/private'
=== removed file 'wintermute-database/nbproject/private/configurations.xml'
--- wintermute-database/nbproject/private/configurations.xml	2011-02-19 15:53:08 +0000
+++ wintermute-database/nbproject/private/configurations.xml	1970-01-01 00:00:00 +0000
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<configurationDescriptor version="69">
-  <projectmakefile>Makefile</projectmakefile>
-  <defaultConf>0</defaultConf>
-  <confs>
-    <conf name="Debug" type="2">
-      <gizmo_options version="3">
-      </gizmo_options>
-      <runprofile version="6">
-        <args></args>
-        <rundir></rundir>
-        <buildfirst>true</buildfirst>
-        <console-type>0</console-type>
-        <terminal-type>0</terminal-type>
-        <remove-instrumentation>0</remove-instrumentation>
-        <environment>
-        </environment>
-      </runprofile>
-    </conf>
-    <conf name="Release" type="2">
-      <gizmo_options version="3">
-      </gizmo_options>
-      <runprofile version="6">
-        <args></args>
-        <rundir></rundir>
-        <buildfirst>true</buildfirst>
-        <console-type>0</console-type>
-        <terminal-type>0</terminal-type>
-        <remove-instrumentation>0</remove-instrumentation>
-        <environment>
-        </environment>
-      </runprofile>
-    </conf>
-  </confs>
-</configurationDescriptor>

=== removed file 'wintermute-database/nbproject/project.xml'
--- wintermute-database/nbproject/project.xml	2011-02-19 15:53:08 +0000
+++ wintermute-database/nbproject/project.xml	1970-01-01 00:00:00 +0000
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://www.netbeans.org/ns/project/1";>
-    <type>org.netbeans.modules.cnd.makeproject</type>
-    <configuration>
-        <data xmlns="http://www.netbeans.org/ns/make-project/1";>
-            <name>wintermute-database</name>
-            <make-project-type>0</make-project-type>
-            <c-extensions/>
-            <cpp-extensions/>
-            <header-extensions/>
-            <sourceEncoding>UTF-8</sourceEncoding>
-            <make-dep-projects/>
-            <sourceRootList/>
-            <confList>
-                <confElem>Debug</confElem>
-                <confElem>Release</confElem>
-            </confList>
-        </data>
-    </configuration>
-</project>

=== added directory 'wintermute-database/src'
=== added directory 'wintermute-database/src/bin'
=== added file 'wintermute-database/src/except.cpp'
--- wintermute-database/src/except.cpp	1970-01-01 00:00:00 +0000
+++ wintermute-database/src/except.cpp	2011-04-04 16:09:29 +0000
@@ -0,0 +1,23 @@
+/*
+ * except.cpp
+ * This file is part of wintermute-database
+ *
+ * Copyright (C) 2011 - Wintermute Developers
+ *
+ * wintermute-database is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * wintermute-database is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with wintermute-database; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, 
+ * Boston, MA  02110-1301  USA
+ */
+ 
+#include "except.hpp"

=== added file 'wintermute-database/src/except.hpp'
--- wintermute-database/src/except.hpp	1970-01-01 00:00:00 +0000
+++ wintermute-database/src/except.hpp	2011-04-04 16:09:29 +0000
@@ -0,0 +1,37 @@
+/*
+ * except.hpp
+ * This file is part of wintermute-database
+ *
+ * Copyright (C) 2011 - Wintermute Developers
+ *
+ * wintermute-database is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * wintermute-database is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with wintermute-database; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, 
+ * Boston, MA  02110-1301  USA
+ */
+
+namespace Wintermute {
+	namespace Data {
+		namespace Exceptions {
+			class Exception;
+			class InvalidOperationException;
+			class NotFoundException;
+			
+			class Exception {};
+			
+			class InvalidOperationException : public Exception {};
+			
+			class NotFoundException : public Exception {};
+		}
+	}
+}

=== added file 'wintermute-database/src/linguistics.cpp'
--- wintermute-database/src/linguistics.cpp	1970-01-01 00:00:00 +0000
+++ wintermute-database/src/linguistics.cpp	2011-04-04 16:09:29 +0000
@@ -0,0 +1,623 @@
+/**
+ *  @author Jacky Alcine <jackyalcine@xxxxxxxxx>
+ *  @copyright 2011 SII
+ *
+ * <license>
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ * </license>
+ *
+ */
+
+#include <libxml++/libxml++.h>
+#include <sigc++/sigc++.h>
+#include <boost/filesystem.hpp>
+#include <include/json.h>
+#include <string>
+#include <fstream>
+#include <iostream>
+#include <sstream>
+#include <map>
+
+#include "except.hpp"
+#include "linguistics.hpp"
+
+using namespace std;
+using namespace Json;
+using namespace xmlpp;
+using namespace Wintermute::Data;
+using std::string;
+using std::ios;
+using std::ofstream;
+using std::ifstream;
+using std::ostringstream;
+using std::istringstream;
+using Json::Value;
+using Json::Reader;
+using Json::FastWriter;
+using xmlpp::DomParser;
+using xmlpp::Document;
+
+namespace Wintermute {
+    namespace Data {
+        namespace Linguistics {
+            NodeInteroperingSignalVector NodeReader::handles;
+            NodeInteroperingSignalVector NodeWriter::handles;
+            XmlNode::XmlDataSources XmlNode::_docs;
+            JsonNode::JsonDataSources JsonNode::_data;
+
+            string Configuration::_locale = "en";
+            string Configuration::_root = "store";
+
+            //// @todo Fix the XmlNode and JsonNode readers; they're not working!
+            void Configuration::Initialize(const string& root, const string& locale) {
+                // cout << "(database) Initializing Linguistics data.." << endl;
+                NodeInteroperingSignalPair localNodeReader;
+                localNodeReader.first = new NodeIoExistsSignal;
+                localNodeReader.second = new NodeIoHandleSignal;
+                localNodeReader.first->connect(sigc::ptr_fun(&LocalNode::exists));
+                localNodeReader.second->connect(sigc::ptr_fun(&LocalNodeReader::obtain));
+
+                NodeInteroperingSignalPair jsonNodeReader;
+                jsonNodeReader.first = new NodeIoExistsSignal;
+                jsonNodeReader.second = new NodeIoHandleSignal;
+                jsonNodeReader.first->connect(sigc::ptr_fun(&JsonNode::exists));
+                jsonNodeReader.second->connect(sigc::ptr_fun(&JsonNodeReader::obtain));
+
+                NodeInteroperingSignalPair xmlNodeReader;
+                xmlNodeReader.first = new NodeIoExistsSignal;
+                xmlNodeReader.second = new NodeIoHandleSignal;
+                xmlNodeReader.first->connect(sigc::ptr_fun(&XmlNode::exists));
+                xmlNodeReader.second->connect(sigc::ptr_fun(&XmlNodeReader::obtain));
+
+                NodeInteroperingSignalPair localNodeWriter;
+                localNodeWriter.first = new NodeIoExistsSignal;
+                localNodeWriter.second = new NodeIoHandleSignal;
+                localNodeWriter.first->connect(sigc::ptr_fun(&LocalNode::exists));
+                localNodeWriter.second->connect(sigc::ptr_fun(&LocalNodeWriter::obtain));
+
+                NodeInteroperingSignalPair jsonNodeWriter;
+                jsonNodeWriter.first = new NodeIoExistsSignal;
+                jsonNodeWriter.second = new NodeIoHandleSignal;
+                jsonNodeWriter.first->connect(sigc::ptr_fun(&JsonNode::exists));
+                jsonNodeWriter.second->connect(sigc::ptr_fun(&JsonNodeWriter::obtain));
+
+                /*NodeInteroperingSignalPair xmlNodeWriter;
+                xmlNodeWriter.first = new NodeIoExistsSignal;
+                xmlNodeWriter.second = new NodeIoHandleSignal;
+                xmlNodeWriter.first->connect(sigc::ptr_fun(&XmlNode::exists));
+                xmlNodeWriter.second->connect(sigc::ptr_fun(&XmlNodeWriter::obtain));*/
+                // cout << "(database) Parsing linguistics data... " << endl;
+
+                Configuration::setRootDirectory(root);
+                Configuration::setLocale(locale);
+
+                NodeReader::addHandle(localNodeReader);
+                NodeWriter::addHandle(localNodeWriter);
+
+                if (XmlNode::loadLocale(locale)) {
+                    //NodeReader::addHandle(xmlNodeReader);
+                    //NodeWriter::addHandle(xmlNodeWriter);
+                }
+
+                if (JsonNode::loadLocale(locale)) {
+                    NodeReader::addHandle(jsonNodeReader);
+                    NodeWriter::addHandle(jsonNodeWriter);
+                }
+            }
+
+            void Configuration::setLocale(const string locale) {
+                if (locale.size() == 0)
+                    return;
+
+                Configuration::_locale = locale;
+                // cout << "## Global locale set to " << locale << endl;
+            }
+
+            void Configuration::setRootDirectory(const string root) {
+                if (root.size() == 0)
+                    return;
+
+                boost::filesystem::path theRoot(root);
+                Configuration::_root = theRoot.string();
+                // cout << "## Root set to " << root << endl;
+            }
+
+            const string Configuration::getLocale() {
+                return Configuration::_locale;
+            }
+
+            const string Configuration::getRootDirectory(const string locale) {
+                string theLocale = locale;
+                if (locale.empty())
+                    theLocale = Configuration::getLocale();
+
+                string path = Configuration::_root + string("/locale/") + theLocale;
+                boost::filesystem::path thePath(path);
+                return thePath.string();
+            }
+
+            NodeIo::NodeIo(const string& nodeID, const string& nodeLocale) : strID(nodeID), strLocale(nodeLocale) {
+            }
+
+            const string NodeIo::getID() const {
+                return this->strID;
+            }
+
+            const string NodeIo::getLocale() const {
+                return this->strLocale;
+            }
+
+            const bool NodeIo::isNull() const {
+                return (this == NULL);
+            }
+
+            NodeReader::NodeReader(const string& nodeID, const string& nodeLocale) : NodeIo(nodeID, nodeLocale) {
+                // cout << "(database) Abstract linguistcal data input source initialized for (" << nodeLocale << ")# " << nodeID << "." << endl;
+            }
+
+            NodeReader::NodeReader(const NodeReader& node) : NodeIo(node.getID(), node.getLocale()) {
+
+            }
+
+            void NodeReader::addHandle(const NodeInteroperingSignalPair& dataPair) {
+                if (!(&dataPair == NULL)) {
+                    NodeReader::handles.push_back(dataPair);
+                    // cout << "(database) Linguistics data input source added (#" << NodeReader::handles.size() << ")" << endl;
+                }
+            }
+
+            NodeReader* NodeReader::obtain(const string &nodeID, const string &nodeLocale) {
+                // cout << "(database) Searching for linguistics data input sources..." << endl;
+                for (NodeInteroperingSignalVector::const_iterator itr = NodeReader::handles.begin(); itr != NodeReader::handles.end(); itr++) {
+                    const NodeInteroperingSignalPair aPair = *itr;
+                    if (aPair.first->emit(nodeID, nodeLocale))
+                        return static_cast<NodeReader*> (aPair.second->emit(nodeID, nodeLocale));
+                }
+                // cout << "(database) No linguistics data input sources found!" << endl;
+                return NULL;
+            }
+
+            bool NodeReader::exists(const string &nodeID, const string &nodeLocale) {
+                // cout << nodeID << " " << nodeLocale << endl;
+                for (NodeInteroperingSignalVector::const_iterator itr = NodeReader::handles.begin(); itr != NodeReader::handles.end(); itr++) {
+                    const NodeInteroperingSignalPair aPair = *itr;
+                    if (aPair.first->emit(nodeID, nodeLocale))
+                        return true;
+                }
+                return false;
+            }
+
+            const string NodeReader::get() const {
+                // cout << "(database) [NodeReader] Reading from stdin..." << endl;
+                string data, flags, semid;
+                ostringstream outData;
+                cin >> data;
+                outData << data << endl;
+
+                while (flags != "-1") {
+                    cin >> flags >> semid;
+                    outData << flags << " " << semid << " " << endl;
+                }
+
+                return outData.str();
+            }
+
+            void NodeReader::getData(const NodeReader& data, Lexical& out) {
+                // cout << "(database) [NodeReader] *** Read node #" << data.getID() << ".." << endl;
+                const string theData = data.get();
+                if (!theData.empty()) {
+                    out.flags().clear();
+                    string symbol, flags, semid;
+                    istringstream inData(theData);
+
+                    inData >> out.symbol();
+
+                    while (inData >> flags >> semid)
+                        out.flags().insert(Lexical::LexicalMap::value_type(flags, semid));
+
+                    inData.clear();
+                }
+            }
+
+            NodeWriter::NodeWriter(const string& nodeID, const string& nodeLocale) : NodeIo(nodeID, nodeLocale) {
+                // cout << "(database) Abstract linguistcal data output source initialized for (" << nodeLocale << ")# " << nodeID << "." << endl;
+            }
+
+            NodeWriter::NodeWriter(const NodeWriter& node) : NodeIo(node.getID(), node.getLocale()) {
+                // cout << "(database) [NodeWriter] Abstract linguistcal data output source initialized for (" << getLocale() << ")# " << getID() << "." << endl;
+            }
+
+            NodeWriter::NodeWriter(const NodeIo& io) : NodeIo(io) {
+                // cout << "(database) [NodeIo] Abstract linguistcal data output source initialized for (" << getLocale() << ")# " << getID() << "." << endl;
+            }
+
+            void NodeWriter::addHandle(const NodeInteroperingSignalPair& dataPair) {
+                if (!(&dataPair == NULL)) {
+                    NodeWriter::handles.push_back(dataPair);
+                    // cout << "(database) Linguistics data output source added (#" << NodeWriter::handles.size() << ")" << endl;
+                }
+            }
+
+            NodeWriter* NodeWriter::obtain(const string& nodeID, const string& nodeLocale) {
+                // cout << "(database) Searching for linguistics data output sources..." << endl;
+                for (NodeInteroperingSignalVector::const_iterator itr = NodeWriter::handles.begin(); itr != NodeWriter::handles.end(); itr++) {
+                    const NodeInteroperingSignalPair aPair = *itr;
+                    if (!aPair.first->emit(nodeID, nodeLocale)) {
+                        return new NodeWriter(*aPair.second->emit(nodeID, nodeLocale));
+                    }
+                }
+                // cout << "(database) No linguistics data output sources found!" << endl;
+                return NULL;
+            }
+
+            bool NodeWriter::exists(const string &nodeID, const string &nodeLocale) {
+                for (NodeInteroperingSignalVector::const_iterator itr = NodeWriter::handles.begin(); itr != NodeWriter::handles.end(); itr++) {
+                    const NodeInteroperingSignalPair aPair = *itr;
+                    if (aPair.first->emit(nodeID, nodeLocale))
+                        return true;
+                }
+                return false;
+            }
+
+            void NodeWriter::write(const string& data) {
+                // cout << "(database) [NodeWriter] Writing to stdout..." << endl;
+                // cout << data << endl;
+            }
+
+            void NodeWriter::setData(NodeWriter& writer, Lexical& in) {
+                ostringstream outData;
+                outData << in.symbol() << endl;
+
+                for (Lexical::LexicalMap::const_iterator itr = in.flags().begin(); itr != in.flags().end(); itr++)
+                    outData << itr->first << " " << itr->second << endl;
+
+                writer.write(outData.str());
+                outData.clear();
+            }
+
+            LocalNode::LocalNode() {
+                // cout << "(database) [LocalNode] Linguisics data source base initialized." << endl;
+            }
+
+            LocalNode::~LocalNode() {
+                // cout << "(database) [LocalNode] Linguisics data source base destroyed." << endl;
+            }
+
+            const string LocalNode::getPath(const string& nodeID, const string& nodeLocale) {
+                string myLocale = nodeLocale;
+                if (nodeLocale.empty())
+                    myLocale = Configuration::getLocale();
+
+                string path = Configuration::getRootDirectory(nodeLocale) + string("/nods/") + nodeID;
+                boost::filesystem::path thePath(path);
+
+                //cout << "Formed path: " << thePath.relative_path().string() << endl;
+                return thePath.string();
+            }
+
+            bool LocalNode::exists(const string& nodeID, const string& nodeLocale) {
+                // cout << "(database) [LocalNode] Determing existence of (" << nodeLocale << ")'" << nodeID << "'..." << endl;
+                return boost::filesystem::exists(LocalNode::getPath(nodeID, nodeLocale));
+            }
+
+            LocalNodeReader::LocalNodeReader(const string& nodeID, const string& nodeLocale) : NodeReader(nodeID, nodeLocale), LocalNode() {
+                // cout << "(database) [LocalNodeReader] Linguistics data input source initialized. " << endl;
+            }
+
+            LocalNodeReader::LocalNodeReader(const NodeReader& node) : NodeReader(node), LocalNode() {
+
+            }
+
+            const string LocalNodeReader::get() const {
+                // TODO: Allow configuration of location globally and internally.
+                string path, data, flags, semid;
+
+                // get the path to the node on disk.
+                path = LocalNode::getPath(this->getID(), this->getLocale());
+
+                ifstream inNode(path.c_str(), ios::in);
+                ostringstream outData("");
+                inNode >> data;
+                outData << data << endl;
+
+                while (inNode >> flags >> semid)
+                    outData << flags << " " << semid << " " << endl;
+
+                inNode.close();
+                // cout << outData.str() << std::endl;
+                return outData.str();
+            }
+
+            LocalNodeReader* LocalNodeReader::obtain(const string& nodeID, const string& nodeLocale) {
+                // cout << "(database) [LocalNodeReader] Linguistics data input source formed. " << endl;
+                if (LocalNode::exists(nodeID,nodeLocale))
+                    return new LocalNodeReader(nodeID, nodeLocale);
+                else
+                    return NULL;
+            }
+
+            LocalNodeWriter::LocalNodeWriter(const string& nodeID, const string& nodeLocale) : NodeWriter(nodeID, nodeLocale), LocalNode() {
+                // cout << "(database) [LocalNodeWriter] Linguistics data output source initialized. " << endl;
+                if (LocalNode::exists(nodeID, nodeLocale)){
+                    // cout << "(database) [LocalNodeWriter] Overwriting pre-existing data... " << endl;
+                }
+            }
+
+            LocalNodeWriter::LocalNodeWriter(const NodeWriter& node) : NodeWriter(node), LocalNode() {
+                // cout << "(database) [LocalNodeWriter] Linguistics data output source initialized. " << endl;
+                if (LocalNode::exists(getID(), getLocale())){
+                    // cout << "(database) [LocalNodeWriter] Overwriting pre-existing data... " << endl;
+                }
+            }
+
+            void LocalNodeWriter::write(const string& data) {
+                // cout << "(database) [LocalNodeWriter] Saving... " << endl;
+                string path;
+
+                path = LocalNode::getPath(this->getID(), this->getLocale());
+                ofstream outNode(path.c_str(), ios::out | ios::trunc);
+                outNode << data;
+                outNode.close();
+                // cout << "(database) [LocalNodeWriter] Wrote " << data.length() * sizeof (char) << " bytes to '" << path << "'." << endl;
+            }
+
+            LocalNodeWriter* LocalNodeWriter::obtain(const string& nodeID, const string& nodeLocale) {
+                return new LocalNodeWriter(nodeID, nodeLocale);
+            }
+
+            JsonNode::JsonNode() {
+                // cout << "(database) [JsonNode] Linguisics data source base initialized." << endl;
+            }
+
+            JsonNode::~JsonNode() {
+                // cout << "(database) [JsonNode] Linguisics data source base destroyed." << endl;
+            }
+
+            bool JsonNode::loadLocale(const string& nodeLocale) {
+                // cout << "(database) [JsonNode] < " << nodeLocale << " > Loading locale information ..." << endl;
+                string path = Configuration::getRootDirectory(nodeLocale) + "/db.json";
+                boost::filesystem::path thePath(path);
+                path = thePath.string();
+                Json::Reader aReader;
+                Json::Value theValue;
+                aReader.parse(path, theValue);
+
+                if (theValue.isNull()) {
+                    // cout << "(database) [JsonNode] < " << nodeLocale << " > Malformed information recieved." << endl << "\t" << aReader.getFormatedErrorMessages() << endl;
+                    return false;
+                }
+
+                JsonDataSources::value_type dataPair(nodeLocale, theValue);
+                // cout << theValue.toStyledString() << endl;
+                JsonNode::_data.insert(dataPair);
+                return true;
+            }
+
+            Json::Value JsonNode::getJsonLocale(const string& locale) {
+                JsonDataSources::iterator jsItr = JsonNode::_data.find(locale);
+                if (jsItr != JsonNode::_data.end())
+                    return jsItr->second;
+
+                return Json::Value::null;
+            }
+
+            bool JsonNode::exists(const string& nodeID, const string& nodeLocale) {
+                // cout << "(database) [JsonNode] Determing existence of (" << nodeLocale << ")'" << nodeID << "'..." << endl;
+                JsonDataSources::iterator theItr = _data.find(nodeLocale);
+                if (theItr == _data.end())
+                    return false;
+
+                Json::Value theLocale = theItr->second;
+                return theLocale.isMember(nodeID);
+            }
+
+            JsonNodeReader::JsonNodeReader(const string& nodeID, const string& nodeLocale) : NodeReader(nodeID, nodeLocale) {
+                // cout << "(database) [JsonNodeWriter] Linguistics data input source initialized. " << endl;
+            }
+
+            JsonNodeReader* JsonNodeReader::obtain(const string& nodeID, const string& nodeLocale) {
+                // cout << "(database) [JsonNodeReader] Linguistics data input source formed. " << endl;
+                return new JsonNodeReader(nodeID, nodeLocale);
+            }
+
+            const string JsonNodeReader::get() const {
+                Json::Value theLocale = _data.find(this->getLocale())->second;
+                Json::Value node = theLocale[this->getID()];
+
+                // cout << "Dump: " << endl << theLocale.toStyledString() << endl;
+                // cout << "Focused dump: " << endl << node.toStyledString() << endl;
+                ostringstream outData;
+                outData << node["symbol"] << endl;
+
+                Json::Value flagCollection = theLocale["links"];
+                for (Json::Value::iterator itr = flagCollection.begin(); itr != flagCollection.end(); itr++) {
+                    Json::Value aValue = *itr;
+                    outData << aValue["flags"] << " " << aValue["semantic"] << endl;
+                }
+
+                return outData.str();
+            }
+
+            JsonNodeWriter::JsonNodeWriter(const string& nodeID, const string& nodeLocale) : NodeWriter(nodeID, nodeLocale) {
+
+            }
+
+            void JsonNodeWriter::write(const string& data) {
+                istringstream inData(data);
+                Json::Value theLocale = JsonNode::getJsonLocale(this->getLocale());
+                Json::Value theNode;
+                if (!theLocale.isMember(this->getID())) {
+                    Json::Reader aReader;
+                    aReader.parse(string("{'") + this->getID() + string("' : {}}"), theNode);
+                    theLocale.append(theNode);
+                }
+                theNode = theLocale[this->getID()];
+                inData >> theNode["symbol"];
+
+                Json::Value flagCollection = theNode["links"];
+                string flags, semid;
+                while (inData >> flags >> semid) {
+                    Json::Reader aLinkReader;
+                    Json::Value theLink;
+                    ostringstream outLink;
+                    outLink << "{ flags : '" << flags << "', semantic: '" << semid << "' }";
+                    aLinkReader.parse(outLink.str(), theLink);
+                    flagCollection.append(theLink);
+                }
+            }
+
+            JsonNodeWriter* JsonNodeWriter::obtain(const string& nodeID, const string& nodeLocale) {
+                return new JsonNodeWriter(nodeID, nodeLocale);
+            }
+
+            XmlNode::XmlNode() {
+                // cout << "(database) [XmlNode] Linguisics data source base initialized." << endl;
+            }
+
+            XmlNode::~XmlNode() {
+                // cout << "(database) [XmlNode] Linguisics data source base destroyed." << endl;
+            }
+
+            Element* XmlNode::getXmlLocale(const string& locale) {
+                XmlDataSources::iterator theItr = XmlNode::_docs.find(locale);
+                if (theItr == XmlNode::_docs.end())
+                    return NULL;
+                else
+                    return theItr->second->get_root_node();
+            }
+
+            bool XmlNode::loadLocale(const string& nodeLocale) {
+                // cout << "(database) [XmlNode] < " << nodeLocale << " > Loading locale information ..." << endl;
+                string path = Configuration::getRootDirectory(nodeLocale) + "/db.xml";
+                boost::filesystem::path thePath(path);
+                path = thePath.string();
+                
+                DomParser aParser;
+                aParser.set_validate(false);
+                aParser.set_substitute_entities(false);
+                try {
+                    aParser.parse_file(path);
+                } catch (xmlpp::exception &e) {
+                    // cout << "(database) [XmlNode] <" << nodeLocale << "> Error parsing linguistics data; '" << e.what() << "'" << endl;
+                    return false;
+                }
+
+                if (!aParser) {
+                    // cout << "(database) [XmlNode] <" << nodeLocale << "> Malformed linguistics data." << endl;
+                    return false;
+                }
+
+                Document* theDoc = aParser.get_document();
+                if (theDoc != NULL) {
+                    Element* theElem = theDoc->get_root_node();
+                    if (theElem == NULL){
+                        theElem = theDoc->create_root_node("Collection");
+                        theDoc->write_to_file(path);
+                    }
+
+                    if (theElem) {
+                        _docs.insert(XmlDataSources::value_type(nodeLocale, theDoc));
+                        // cout << "(database) [XmlNode] Memory dump:" << endl << theElem->get_children().size() << endl;
+                        return true;
+                    } else
+                        return false;
+                } else {
+                    return false;
+                }
+                return false;
+            }
+
+            bool XmlNode::exists(const string& nodeID, const string& nodeLocale) {
+                // cout << "(database) [XmlNode] Determing existence of (" << nodeLocale << ")'" << nodeID << "'..." << endl;
+                if (XmlNode::_docs.find(nodeLocale) == XmlNode::_docs.end())
+                    return false;
+
+                return XmlNode::obtainNode(nodeID, nodeLocale) != NULL;
+            }
+
+            Element* XmlNode::obtainNode(const string& nodeID, const string& nodeLocale) {
+                XmlDataSources::iterator docItr = XmlNode::_docs.find(nodeLocale);
+                if (docItr == XmlNode::_docs.end())
+                    return NULL;
+
+                Element* rootNode = docItr->second->get_root_node();
+                if (rootNode != NULL) {
+                    if (rootNode->has_child_text()) {
+                        NodeSet collection = rootNode->find("Node");
+                        if (!collection.empty()) {
+                            for (NodeSet::const_iterator itr = collection.begin(); itr != collection.end(); itr++) {
+                                Element* aElement = dynamic_cast<Element*> (*itr);
+                                if (aElement->get_attribute_value("ID") == nodeID)
+                                    return aElement;
+                            }
+                        }
+                    }
+                }
+                return NULL;
+            }
+
+            XmlNodeReader::XmlNodeReader(const string& nodeID, const string& nodeLocale) : NodeReader(nodeID, nodeLocale) {
+                // cout << "(database) [XmlNodeReader] Linguistics data input source initialized. " << endl;
+            }
+
+            const string XmlNodeReader::get() const {
+                ostringstream outData;
+                Element* theNode = XmlNode::obtainNode(this->getID(), this->getLocale());
+                NodeSet theLinks = theNode->find("Link");
+
+                outData << theNode->get_attribute_value("symbol");
+                if (!theLinks.empty()) {
+                    for (NodeSet::const_iterator itr = theLinks.begin(); itr != theLinks.end(); itr++) {
+                        Element* theLink = dynamic_cast<Element*> (*itr);
+                        outData << theLink->get_attribute_value("flag") << " " << theLink->get_attribute_value("semanticID") << endl;
+                    }
+                }
+
+                return outData.str();
+            }
+
+            XmlNodeReader* XmlNodeReader::obtain(const string& nodeID, const string& nodeLocale) {
+                // cout << "(database) [XmlNodeReader] Linguistics data input source formed. " << endl;
+                return new XmlNodeReader(nodeID, nodeLocale);
+            }
+
+            Lexical::Lexical() {
+
+            }
+
+            Lexical* Lexical::obtain() {
+                return new Lexical();
+            }
+
+            void Lexical::load(const NodeReader& node) {
+                NodeReader::getData(node, *this);
+            }
+
+            void Lexical::save(NodeWriter& node) {
+                NodeWriter::setData(node, *this);
+            }
+
+            string& Lexical::symbol() {
+                return _strSymbol;
+            }
+
+            Lexical::LexicalMap& Lexical::flags() {
+                return _data;
+
+            }
+        }
+    }
+}
\ No newline at end of file

=== added file 'wintermute-database/src/linguistics.hpp'
--- wintermute-database/src/linguistics.hpp	1970-01-01 00:00:00 +0000
+++ wintermute-database/src/linguistics.hpp	2011-04-04 16:09:29 +0000
@@ -0,0 +1,549 @@
+/*
+ *  Author: Jacky Alcine <jackyalcine@xxxxxxxxx>
+ *
+ *  Copyright 2011 Jacky Alcine
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+
+ * @file linguistics.hpp
+ * @author jacky
+ * @created March 29, 2011, 3:08 PM
+ */
+
+#ifndef LINGUISTICS_HPP
+#define	LINGUISTICS_HPP
+
+#include <sigc++/sigc++.h>
+#include <libxml++-2.6/libxml++/libxml++.h>
+#include </home/jacky/Documents/Development/Projects/Desktop/Wintermute/~wintermute-devel/json/src/include/json.h>
+#include <string>
+#include <vector>
+#include <map>
+#include <stdexcept>
+
+using namespace std;
+using namespace xmlpp;
+using std::string;
+using std::vector;
+using std::pair;
+using std::map;
+using xmlpp::Document;
+
+namespace Wintermute {
+    namespace Data {
+        namespace Linguistics {
+            class Configuration;
+            class NodeIo;
+            class LocalNode;
+            class JsonNode;
+            class XmlNode;
+            class Lexical;
+
+            class NodeReader;
+            class LocalNodeReader;
+            class XmlNodeReader;
+            class JsonNodeReader;
+
+            class NodeWriter;
+            class LocalNodeWriter;
+            class XmlNodeWriter;
+            class JsonNodeWriter;
+
+            /**
+             */
+            typedef sigc::slot<bool, const string&, const string&> NodeIoExistsSlot;
+            /**
+             */
+            typedef sigc::slot<NodeIo*, const string&, const string&> NodeIoHandleSlot;
+            /**
+             */
+            typedef sigc::signal<bool, const string&, const string&> NodeIoExistsSignal;
+            /**
+             */
+            typedef sigc::signal<NodeIo*, const string&, const string&> NodeIoHandleSignal;
+            /**
+             */
+            typedef pair<NodeIoExistsSignal*, NodeIoHandleSignal*> NodeInteroperingSignalPair;
+            /**
+             */
+            typedef vector<NodeInteroperingSignalPair> NodeInteroperingSignalVector;
+            /**
+             */
+            typedef LocalNode LocalData;
+            /**
+             */
+            typedef JsonNode JsonData;
+            /**
+             */
+            typedef XmlNode XmlData;
+
+            /**
+             * An abstract static class representing the current configuration 
+             * of the linguistics data.
+             */
+            class Configuration {
+            private:
+                static string _root;
+                static string _locale;
+                Configuration();
+                ~Configuration();
+
+            public:
+                /**
+                 * Initializes the system by running prerequieste code.
+                 * @param string root The directory of which data should be loaded from.
+                 * @param string locale The locale that should initially loaded.
+                 */
+                static void Initialize(const string& = "store", const string& = "en");
+                /**
+                 * @description Sets the default locale to use.
+                 * @param locale The locale to set.
+                 */
+                static void setLocale(const string = "en");
+                /**
+                 * @description Sets the root directory to load information from.
+                 * @param root The root directory.
+                 */
+                static void setRootDirectory(const string = "store");
+                /**
+                 * @description Gets current locale used.
+                 * @return String with the current locale.
+                 */
+                static const string getLocale();
+                /**
+                 * @description Gets the root directory for the specified locale.
+                 * @param locale String with the locale name.
+                 * @return String with the path to the locale root, relative to the main root.
+                 */
+                static const string getRootDirectory(const string = "en");
+            };
+
+            /**
+             * Represents the foundational class of all node input and output.
+             */
+            class NodeIo {
+            protected:
+                /**
+                 * Creates a new NodeIo.
+                 * @param string nodeID The ID of the node.
+                 * @param string nodeLocale The locale of the node.
+                 */
+                NodeIo(const string&, const string&);
+                const string strID;
+                const string strLocale;
+            public:
+                /**
+                 * Obtains the representing ID of this I/O object.
+                 * @return string The ID.
+                 */
+                const string getID() const;
+                /**
+                 * Obtains the underlying locale of this I/O object.
+                 * @return string The locale in a two to five-character string.
+                 */
+                const string getLocale() const;
+                /**
+                 *
+                 * @return
+                 */
+                const bool isNull() const;
+            };
+
+            /**
+             * Dependant on NodeIo; this class represents all NodeIo objects that
+             * read data.
+             * @see NodeIo
+             */
+            class NodeReader : public NodeIo {
+                friend class Lexical;
+            private:
+                static NodeInteroperingSignalVector handles;
+            protected:
+                /**
+                 * Creates an input object based on NodeIo.
+                 * @param string nodeID The ID of the node.
+                 * @param string nodeLocale The locale of the node.
+                 */
+                NodeReader(const string&, const string&);
+                /**
+                 * 
+                 * @param
+                 */
+                NodeReader(const NodeReader&);
+                NodeReader(const NodeIo&);
+                /**
+                 * Returns the data to be parsed as a Node.
+                 * @return string
+                 */
+                virtual const string get() const;
+
+            public:
+                /**
+                 * Attachs a new handler to obtain data from.
+                 * @param NodeInteroperingSignalPair The std::pair to add to the internal vector.
+                 * @see NodeInteroperingSignalPair
+                 * @see NodeReader::obtain
+                 */
+                static void addHandle(const NodeInteroperingSignalPair&);
+                /**
+                 *
+                 * @param
+                 * @param
+                 * @return
+                 */
+                static NodeReader* obtain(const string&, const string&);
+                /**
+                 *
+                 * @param
+                 * @param
+                 * @return
+                 */
+                static bool exists(const string&, const string&);
+                static void getData(const NodeReader&, Lexical&);
+            };
+
+            /**
+             */
+            class NodeWriter : public NodeIo {
+                friend class Lexical;
+            private:
+                static NodeInteroperingSignalVector handles;
+
+            protected:
+                /**
+                 *
+                 * @param
+                 * @param
+                 */
+                NodeWriter(const string&, const string&);
+                /**
+                 * 
+                 * @param
+                 */
+                NodeWriter(const NodeIo&);
+                /**
+                 * 
+                 * @param
+                 */
+                NodeWriter(const NodeWriter&);
+                /**
+                 *
+                 * @param
+                 */
+                virtual void write(const string&);
+
+            public:
+                /**
+                 *
+                 * @param
+                 */
+                static void addHandle(const NodeInteroperingSignalPair&);
+                /**
+                 *
+                 * @param
+                 * @param
+                 * @return
+                 */
+                static NodeWriter* obtain(const string&, const string&);
+                /**
+                 *
+                 * @param
+                 * @param
+                 * @return
+                 */
+                static bool exists(const string&, const string&);
+                static void setData(NodeWriter&, Lexical&);
+            };
+
+            /**
+             */
+            class Lexical {
+            protected:
+                Lexical();
+            public:
+                /**
+                 */
+                typedef map<string, string> LexicalMap;
+                static Lexical* obtain();
+                void save(NodeWriter&);
+                void load(const NodeReader&);
+                string& symbol();
+                LexicalMap& flags();
+            private:
+                string _strSymbol;
+                LexicalMap _data;
+            };
+
+            /**
+             */
+            class LocalNode {
+            protected:
+                /**
+                 *
+                 */
+                LocalNode();
+                virtual ~LocalNode() = 0;
+                /**
+                 *
+                 * @param
+                 * @param
+                 * @return
+                 */
+                static const string getPath(const string&, const string&);
+
+            public:
+                /**
+                 *
+                 * @param
+                 * @param
+                 * @return
+                 */
+                static bool exists(const string&, const string&);
+            };
+
+            /**
+             *
+             */
+            class LocalNodeReader : public NodeReader, protected LocalNode {
+            protected:
+                /**
+                 *
+                 * @param
+                 * @param
+                 */
+                LocalNodeReader(const string&, const string&);
+                LocalNodeReader(const NodeReader&);
+            public:
+                /**
+                 *
+                 * @param
+                 * @param
+                 * @return
+                 */
+                static LocalNodeReader* obtain(const string&, const string&);
+                /**
+                 *
+                 * @return
+                 */
+                const string get() const;
+            };
+
+            /**
+             */
+            class LocalNodeWriter : public NodeWriter, protected LocalNode {
+            protected:
+                /**
+                 *
+                 * @param
+                 * @param
+                 */
+                LocalNodeWriter(const string&, const string&);
+                LocalNodeWriter(const NodeWriter&);
+
+            public:
+                /**
+                 *
+                 * @param
+                 * @param
+                 * @return
+                 */
+                static LocalNodeWriter* obtain(const string&, const string&);
+                /**
+                 *
+                 * @param
+                 */
+                void write(const string&);
+            };
+
+            /**
+             */
+            class XmlNode {
+                typedef map<const string, Document*> XmlDataSources;
+            protected:
+                /**
+                 *
+                 */
+                XmlNode();
+                virtual ~XmlNode() = 0;
+                static XmlDataSources _docs;
+                /**
+                 *
+                 * @param
+                 * @param
+                 * @return
+                 */
+                static Element* obtainNode(const string&, const string&);
+                /**
+                 *
+                 * @param
+                 * @return
+                 */
+                static Element* getXmlLocale(const string& = "");
+            public:
+                /**
+                 *
+                 * @param
+                 * @return
+                 */
+                static bool loadLocale(const string& = "");
+                /**
+                 *
+                 * @param
+                 * @param
+                 * @return
+                 */
+                static bool exists(const string&, const string&);
+            };
+
+            /**
+             *
+             */
+            class XmlNodeReader : public NodeReader, protected XmlNode {
+            protected:
+                /**
+                 *
+                 * @param
+                 * @param
+                 */
+                XmlNodeReader(const string&, const string&);
+            public:
+                /**
+                 *
+                 * @param
+                 * @param
+                 * @return
+                 */
+                static XmlNodeReader* obtain(const string&, const string&);
+                /**
+                 *
+                 * @return
+                 */
+                virtual const string get() const;
+            };
+
+            /**
+             */
+            class XmlNodeWriter : public NodeWriter, protected XmlNode {
+            protected:
+                /**
+                 *
+                 * @param
+                 * @param
+                 */
+                XmlNodeWriter(const string&, const string&);
+            public:
+                /**
+                 *
+                 * @param
+                 * @param
+                 * @return
+                 */
+                static XmlNodeWriter* obtain(const string&, const string&);
+                /**
+                 *
+                 * @param
+                 */
+                virtual void write(const string&);
+            };
+
+            /**
+             */
+            class JsonNode {
+                typedef map<const string, Json::Value> JsonDataSources;
+            protected:
+                /**
+                 *
+                 */
+                JsonNode();
+                virtual ~JsonNode() = 0;
+                static JsonDataSources _data;
+                /**
+                 *
+                 * @param
+                 * @return
+                 */
+                static Json::Value getJsonLocale(const string& = "");
+            public:
+                /**
+                 *
+                 * @param
+                 * @return
+                 */
+                static bool loadLocale(const string& = "");
+                /**
+                 *
+                 * @param
+                 * @param
+                 * @return
+                 */
+                static bool exists(const string&, const string&);
+            };
+
+            /**
+             *
+             */
+            class JsonNodeReader : public NodeReader, protected JsonNode {
+            protected:
+                /**
+                 *
+                 * @param
+                 * @param
+                 */
+                JsonNodeReader(const string&, const string&);
+            public:
+                /**
+                 *
+                 * @param
+                 * @param
+                 * @return
+                 */
+                static JsonNodeReader* obtain(const string&, const string&);
+                /**
+                 *
+                 * @return
+                 */
+                virtual const string get() const;
+            };
+
+            /**
+             *
+             */
+            class JsonNodeWriter : public NodeWriter, protected JsonNode {
+            protected:
+                /**
+                 *
+                 * @param
+                 * @param
+                 */
+                JsonNodeWriter(const string&, const string&);
+            public:
+                /**
+                 *
+                 * @param
+                 * @param
+                 * @return
+                 */
+                static JsonNodeWriter* obtain(const string&, const string&);
+                /**
+                 *
+                 * @param
+                 */
+                virtual void write(const string&);
+            };
+        }
+    }
+}
+#endif	/* LINGUISTICS_HPP */

=== added file 'wintermute-database/src/ontology.cpp'
--- wintermute-database/src/ontology.cpp	1970-01-01 00:00:00 +0000
+++ wintermute-database/src/ontology.cpp	2011-04-04 16:09:29 +0000
@@ -0,0 +1,47 @@
+/*
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+
+ * @file ontology.cpp
+ * @author Jacky Alcine
+ * @created March 29, 2011, 2:25 PM
+ */
+#include "ontology.hpp"
+
+namespace Wintermute {
+    namespace Data {
+        namespace Ontology {
+
+            Concept::Concept(const string& conceptID) : id(conceptID){
+            }
+
+            const string Concept::getID() const {
+                return this->id;
+            }
+
+            Concept* Concept::obtain(const string& conceptID) {
+                return new Concept(conceptID);
+            }
+
+            Instance::Instance(const string& conceptID) : Concept(conceptID){
+                
+            }
+            
+            Instance* Instance::createFrom(const string& conceptID){
+                return new Instance(conceptID);
+            }
+        }
+    }
+}

=== added file 'wintermute-database/src/ontology.hpp'
--- wintermute-database/src/ontology.hpp	1970-01-01 00:00:00 +0000
+++ wintermute-database/src/ontology.hpp	2011-04-04 16:09:29 +0000
@@ -0,0 +1,101 @@
+/*
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+
+ * @file ontology.hpp
+ * @author Jacky Alcine
+ * @created March 29, 2011, 2:25 PM
+ */
+
+#ifndef ONTOLOGY_HPP
+#define	ONTOLOGY_HPP
+
+#include <vector>
+#include <string>
+
+using namespace std;
+
+using std::vector;
+using std::pair;
+using std::string;
+
+namespace Wintermute {
+    namespace Data {
+        namespace Ontology {
+            /**
+             * This class represents a node within the ontology.
+             */
+            class Concept;
+            class Relationship;
+            class Attribute;
+            class RelationshipCollection;
+            class Instance;
+
+            class Concept {
+            protected:
+                Concept(const string&);
+                const string id;
+
+            public:
+                static Concept* obtain(const string&);
+                const string getID() const;
+            };
+
+            class Relationship {
+            protected:
+                Relationship();
+                virtual ~Relationship();
+            };
+
+            class RelationshipCollection : protected vector<Relationship*> {
+            public:
+                RelationshipCollection();
+                RelationshipCollection(const vector<Relationship*> &);
+                virtual ~RelationshipCollection() = 0;
+            };
+
+            class Attribute {
+            protected:
+                Attribute();
+                virtual ~Attribute() = 0;
+
+            public:
+
+                class Facet {
+                protected:
+                    Facet();
+                    virtual ~Facet() = 0;
+                public:
+
+                };
+            };
+
+            class Instance : public Concept {
+            protected:
+                Instance(const string&);
+                void load();
+
+            public:
+                static Instance* createFrom(const Concept&);
+                static Instance* createFrom(const string&);
+                static Instance* createFrom(const vector<Concept&> &);
+                static Instance* createFrom(const vector<string&> &);
+            };
+        }
+    }
+}
+
+#endif	/* ONTOLOGY_HPP */
+

=== added file 'wintermute-database/src/wintermute-database.cpp'
--- wintermute-database/src/wintermute-database.cpp	1970-01-01 00:00:00 +0000
+++ wintermute-database/src/wintermute-database.cpp	2011-04-04 16:09:29 +0000
@@ -0,0 +1,23 @@
+/*
+ *  Author: Jacky Alcine <jacky.alcine@xxxxxxxxxx>
+ *
+ *  Copyright 2011 Jacky Alcine
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ *
+ */
+
+#include "wintermute-database.hpp"
\ No newline at end of file

=== added file 'wintermute-database/src/wintermute-database.hpp'
--- wintermute-database/src/wintermute-database.hpp	1970-01-01 00:00:00 +0000
+++ wintermute-database/src/wintermute-database.hpp	2011-04-04 16:09:29 +0000
@@ -0,0 +1,30 @@
+ /*
+ *  Author: Jacky Alcine <jacky.alcine@xxxxxxxxxx
+ *
+ *  Copyright 2011 Wintermute Developers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ *
+ */
+
+#ifndef CORE_HPP
+#define CORE_HPP
+
+#include "except.hpp"
+#include "ontology.hpp"
+#include "linguistics.hpp"
+
+#endif /* CORE_HPP */


Follow ups