C# Class SIL.FieldWorks.FDO.Infrastructure.Impl.CmSemanticDomainRepository

Show file Open project: sillsdev/FieldWorks

Public Methods

Method Description
FindCachedDomainsThatMatchWordsInSense ( SemDomSearchCache semDomCache, ILexSense sense ) : IEnumerable

This method assumes that a SemDomSearchCache has cached the Semantic Domains by search key (a Tuple of word string and writing system integer). It then takes the gloss, a short definition (if only one or two words), and reversal from a LexSense and uses those words as search keys to find Semantic Domains that have one of those words in their Name or Example Words fields.

FindDomainsThatMatch ( string searchString ) : IEnumerable

Finds all the semantic domains that contain 'searchString' in their text fields. Semantic Domains typically have: Abbreviation (a hierarchical number, e.g. "8.3.3") Name (e.g. "Light") Description (e.g. "Use this domain for words related to light.") OCM codes and Louw and Nida codes Questions (e.g. "(1) What words refer to light?") Example Words (e.g. "light, sunshine, gleam (n), glare (n), glow (n), radiance,") Search strings beginning with numbers will search Abbreviation only and only match at the beginning. (so searching for "3.3" won't return "8.3.3") Search strings beginning with alphabetic chars will search Name and Example Words. For alphabetic searches, hits will be returned in the following order: 1) Name begins with search string 2) Name or Example Words contain words (bounded by whitespace) that match the search string 3) Name or Example Words contain words that begin with the search string N.B.: This method looks for matches in the BestAnalysisAlternative writing system. This ought to match what is displayed in the UI, so if the UI doesn't use BestAnalysisAlternative one of them needs to be changed.

FindDomainsThatMatchWordsIn ( ILexSense sense ) : IEnumerable

Takes the gloss, a short definition (if only one or two words), and reversal from a LexSense and uses those words as search keys to find Semantic Domains that have one of those words in their Name or ExampleWords fields. N.B.: This method looks for matches in the AnalysisDefaultWritingSystem. This ought to help ensure that we are searching in the Semantic Domain fields in the same writing system as the one the search keys in the Sense came from.

FindDomainsThatMatchWordsIn ( ILexSense sense, IEnumerable &partialMatches ) : IEnumerable

Takes the gloss, a short definition (if only one or two words), and reversal from a LexSense and uses those words as search keys to find Semantic Domains that have one of those words in their Name or Example Words fields. In addition, this method returns additional partial matches in the 'out' parameter where one of the search keys matches the beginning of one of the words in the domain's Name or Example Words fields. N.B.: This method looks for matches in the AnalysisDefaultWritingSystem. This ought to help ensure that we are searching in the Semantic Domain fields in the same writing system as the one the search keys in the Sense came from.

Method Details

FindCachedDomainsThatMatchWordsInSense() public method

This method assumes that a SemDomSearchCache has cached the Semantic Domains by search key (a Tuple of word string and writing system integer). It then takes the gloss, a short definition (if only one or two words), and reversal from a LexSense and uses those words as search keys to find Semantic Domains that have one of those words in their Name or Example Words fields.
public FindCachedDomainsThatMatchWordsInSense ( SemDomSearchCache semDomCache, ILexSense sense ) : IEnumerable
semDomCache SIL.FieldWorks.FDO.DomainServices.SemanticDomainSearch.SemDomSearchCache
sense ILexSense
return IEnumerable

FindDomainsThatMatch() public method

Finds all the semantic domains that contain 'searchString' in their text fields. Semantic Domains typically have: Abbreviation (a hierarchical number, e.g. "8.3.3") Name (e.g. "Light") Description (e.g. "Use this domain for words related to light.") OCM codes and Louw and Nida codes Questions (e.g. "(1) What words refer to light?") Example Words (e.g. "light, sunshine, gleam (n), glare (n), glow (n), radiance,") Search strings beginning with numbers will search Abbreviation only and only match at the beginning. (so searching for "3.3" won't return "8.3.3") Search strings beginning with alphabetic chars will search Name and Example Words. For alphabetic searches, hits will be returned in the following order: 1) Name begins with search string 2) Name or Example Words contain words (bounded by whitespace) that match the search string 3) Name or Example Words contain words that begin with the search string N.B.: This method looks for matches in the BestAnalysisAlternative writing system. This ought to match what is displayed in the UI, so if the UI doesn't use BestAnalysisAlternative one of them needs to be changed.
public FindDomainsThatMatch ( string searchString ) : IEnumerable
searchString string
return IEnumerable

FindDomainsThatMatchWordsIn() public method

Takes the gloss, a short definition (if only one or two words), and reversal from a LexSense and uses those words as search keys to find Semantic Domains that have one of those words in their Name or ExampleWords fields. N.B.: This method looks for matches in the AnalysisDefaultWritingSystem. This ought to help ensure that we are searching in the Semantic Domain fields in the same writing system as the one the search keys in the Sense came from.
public FindDomainsThatMatchWordsIn ( ILexSense sense ) : IEnumerable
sense ILexSense
return IEnumerable

FindDomainsThatMatchWordsIn() public method

Takes the gloss, a short definition (if only one or two words), and reversal from a LexSense and uses those words as search keys to find Semantic Domains that have one of those words in their Name or Example Words fields. In addition, this method returns additional partial matches in the 'out' parameter where one of the search keys matches the beginning of one of the words in the domain's Name or Example Words fields. N.B.: This method looks for matches in the AnalysisDefaultWritingSystem. This ought to help ensure that we are searching in the Semantic Domain fields in the same writing system as the one the search keys in the Sense came from.
public FindDomainsThatMatchWordsIn ( ILexSense sense, IEnumerable &partialMatches ) : IEnumerable
sense ILexSense A LexSense
partialMatches IEnumerable extra partial matches
return IEnumerable