<?xml version="1.0" encoding="utf-8"?>
<!--
 *	[M]y [A]ttempt at [R]eal [K]nowledge and [I]ntell[I]gence
 *
 *	Copyright (c) 2016-2017 Mark Sobkow
 *	
 *	Licensed under the Apache License, Version 2.0 (the "License");
 *	you may not use this file except in compliance with the License.
 *	You may obtain a copy of the License at
 *	
 *	    http://www.apache.org/licenses/LICENSE-2.0
 *	
 *	Unless required by applicable law or agreed to in writing, software
 *	distributed under the License is distributed on an "AS IS" BASIS,
 *	WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *	See the License for the specific language governing permissions and
 *	limitations under the License.
 *-->
<MSSBam
		xmlns="uri://msscodefactory/mssbam"
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		xmlns:xs="http://www.w3.org/2001/XMLSchema"
		xsi:schemaLocation="uri://msscodefactory/mssbam file:../bin/xsd/mssbam-2.9.xsd"
		Name="MarkII"
		Revision="2.10"
		Description="[M]y [A]ttempt at [R]eal [K]nowledge and [I]ntell[I]gence"
		ProjectRoot="net.sourceforge.MSSCodeFactory.MarkII.2.10" >
	<Tld Name="org" >
		<TopDomain Name="apache" >
			<License Name="ApacheV2"
					Description="Apache Version 2 License">
Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
.
    http://www.apache.org/licenses/LICENSE-2.0
.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.</License>
		</TopDomain>
		<TopDomain Name="gnu" >
			<License Name="GplV2"
					Description="GNU GPL v2+ License">
This project 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.
.
This project 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 this project.  If not, see http://www.gnu.org/licenses/.</License>
			<License Name="GplV3"
					Description="GNU GPL v3+ License">
This project 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 3 of the License, or
(at your option) any later version.
.
This project 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 this project.  If not, see http://www.gnu.org/licenses/.</License>
			<License Name="LGplV2"
					Description="GNU Lesser/Library GPL v2+ License">
This project is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
.
This project 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 Lesser Public License for more details.
.
You should have received a copy of the GNU Lesser Public License
along with this project.  If not, see http://www.gnu.org/licenses/.</License>
			<License Name="LGplV3"
					Description="GNU Lesser/Library GPL v3+ License">
This project is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
.
This project 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 Lesser Public License for more details.
.
You should have received a copy of the GNU Lesser Public License
along with this project.  If not, see http://www.gnu.org/licenses/.</License>
		</TopDomain>
	</Tld>
	<Tld Name="net" >
		<TopDomain Name="sourceforge" >
			<TopProject Name="MSSCodeFactory" >
				<SubProject Name="MarkII" >
					<MajorVersion Name="2" >
						<MinorVersion Name="10" >
<SchemaDef Name="MarkII"
		DbName="MarkII210"
		Description="[M]y [A]ttempt at [R]eal [K]nowledge and [I]ntell[I]gence"
		DefaultLicense="org.apache.ApacheV2"
		ExtendCFCore="true"
		CopyrightHolder="Mark Sobkow"
		CopyrightPeriod="2017"
		AuthorEMail="msobkow@sasktel.net"
		ProjectURL="http://msscodefactory.sourceforge.net/"
		PublishURI="http://msscodefactory.sourceforge.net/model-2.9/net-sourceforge-MSSCodeFactory-MarkII-2-10-MarkII.xml" >

	<SchemaRef Name="CFSecurity"
			RefModelName="net-sourceforge-MSSCodeFactory-CFSecurity-2-10-CFSecurity"
			IncludeRoot="net.sourceforge.MSSCodeFactory.CFSecurity.2.10.CFSecurity" />

	<SchemaRef Name="CFEng"
			RefModelName="net-sourceforge-MSSCodeFactory-CFEng-2-10-CFEng"
			IncludeRoot="net.sourceforge.MSSCodeFactory.CFEng.2.10.CFEng" />

	<Id64Gen Name="AvatarIdGen"
			IsNullable="false"
			DefaultVisibility="true"
			MinValue="0"
			InitValue="0"
			NullValue="0"
			Dispenser="Tenant"
			Slice="1200"
			BlockSize="1" />

	<Id64Gen Name="FBTimelineIdGen"
			IsNullable="false"
			DefaultVisibility="true"
			MinValue="0"
			InitValue="0"
			NullValue="0"
			Dispenser="Tenant"
			Slice="1201"
			BlockSize="1" />

	<TextType Name="FileContentsType"
			IsNullable="false"
			DefaultVisibility="true"
			MaxLen="2000000000"
			ShowLines="10"
			InitValue="" />

	<StringType Name="FileNameType"
			IsNullable="false"
			DefaultVisibility="true"
			MaxLen="2000"
			ShowLines="1"
			InitValue="" />

	<Id32Gen Name="OpenNLPFileNameIdGen"
			IsNullable="false"
			DefaultVisibility="true"
			MinValue="0"
			InitValue="0"
			NullValue="0"
			Dispenser="Tenant"
			Slice="1202"
			BlockSize="1" />

	<Id32Gen Name="ParseItemIdGen"
			IsNullable="false"
			DefaultVisibility="true"
			MinValue="0"
			InitValue="0"
			NullValue="0"
			Dispenser="Tenant"
			Slice="1203"
			BlockSize="1" />

	<Id64Gen Name="SentenceIdGen"
			IsNullable="false"
			DefaultVisibility="true"
			MinValue="0"
			InitValue="0"
			NullValue="0"
			Dispenser="Tenant"
			Slice="1204"
			BlockSize="1" />

	<Id64Gen Name="WordAssocIdGen"
			IsNullable="false"
			DefaultVisibility="true"
			MinValue="0"
			InitValue="0"
			NullValue="0"
			Dispenser="Tenant"
			Slice="1206"
			BlockSize="1" />

	<Id64Gen Name="WordCountIdGen"
			IsNullable="false"
			DefaultVisibility="true"
			MinValue="0"
			InitValue="0"
			NullValue="0"
			Dispenser="Tenant"
			Slice="1207"
			BlockSize="1" />

	<Id64Gen Name="WordIdGen"
			IsNullable="false"
			DefaultVisibility="true"
			MinValue="0"
			InitValue="0"
			NullValue="0"
			Dispenser="Tenant"
			Slice="1205"
			BlockSize="1" />

	<Id64Gen Name="WordVerbIdGen"
			IsNullable="false"
			DefaultVisibility="true"
			MinValue="0"
			InitValue="0"
			NullValue="0"
			Dispenser="Tenant"
			Slice="1208"
			BlockSize="1" />

	<Table Name="Avatar"
			TableClassCode="AVTR"
			DbName="Avatar"
			Label="Avatar"
			Description="Avatars are deployed as Tenants of a dedicated cluster"
			DefaultVisibility="true"
			IsInstantiable="true"
			HasHistory="true"
			HasAuditColumns="true"
			LookupIndex="AvatarUDescrIdx"
			LoaderBehaviour="Update"
			SecScope="Tenant" >
		<TableCol Name="TenantId"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="TenantIdGen" />
		<TableCol Name="AvatarId"
				Label="Avatar Id"
				IsNullable="false"
				DefaultVisibility="true"
				GenerateId="true"
				DataType="AvatarIdGen" />
		<StringCol Name="Description"
				IsNullable="false"
				DefaultVisibility="true"
				MaxLen="50"
				ShowLines="1"
				InitValue="" />
		<TZTimestampCol Name="ImportStarted"
				IsNullable="true"
				DefaultVisibility="true" />
		<TZTimestampCol Name="ImportCompleted"
				IsNullable="true"
				DefaultVisibility="true" />
		<PrimaryIndex Name="AvatarIdIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="Avatar_pidx"
				ShortName="PIdx"
				Suffix="IdIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="AvatarId" IsAscending="true" DefaultVisibility="true" />
		</PrimaryIndex>
		<Index Name="AvatarTenantIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="Avatar_xtenant"
				ShortName="Tenant"
				Suffix="TenantIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="AvatarUDescrIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="Avatar_xudsc"
				ShortName="UDescr"
				Suffix="UDescrIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="Description" IsAscending="true" DefaultVisibility="true" />
		</Index>

		<JavaTableInterface>
	public void updateAvatarWC( CFSecurityAuthorization Authorization,
		long argTenantId,
		long argAvatarId );
</JavaTableInterface>

		<JavaXMsgClientTableBody>
	public void updateAvatarWC( CFSecurityAuthorization Authorization,
		long argTenantId,
		long argAvatarId )
	{
		final String S_ProcName = "updateAvatarWC";

		throw CFLib.getDefaultExceptionFactory().newNotImplementedYetException( getClass(),
			S_ProcName,
			"You can not invoke database methods directly from client code." );
	}
</JavaXMsgClientTableBody>

		<JavaDb2LUWTableImplementation>
	public void updateAvatarWC( CFSecurityAuthorization Authorization,
		long argTenantId,
		long argAvatarId )
	{
		final String S_ProcName = "updateAvatarWC";
		try {
			Connection cnx = schema.getCnx();
			final String sql = "CALL sp_update_avatar_wc( ?, ?, ?, ?, ?, ?, ? )";
			PreparedStatement stmt = cnx.prepareStatement( sql );
			int argIdx = 1;
			stmt.setLong( argIdx++, ( Authorization == null ) ? 0 : Authorization.getSecClusterId() );
			stmt.setString( argIdx++, ( Authorization == null ) ? "" : Authorization.getSecUserId().toString() );
			stmt.setString( argIdx++, ( Authorization == null ) ? "" : Authorization.getSecSessionId().toString() );
			stmt.setLong( argIdx++, ( Authorization == null ) ? 0 : Authorization.getSecClusterId() );
			stmt.setLong( argIdx++, ( Authorization == null ) ? 0 : Authorization.getSecTenantId() );
			stmt.setLong( argIdx++, argTenantId );
			stmt.setLong( argIdx++, argAvatarId );
			stmt.executeQuery();
			stmt.close();
		}
		catch( SQLException e ) {
			throw CFLib.getDefaultExceptionFactory().newDbException( getClass(),
				S_ProcName,
				e );
		}
	}
