ULAspect | An enhanced enumerated type used to represent the aspect of verbs |
ULCase | An enhanced enumerated type used to represent noun/pronoun/adjective cases |
ULConfiguration | Each 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 |
ULConjugator | A 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 |
ULDataSource | ULDataSource is the abstract parent for classes that interface with data stored somewhere like a .uld or .ulc/.ull file or a database |
ULDefiner | A worker that looks up words in bilingual or monolingual dictionary data sources and supplies definitions for those words |
ULDerivation | A 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 |
ULDictionary | ULDictionary is the abstract class describing a protocol for accessing mono- or bi-lingual dictionary data |
ULDictionaryDataSource | ULDictionaryDataSource is the abstract parent for classes that interface with dictionary data stored somewhere like a .uld file or a database |
ULDictionaryDescriptor | A 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 |
ULDictionaryIterator | ULDictionaryIterator 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 |
ULDictionaryNode | A ULDictionaryNode represents a unit of data from a ULDictionary |
ULDissector | A 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 |
ULEnum | The base class for all of ULAPI's enhanced enumerated types |
ULError | An enhanced enumerated type used as return values throughout ULAPI to represent various error conditions |
ULExample | An object of type ULExample represents a single example |
ULFactory | ULFactory 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 |
ULFeature | The 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) |
ULFeatureType | An enhanced enumerated type used to represent the various features (e.g. gender) stored with individual words in ULAPI data sources |
ULFormality | An enhanced enumerated type used to represent formality levels (e.g. Sie vs. du) |
ULGender | An enhanced enumerated type used to represent genders |
ULHashTable | A simple implementation of a hash table |
ULHashTableIterator | A 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 |
ULInflectionRule | A ULInflectionRule object stores one of the rules stored in a ULLanguageDataSource and used by ULDissector and ULInflector to perform morphological analyses and syntheses |
ULInflector | A 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] |
ULJSONDictionaryDataSource | ULJSONDictionaryDataSource implements the ULDictionaryDataSource protocol (and thus both the ULDictionary and ULDataSource protocols) by using ULAPI 8 .uld files |
ULJSONDictionaryIterator | ULJSONDictionaryIterator is the dictionary data source iterator for use with ULJSONDictionaryDataSource (i.e. dictionary data stored as JSON strings) |
JSONNodeInfo | |
ULLanguage | An enhanced enumerated type used to represent languages |
ULLanguageDataSource | ULLanguageDataSource is the abstract parent for classes that interface with single-language data stored somewhere like a .ulc file or a database |
ULList | A doubly-linked list |
ULListConstIterator | A class for iterating over lists of type const ULList& |
ULListIterator | A class for iterating over ULList objects |
ULListNode | A struct used internally by ULList |
ULLock | ULLock is an abstract class describing a simple mutual exclusion primitive. Each operating system or environment will require a different implementation |
ULLockable | ULLockable can be used as a parent class for any class whose operations need to be made atomic in a threaded context |
ULMood | An enhanced enumerated type used to represent the mood of verbs |
ULNumber | An enhanced enumerated type used to represent the numbers of noun/pronoun/adjective |
ULNumberTranslator | The abstract parent of the classes that translate numbers in ULAPI's supported languages |
ULPair | A ULPair<T, U> object is an ordered pair of objects of the specified types |
ULPartOfSpeech | An 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.) |
ULPartOfSpeechCategory | An 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) |
ULPartOfSpeechSubcategory | An 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 |
ULPartOfSpeechTagger | A 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 |
ULPerson | An enhanced enumerated type used to represent persons (first, second, third, as well as first-singular, third-plural, second-singular-formal, etc.) |
ULPluralizer | A simplified interface to the noun pluralization services provided by ULInflector |
ULPrimitiveNumber | A utility struct used by the number translation routines |
ULRenderer | ULRenderer is the abstract parent for classes that render dictionary data into string form |
ULScopeLocker | ULScopeLocker 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. |
ULServiceDescriptor | An 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 |
ULSingularizer | A simplified interface to the noun singularization services provided by ULStemmer |
ULStemmer | A 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" |
ULString | A string wrapper class for use in the Ultralingua API |
ULStringIterator | An iterator that moves forward (via operator++) through a ULString object |
ULStringReverseIterator | An iterator that moves backwards (via operator++) through a ULString object |
ULTaggedWord | Each 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 |
ULTense | An enhanced enumerated type used to represent tenses |
ULVector | A 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 |
ULWorker | ULWorker is the abstract parent for the classes that provide core ULAPI services like number translation, conjugation, word look-up, etc |