/**
  * Adds property values to the ParserOutput instance
  *
  * @since 1.9
  *
  * @param array $properties
  *
  * @return string
  */
 protected function addPropertyValue(array $properties, $value, $valueCaption)
 {
     $subject = $this->parserData->getSubject();
     if (($propertyLink = $this->getPropertyLink($subject, $properties, $value, $valueCaption)) !== '') {
         return $propertyLink;
     }
     // Add properties to the semantic container
     foreach ($properties as $property) {
         $dataValue = $this->dataValueFactory->newDataValueByText($property, $value, $valueCaption, $subject);
         if ($this->isEnabledNamespace && $this->isAnnotation && $this->parserData->canModifySemanticData()) {
             $this->parserData->addDataValue($dataValue);
         }
     }
     // Return the text representation
     $result = $dataValue->getShortWikitext(true);
     // If necessary add an error text
     if ($this->settings->get('smwgInlineErrors') && $this->isEnabledNamespace && $this->isAnnotation && !$dataValue->isValid()) {
         // Encode `:` to avoid a comment block and instead of the nowiki tag
         // use : as placeholder
         $result = str_replace(':', ':', $result) . $dataValue->getErrorText();
     }
     return $result;
 }