</JavaDb2LUWTableImplementation>

		<JavaMySqlTableImplementation>
	public void updateAvatarWC( CFSecurityAuthorization Authorization,
		long argTenantId,
		long argAvatarId )
	{
		final String S_ProcName = "updateAvatarWC";
		try {
			Connection cnx = schema.getCnx();
			String sql = "call " + schema.getLowerDbSchemaName() + ".sp_update_avatar_wc( ?, ?, ?, ?, ?" + ", "
				+		"?" + ", "
				+		"?" + " )";
			PreparedStatement stmt = cnx.prepareStatement( sql );
			int argIdx = 1;
			stmt.setLong( argIdx++, ( Authorization == null ) ? 0 : Authorization.getSecClusterId() );
			stmt.setString( argIdx++, ( Authorization == null ) ? "" : Authorization.getSecUserId().toString() );
			stmt.setString( argIdx++, ( Authorization == null ) ? "" : Authorization.getSecSessionId().toString() );
			stmt.setLong( argIdx++, ( Authorization == null ) ? 0 : Authorization.getSecClusterId() );
			stmt.setLong( argIdx++, ( Authorization == null ) ? 0 : Authorization.getSecTenantId() );
			stmt.setLong( argIdx++, argTenantId );
			stmt.setLong( argIdx++, argAvatarId );
			stmt.executeUpdate();
			stmt.close();
		}
		catch( SQLException e ) {
			throw CFLib.getDefaultExceptionFactory().newDbException( getClass(),
				S_ProcName,
				e );
		}
	}
</JavaMySqlTableImplementation>

		<JavaOracleTableImplementation>
	public void updateAvatarWC( CFSecurityAuthorization Authorization,
		long argTenantId,
		long argAvatarId )
	{
		final String S_ProcName = "updateAvatarWC";
		try {
			Connection cnx = schema.getCnx();
			String sql = "begin call " + schema.getLowerDbSchemaName() + ".up_avatarwc( ?, ?, ?, ?, ?, ?, ? ); end";
			PreparedStatement stmt = cnx.prepareStatement( sql );
			int argIdx = 1;
			stmt.setLong( argIdx++, ( Authorization == null ) ? 0 : Authorization.getSecClusterId() );
			stmt.setString( argIdx++, ( Authorization == null ) ? "" : Authorization.getSecUserId().toString() );
			stmt.setString( argIdx++, ( Authorization == null ) ? "" : Authorization.getSecSessionId().toString() );
			stmt.setLong( argIdx++, ( Authorization == null ) ? 0 : Authorization.getSecClusterId() );
			stmt.setLong( argIdx++, ( Authorization == null ) ? 0 : Authorization.getSecTenantId() );
			stmt.setLong( argIdx++, argTenantId );
			stmt.setLong( argIdx++, argAvatarId );
			int rowsUpdated = stmt.executeUpdate();
			stmt.close();
		}
		catch( SQLException e ) {
			throw CFLib.getDefaultExceptionFactory().newDbException( getClass(),
				S_ProcName,
				e );
		}
	}
</JavaOracleTableImplementation>

		<JavaPgSqlTableImplementation>
	public void updateAvatarWC( CFSecurityAuthorization Authorization,
		long argTenantId,
		long argAvatarId )
	{
		final String S_ProcName = "updateAvatarWC";
		try {
			Connection cnx = schema.getCnx();
			String sql = "SELECT " + schema.getLowerDbSchemaName() + ".sp_update_avatar_wc( ?, ?, ?, ?, ?, ?, ? ) as DeletedFlag";
			PreparedStatement stmt = cnx.prepareStatement( sql );
			int argIdx = 1;
			stmt.setLong( argIdx++, ( Authorization == null ) ? 0 : Authorization.getSecClusterId() );
			stmt.setString( argIdx++, ( Authorization == null ) ? "" : Authorization.getSecUserId().toString() );
			stmt.setString( argIdx++, ( Authorization == null ) ? "" : Authorization.getSecSessionId().toString() );
			stmt.setLong( argIdx++, ( Authorization == null ) ? 0 : Authorization.getSecClusterId() );
			stmt.setLong( argIdx++, ( Authorization == null ) ? 0 : Authorization.getSecTenantId() );
			stmt.setLong( argIdx++, argTenantId );
			stmt.setLong( argIdx++, argAvatarId );
			stmt.executeQuery();
			stmt.close();
		}
		catch( SQLException e ) {
			throw CFLib.getDefaultExceptionFactory().newDbException( getClass(),
				S_ProcName,
				e );
		}
	}
</JavaPgSqlTableImplementation>

		<JavaRamTableImplementation>
	public void updateAvatarWC( CFSecurityAuthorization Authorization,
		long argTenantId,
		long argAvatarId )
	{
		final String S_ProcName = "updateAvatarWC";

		throw CFLib.getDefaultExceptionFactory().newNotImplementedYetException( getClass(),
			S_ProcName,
			"The RAM database will never be supported.  You must have real persistent storage in place." );
	}
</JavaRamTableImplementation>

		<JavaSybaseTableImplementation>
	public void updateAvatarWC( CFSecurityAuthorization Authorization,
		long argTenantId,
		long argAvatarId )
	{
		final String S_ProcName = "updateAvatarWC";
		try {
			Connection cnx = schema.getCnx();
			String sql = "exec sp_update_avatar_wc ?, ?, ?, ?, ?, ?, ?";
			PreparedStatement stmt = cnx.prepareStatement( sql );
			int argIdx = 1;
			stmt.setLong( argIdx++, ( Authorization == null ) ? 0 : Authorization.getSecClusterId() );
			stmt.setString( argIdx++, ( Authorization == null ) ? "" : Authorization.getSecUserId().toString() );
			stmt.setString( argIdx++, ( Authorization == null ) ? "" : Authorization.getSecSessionId().toString() );
			stmt.setLong( argIdx++, ( Authorization == null ) ? 0 : Authorization.getSecClusterId() );
			stmt.setLong( argIdx++, ( Authorization == null ) ? 0 : Authorization.getSecTenantId() );
			stmt.setLong( argIdx++, argTenantId );
			stmt.setLong( argIdx++, argAvatarId );
			stmt.execute();
			stmt.close();
		}
		catch( SQLException e ) {
			throw CFLib.getDefaultExceptionFactory().newDbException( getClass(),
				S_ProcName,
				e );
		}
	}
</JavaSybaseTableImplementation>

		<JavaObjInterface>
	public ICFLibMessageLog getLog();
	public void setLog( ICFLibMessageLog argLog );

	public Object getFBProfile();
	public void setFBProfile( Object argProfile );

	public Object getOpenNLPSchema();
	public void setOpenNLPSchema( Object argOpenNLPSchema );
</JavaObjInterface>

		<JavaObjImport>
import java.io.File;
</JavaObjImport>

		<JavaObjImplementation>
	protected static ICFLibMessageLog log = new CFLibMessageLogWrapper();

	public ICFLibMessageLog getLog() {
		return( log );
	}

	public void setLog( ICFLibMessageLog argLog ) {
		final String S_ProcName = &quot;setLog&quot;;
		if( argLog == null ) {
			throw CFLib.getDefaultExceptionFactory().newNullArgumentException( getClass(),
				S_ProcName,
				1,
				&quot;argLog&quot; );
		}
		log = argLog;
	}

	protected static Object fbProfile = null;

	public Object getFBProfile() {
		return( fbProfile );
	}

	public void setFBProfile( Object argProfile ) {
		final String S_ProcName = &quot;setFBProfile&quot;;
		if( argProfile == null ) {
			throw CFLib.getDefaultExceptionFactory().newNullArgumentException( getClass(),
				S_ProcName,
				1,
				&quot;argProfile&quot; );
		}
		fbProfile = argProfile;
	}

	protected static Object openNLPSchema = null;

	public Object getOpenNLPSchema() {
		return( openNLPSchema );
	}

	public void setOpenNLPSchema( Object argOpenNLPSchema ) {
		final String S_ProcName = &quot;setOpenNLPSchema&quot;;
		if( argOpenNLPSchema == null ) {
			throw CFLib.getDefaultExceptionFactory().newNullArgumentException( getClass(),
				S_ProcName,
				1,
				&quot;argOpenNLPSchema&quot; );
		}
		openNLPSchema = argOpenNLPSchema;
	}
</JavaObjImplementation>

		<JavaEditObjImport>
import java.io.File;
</JavaEditObjImport>

		<JavaEditObjImplementation>
	public ICFLibMessageLog getLog() {
		return( getOrig().getLog() );
	}

	public void setLog( ICFLibMessageLog argLog ) {
		getOrig().setLog( argLog );
	}

	public Object getFBProfile() {
		Object fbProfile = getOrig().getFBProfile();
		return( fbProfile );
	}

	public void setFBProfile( Object argProfile ) {
		getOrig().setFBProfile( argProfile );
	}

	public Object getOpenNLPSchema() {
		Object openNLPSchema = getOrig().getOpenNLPSchema();
		return( openNLPSchema );
	}

	public void setOpenNLPSchema( Object argOpenNLPSchema ) {
		getOrig().setOpenNLPSchema( argOpenNLPSchema );
	}
</JavaEditObjImplementation>

		<CPlusDb2LUWTableInclude>
#include &lt;cflib/CFLibNotImplementedYetException.hpp&gt;
</CPlusDb2LUWTableInclude>

		<JavaDb2LUWTableImport>
import java.io.File;
import net.sourceforge.msscodefactory.markii.v2_10.MarkIIChatBot.*;
import net.sourceforge.msscodefactory.markii.v2_10.MarkIIFB.*;
import net.sourceforge.msscodefactory.markii.v2_10.MarkIIOpenNLP.*;
</JavaDb2LUWTableImport>

		<CPlusMySqlTableInclude>
#include &lt;cflib/CFLibNotImplementedYetException.hpp&gt;
</CPlusMySqlTableInclude>

		<JavaMySqlTableImport>
import java.io.File;
import net.sourceforge.msscodefactory.markii.v2_10.MarkIIChatBot.*;
import net.sourceforge.msscodefactory.markii.v2_10.MarkIIFB.*;
import net.sourceforge.msscodefactory.markii.v2_10.MarkIIOpenNLP.*;
</JavaMySqlTableImport>

		<CPlusOracleTableInclude>
#include &lt;cflib/CFLibNotImplementedYetException.hpp&gt;
</CPlusOracleTableInclude>

		<JavaOracleTableImport>
import java.io.File;
import net.sourceforge.msscodefactory.markii.v2_10.MarkIIChatBot.*;
import net.sourceforge.msscodefactory.markii.v2_10.MarkIIFB.*;
import net.sourceforge.msscodefactory.markii.v2_10.MarkIIOpenNLP.*;
</JavaOracleTableImport>

		<CPlusPgSqlTableInclude>
#include &lt;cflib/CFLibNotImplementedYetException.hpp&gt;
</CPlusPgSqlTableInclude>

		<JavaPgSqlTableImport>
import java.io.File;
import net.sourceforge.msscodefactory.markii.v2_10.MarkIIChatBot.*;
import net.sourceforge.msscodefactory.markii.v2_10.MarkIIFB.*;
import net.sourceforge.msscodefactory.markii.v2_10.MarkIIOpenNLP.*;
</JavaPgSqlTableImport>

		<CPlusSybaseTableInclude>
#include &lt;cflib/CFLibNotImplementedYetException.hpp&gt;
</CPlusSybaseTableInclude>

		<JavaSybaseTableImport>
