To avoid having competing data being stored at a different point in time during a request aimed for the same subject, property value assignments are collected and stored in-memory before the finale Store::updateData
process will be invoked once.
$parserData = ApplicationFactory::getInstance()->newParserData(
$parser->getTitle(),
$parser->getOutput()
);
$subject = $parserData->getSubject();
$property = new DIProperty( 'SomeProperty' );
foreach ( $values as $value ) {
$dataValue = DataValueFactory::getInstance()->newDataValueByProperty(
$property,
trim( $value ),
false,
$subject
);
$parserData->addDataValue( $dataValue );
}
foreach ( $values as $value ) {
$dataValue = DataValueFactory::getInstance()->newDataValueByText(
$property,
trim( $value ),
false,
$subject
);
$parserData->addDataValue( $dataValue );
}
$parserData->pushSemanticDataToParserOutput();
Access semantic data currently stored in-memory
$parserData = ApplicationFactory::getInstance()->newParserData(
$parser->getTitle(),
$parser->getOutput()
);
$semanticData = $parserData->getSemanticData();
Read semantic data from DB
$semanticData = ApplicationFactory::getInstance()->getStore->getSemanticData(
$subject
);