Пример #1
0
		/// ------------------------------------------------------------------------------------
		/// <summary>
		///
		/// </summary>
		/// <param name="lexDb"></param>
		/// ------------------------------------------------------------------------------------
		private void AddMorphTypes(LexDb lexDb)
		{
			int hvoMorphTypesList = m_cacheBase.NewHvo(CmPossibilityList.kClassId);
			lexDb.MorphTypesOAHvo = hvoMorphTypesList;
			CmPossibilityList morphTypesList = new CmPossibilityList(Cache, hvoMorphTypesList);

			for (int i = 1; i <= MoMorphTypeCollection.kmtLimit; i++)
			{
				int hvoMorphType = m_cacheBase.NewHvo(MoMorphType.kClassId);
				MoMorphType morphType = new MoMorphType(Cache, hvoMorphType);
				switch (i)
				{
					case 1:
						InitMorphType(new Guid(MoMorphType.kguidMorphBoundRoot), "*", null, 2, morphType);
						break;
					case 2:
						InitMorphType(new Guid(MoMorphType.kguidMorphBoundStem), "*", null, 2, morphType);
						break;
					case 3:
						InitMorphType(new Guid(MoMorphType.kguidMorphCircumfix), null, null, 1, morphType);
						break;
					case 4:
						InitMorphType(new Guid(MoMorphType.kguidMorphEnclitic), "=", null, 7, morphType);
						break;
					case 5:
						InitMorphType(new Guid(MoMorphType.kguidMorphInfix), "-", "-", 5, morphType);
						break;
					case 6:
						InitMorphType(new Guid(MoMorphType.kguidMorphParticle), null, null, 1, morphType);
						break;
					case 7:
						InitMorphType(new Guid(MoMorphType.kguidMorphPrefix), null, "-", 3, morphType);
						break;
					case 8:
						InitMorphType(new Guid(MoMorphType.kguidMorphProclitic), null, "=", 4, morphType);
						break;
					case 9:
						InitMorphType(new Guid(MoMorphType.kguidMorphRoot), null, null, 1, morphType);
						break;
					case 10:
						InitMorphType(new Guid(MoMorphType.kguidMorphSimulfix), "=", "=", 5, morphType);
						break;
					case 11:
						InitMorphType(new Guid(MoMorphType.kguidMorphStem), null, null, 1, morphType);
						break;
					case 12:
						InitMorphType(new Guid(MoMorphType.kguidMorphSuffix), "-", null, 6, morphType);
						break;
					case 13:
						InitMorphType(new Guid(MoMorphType.kguidMorphSuprafix), "~", "~", 5, morphType);
						break;
					case 14:
						InitMorphType(new Guid(MoMorphType.kguidMorphInfixingInterfix), "-", "-", 0, morphType);
						break;
					case 15:
						InitMorphType(new Guid(MoMorphType.kguidMorphPrefixingInterfix), null, "-", 0, morphType);
						break;
					case 16:
						InitMorphType(new Guid(MoMorphType.kguidMorphSuffixingInterfix), "-", null, 0, morphType);
						break;
					case 17:
						InitMorphType(new Guid(MoMorphType.kguidMorphPhrase), null, null, 0, morphType);
						break;
					case 18:
						InitMorphType(new Guid(MoMorphType.kguidMorphDiscontiguousPhrase), null, null, 0, morphType);
						break;
					case 19:
						InitMorphType(new Guid(MoMorphType.kguidMorphClitic), null, null, 0, morphType);
						break;
				}
				m_cacheBase.SetBasicProps(hvoMorphType, hvoMorphTypesList, (int)MoMorphType.kClassId,
					(int)CmPossibilityList.CmPossibilityListTags.kflidPossibilities, i);
				m_cacheBase.AppendToFdoVector(hvoMorphTypesList,
					(int)CmPossibilityList.CmPossibilityListTags.kflidPossibilities, hvoMorphType);
			}
		}
Пример #2
0
		/// ------------------------------------------------------------------------------------
		/// <summary>
		/// Initialize lexical database and morph types
		/// </summary>
		/// ------------------------------------------------------------------------------------
		public void InitializeLexDb()
		{
			CheckDisposed();
			LoadMetaData("ling");

			int hvoLexDb = m_cacheBase.NewHvo(LexDb.kClassId);
			m_lp.LexDbOAHvo = hvoLexDb;
			LexDb lexDb = new LexDb(Cache, hvoLexDb);

			AddMorphTypes(lexDb);

			m_lp.PartsOfSpeechOAHvo = m_cacheBase.NewHvo(CmPossibilityList.kClassId);

			m_lp.SemanticDomainListOAHvo = m_cacheBase.NewHvo(CmPossibilityList.kClassId);

			lexDb.UsageTypesOAHvo = m_cacheBase.NewHvo(CmPossibilityList.kClassId);

			m_lp.PhonologicalDataOAHvo = m_cacheBase.NewHvo(PhPhonData.kClassId);

			m_lp.WordformInventoryOAHvo = m_cacheBase.NewHvo(WordformInventory.kClassId);

			m_lp.MorphologicalDataOAHvo = m_cacheBase.NewHvo(MoMorphData.kClassId);

			m_lp.ConfidenceLevelsOAHvo = m_cacheBase.NewHvo(CmPossibilityList.kClassId);

			// TODO: add lexDb.Introduction, lexDb.Domain/Subentry/Sense,
			// lexDb.Status
		}