import java.io.File;
import net.sourceforge.msscodefactory.markii.v2_10.MarkIIChatBot.*;
import net.sourceforge.msscodefactory.markii.v2_10.MarkIIFB.*;
import net.sourceforge.msscodefactory.markii.v2_10.MarkIIOpenNLP.*;
</JavaSybaseTableImport>

		<CPlusRamTableInclude>
#include &lt;cflib/CFLibNotImplementedYetException.hpp&gt;
</CPlusRamTableInclude>

		<JavaRamTableImport>
import java.io.File;
import net.sourceforge.msscodefactory.markii.v2_10.MarkIIChatBot.*;
import net.sourceforge.msscodefactory.markii.v2_10.MarkIIFB.*;
import net.sourceforge.msscodefactory.markii.v2_10.MarkIIOpenNLP.*;
</JavaRamTableImport>
	</Table>

	<Table Name="FBTimeline"
			TableClassCode="FBTL"
			DbName="FBTimeline"
			Label="FBTimeline"
			Description="Facebook Timeline Exports provide data to derive an Avatar"
			DefaultVisibility="true"
			IsInstantiable="true"
			HasHistory="true"
			HasAuditColumns="true"
			LookupIndex="FBTimelineUMetaIdx"
			LoaderBehaviour="Update"
			SecScope="Tenant" >
		<TableCol Name="TenantId"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="TenantIdGen" />
		<TableCol Name="FBTimelineId"
				Label="FBTimeline Id"
				IsNullable="false"
				DefaultVisibility="true"
				GenerateId="true"
				DataType="FBTimelineIdGen" />
		<TableCol Name="AvatarId"
				Label="Avatar Id"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="AvatarIdGen" />
		<StringCol Name="Meta"
				IsNullable="false"
				DefaultVisibility="true"
				MaxLen="255"
				ShowLines="1"
				InitValue="" />
		<TimestampCol Name="TStamp"
				IsNullable="false"
				DefaultVisibility="true"
				InitValue="2017-01-01T00:00:00" />
		<TextCol Name="Comment"
				IsNullable="false"
				DefaultVisibility="true"
				DbName="txt_cmnt"
				MaxLen="128000"
				ShowLines="1"
				InitValue="" />
		<TextCol Name="Body"
				IsNullable="false"
				DefaultVisibility="true"
				DbName="txt_body"
				MaxLen="1024000"
				ShowLines="1"
				InitValue="" />
		<PrimaryIndex Name="FBTimelineIdIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="FBTimeline_pidx"
				ShortName="PIdx"
				Suffix="IdIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="FBTimelineId" IsAscending="true" DefaultVisibility="true" />
		</PrimaryIndex>
		<Index Name="FBTimelineTenantIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="FBTimeline_xtenant"
				ShortName="Tenant"
				Suffix="TenantIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="FBTimelineAvatarIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="FBTimeline_xctc"
				ShortName="Avatar"
				Suffix="AvatarIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="AvatarId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="FBTimelineUMetaIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="FBTimeline_xumeta"
				ShortName="UMeta"
				Suffix="UMetaIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="AvatarId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="Meta" IsAscending="true" DefaultVisibility="true" />
		</Index>

		<JavaObjInterface>
	public ICFLibMessageLog getLog();
	public void setLog( ICFLibMessageLog argLog );

	public Object getFBProfile();
	public void setFBProfile( Object argProfile );
</JavaObjInterface>

		<JavaObjImport>
import java.io.File;
</JavaObjImport>

		<JavaObjImplementation>
	public ICFLibMessageLog getLog() {
		ICFLibMessageLog log = getRequiredContainerAvatar().getLog();
		return( log );
	}

	public void setLog( ICFLibMessageLog argLog ) {
		getRequiredContainerAvatar().setLog( argLog );
	}

	public Object getFBProfile() {
		Object fbProfile = getRequiredContainerAvatar().getFBProfile();
		return( fbProfile );
	}

	public void setFBProfile( Object argProfile ) {
		getRequiredContainerAvatar().setFBProfile( argProfile );
	}
</JavaObjImplementation>

		<JavaEditObjImport>
import java.io.File;
</JavaEditObjImport>

		<JavaEditObjImplementation>
	public ICFLibMessageLog getLog() {
		ICFLibMessageLog log = getOrig().getLog();
		return( log );
	}

	public void setLog( ICFLibMessageLog argLog ) {
		getOrig().setLog( argLog );
	}

	public Object getFBProfile() {
		Object fbProfile = getOrig().getFBProfile();
		return( fbProfile );
	}

	public void setFBProfile( Object argProfile ) {
		getOrig().setFBProfile( argProfile );
	}
</JavaEditObjImplementation>

		<CPlusDb2LUWTableInclude>
#include &lt;cflib/CFLibNotImplementedYetException.hpp&gt;
</CPlusDb2LUWTableInclude>

		<JavaDb2LUWTableImport>
import java.io.File;
import net.sourceforge.msscodefactory.markii.v2_10.MarkIIChatBot.*;
import net.sourceforge.msscodefactory.markii.v2_10.MarkIIFB.*;
import net.sourceforge.msscodefactory.markii.v2_10.MarkIIOpenNLP.*;
</JavaDb2LUWTableImport>

		<CPlusMySqlTableInclude>
#include &lt;cflib/CFLibNotImplementedYetException.hpp&gt;
</CPlusMySqlTableInclude>

		<JavaMySqlTableImport>
import java.io.File;
import net.sourceforge.msscodefactory.markii.v2_10.MarkIIChatBot.*;
import net.sourceforge.msscodefactory.markii.v2_10.MarkIIFB.*;
import net.sourceforge.msscodefactory.markii.v2_10.MarkIIOpenNLP.*;
</JavaMySqlTableImport>

		<CPlusOracleTableInclude>
#include &lt;cflib/CFLibNotImplementedYetException.hpp&gt;
</CPlusOracleTableInclude>

		<JavaOracleTableImport>
import java.io.File;
import net.sourceforge.msscodefactory.markii.v2_10.MarkIIChatBot.*;
import net.sourceforge.msscodefactory.markii.v2_10.MarkIIFB.*;
import net.sourceforge.msscodefactory.markii.v2_10.MarkIIOpenNLP.*;
</JavaOracleTableImport>

		<CPlusPgSqlTableInclude>
#include &lt;cflib/CFLibNotImplementedYetException.hpp&gt;
</CPlusPgSqlTableInclude>

		<JavaPgSqlTableImport>
import java.io.File;
import net.sourceforge.msscodefactory.markii.v2_10.MarkIIChatBot.*;
import net.sourceforge.msscodefactory.markii.v2_10.MarkIIFB.*;
import net.sourceforge.msscodefactory.markii.v2_10.MarkIIOpenNLP.*;
</JavaPgSqlTableImport>

		<CPlusSybaseTableInclude>
#include &lt;cflib/CFLibNotImplementedYetException.hpp&gt;
</CPlusSybaseTableInclude>

		<JavaSybaseTableImport>
import java.io.File;
import net.sourceforge.msscodefactory.markii.v2_10.MarkIIChatBot.*;
import net.sourceforge.msscodefactory.markii.v2_10.MarkIIFB.*;
import net.sourceforge.msscodefactory.markii.v2_10.MarkIIOpenNLP.*;
</JavaSybaseTableImport>

		<CPlusRamTableInclude>
#include &lt;cflib/CFLibNotImplementedYetException.hpp&gt;
</CPlusRamTableInclude>

		<JavaRamTableImport>
import java.io.File;
import net.sourceforge.msscodefactory.markii.v2_10.MarkIIChatBot.*;
import net.sourceforge.msscodefactory.markii.v2_10.MarkIIFB.*;
import net.sourceforge.msscodefactory.markii.v2_10.MarkIIOpenNLP.*;
</JavaRamTableImport>
	</Table>

	<Table Name="OpenNLPFileName"
			TableClassCode="OLPF"
			DbName="ONLPFName"
			Label="Open NLP File Name"
			Description="Open NLP File Names are very common in the model"
			DefaultVisibility="true"
			IsInstantiable="true"
			HasHistory="true"
			HasAuditColumns="true"
			LookupIndex="OpenNLPFileNameUFileNameIdx"
			LoaderBehaviour="Update"
			SecScope="Tenant" >
		<TableCol Name="TenantId"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="TenantIdGen" />
		<TableCol Name="OpenNLPFileNameId"
				Label="OpenNLPFileName Id"
				IsNullable="false"
				DefaultVisibility="true"
				GenerateId="true"
				DataType="OpenNLPFileNameIdGen" />
		<StringCol Name="FileName"
				IsNullable="false"
				DefaultVisibility="true"
				MaxLen="255"
				ShowLines="1"
				InitValue="" />
		<PrimaryIndex Name="OpenNLPFileNameIdIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="ONLPFName_pidx"
				ShortName="PIdx"
				Suffix="IdIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="OpenNLPFileNameId" IsAscending="true" DefaultVisibility="true" />
		</PrimaryIndex>
		<Index Name="OpenNLPFileNameTenantIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="ONLPFName_xtenant"
				ShortName="Tenant"
				Suffix="TenantIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="OpenNLPFileNameUFileNameIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="ONLPFName_xufname"
				ShortName="UFileName"
				Suffix="UFileNameIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="FileName" IsAscending="true" DefaultVisibility="true" />
		</Index>
	</Table>

	<Table Name="ParseItem"
			TableClassCode="PITM"
			DbName="ParseItem"
			Label="Parse Item"
			Description="Sentence parse item"
			DefaultVisibility="true"
			IsInstantiable="true"
			HasHistory="true"
			HasAuditColumns="true"
			LoaderBehaviour="Insert"
			SecScope="Tenant" >
		<TableCol Name="TenantId"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="TenantIdGen" />
		<TableCol Name="ParseItemId"
				Label="Parse Item Id"
				IsNullable="false"
				DefaultVisibility="true"
				GenerateId="true"
				DataType="ParseItemIdGen" />
		<TableCol Name="SentenceId"
				Label="Sentence Id"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="SentenceIdGen" />
		<BoolCol Name="IsAtom"
				IsNullable="false"
				DefaultVisibility="true"
				InitValue="false" />
		<StringCol Name="Tag"
				IsNullable="false"
				DefaultVisibility="true"
				MaxLen="512"
				ShowLines="1"
				InitValue="" />
		<StringCol Name="Value"
				IsNullable="true"
				DefaultVisibility="true"
				DbName="PVal"
				MaxLen="2048"
				ShowLines="1" />
		<Int32Col Name="StartOffset"
				IsNullable="false"
				DefaultVisibility="true"
				MinValue="-1"
				InitValue="-1" />
		<Int32Col Name="EndOffset"
				IsNullable="false"
				DefaultVisibility="true"
				MinValue="-1"
				InitValue="-1" />
		<TableCol Name="ParentTenantId"
				IsNullable="true"
				DefaultVisibility="true"
				DbName="ParTenantId"
				DataType="TenantIdGen" />
		<TableCol Name="ParentParseItemId"
				IsNullable="true"
				DefaultVisibility="true"
				DbName="ParPItemId"
				DataType="ParseItemIdGen" />
		<Int32Col Name="Seq"
				IsNullable="false"
				DefaultVisibility="true"
				MinValue="0" />
		<TableCol Name="WordTenantId"
				IsNullable="true"
				DefaultVisibility="true"
				DataType="TenantIdGen" />
		<TableCol Name="WordAvatarId"
				Label="Word Avatar Id"
				IsNullable="true"
				DefaultVisibility="true"
				DataType="AvatarIdGen" />
		<TableCol Name="WordId"
				Label="Word Id"
				IsNullable="true"
				DefaultVisibility="true"
				DataType="WordIdGen" />
		<PrimaryIndex Name="ParseItemIdIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="ParseItem_pidx"
				ShortName="PIdx"
				Suffix="IdIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="ParseItemId" IsAscending="true" DefaultVisibility="true" />
		</PrimaryIndex>
		<Index Name="ParseItemTenantIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="ParseItem_xtenant"
				ShortName="Tenant"
				Suffix="TenantIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="ParseItemSentenceIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="ParseItem_xsent"
				ShortName="Sentence"
				Suffix="SentenceIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="SentenceId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="ParseItemParentIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="ParseItem_paridx"
				ShortName="ParIdx"
				Suffix="ParIdx" >
			<IndexCol Name="ParentTenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="ParentParseItemId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="ParseItemAltIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="ParseItem_altidx"
				ShortName="AltIdx"
				Suffix="AltIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="SentenceId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="ParentTenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="ParentParseItemId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="ParseItemSeqIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="ParseItem_seqidx"
				ShortName="SeqIdx"
				Suffix="SeqIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="SentenceId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="ParentTenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="ParentParseItemId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="Seq" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="ParseItemWordAvatarIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="ParseItem_xwavatar"
				ShortName="WAvatar"
				Suffix="WAvatarIdx" >
			<IndexCol Name="WordTenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="WordAvatarId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="ParseItemWordIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="ParseItem_wordidx"
				ShortName="WordIdx"
				Suffix="WordIdx" >
			<IndexCol Name="WordTenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="WordId" IsAscending="true" DefaultVisibility="true" />
		</Index>

		<JavaObjInterface>
	String getEffectiveValue();
