/**
 * Returns one spelling of an expression corresponding to a given DM
 * - in a given language if it exists
 * - or else in English
 * - or else in any language
 * @param $definedMeaningId
 */
function definedMeaningExpression( $definedMeaningId ) {
	global $wgLang;

	$userLanguageId = getLanguageIdForCode( $wgLang->getCode() ) ;
	
	list( $definingExpressionId, $definingExpression, $definingExpressionLanguage ) = definingExpressionRow( $definedMeaningId );
	
	if ( $userLanguageId > 0 ) {
		$result = definedMeaningExpressionForLanguage( $definedMeaningId, $userLanguageId );
	} else {
		$result = "";
	}
	if ( $result == "" ) {
		// if no expression exists for the specified language : look for an expression in English
		$result = definedMeaningExpressionForLanguage( $definedMeaningId, 85 );
		
		if ( $result == "" ) {
			$result = definedMeaningExpressionForAnyLanguage( $definedMeaningId );
			
			if ( $result == "" ) {
				$result = $definingExpression;
			}
		}
	}

	return $result;
}
function getDefiningExpressionRecord( $definedMeaningId ) {

		$o = OmegaWikiAttributes::getInstance();

		$definingExpression = definingExpressionRow( $definedMeaningId );
		$definingExpressionRecord = new ArrayRecord( $o->definedMeaningCompleteDefiningExpression->type );
		$definingExpressionRecord->expressionId = $definingExpression[0];
		$definingExpressionRecord->definedMeaningDefiningExpression = $definingExpression[1];
		$definingExpressionRecord->language = $definingExpression[2];
		return $definingExpressionRecord;
}