function bootstrapDefinedMeaning( $spelling, $languageId, $definition ) {
	$expression = findOrCreateExpression( $spelling, $languageId );
	$definedMeaningId = createNewDefinedMeaning( $expression->id, $languageId, $definition );

	return $definedMeaningId;
}
Ejemplo n.º 2
0
	public function add( IdStack $idPath, $record ) {
		if ( $this->filterLanguageId == 0 ) {
			$expressionLanguageId = $record->expression->language;
		} else {
			$expressionLanguageId = $this->filterLanguageId;
		}

		$expressionMeanings = $record->expressionMeanings->expressionExactMeanings;

		if ( $expressionLanguageId != 0 && $expressionMeanings->getRecordCount() > 0 ) {
			$expressionMeaning = $expressionMeanings->getRecord( 0 );

			$definition = $expressionMeaning->definedMeaning->definition;
			$translatedContent = $definition->translatedText;
			
 			if ( $this->filterLanguageId == 0 ) {
				if ( $translatedContent->getRecordCount() > 0 ) {
					$definitionRecord = $translatedContent->getRecord( 0 );
	
					$text = $definitionRecord->text;
					$languageId = $definitionRecord->language;

					if ( $languageId != 0 && $text != "" ) {
						$expression = findOrCreateExpression( $this->spelling, $expressionLanguageId );
						createNewDefinedMeaning( $expression->id, $languageId, $text );
					}
				}
			}
			elseif ( $translatedContent != "" ) {
				$expression = findOrCreateExpression( $this->spelling, $expressionLanguageId );
				createNewDefinedMeaning( $expression->id, $this->filterLanguageId, $translatedContent );
			}
		}
	}
Ejemplo n.º 3
0
function importSNTypes( $collectionId, $query, $languageId ) {
	global
		$db;
	
	$queryResult = mysql_query( $query, $db );
	while ( $semanticNetworkType = mysql_fetch_object( $queryResult ) ) {
		$expressionText = $semanticNetworkType->semtypeab;
		$expressionText = strtolower( str_replace( "_", " ", $expressionText ) );
		$definedMeaningId = getDefinedMeaningFromCollection( $collectionId, $semanticNetworkType->semtypeab );
		$expression = findOrCreateExpression( $expressionText, $languageId );
		if ( !$definedMeaningId ) {
			$definedMeaningId = createNewDefinedMeaning( $expression->id, $languageId, $semanticNetworkType->definition );
			addDefinedMeaningToCollection( $definedMeaningId, $collectionId, $semanticNetworkType->semtypeab );
		}
	}
	
	mysql_free_result( $queryResult );
}
	public function addExpressionAsDefinedMeaning( $spelling, $definition, $internalIdentifier, $collectionId ) {
		$expression = $this->getOrCreateExpression( $spelling );
		$definedMeaningId = createNewDefinedMeaning( $expression->id, $this->languageId, $definition );
		addDefinedMeaningToCollection( $definedMeaningId, $collectionId, $internalIdentifier );
		return $definedMeaningId;
	}
	/**  
	 * FIXME - work in progress
	 *
	 */
	public function save() {
		initializeOmegaWikiAttributes( $this->viewInformation );
		initializeObjectAttributeEditors( $this->viewInformation );

		# Nice try sherlock, but we really need to get our DMID from elsewhere
		# $definedMeaningId = $this->getId(); 

		# Need 3 steps: copy defining expression, create new dm, then update

		$expression = $this->dupDefiningExpression();
		var_dump( $expression );
		# to make the expression really work, we may need to call
		# more here?
		$expression->createNewInDatabase();
		

		# shouldn't this stuff be protected?
		$expressionId = $expression->id;
		$languageId = $expression->languageId;
		
		$this->hackDC(); // XXX
		$text = $this->getDefiningExpression();
		$this->unhackDC(); // XXX


		# here we assume the DM is not there yet.. not entirely wise
		# in the long run.
		echo "id: $expressionId lang: $languageId";
		$newDefinedMeaningId = createNewDefinedMeaning( $expressionId, $languageId, $text );
		

		getDefinedMeaningEditor( $this->viewInformation )->save(
			$this->getIdStack( $newDefinedMeaningId ),
			$this->getRecord()
		);

		return $newDefinedMeaningId;
	}