</JavaObjInterface>

		<JavaObjImplementation>
	public String getEffectiveValue() {
		String retval;
		if( getRequiredIsAtom() ) {
			retval = getOptionalValue();
		}
		else {
			StringBuffer buff = new StringBuffer();
			Iterator&lt;I$DefSchemaName$ParseItemObj&gt; iter = getRequiredChildrenParseItem().iterator();
			I$DefSchemaName$ParseItemObj parseItem;
			String sub;
			while( iter.hasNext() ) {
				parseItem = iter.next();
				sub = parseItem.getEffectiveValue();
				if( sub.length() &gt; 0 ) {
					if( buff.length() &gt; 0 ) {
						buff.append( &quot; &quot; );
					}
					buff.append( sub );
				}
			}
			retval = buff.toString();
		}
		return( retval );
	}
</JavaObjImplementation>

		<JavaEditObjImplementation>
	public String getEffectiveValue() {
		String retval;
		if( getRequiredIsAtom() ) {
			retval = getOptionalValue();
		}
		else {
			StringBuffer buff = new StringBuffer();
			Iterator&lt;I$DefSchemaName$ParseItemObj&gt; iter = getRequiredChildrenParseItem().iterator();
			I$DefSchemaName$ParseItemObj parseItem;
			String sub;
			while( iter.hasNext() ) {
				parseItem = iter.next();
				sub = parseItem.getEffectiveValue();
				if( sub.length() &gt; 0 ) {
					if( buff.length() &gt; 0 ) {
						buff.append( &quot; &quot; );
					}
					buff.append( sub );
				}
			}
			retval = buff.toString();
		}
		return( retval );
	}
</JavaEditObjImplementation>
	</Table>

	<Table Name="Sentence"
			TableClassCode="SENT"
			DbName="Sentence"
			Label="Sentence"
			Description="A sentance of a comment"
			DefaultVisibility="true"
			IsInstantiable="true"
			HasHistory="true"
			HasAuditColumns="true"
			LoaderBehaviour="Insert"
			SecScope="Tenant" >
		<TableCol Name="TenantId"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="TenantIdGen" />
		<TableCol Name="SentenceId"
				Label="Sentence Id"
				IsNullable="false"
				DefaultVisibility="true"
				GenerateId="true"
				DataType="SentenceIdGen" />
		<TableCol Name="FBTimelineId"
				Label="FBTimeline Id"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="FBTimelineIdGen" />
		<TextCol Name="ParseString"
				IsNullable="false"
				DefaultVisibility="true"
				DbName="parse_str"
				MaxLen="10000"
				ShowLines="1"
				InitValue="" />
		<TableCol Name="PrevTenantId"
				IsNullable="true"
				DefaultVisibility="true"
				DataType="TenantIdGen" />
		<TableCol Name="PrevSentenceId"
				Label="Previous Sentence Id"
				IsNullable="true"
				DefaultVisibility="true"
				DataType="SentenceIdGen" />
		<TableCol Name="NextTenantId"
				IsNullable="true"
				DefaultVisibility="true"
				DataType="TenantIdGen" />
		<TableCol Name="NextSentenceId"
				Label="Next Sentence Id"
				IsNullable="true"
				DefaultVisibility="true"
				DataType="SentenceIdGen" />
		<PrimaryIndex Name="SentenceIdIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="Sentence_pidx"
				ShortName="PIdx"
				Suffix="IdIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="SentenceId" IsAscending="true" DefaultVisibility="true" />
		</PrimaryIndex>
		<Index Name="SentenceTenantIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="Sentence_xtenant"
				ShortName="Tenant"
				Suffix="TenantIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="SentenceTimelineIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="Sentence_xtimeline"
				ShortName="Timeline"
				Suffix="TimelineIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="FBTimelineId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="SentencePrevIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="Sentence_previdx"
				ShortName="PrevIdx"
				Suffix="PrevIdx" >
			<IndexCol Name="PrevTenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="PrevSentenceId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="SentenceNextIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="Sentence_nextidx"
				ShortName="NextIdx"
				Suffix="NextIdx" >
			<IndexCol Name="NextTenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="NextSentenceId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="SentenceTimelinePrevIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="Sentence_tmprevidx"
				ShortName="TmPrevIdx"
				Suffix="TmPrevIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="FBTimelineId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="PrevTenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="PrevSentenceId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="SentenceTimelineNextIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="Sentence_tmnextidx"
				ShortName="TmNextIdx"
				Suffix="TmNextIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="FBTimelineId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="NextTenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="NextSentenceId" IsAscending="true" DefaultVisibility="true" />
		</Index>
	</Table>

	<Table Name="Word"
			TableClassCode="WORD"
			DbName="DbWord"
			Label="Word"
			Description="Words are components of the avatar"
			DefaultVisibility="true"
			IsInstantiable="true"
			HasHistory="true"
			HasAuditColumns="true"
			LookupIndex="WordUWordIdx"
			LoaderBehaviour="Update"
			SecScope="Tenant" >
		<TableCol Name="TenantId"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="TenantIdGen" />
		<TableCol Name="WordId"
				Label="Word Id"
				IsNullable="false"
				DefaultVisibility="true"
				GenerateId="true"
				DataType="WordIdGen" />
		<TableCol Name="AvatarId"
				Label="Avatar Id"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="AvatarIdGen" />
		<StringCol Name="StrWord"
				IsNullable="false"
				DefaultVisibility="true"
				MaxLen="2000"
				ShowLines="1"
				InitValue="" />
		<BoolCol Name="IsNoun"
				IsNullable="false"
				DefaultVisibility="true"
				DbName="is_noun"
				InitValue="false" />
		<BoolCol Name="IsVerb"
				IsNullable="false"
				DefaultVisibility="true"
				DbName="is_verb"
				InitValue="false" />
		<BoolCol Name="IsAdjective"
				IsNullable="false"
				DefaultVisibility="true"
				DbName="is_adj"
				InitValue="false" />
		<BoolCol Name="IsAdverb"
				IsNullable="false"
				DefaultVisibility="true"
				DbName="is_adv"
				InitValue="false" />
		<PrimaryIndex Name="WordIdIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="Word_pidx"
				ShortName="PIdx"
				Suffix="IdIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="WordId" IsAscending="true" DefaultVisibility="true" />
		</PrimaryIndex>
		<Index Name="WordTenantIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="Word_xtenant"
				ShortName="Tenant"
				Suffix="TenantIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="WordAvatarIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="Word_xavatar"
				ShortName="Avatar"
				Suffix="AvatarIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="AvatarId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="WordUWordIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="Word_xuword"
				ShortName="UWord"
				Suffix="UWordIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="AvatarId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="StrWord" IsAscending="true" DefaultVisibility="true" />
		</Index>

		<JavaObjMembers>
	protected WNDbSynSet wnDbNoun = null;
	protected WNDbSynSet wnDbVerb = null;
	protected WNDbSynSet wnDbAdjective = null;
	protected WNDbSynSet wnDbAdverb = null;
</JavaObjMembers>

		<JavaObjInterface>
	void linkWNDb();
	WNDbSynSet getWNDbNoun();
	WNDbSynSet getWNDbVerb();
	WNDbSynSet getWNDbAdjective();
	WNDbSynSet getWNDbAdverb();
</JavaObjInterface>

		<JavaObjImport>
