ULAPI  8.0
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
[detail level 12]
oCULAspectAn enhanced enumerated type used to represent the aspect of verbs
oCULCaseAn enhanced enumerated type used to represent noun/pronoun/adjective cases
oCULConfigurationEach object of type ULFactory (or one of its descendants) uses a ULConfiguration object to maintain configuration state needed to make decisions about instantiation of workers, locks, data sources, etc. The ULConfiguration object may draw its values from defaults, from a config file, or from the factory's own initialization routines
oCULConjugatorA ULConjugator is a worker that conjugates verbs. Most ULConjugator services are also available via ULInflector, but ULConjugator is designed to have simple interfaces to support the most common conjugation requests
oCULDataSourceULDataSource is the abstract parent for classes that interface with data stored somewhere like a .uld or .ulc/.ull file or a database
oCULDefinerA worker that looks up words in bilingual or monolingual dictionary data sources and supplies definitions for those words
oCULDerivationA ULDerivation object stores a complete morphological derivation of a word. For example, the derivation of the word "bakers" would consist of the word "bake [verb]" plus two inflection rules, one that transforms a verb into a noun by adding an "-er" suffix, and the other that transforms a singular noun into a plural noun
oCULDictionaryULDictionary is the abstract class describing a protocol for accessing mono- or bi-lingual dictionary data
oCULDictionaryDataSourceULDictionaryDataSource is the abstract parent for classes that interface with dictionary data stored somewhere like a .uld file or a database
oCULDictionaryDescriptorA ULDictionaryDescriptor describes a particular type of dictionary data source without uniquely specifying the file or database from which it comes. For example, if there are two English-French Ultralingua dictionary data source modules, either or both of them could be identified by specifying the same ULDictionaryDescriptor
oCULDictionaryIteratorULDictionaryIterator is a wrapper for a pointer to a ULDictionaryDataSourceIterator subclass object. Its only purpose is to enable the ULDictionary begin, find, and end methods to return a polymorphic object without forcing the caller to take responsibility for deleting that object
oCULDictionaryNodeA ULDictionaryNode represents a unit of data from a ULDictionary
oCULDissectorA ULDissector is a worker that performs morphological analysis of words in a particular language. Each ULDissector contains a pointer to a language data source and a dictionary data source. The language data source provides information about the general morphological structure of the language in question, while the dictionary data source provides a list of words in the language along with their parts of speech
oCULEnumThe base class for all of ULAPI's enhanced enumerated types
oCULErrorAn enhanced enumerated type used as return values throughout ULAPI to represent various error conditions
oCULExampleAn object of type ULExample represents a single example
oCULFactoryULFactory is the abstract parent for the classes that provide instantiation and initialization services for ULAPI objects. For example, the Mac desktop version of Ultralingua would instantiate ULUltralinguaMacFactory and use it to instantiate locks, data sources, workers, etc
oCULFeatureThe class for storing the ULFeatureType and value (integer, enumerated type, or string) associated with the type in some context. ULAPI objects like ULPartOfSpeech and ULDictionaryNode contain lists of ULFeature objects (among other things)
oCULFeatureTypeAn enhanced enumerated type used to represent the various features (e.g. gender) stored with individual words in ULAPI data sources
oCULFormalityAn enhanced enumerated type used to represent formality levels (e.g. Sie vs. du)
oCULGenderAn enhanced enumerated type used to represent genders
oCULHashTableA simple implementation of a hash table
oCULHashTableIteratorA class used to iterate over the keys in a ULHashTable. Iteration is not in a readily predictable or sorted order, but it does visit each key exactly once
oCULInflectionRuleA ULInflectionRule object stores one of the rules stored in a ULLanguageDataSource and used by ULDissector and ULInflector to perform morphological analyses and syntheses
oCULInflectorA ULInflector is a low-level worker that takes morphological information and constructs a word (or words) from it. For example, (bus, noun, plural) gets inflected into the pair of alternative spellings [buses, busses]
oCULJSONDictionaryDataSourceULJSONDictionaryDataSource implements the ULDictionaryDataSource protocol (and thus both the ULDictionary and ULDataSource protocols) by using ULAPI 8 .uld files
oCULJSONDictionaryIteratorULJSONDictionaryIterator is the dictionary data source iterator for use with ULJSONDictionaryDataSource (i.e. dictionary data stored as JSON strings)
oCULLanguageAn enhanced enumerated type used to represent languages
oCULLanguageDataSourceULLanguageDataSource is the abstract parent for classes that interface with single-language data stored somewhere like a .ulc file or a database
oCULListA doubly-linked list
oCULListConstIteratorA class for iterating over lists of type const ULList&
oCULListIteratorA class for iterating over ULList objects
oCULListNodeA struct used internally by ULList
oCULLockULLock is an abstract class describing a simple mutual exclusion primitive. Each operating system or environment will require a different implementation
oCULLockableULLockable can be used as a parent class for any class whose operations need to be made atomic in a threaded context
oCULMoodAn enhanced enumerated type used to represent the mood of verbs
oCULNumberAn enhanced enumerated type used to represent the numbers of noun/pronoun/adjective
oCULNumberTranslatorThe abstract parent of the classes that translate numbers in ULAPI's supported languages
oCULPairA ULPair<T, U> object is an ordered pair of objects of the specified types
oCULPartOfSpeechAn object of type ULPartOfSpeech represents a single part of speech, including the base category (e.g. noun) and additional features (e.g. gender, case, number, etc.)
oCULPartOfSpeechCategoryAn enhanced enumerated type used to represent the various broad part of speech categories (e.g. verb, noun, adjective, etc.) as opposed to the more specific parts of speech (e.g. transitive verb)
oCULPartOfSpeechSubcategoryAn enhanced enumerated type used to represent the "subcategory" attribute associated with many part of speech categories. For example, noun subcategories include proper, diminutive, and abbreviation, while pronoun types include demonstrative, personal, possessive, etc
oCULPartOfSpeechTaggerA ULPartOfSpeechTagger marks the words in a sentence with parts of speech. The tagger uses a combination of dictionary look-up and rule-based ambiguity resolution to choose parts of speech for each word in the sentence
oCULPersonAn enhanced enumerated type used to represent persons (first, second, third, as well as first-singular, third-plural, second-singular-formal, etc.)
oCULPluralizerA simplified interface to the noun pluralization services provided by ULInflector
oCULPrimitiveNumberA utility struct used by the number translation routines
oCULRendererULRenderer is the abstract parent for classes that render dictionary data into string form
oCULScopeLockerULScopeLocker objects are used to make operations atomic. Just declare a ULScopeLocker object (with a suitable ULLock * parameter) at the top of the function or other block you want made atomic, and the constructor ULScopeLocker object will claim the lock, and its destructor will release the lock whenever control exits the block. See (http://www.cs.wustl.edu/~schmidt/PDF/ScopedLocking.pdf) for details on the Scoped Locking idiom and related concepts.
oCULServiceDescriptorAn object of type ULServiceDescriptor describes a service required by the invoker of the service, along with information about the data source from which the service will be supplied
oCULSingularizerA simplified interface to the noun singularization services provided by ULStemmer
oCULStemmerA worker that computes the stems of words. For example, the French word "couvent" is both a singular noun and the third person plural form of the verb "couver". Thus, a French ULStemmer object would identify both "couvent n.m." and "couver v." as stems for "couvent"
oCULStringA string wrapper class for use in the Ultralingua API
oCULStringIteratorAn iterator that moves forward (via operator++) through a ULString object
oCULStringReverseIteratorAn iterator that moves backwards (via operator++) through a ULString object
oCULTaggedWordEach ULTaggedWord object represents the list of possible interpretations of a word from a sentence, ordered by decreasing likelihood. For example, in the sentence "Alice drinks coffee", the most likely interpretation of the word "drinks" would be as the third-person singular form of the verb "to drink". The word "drinks" also has a less likely (in this sentence) interpretation as the plural of the noun "drink". Thus, the list of tags corresponding to "drinks" in the context of the sentence "Alice drinks coffee" would have two elements, first the verb and second the noun
oCULTenseAn enhanced enumerated type used to represent tenses
oCULVectorA resizable array, with constant-time access by index. Slots in the vector are pointers of type T* rather than objects of type T, so unused slots take up only the memory required to store a pointer
\CULWorkerULWorker is the abstract parent for the classes that provide core ULAPI services like number translation, conjugation, word look-up, etc