de.folt.models.datamodel.phrasetranslate
Class PhraseTranslate

java.lang.Object
  extended by de.folt.models.datamodel.phrasetranslate.PhraseTranslate

public class PhraseTranslate
extends java.lang.Object

Class implements a phrase translator (PT).
Basic idea: A PT is a structure source with source language && target with target language
The PTs are added thru an add function. The source PT is segmented into words. Each word gets an unique long value. A hash table - identifies the mapping.
From that a hash table is filled with a Long array and as target the translation. The array is mapping of the word in the word array to the long array (actually mapped to a String....
Example:

 This is openTMS.
 gives
 [is] [openTMS] >>> ist openTMS.
   1      2
 
Word -> long hash table
   is      -> 1
   openTms -> 2 
   a       -> 3 (latter adding a >>> ein)
   initiative -> 5 (latter adding initiative >>> Initiative)
   ...
 
Phrase hash table table
   [1][2] >>> ist openTMS
     key             value
 
Searching for "This is openTMS - a folt initiative." Convert to word array (0 indicates unknown word)
  [This] [is] [openTMS] [a] [folt] [initiative]
    0     1      2       3    0         5
 
Now search creates all substring which do not contain a 0.
  [1] [2] [3]
  [2] [3]
  [5]
 
and and now seach thru the hash table to find possible candidates resulting a match set:
  [1][2] >>> ist openTMS
  [5] >>> Initiative

Author:
klemens

Constructor Summary
PhraseTranslate(java.lang.String sourceLanguage, java.lang.String targetLanguage)
           
PhraseTranslate(java.lang.String sourceLanguage, java.lang.String targetLanguage, boolean bBilingualMode)
           
PhraseTranslate(java.lang.String sourceLanguage, java.lang.String targetLanguage, boolean bBilingualMode, boolean bStoreMonoLingualTerms)
           
 
Method Summary
 org.jdom.Element addToTransUnit(org.jdom.Element transUnit, java.util.Vector<PhraseTranslateResult> result, java.lang.String sourceLanguage, java.lang.String targetLanguage, DataSource dataSource)
          addToTransUnit adds a vector of PhraseTranslateResult to a transUnit
 boolean bAddPhrase(java.lang.String sourcePhrase, java.lang.String targetPhrase)
          bAddPhrase add a phrase and its translation to the database
 boolean bAddPhrase(java.lang.String sourcePhrase, java.lang.String uniqueIdSource, java.lang.String targetPhrase, java.lang.String uniqueIdTarget)
          bAddPhrase add a phrase and its translation to the database
 int bAddPhrases(DataSource datasource, java.lang.String sourceLanguage, java.lang.String targetLanguage)
          bAddPhrases add phrases from a data source
 boolean bExistPhraseTranslateResult(PhraseTranslateResult resultToCheck, java.util.Vector<PhraseTranslateResult> compareResults)
          bExistPhraseTranslateResult check if a PhraseTranslateResult exists in a given vector of PhraseTranslateResults
 java.util.Vector<PhraseTranslateResult> findTranslation(java.lang.String sourcePhrase)
          findTranslation finds a phrase translation
 java.util.Vector<PhraseTranslateResult> findTranslation(java.lang.String[] source)
          findTranslation finds a phrase translation
 java.util.Vector<PhraseTranslateResult> findTranslation(java.util.Vector<java.lang.String> source)
          findTranslation finds a phrase translation
 java.util.Vector<PhraseTranslateResult> findTranslation(java.util.Vector<java.lang.String> source, int iStart, int iEnd)
          findTranslation finds a phrase translation starting from iStart till eEnd of the supplied vector
 long getCurrentWordCounter()
           
 java.util.Hashtable<java.lang.String,java.lang.String> getLinguisticPropertyTable()
           
 java.util.Hashtable<java.lang.String,java.lang.Boolean> getLongArrayToMatch()
           
 java.util.Hashtable<java.lang.String,java.lang.String> getLongArrayToSource()
           
 java.util.Hashtable<java.lang.String,java.lang.String> getLongArrayToTranslation()
           
 java.util.Hashtable<java.lang.String,java.lang.Long> getLongWordHash()
           
 char getSepChar()
           
 java.lang.String getSourceLanguage()
           
 java.lang.String getSourceTargetSepString()
           
 java.lang.String getStoredLinguisticProperties()
           
 java.lang.String[] getStoredLinguisticPropertiesArray()
           
 java.lang.String getTargetLanguage()
           
 java.lang.String getTargetPhraseSeperator()
           
 PhraseTranslate getTargetPhraseTranslate()
           
 boolean isbBilingualMode()
           
 boolean isbStoreMonoLingualTerms()
           
 boolean isbStoreUniqueId()
           
static void main(java.lang.String[] args)
          main testing the phrase translator functions
 org.jdom.Element[] phraseTranslateResultsToGlossary()
          phraseTranslateResultsToGlossary write a csv separated string a glossary Element; <, >, & are converted to XML pendants
 void printPhraseTranslateResults(java.lang.String searchPhrase, java.util.Vector<PhraseTranslateResult> result)
          printPhraseTranslateResults prints a vector of PhraseTranslateResult to stdout
 void setbBilingualMode(boolean bBilingualMode)
           
 void setbStoreMonoLingualTerms(boolean bStoreMonoLingualTerms)
           
 void setbStoreUniqueId(boolean bStoreUniqueId)
           
 void setCurrentWordCounter(long currentWordCounter)
           
 void setLinguisticPropertyTable(java.util.Hashtable<java.lang.String,java.lang.String> linguisticPropertyTable)
           
 void setLongArrayToMatch(java.util.Hashtable<java.lang.String,java.lang.Boolean> longArrayToMatch)
           
 void setLongArrayToSource(java.util.Hashtable<java.lang.String,java.lang.String> longArrayToSource)
           
 void setLongArrayToTranslation(java.util.Hashtable<java.lang.String,java.lang.String> longArrayToTranslation)
           
 void setLongWordHash(java.util.Hashtable<java.lang.String,java.lang.Long> longWordHash)
           
 void setSepChar(char sepChar)
           
 void setSourceLanguage(java.lang.String sourceLanguage)
           
 void setSourceTargetSepString(java.lang.String sourceTargetSepString)
           
 void setStoredLinguisticProperties(java.lang.String storedLinguisticProperties)
           
 void setStoredLinguisticPropertiesArray(java.lang.String[] storedLinguisticPropertiesArray)
           
 void setTargetLanguage(java.lang.String targetLanguage)
           
 void setTargetPhraseSeperator(java.lang.String targetPhraseSeperator)
           
 void setTargetPhraseTranslate(PhraseTranslate targetPhraseTranslate)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PhraseTranslate

public PhraseTranslate(java.lang.String sourceLanguage,
                       java.lang.String targetLanguage)
Parameters:
sourceLanguage -
targetLanguage -

PhraseTranslate

public PhraseTranslate(java.lang.String sourceLanguage,
                       java.lang.String targetLanguage,
                       boolean bBilingualMode)
Parameters:
sourceLanguage -
targetLanguage -

PhraseTranslate

public PhraseTranslate(java.lang.String sourceLanguage,
                       java.lang.String targetLanguage,
                       boolean bBilingualMode,
                       boolean bStoreMonoLingualTerms)
Parameters:
sourceLanguage -
targetLanguage -
Method Detail

main

public static void main(java.lang.String[] args)
main testing the phrase translator functions

Parameters:
args -

addToTransUnit

public org.jdom.Element addToTransUnit(org.jdom.Element transUnit,
                                       java.util.Vector<PhraseTranslateResult> result,
                                       java.lang.String sourceLanguage,
                                       java.lang.String targetLanguage,
                                       DataSource dataSource)
addToTransUnit adds a vector of PhraseTranslateResult to a transUnit

Parameters:
transUnit - the transUnit
result - the vector of PhraseTranslateResult
dataSource -
Returns:
the modified transUnit

bAddPhrase

public boolean bAddPhrase(java.lang.String sourcePhrase,
                          java.lang.String targetPhrase)
bAddPhrase add a phrase and its translation to the database

Parameters:
sourcePhrase - the source phrase to add
targetPhrase - the target phrase to add
Returns:

bAddPhrase

public boolean bAddPhrase(java.lang.String sourcePhrase,
                          java.lang.String uniqueIdSource,
                          java.lang.String targetPhrase,
                          java.lang.String uniqueIdTarget)
bAddPhrase add a phrase and its translation to the database

Parameters:
sourcePhrase - the source phrase to add
uniqueIdSource - the source id to add
targetPhrase - the target phrase to add
uniqueIdTarget - the target id to add
Returns:

bAddPhrases

public int bAddPhrases(DataSource datasource,
                       java.lang.String sourceLanguage,
                       java.lang.String targetLanguage)
bAddPhrases add phrases from a data source

Parameters:
datasource - the data source to use
sourceLanguage - the source language of the phrases
targetLanguage - the target language of the phrases
Returns:
the number of phrases read

bExistPhraseTranslateResult

public boolean bExistPhraseTranslateResult(PhraseTranslateResult resultToCheck,
                                           java.util.Vector<PhraseTranslateResult> compareResults)
bExistPhraseTranslateResult check if a PhraseTranslateResult exists in a given vector of PhraseTranslateResults

Parameters:
resultToCheck - the PhraseTranslateResult to check if it exists
compareResults - the vector of PhraseTranslateResults which are checked against resultToCheck
Returns:
true if it exists, otherwise false

findTranslation

public java.util.Vector<PhraseTranslateResult> findTranslation(java.lang.String sourcePhrase)
findTranslation finds a phrase translation

Parameters:
sourcePhrase - the source phrase to search
Returns:
a vector of phrase result

findTranslation

public java.util.Vector<PhraseTranslateResult> findTranslation(java.lang.String[] source)
findTranslation finds a phrase translation

Parameters:
source - the source phrase as string araya to search
Returns:
a vector of phrase result

findTranslation

public java.util.Vector<PhraseTranslateResult> findTranslation(java.util.Vector<java.lang.String> source)
findTranslation finds a phrase translation

Parameters:
source - a vector of strings which form a phrase
Returns:
a vector of phrase result

findTranslation

public java.util.Vector<PhraseTranslateResult> findTranslation(java.util.Vector<java.lang.String> source,
                                                               int iStart,
                                                               int iEnd)
findTranslation finds a phrase translation starting from iStart till eEnd of the supplied vector

Parameters:
source - a vector of strings which form a phrase
iStart - start position (inclusive)
iEnd - end position (inclusive)
Returns:
a vector of phrase result

getCurrentWordCounter

public long getCurrentWordCounter()
Returns:
the currentWordCounter

getLinguisticPropertyTable

public java.util.Hashtable<java.lang.String,java.lang.String> getLinguisticPropertyTable()

getLongArrayToMatch

public java.util.Hashtable<java.lang.String,java.lang.Boolean> getLongArrayToMatch()
Returns:
the longArrayToMatch

getLongArrayToSource

public java.util.Hashtable<java.lang.String,java.lang.String> getLongArrayToSource()

getLongArrayToTranslation

public java.util.Hashtable<java.lang.String,java.lang.String> getLongArrayToTranslation()
Returns:
the longArrayToTranslation

getLongWordHash

public java.util.Hashtable<java.lang.String,java.lang.Long> getLongWordHash()
Returns:
the longWordHash

getSepChar

public char getSepChar()

getSourceLanguage

public java.lang.String getSourceLanguage()
Returns:
the sourceLanguage

getSourceTargetSepString

public java.lang.String getSourceTargetSepString()

getStoredLinguisticProperties

public java.lang.String getStoredLinguisticProperties()

getStoredLinguisticPropertiesArray

public java.lang.String[] getStoredLinguisticPropertiesArray()

getTargetLanguage

public java.lang.String getTargetLanguage()
Returns:
the targetLanguage

getTargetPhraseSeperator

public java.lang.String getTargetPhraseSeperator()

getTargetPhraseTranslate

public PhraseTranslate getTargetPhraseTranslate()

isbBilingualMode

public boolean isbBilingualMode()

isbStoreMonoLingualTerms

public boolean isbStoreMonoLingualTerms()

isbStoreUniqueId

public boolean isbStoreUniqueId()

phraseTranslateResultsToGlossary

public org.jdom.Element[] phraseTranslateResultsToGlossary()
phraseTranslateResultsToGlossary write a csv separated string a glossary Element; <, >, & are converted to XML pendants

Returns:
an array of glossaries (size 1) with the matching subsegment matches; null if no subsegment matches were found

printPhraseTranslateResults

public void printPhraseTranslateResults(java.lang.String searchPhrase,
                                        java.util.Vector<PhraseTranslateResult> result)
printPhraseTranslateResults prints a vector of PhraseTranslateResult to stdout

Parameters:
searchPhrase - the search phrase
result - the vector of PhraseTranslateResults

setbBilingualMode

public void setbBilingualMode(boolean bBilingualMode)

setbStoreMonoLingualTerms

public void setbStoreMonoLingualTerms(boolean bStoreMonoLingualTerms)

setbStoreUniqueId

public void setbStoreUniqueId(boolean bStoreUniqueId)

setCurrentWordCounter

public void setCurrentWordCounter(long currentWordCounter)

setLinguisticPropertyTable

public void setLinguisticPropertyTable(java.util.Hashtable<java.lang.String,java.lang.String> linguisticPropertyTable)

setLongArrayToMatch

public void setLongArrayToMatch(java.util.Hashtable<java.lang.String,java.lang.Boolean> longArrayToMatch)
Parameters:
longArrayToMatch - the longArrayToMatch to set

setLongArrayToSource

public void setLongArrayToSource(java.util.Hashtable<java.lang.String,java.lang.String> longArrayToSource)

setLongArrayToTranslation

public void setLongArrayToTranslation(java.util.Hashtable<java.lang.String,java.lang.String> longArrayToTranslation)
Parameters:
longArrayToTranslation - the longArrayToTranslation to set

setLongWordHash

public void setLongWordHash(java.util.Hashtable<java.lang.String,java.lang.Long> longWordHash)
Parameters:
longWordHash - the longWordHash to set

setSepChar

public void setSepChar(char sepChar)

setSourceLanguage

public void setSourceLanguage(java.lang.String sourceLanguage)
Parameters:
sourceLanguage - the sourceLanguage to set

setSourceTargetSepString

public void setSourceTargetSepString(java.lang.String sourceTargetSepString)

setStoredLinguisticProperties

public void setStoredLinguisticProperties(java.lang.String storedLinguisticProperties)

setStoredLinguisticPropertiesArray

public void setStoredLinguisticPropertiesArray(java.lang.String[] storedLinguisticPropertiesArray)

setTargetLanguage

public void setTargetLanguage(java.lang.String targetLanguage)
Parameters:
targetLanguage - the targetLanguage to set

setTargetPhraseSeperator

public void setTargetPhraseSeperator(java.lang.String targetPhraseSeperator)

setTargetPhraseTranslate

public void setTargetPhraseTranslate(PhraseTranslate targetPhraseTranslate)