import edu.princeton.wordnet.java.wndb.*;
</JavaObjImport>

		<JavaObjImplementation>
	public void linkWNDb() {
		WNDb wnDb = schema.getWordTableObj().getWNDb();

		/*
		 * Direct manipulation of buff is a breach of normal
		 * object protocol, and only works with a RAM database.
		 *
		 * So sue me.
		 */
		$SchemaName$WordBuff buff = getWordBuff();

		String word = buff.getRequiredStrWord();
		if( word.startsWith( &quot;*&quot; ) || word.startsWith( &quot;\\&quot;&quot; ) ) {
			word = word.substring( 1 );
		}
		if( word.endsWith( &quot;*&quot; ) || word.endsWith( &quot;\\&quot;&quot; ) ) {
			word = word.substring( 0, word.length() - 1 );
		}

		int synSetCount;
		int synSetOffset;
		WNDbSynSet synSet;
		WNDbIndexEntry indexEntry;

		indexEntry = wnDb.getNounIndex().getByLemma( word );
		if( indexEntry != null ) {
			synSetCount = indexEntry.getSynSetCount();
			if( synSetCount &gt; 0 ) {
				wnDbNoun = indexEntry.getNthSynSet( 0 );
			}
			else {
				wnDbNoun = null;
			}
		}
		else {
			wnDbNoun = null;
		}
		if( wnDbNoun != null ) {
			buff.setRequiredIsNoun( true );
		}

		indexEntry = wnDb.getVerbIndex().getByLemma( word );
		if( indexEntry != null ) {
			synSetCount = indexEntry.getSynSetCount();
			if( synSetCount &gt; 0 ) {
				wnDbVerb = indexEntry.getNthSynSet( 0 );
			}
			else {
				wnDbVerb = null;
			}
		}
		else {
			wnDbVerb= null;
		}
		if( wnDbVerb != null ) {
			buff.setRequiredIsVerb( true );
		}

		indexEntry = wnDb.getAdjectiveIndex().getByLemma( word );
		if( indexEntry != null ) {
			synSetCount = indexEntry.getSynSetCount();
			if( synSetCount &gt; 0 ) {
				wnDbAdjective = indexEntry.getNthSynSet( 0 );
			}
			else {
				wnDbAdjective = null;
			}
		}
		else {
			wnDbAdjective = null;
		}
		if( wnDbAdjective != null ) {
			buff.setRequiredIsAdjective( true );
		}

		indexEntry = wnDb.getAdverbIndex().getByLemma( word );
		if( indexEntry != null ) {
			synSetCount = indexEntry.getSynSetCount();
			if( synSetCount &gt; 0 ) {
				wnDbAdverb = indexEntry.getNthSynSet( 0 );
			}
			else {
				wnDbAdverb = null;
			}
		}
		else {
			wnDbAdverb = null;
		}
		if( wnDbAdverb != null ) {
			buff.setRequiredIsAdverb( true );
		}
	}

	public WNDbSynSet getWNDbNoun() {
		return( wnDbNoun );
	}

	public WNDbSynSet getWNDbVerb() {
		return( wnDbVerb );
	}

	public WNDbSynSet getWNDbAdjective() {
		return( wnDbAdjective );
	}

	public WNDbSynSet getWNDbAdverb() {
		return( wnDbAdverb );
	}
</JavaObjImplementation>

		<JavaEditObjMembers>
</JavaEditObjMembers>

		<JavaEditObjInterface>
</JavaEditObjInterface>

		<JavaEditObjImport>
import edu.princeton.wordnet.java.wndb.*;
</JavaEditObjImport>

		<JavaEditObjImplementation>
	public void linkWNDb() {
		throw CFLib.getDefaultExceptionFactory().newUsageException( getClass(),
			&quot;linkWNDb&quot;,
			&quot;Method can only be invoked over a RAM database Obj instance&quot; );
	}

	public WNDbSynSet getWNDbNoun() {
		WNDbSynSet retval = getOrig().getWNDbNoun();
		return( retval );
	}

	public WNDbSynSet getWNDbVerb() {
		WNDbSynSet retval = getOrig().getWNDbVerb();
		return( retval );
	}

	public WNDbSynSet getWNDbAdjective() {
		WNDbSynSet retval = getOrig().getWNDbAdjective();
		return( retval );
	}

	public WNDbSynSet getWNDbAdverb() {
		WNDbSynSet retval = getOrig().getWNDbAdverb();
		return( retval );
	}
</JavaEditObjImplementation>

		<JavaTableObjImport>
import edu.princeton.wordnet.java.wndb.*;
</JavaTableObjImport>

		<JavaTableObjMembers>
	protected static WNDb wnDb = null;
</JavaTableObjMembers>

		<JavaTableObjInterface>
	WNDb getWNDb();
</JavaTableObjInterface>

		<JavaTableObjImplementation>
	public WNDb getWNDb() {
		if( wnDb == null ) {
			wnDb = new WNDb();
			try {
				wnDb.initialize();
			}
			catch( Throwable t ) {
				wnDb = null;
			}
		}
		return( wnDb );
	}
</JavaTableObjImplementation>
	</Table>

	<Table Name="WordAdjFor"
			TableClassCode="WADJ"
			DbName="WordAdjFor"
			Label="Word Adjective For"
			Description="Words can be adjectives for more than one word"
			DefaultVisibility="true"
			IsInstantiable="true"
			HasHistory="true"
			HasAuditColumns="true"
			LoaderBehaviour="Insert"
			SecScope="Tenant" >
		<TableCol Name="TenantId"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="TenantIdGen" />
		<TableCol Name="AvatarId"
				Label="Avatar Id"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="AvatarIdGen" />
		<TableCol Name="WordId"
				Label="Word Id"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="WordIdGen" />
		<TableCol Name="AdjForTenantId"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="TenantIdGen" />
		<TableCol Name="AdjForWordId"
				Label="Adjective For Word Id"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="WordIdGen" />
		<Int64Col Name="UseCount"
				IsNullable="false"
				DefaultVisibility="true"
				MinValue="0"
				InitValue="0" />
		<PrimaryIndex Name="WordAdjForIdIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="WordAdjFor_pidx"
				ShortName="PIdx"
				Suffix="IdIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="WordId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="AdjForTenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="AdjForWordId" IsAscending="true" DefaultVisibility="true" />
		</PrimaryIndex>
		<Index Name="WordAdjForTenantIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="WordAdjFor_xtenant"
				ShortName="Tenant"
				Suffix="TenantIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="WordAdjForAvatarIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="WordAdjFor_xavatar"
				ShortName="Avatar"
				Suffix="AvatarIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="AvatarId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="WordAdjForWordIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="WordAdjFor_xword"
				ShortName="Word"
				Suffix="WordIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="WordId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="WordAdjForWordForIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="WordAdjFor_xforword"
				ShortName="ForWord"
				Suffix="ForWordIdx" >
			<IndexCol Name="AdjForTenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="AdjForWordId" IsAscending="true" DefaultVisibility="true" />
		</Index>
	</Table>

	<Table Name="WordAdvFor"
			TableClassCode="WADV"
			DbName="WordAdvFor"
			Label="Word Adverb For"
			Description="Words can be adjverbs for more than one word"
			DefaultVisibility="true"
			IsInstantiable="true"
			HasHistory="true"
			HasAuditColumns="true"
			LoaderBehaviour="Insert"
			SecScope="Tenant" >
		<TableCol Name="TenantId"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="TenantIdGen" />
		<TableCol Name="AvatarId"
				Label="Avatar Id"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="AvatarIdGen" />
		<TableCol Name="WordId"
				Label="Word Id"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="WordIdGen" />
		<TableCol Name="AdvForTenantId"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="TenantIdGen" />
		<TableCol Name="AdvForWordId"
				Label="Adverb For Word Id"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="WordIdGen" />
		<Int64Col Name="UseCount"
				IsNullable="false"
				DefaultVisibility="true"
				MinValue="0"
				InitValue="0" />
		<PrimaryIndex Name="WordAdvForIdIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="WordAdvFor_pidx"
				ShortName="PIdx"
				Suffix="IdIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="WordId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="AdvForTenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="AdvForWordId" IsAscending="true" DefaultVisibility="true" />
		</PrimaryIndex>
		<Index Name="WordAdvForTenantIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="WordAdvFor_xtenant"
				ShortName="Tenant"
				Suffix="TenantIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="WordAdvForAvatarIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="WordAdvFor_xavatar"
				ShortName="Avatar"
				Suffix="AvatarIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="AvatarId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="WordAdvForWordIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="WordAdvFor_xword"
				ShortName="Word"
				Suffix="WordIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="WordId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="WordAdvForWordForIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="WordAdvFor_xforword"
				ShortName="ForWord"
				Suffix="ForWordIdx" >
			<IndexCol Name="AdvForTenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="AdvForWordId" IsAscending="true" DefaultVisibility="true" />
		</Index>
	</Table>

	<Table Name="WordAssoc"
			TableClassCode="WASC"
			DbName="WordAssoc"
			Label="Word Association"
			Description="Words can be associated with timeline entries for named concepts"
			DefaultVisibility="true"
			IsInstantiable="true"
			HasHistory="true"
			HasAuditColumns="true"
			LookupIndex="WordAssocUNameIdx"
			LoaderBehaviour="Update"
			SecScope="Tenant" >
		<TableCol Name="TenantId"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="TenantIdGen" />
		<TableCol Name="WordAssocId"
				Label="Word Association Id"
				IsNullable="false"
				DefaultVisibility="true"
				GenerateId="true"
				DataType="WordAssocIdGen" />
		<TableCol Name="AvatarId"
				Label="Avatar Id"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="AvatarIdGen" />
		<TableCol Name="WordId"
				Label="Word Id"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="WordIdGen" />
		<TableCol Name="FBTimelineId"
				Label="FBTimeline Id"
				IsNullable="false"
				DefaultVisibility="true"
				GenerateId="false"
				DataType="FBTimelineIdGen" />
		<Int64Col Name="UseCount"
				IsNullable="false"
				DefaultVisibility="true"
				InitValue="0" />
		<PrimaryIndex Name="WordAssocIdIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="WordAssoc_pidx"
				ShortName="PIdx"
				Suffix="IdIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="WordAssocId" IsAscending="true" DefaultVisibility="true" />
		</PrimaryIndex>
		<Index Name="WordAssocTenantIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="WordAssoc_xtenant"
				ShortName="Tenant"
				Suffix="TenantIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="WordAssocAvatarIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="WordAssoc_xavatar"
				ShortName="Avatar"
				Suffix="AvatarIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="AvatarId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="WordAssocWordIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="WordAssoc_xword"
				ShortName="Word"
				Suffix="WordIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="WordId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="WordAssocUNameIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="WordAssoc_xuname"
				ShortName="UName"
				Suffix="UNameIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="AvatarId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="WordId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="FBTimelineId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="WordAssocCountIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="WordAssoc_xcount"
				ShortName="Count"
				Suffix="CountIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="AvatarId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="WordId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="WordAssocTimelineIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="WordAssoc_xtmln"
				ShortName="Timeline"
				Suffix="TimelineIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="FBTimelineId" IsAscending="true" DefaultVisibility="true" />
		</Index>
	</Table>

	<Table Name="WordCount"
			TableClassCode="WCNT"
			DbName="WordCount"
			Label="Word Count"
			Description="Words are counted according to their references across all timeline comments"
			DefaultVisibility="true"
			IsInstantiable="true"
			HasHistory="true"
			HasAuditColumns="true"
			LoaderBehaviour="Update"
			SecScope="Tenant" >
		<TableCol Name="TenantId"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="TenantIdGen" />
		<TableCol Name="WordCountId"
				Label="Word Count Id"
				IsNullable="false"
				DefaultVisibility="true"
				GenerateId="true"
				DataType="WordCountIdGen" />
		<TableCol Name="AvatarId"
				Label="Avatar Id"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="AvatarIdGen" />
		<TableCol Name="WordId"
				Label="Word Id"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="WordIdGen" />
		<Int64Col Name="WordCount"
				IsNullable="false"
				DefaultVisibility="true"
				InitValue="0" />
		<PrimaryIndex Name="WordCountIdIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="WordCount_pidx"
				ShortName="PIdx"
				Suffix="IdIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="WordCountId" IsAscending="true" DefaultVisibility="true" />
		</PrimaryIndex>
		<Index Name="WordCountTenantIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="WordCount_xtenant"
				ShortName="Tenant"
				Suffix="TenantIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="WordCountAvatarIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="WordCount_xavatar"
				ShortName="Avatar"
				Suffix="AvatarIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="AvatarId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="WordCountWordIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="WordCount_xword"
				ShortName="Word"
				Suffix="WordIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="WordId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="WordCountUNameIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="WordCount_xuname"
				ShortName="UName"
				Suffix="UNameIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="AvatarId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="WordId" IsAscending="true" DefaultVisibility="true" />
		</Index>
	</Table>

	<Table Name="WordVerb"
			TableClassCode="WVRB"
			DbName="WordVerb"
			Label="Word Verb Usage"
			Description="Each usage of a verb tracks the timeline it is in, but is not unique"
			DefaultVisibility="true"
			IsInstantiable="true"
			HasHistory="true"
			HasAuditColumns="true"
			LoaderBehaviour="Insert"
			SecScope="Tenant" >
		<TableCol Name="TenantId"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="TenantIdGen" />
		<TableCol Name="WordVerbId"
				Label="Word Verb Id"
				IsNullable="false"
				DefaultVisibility="true"
				GenerateId="true"
				DataType="WordVerbIdGen" />
		<TableCol Name="AvatarId"
				Label="Avatar Id"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="AvatarIdGen" />
		<TableCol Name="WordId"
				Label="Word Id"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="WordIdGen" />
		<TableCol Name="FBTimelineId"
				Label="FBTimeline Id"
				IsNullable="false"
				DefaultVisibility="true"
				GenerateId="false"
				DataType="FBTimelineIdGen" />
		<TableCol Name="ActorTenantId"
				IsNullable="false"
				DefaultVisibility="true"
				DbName="ActorTentId"
				DataType="TenantIdGen" />
		<TableCol Name="ActorWordId"
				Label="Actor Word Id"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="WordIdGen" />
		<TableCol Name="ReceiverTenantId"
				IsNullable="true"
				DefaultVisibility="true"
				DbName="ReceiverTentId"
				DataType="TenantIdGen" />
		<TableCol Name="ReceiverWordId"
				Label="Receiver Word Id"
				IsNullable="true"
				DefaultVisibility="true"
				DataType="WordIdGen" />
		<PrimaryIndex Name="WordVerbIdIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="WordVerb_pidx"
				ShortName="PIdx"
				Suffix="IdIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="WordVerbId" IsAscending="true" DefaultVisibility="true" />
		</PrimaryIndex>
		<Index Name="WordVerbTenantIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="WordVerb_xtenant"
				ShortName="Tenant"
				Suffix="TenantIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="WordVerbAvatarIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="WordVerb_xavatar"
				ShortName="Avatar"
				Suffix="AvatarIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="AvatarId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="WordVerbWordIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="WordVerb_xword"
				ShortName="Word"
				Suffix="WordIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="WordId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="WordVerbActorWordIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="WordVerb_xactword"
				ShortName="ActorWord"
				Suffix="ActorWordIdx" >
			<IndexCol Name="ActorTenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="ActorWordId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="WordVerbReceiverWordIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="WordVerb_xrcvrword"
				ShortName="RcvrWord"
				Suffix="RcvrWordIdx" >
			<IndexCol Name="ReceiverTenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="ReceiverWordId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="WordVerbGroupIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="WordVerb_xgroup"
				ShortName="Group"
				Suffix="GroupIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="AvatarId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="WordId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="FBTimelineId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="WordVerbTimelineIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="WordVerb_xtmln"
				ShortName="Timeline"
				Suffix="TimelineIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="FBTimelineId" IsAscending="true" DefaultVisibility="true" />
		</Index>
	</Table>

	<TableAddendum FromTable="Avatar">
		<Relation Name="AvatarTenant"
				RelationType="Container"
				DbName="avatar_tenant"
				Label="Tenant"
				Suffix="Tenant"
				FromIndex="AvatarTenantIdx"
				ToIndex="Tenant.TenantIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="Id" DefaultVisibility="true" />
		</Relation>
		<Relation Name="AvatarFBTimeline"
				RelationType="Components"
				DbName="avatar_fbtmln"
				Label="Timeline"
				Suffix="Timeline"
				FromIndex="AvatarIdIdx"
				ToIndex="FBTimeline.FBTimelineAvatarIdx"
				IsRequired="false"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="TenantId" DefaultVisibility="true" />
			<RelationCol Name="AvatarId" ToCol="AvatarId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="AvatarWord"
				RelationType="Components"
				DbName="avatar_word"
				Label="Word"
				Suffix="Word"
				FromIndex="AvatarIdIdx"
				ToIndex="Word.WordAvatarIdx"
				IsRequired="false"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="TenantId" DefaultVisibility="true" />
			<RelationCol Name="AvatarId" ToCol="AvatarId" DefaultVisibility="true" />
		</Relation>
	</TableAddendum>

	<TableAddendum FromTable="FBTimeline">
		<Relation Name="FBTimelineTenant"
				RelationType="Owner"
				DbName="fbtmln_tenant"
				Label="Tenant"
				Suffix="Tenant"
				FromIndex="FBTimelineTenantIdx"
				ToIndex="Tenant.TenantIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="Id" DefaultVisibility="true" />
		</Relation>
		<Relation Name="FBTimelineAvatar"
				RelationType="Container"
				DbName="fbtmln_avatar"
				Label="Avatar"
				Suffix="Avatar"
				FromIndex="FBTimelineAvatarIdx"
				ToIndex="Avatar.AvatarIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="TenantId" DefaultVisibility="true" />
			<RelationCol Name="AvatarId" ToCol="AvatarId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="FBTimelineSentence"
				RelationType="Components"
				DbName="fbtmln_sentence"
				Label="Sentence"
				Suffix="Sentence"
				FromIndex="FBTimelineIdIdx"
				ToIndex="Sentence.SentenceTimelineIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="TenantId" DefaultVisibility="true" />
			<RelationCol Name="FBTimelineId" ToCol="FBTimelineId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="FBTimelineWordAssociations"
				RelationType="Children"
				DbName="fbtmln_wordassoc"
				Label="Word Association"
				Suffix="WordAssoc"
				FromIndex="FBTimelineIdIdx"
				ToIndex="WordAssoc.WordAssocTimelineIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="TenantId" DefaultVisibility="true" />
			<RelationCol Name="FBTimelineId" ToCol="FBTimelineId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="FBTimelineWordVerbs"
				RelationType="Children"
				DbName="fbtmln_wordverb"
				Label="Word Verb"
				Suffix="WordVerb"
				FromIndex="FBTimelineIdIdx"
				ToIndex="WordVerb.WordVerbTimelineIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="TenantId" DefaultVisibility="true" />
			<RelationCol Name="FBTimelineId" ToCol="FBTimelineId" DefaultVisibility="true" />
		</Relation>
	</TableAddendum>

	<TableAddendum FromTable="OpenNLPFileName">
		<Relation Name="OpenNLPFileNameTenant"
				RelationType="Container"
				DbName="ONLPFName_tenant"
				Label="Tenant"
				Suffix="Tenant"
				FromIndex="OpenNLPFileNameTenantIdx"
				ToIndex="Tenant.TenantIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="Id" DefaultVisibility="true" />
		</Relation>
	</TableAddendum>

	<TableAddendum FromTable="ParseItem">
		<Relation Name="ParseItemTenant"
				RelationType="Owner"
				DbName="ParseItem_tenant"
				Label="Tenant"
				Suffix="Tenant"
				FromIndex="ParseItemTenantIdx"
				ToIndex="Tenant.TenantIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="Id" DefaultVisibility="true" />
		</Relation>
		<Relation Name="ParseItemSentence"
				RelationType="Container"
				DbName="ParseItem_sentence"
				Label="Sentence"
				Suffix="Sentence"
				FromIndex="ParseItemSentenceIdx"
				ToIndex="Sentence.SentenceIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="TenantId" DefaultVisibility="true" />
			<RelationCol Name="SentenceId" ToCol="SentenceId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="Parent"
				RelationType="Lookup"
				DbName="ParseItem_parent"
				Label="Parent"
				Suffix="Parent"
				FromIndex="ParseItemParentIdx"
				ToIndex="ParseItem.ParseItemIdIdx"
				IsRequired="false"
				DefaultVisibility="true" >
			<RelationCol Name="ParentTenantId" ToCol="TenantId" DefaultVisibility="true" />
			<RelationCol Name="ParentParseItemId" ToCol="ParseItemId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="ParseItem"
				RelationType="Children"
				DbName="ParseItem_pitem"
				Label="Parse Item"
				Suffix="ParseItem"
				FromIndex="ParseItemIdIdx"
				ToIndex="ParseItem.ParseItemParentIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="ParentTenantId" DefaultVisibility="true" />
			<RelationCol Name="ParseItemId" ToCol="ParentParseItemId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="WordAvatar"
				RelationType="Parent"
				DbName="ParseItem_wavatar"
				Label="Word Avatar"
				Suffix="WordAvatar"
				FromIndex="ParseItemWordAvatarIdx"
				ToIndex="Avatar.AvatarIdIdx"
				IsRequired="false"
				DefaultVisibility="true" >
			<RelationCol Name="WordTenantId" ToCol="TenantId" DefaultVisibility="true" />
			<RelationCol Name="WordAvatarId" ToCol="AvatarId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="Word"
				RelationType="Parent"
				DbName="ParseItem_word"
				Label="Word"
				Suffix="Word"
				FromIndex="ParseItemWordIdx"
				ToIndex="Word.WordIdIdx"
				IsRequired="false"
				DefaultVisibility="true" >
			<RelationCol Name="WordTenantId" ToCol="TenantId" DefaultVisibility="true" />
			<RelationCol Name="WordId" ToCol="WordId" DefaultVisibility="true" />
		</Relation>
	</TableAddendum>

	<TableAddendum FromTable="Sentence">
		<Relation Name="SentenceTenant"
				RelationType="Owner"
				DbName="Sentence_tenant"
				Label="Tenant"
				Suffix="Tenant"
				FromIndex="SentenceTenantIdx"
				ToIndex="Tenant.TenantIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="Id" DefaultVisibility="true" />
		</Relation>
		<Relation Name="SentenceTimeline"
				RelationType="Container"
				DbName="Sentence_timeline"
				Label="FBTimeline"
				Suffix="FBTimeline"
				FromIndex="SentenceTimelineIdx"
				ToIndex="FBTimeline.FBTimelineIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="TenantId" DefaultVisibility="true" />
			<RelationCol Name="FBTimelineId" ToCol="FBTimelineId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="Prev"
				RelationType="Lookup"
				DbName="Sentence_prev"
				Label="Previous"
				Suffix="Prev"
				FromIndex="SentencePrevIdx"
				ToIndex="Sentence.SentenceIdIdx"
				IsRequired="false"
				DefaultVisibility="true" >
			<RelationCol Name="PrevTenantId" ToCol="TenantId" DefaultVisibility="true" />
			<RelationCol Name="PrevSentenceId" ToCol="SentenceId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="Next"
				RelationType="Lookup"
				DbName="Sentence_next"
				Label="Next"
				Suffix="Next"
				FromIndex="SentenceNextIdx"
				ToIndex="Sentence.SentenceIdIdx"
				IsRequired="false"
				DefaultVisibility="true" >
			<RelationCol Name="NextTenantId" ToCol="TenantId" DefaultVisibility="true" />
			<RelationCol Name="NextSentenceId" ToCol="SentenceId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="ParseItem"
				RelationType="Components"
				DbName="Sentence_pitem"
				Label="Parse Item"
				Suffix="ParseItem"
				FromIndex="SentenceIdIdx"
				ToIndex="ParseItem.ParseItemSentenceIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="TenantId" DefaultVisibility="true" />
			<RelationCol Name="SentenceId" ToCol="SentenceId" DefaultVisibility="true" />
		</Relation>
	</TableAddendum>

	<TableAddendum FromTable="Tenant">
		<Relation Name="TenantOpenNLPFileName"
				RelationType="Components"
				DbName="tenant_onlpfname"
				Label="OpenNLPFileName"
				Suffix="OpenNLPFileName"
				FromIndex="TenantIdIdx"
				ToIndex="OpenNLPFileName.OpenNLPFileNameTenantIdx"
				IsRequired="false"
				DefaultVisibility="true" >
			<RelationCol Name="Id" ToCol="TenantId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="TenantAvatar"
				RelationType="Components"
				DbName="tenant_avatar"
				Label="Avatar"
				Suffix="Avatar"
				FromIndex="TenantIdIdx"
				ToIndex="Avatar.AvatarTenantIdx"
				IsRequired="false"
				DefaultVisibility="true" >
			<RelationCol Name="Id" ToCol="TenantId" DefaultVisibility="true" />
		</Relation>
	</TableAddendum>

	<TableAddendum FromTable="Word">
		<Relation Name="WordTenant"
				RelationType="Owner"
				DbName="dbword_tenant"
				Label="Tenant"
				Suffix="Tenant"
				FromIndex="WordTenantIdx"
				ToIndex="Tenant.TenantIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="Id" DefaultVisibility="true" />
		</Relation>
		<Relation Name="WordAvatar"
				RelationType="Container"
				DbName="dbword_avatar"
				Label="Avatar"
				Suffix="Avatar"
				FromIndex="WordAvatarIdx"
				ToIndex="Avatar.AvatarIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="TenantId" DefaultVisibility="true" />
			<RelationCol Name="AvatarId" ToCol="AvatarId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="WordAssociations"
				RelationType="Components"
				DbName="dbword_wordassoc"
				Label="Word Association"
				Suffix="WordAssoc"
				FromIndex="WordIdIdx"
				ToIndex="WordAssoc.WordAssocWordIdx"
				IsRequired="false"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="TenantId" DefaultVisibility="true" />
			<RelationCol Name="WordId" ToCol="WordId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="WordVerbs"
				RelationType="Components"
				DbName="dbword_wordverb"
				Label="Word Verb"
				Suffix="WordVerb"
				FromIndex="WordIdIdx"
				ToIndex="WordVerb.WordVerbWordIdx"
				IsRequired="false"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="TenantId" DefaultVisibility="true" />
			<RelationCol Name="WordId" ToCol="WordId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="WordCounts"
				RelationType="Components"
				DbName="dbword_wordcount"
				Label="Word Count"
				Suffix="WordCount"
				FromIndex="WordIdIdx"
				ToIndex="WordCount.WordCountWordIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="TenantId" DefaultVisibility="true" />
			<RelationCol Name="WordId" ToCol="WordId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="WordAdjFor"
				RelationType="Components"
				DbName="dbword_wordadjfor"
				Label="Word Adjective For"
				Suffix="WordAdjFor"
				FromIndex="WordIdIdx"
				ToIndex="WordAdjFor.WordAdjForWordIdx"
				IsRequired="false"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="TenantId" DefaultVisibility="true" />
			<RelationCol Name="WordId" ToCol="WordId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="WordAdjective"
				RelationType="Children"
				DbName="dbword_adjective"
				Label="Word Adjective"
				Suffix="Adjective"
				FromIndex="WordIdIdx"
				ToIndex="WordAdjFor.WordAdjForWordForIdx"
				IsRequired="false"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="AdjForTenantId" DefaultVisibility="true" />
			<RelationCol Name="WordId" ToCol="AdjForWordId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="WordAdvFor"
				RelationType="Components"
				DbName="dbword_wordadvfor"
				Label="Word Adverb For"
				Suffix="WordAdvFor"
				FromIndex="WordIdIdx"
				ToIndex="WordAdvFor.WordAdvForWordIdx"
				IsRequired="false"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="TenantId" DefaultVisibility="true" />
			<RelationCol Name="WordId" ToCol="WordId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="WordAdverb"
				RelationType="Children"
				DbName="dbword_adverb"
				Label="Word Adverb"
				Suffix="Adverb"
				FromIndex="WordIdIdx"
				ToIndex="WordAdvFor.WordAdvForWordForIdx"
				IsRequired="false"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="AdvForTenantId" DefaultVisibility="true" />
			<RelationCol Name="WordId" ToCol="AdvForWordId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="WordParseItem"
				RelationType="Children"
				DbName="dbword_pitem"
				Label="Word Parse Item"
				Suffix="ParseItem"
				FromIndex="WordIdIdx"
				ToIndex="ParseItem.ParseItemWordIdx"
				IsRequired="false"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="WordTenantId" DefaultVisibility="true" />
			<RelationCol Name="WordId" ToCol="WordId" DefaultVisibility="true" />
		</Relation>
	</TableAddendum>

	<TableAddendum FromTable="WordAdjFor">
		<Relation Name="WordAdjForTenant"
				RelationType="Owner"
				DbName="dbwadj_tenant"
				Label="Tenant"
				Suffix="Tenant"
				FromIndex="WordAdjForTenantIdx"
				ToIndex="Tenant.TenantIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="Id" DefaultVisibility="true" />
		</Relation>
		<Relation Name="Word"
				RelationType="Container"
				DbName="dbwadj_word"
				Label="Word"
				Suffix="Word"
				FromIndex="WordAdjForWordIdx"
				ToIndex="Word.WordIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="TenantId" DefaultVisibility="true" />
			<RelationCol Name="WordId" ToCol="WordId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="WordAdjForAvatar"
				RelationType="Parent"
				DbName="WordAdjFor_avatar"
				Label="Avatar"
				Suffix="Avatar"
				FromIndex="WordAdjForAvatarIdx"
				ToIndex="Avatar.AvatarIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="TenantId" DefaultVisibility="true" />
			<RelationCol Name="AvatarId" ToCol="AvatarId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="WordAdjFor"
				RelationType="Parent"
				DbName="dbwadj_adjfor"
				Label="Adjective For"
				Suffix="AdjFor"
				FromIndex="WordAdjForWordForIdx"
				ToIndex="Word.WordIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="AdjForTenantId" ToCol="TenantId" DefaultVisibility="true" />
			<RelationCol Name="AdjForWordId" ToCol="WordId" DefaultVisibility="true" />
		</Relation>
	</TableAddendum>

	<TableAddendum FromTable="WordAdvFor">
		<Relation Name="WordAdvForTenant"
				RelationType="Owner"
				DbName="dbwadv_tenant"
				Label="Tenant"
				Suffix="Tenant"
				FromIndex="WordAdvForTenantIdx"
				ToIndex="Tenant.TenantIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="Id" DefaultVisibility="true" />
		</Relation>
		<Relation Name="Word"
				RelationType="Container"
				DbName="dbwadv_word"
				Label="Word"
				Suffix="Word"
				FromIndex="WordAdvForWordIdx"
				ToIndex="Word.WordIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="TenantId" DefaultVisibility="true" />
			<RelationCol Name="WordId" ToCol="WordId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="WordAdvForAvatar"
				RelationType="Parent"
				DbName="WordAdvFor_avatar"
				Label="Avatar"
				Suffix="Avatar"
				FromIndex="WordAdvForAvatarIdx"
				ToIndex="Avatar.AvatarIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="TenantId" DefaultVisibility="true" />
			<RelationCol Name="AvatarId" ToCol="AvatarId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="WordAdvFor"
				RelationType="Parent"
				DbName="dbwadv_advfor"
				Label="Adverb For"
				Suffix="AdvFor"
				FromIndex="WordAdvForWordForIdx"
				ToIndex="Word.WordIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="AdvForTenantId" ToCol="TenantId" DefaultVisibility="true" />
			<RelationCol Name="AdvForWordId" ToCol="WordId" DefaultVisibility="true" />
		</Relation>
	</TableAddendum>

	<TableAddendum FromTable="WordAssoc">
		<Relation Name="WordAssocTenant"
				RelationType="Owner"
				DbName="WordAssoc_tenant"
				Label="Tenant"
				Suffix="Tenant"
				FromIndex="WordAssocTenantIdx"
				ToIndex="Tenant.TenantIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="Id" DefaultVisibility="true" />
		</Relation>
		<Relation Name="WordAssocWord"
				RelationType="Container"
				DbName="WordAssoc_word"
				Label="Word"
				Suffix="Word"
				FromIndex="WordAssocWordIdx"
				ToIndex="Word.WordIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="TenantId" DefaultVisibility="true" />
			<RelationCol Name="WordId" ToCol="WordId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="WordAssocAvatar"
				RelationType="Parent"
				DbName="WordAssoc_avatar"
				Label="Avatar"
				Suffix="Avatar"
				FromIndex="WordAssocAvatarIdx"
				ToIndex="Avatar.AvatarIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="TenantId" DefaultVisibility="true" />
			<RelationCol Name="AvatarId" ToCol="AvatarId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="WordAssocTimeline"
				RelationType="Parent"
				DbName="WordAssoc_timeline"
				Label="Timeline"
				Suffix="Timeline"
				FromIndex="WordAssocTimelineIdx"
				ToIndex="FBTimeline.FBTimelineIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="TenantId" DefaultVisibility="true" />
			<RelationCol Name="FBTimelineId" ToCol="FBTimelineId" DefaultVisibility="true" />
		</Relation>
	</TableAddendum>

	<TableAddendum FromTable="WordCount">
		<Relation Name="WordCountTenant"
				RelationType="Owner"
				DbName="WordCount_tenant"
				Label="Tenant"
				Suffix="Tenant"
				FromIndex="WordCountTenantIdx"
				ToIndex="Tenant.TenantIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="Id" DefaultVisibility="true" />
		</Relation>
		<Relation Name="WordCountWord"
				RelationType="Container"
				DbName="WordCount_word"
				Label="Word"
				Suffix="Word"
				FromIndex="WordCountWordIdx"
				ToIndex="Word.WordIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="TenantId" DefaultVisibility="true" />
			<RelationCol Name="WordId" ToCol="WordId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="WordCountAvatar"
				RelationType="Parent"
				DbName="WordCount_avatar"
				Label="Avatar"
				Suffix="Avatar"
				FromIndex="WordCountAvatarIdx"
				ToIndex="Avatar.AvatarIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="TenantId" DefaultVisibility="true" />
			<RelationCol Name="AvatarId" ToCol="AvatarId" DefaultVisibility="true" />
		</Relation>
	</TableAddendum>

	<TableAddendum FromTable="WordVerb">
		<Relation Name="WordVerbTenant"
				RelationType="Owner"
				DbName="WordVerb_tenant"
				Label="Tenant"
				Suffix="Tenant"
				FromIndex="WordVerbTenantIdx"
				ToIndex="Tenant.TenantIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="Id" DefaultVisibility="true" />
		</Relation>
		<Relation Name="WordVerbWord"
				RelationType="Container"
				DbName="WordVerb_word"
				Label="Word"
				Suffix="Word"
				FromIndex="WordVerbWordIdx"
				ToIndex="Word.WordIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="TenantId" DefaultVisibility="true" />
			<RelationCol Name="WordId" ToCol="WordId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="WordVerbAvatar"
				RelationType="Parent"
				DbName="WordVerb_avatar"
				Label="Avatar"
				Suffix="Avatar"
				FromIndex="WordVerbAvatarIdx"
				ToIndex="Avatar.AvatarIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="TenantId" DefaultVisibility="true" />
			<RelationCol Name="AvatarId" ToCol="AvatarId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="WordVerbTimeline"
				RelationType="Parent"
				DbName="WordVerb_timeline"
				Label="Timeline"
				Suffix="Timeline"
				FromIndex="WordVerbTimelineIdx"
				ToIndex="FBTimeline.FBTimelineIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="TenantId" DefaultVisibility="true" />
			<RelationCol Name="FBTimelineId" ToCol="FBTimelineId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="WordVerbActorWord"
				RelationType="Parent"
				DbName="WordVerb_actword"
				Label="Actor Word"
				Suffix="ActWord"
				FromIndex="WordVerbActorWordIdx"
				ToIndex="Word.WordIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="ActorTenantId" ToCol="TenantId" DefaultVisibility="true" />
			<RelationCol Name="ActorWordId" ToCol="WordId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="WordVerbReceiverWord"
				RelationType="Parent"
				DbName="WordVerb_rcvrword"
				Label="Receiver Word"
				Suffix="RcvrWord"
				FromIndex="WordVerbReceiverWordIdx"
				ToIndex="Word.WordIdIdx"
				IsRequired="false"
				DefaultVisibility="true" >
			<RelationCol Name="ReceiverTenantId" ToCol="TenantId" DefaultVisibility="true" />
			<RelationCol Name="ReceiverWordId" ToCol="WordId" DefaultVisibility="true" />
		</Relation>
	</TableAddendum>

	<TableAddendum FromTable="Sentence">
		<Chain Name="SentenceOrder"
				ShortName="SentOrd"
				Label="Sentence Order"
				Suffix="SentOrder"
				DefaultVisibility="true"
				PrevRel="Prev"
				NextRel="Next" />
	</TableAddendum>

	<TableAddendum FromTable="Avatar">
		<DelDep Name="DelWord" DelDepChain="AvatarWord" />
		<DelDep Name="DelFBTimeline" DelDepChain="AvatarFBTimeline" />
		<DelDep Name="DelWordAssoc" DelDepChain="AvatarWord.WordAssociations" />
		<DelDep Name="DelWordVerb" DelDepChain="AvatarWord.WordVerbs" />
		<DelDep Name="DelWordCount" DelDepChain="AvatarWord.WordCounts" />
		<DelDep Name="DelWordAdj" DelDepChain="AvatarWord.WordAdjective" />
		<DelDep Name="DelWordAdjFor" DelDepChain="AvatarWord.WordAdjFor" />
		<DelDep Name="DelWordAdverb" DelDepChain="AvatarWord.WordAdverb" />
		<DelDep Name="DelWordAdvFor" DelDepChain="AvatarWord.WordAdvFor" />
	</TableAddendum>

	<TableAddendum FromTable="FBTimeline">
		<ClearDep Name="ClearSentencePrev" ClearDepChain="FBTimelineSentence.Prev" />
		<ClearDep Name="ClearSentenceNext" ClearDepChain="FBTimelineSentence.Next" />
		<DelDep Name="DelSentence" DelDepChain="FBTimelineSentence" />
		<DelDep Name="DelWordAssoc" DelDepChain="FBTimelineWordAssociations" />
		<DelDep Name="DelWordVerb" DelDepChain="FBTimelineWordVerbs" />
	</TableAddendum>

	<TableAddendum FromTable="ParseItem">
		<ClearDep Name="ClearParent" ClearDepChain="Parent" />
		<DelDep Name="DelParseItem" DelDepChain="ParseItem" />
	</TableAddendum>

	<TableAddendum FromTable="Sentence">
		<ClearDep Name="ClearParseItemParent" ClearDepChain="ParseItem.Parent" />
		<DelDep Name="DelParseItem" DelDepChain="ParseItem" />
	</TableAddendum>

	<TableAddendum FromTable="Tenant">
		<DelDep Name="DelAvatar" DelDepChain="TenantAvatar" />
		<DelDep Name="DelOpenNLPFileName" DelDepChain="TenantOpenNLPFileName" />
	</TableAddendum>

	<TableAddendum FromTable="Word">
		<DelDep Name="DelWordAssoc" DelDepChain="WordAssociations" />
		<DelDep Name="DelWordVerb" DelDepChain="WordVerbs" />
		<DelDep Name="DelWordCount" DelDepChain="WordCounts" />
		<DelDep Name="DelWordAdj" DelDepChain="WordAdjective" />
		<DelDep Name="DelWordAdjFor" DelDepChain="WordAdjFor" />
		<DelDep Name="DelAdverb" DelDepChain="WordAdverb" />
		<DelDep Name="DelWordAdvFor" DelDepChain="WordAdvFor" />
	</TableAddendum>

	<TableAddendum FromTable="Avatar">
		<ServerProc Name="updateWordCounts"
				Label="Update Word Counts"
				Description="Update the word counts for the Avatar"
				IsInstanceMethod="true"
				DefaultVisibility="true" >
			<JavaMethodBody>		final String S_ProcName = &quot;updateWordCounts&quot;;

		if( schemaObj == null ) {
			throw CFLib.getDefaultExceptionFactory().newNullArgumentException( getClass(),
				S_ProcName,
				0,
				&quot;schemaObj&quot; );
		}

		IMarkIISchema bs = (IMarkIISchema)schemaObj.getBackingStore();
		if( bs == null ) {
			throw CFLib.getDefaultExceptionFactory().newNullArgumentException( getClass(),
				S_ProcName,
				0,
				&quot;schemaObj.getBackingStore()&quot; );
		}

		long tenantId = obj.getRequiredTenantId();
		long avatarId = obj.getRequiredAvatarId();

		bs.getTableAvatar().updateAvatarWC( schemaObj.getAuthorization(),
			tenantId,
			avatarId );
		return( true );
</JavaMethodBody>
		<CPlusMethodBody>
		static const std::string S_ProcName( "updateWordCounts" );
		throw cflib::CFLib::getDefaultExceptionFactory()-&gt;newNotImplementedYetException( CLASS_NAME, S_ProcName );
</CPlusMethodBody>
		</ServerProc>
	</TableAddendum>

	<TableAddendum FromTable="FBTimeline">
		<ServerProc Name="processComment"
				Label="Process Comment"
				Description="Process the comment on the server to speed up DbIO"
				IsInstanceMethod="true"
				DefaultVisibility="true" >
			<Param Name="idx"
					Description="Index"
					IsNullable="false"
					Type="SecGroupIdGen" />
			<JavaMethodBody>		final String S_ProcName = &quot;processComment&quot;;

		if( schemaObj == null ) {
			throw CFLib.getDefaultExceptionFactory().newNullArgumentException( getClass(),
				S_ProcName,
				0,
				&quot;schemaObj&quot; );
		}

		IMarkIIAvatarObj avatarObj = obj.getRequiredContainerAvatar();
		if( avatarObj == null ) {
			throw CFLib.getDefaultExceptionFactory().newNullArgumentException( getClass(),
				S_ProcName,
				0,
				&quot;obj.getRequiredContainerAvatar()&quot; );
		}

		ICFLibMessageLog log = avatarObj.getLog();
		if( log == null ) {
			throw CFLib.getDefaultExceptionFactory().newNullArgumentException( getClass(),
				S_ProcName,
				0,
				&quot;obj.getRequiredContainerAvatar().getLog()&quot; );
		}
		
		MarkIIFBProfile fbProfile = (MarkIIFBProfile)(avatarObj.getFBProfile());
		if( fbProfile == null ) {
			fbProfile = new MarkIIFBProfile( log, schemaObj );
		}
		fbProfile.setSchema( schemaObj );
		avatarObj.setFBProfile( fbProfile );

		MarkIIOpenNLPSchema openNLPSchema = (MarkIIOpenNLPSchema)(avatarObj.getOpenNLPSchema());
		if( openNLPSchema == null ) {
			openNLPSchema = new MarkIIOpenNLPSchema();
			openNLPSchema.setSchema( schemaObj );
			openNLPSchema.setFBProfile( fbProfile );
			openNLPSchema.setAvatar( avatarObj );
			openNLPSchema.initialize();
			avatarObj.setOpenNLPSchema( openNLPSchema );
		}
		openNLPSchema.setSchema( schemaObj );
		openNLPSchema.setFBProfile( fbProfile );
		openNLPSchema.setAvatar( avatarObj );

		MarkIIChatBot chatBot = new MarkIIChatBot( schemaObj, openNLPSchema, avatarObj );
		chatBot.setSchemaObj( schemaObj );
		chatBot.setAvatar( avatarObj );

		chatBot.processTimelineComment( idx, obj );

		long tenantId = avatarObj.getRequiredTenantId();

		return( true );
</JavaMethodBody>
		<CPlusMethodBody>
		static const std::string S_ProcName( "processComment" );
		throw cflib::CFLib::getDefaultExceptionFactory()-&gt;newNotImplementedYetException( CLASS_NAME, S_ProcName );
</CPlusMethodBody>
		</ServerProc>
	</TableAddendum>
</SchemaDef>
						</MinorVersion>
					</MajorVersion>
				</SubProject>
			</TopProject>
		</TopDomain>
	</Tld>
</MSSBam>
