/**
  * Adds specific value
  *
  * @param RdfWriter $writer
  * @param string $propertyValueNamespace Property value relation namespace
  * @param string $propertyValueLName Property value relation name
  * @param string $dataType Property data type
  * @param PropertyValueSnak $snak
  */
 public function addValue(RdfWriter $writer, $propertyValueNamespace, $propertyValueLName, $dataType, PropertyValueSnak $snak)
 {
     $valueType = $snak->getDataValue()->getType();
     $builder = $this->getValueBuilder($dataType, $valueType);
     if ($builder) {
         $builder->addValue($writer, $propertyValueNamespace, $propertyValueLName, $dataType, $snak);
     }
 }
 private function handle(PropertyValueSnak $snak)
 {
     $value = $snak->getDataValue();
     if ($value instanceof EntityIdValue) {
         return new StringValue($this->getEntityName($value->getEntityId()));
     }
     return $value;
 }
 private function getSnakValue(PropertyValueSnak $snak) : DataValue
 {
     $value = $snak->getDataValue();
     if ($value instanceof EntityIdValue) {
         return new EntityIdentityValue($value->getEntityId(), $this->getEntityName($value->getEntityId()), $this->urlBuilder->getApiEntityUrl($value->getEntityId()));
     }
     return $value;
 }
 /**
  * Adds specific value
  *
  * @param RdfWriter $writer
  * @param string $propertyValueNamespace Property value relation namespace
  * @param string $propertyValueLName Property value relation name
  * @param string $dataType Property data type
  * @param PropertyValueSnak $snak
  */
 public function addValue(RdfWriter $writer, $propertyValueNamespace, $propertyValueLName, $dataType, PropertyValueSnak $snak)
 {
     $value = $snak->getDataValue();
     $entityId = $value->getValue()->getEntityId();
     $entityLName = $this->vocabulary->getEntityLName($entityId);
     $writer->say($propertyValueNamespace, $propertyValueLName)->is(RdfVocabulary::NS_ENTITY, $entityLName);
     $this->mentionedEntityTracker->entityReferenceMentioned($entityId);
 }
 /**
  * Adds specific value
  *
  * @param RdfWriter $writer
  * @param string $propertyValueNamespace Property value relation namespace
  * @param string $propertyValueLName Property value relation name
  * @param string $dataType Property data type
  * @param PropertyValueSnak $snak
  */
 public function addValue(RdfWriter $writer, $propertyValueNamespace, $propertyValueLName, $dataType, PropertyValueSnak $snak)
 {
     $writer->say($propertyValueNamespace, $propertyValueLName);
     /** @var TimeValue $value */
     $value = $snak->getDataValue();
     $this->sayDateLiteral($writer, $value);
     if ($this->complexValueHelper !== null) {
         $this->addValueNode($writer, $propertyValueNamespace, $propertyValueLName, $dataType, $value);
     }
 }
 /**
  * Adds specific value
  *
  * @param RdfWriter $writer
  * @param string $propertyValueNamespace Property value relation namespace
  * @param string $propertyValueLName Property value relation name
  * @param string $dataType Property data type
  * @param PropertyValueSnak $snak
  */
 public function addValue(RdfWriter $writer, $propertyValueNamespace, $propertyValueLName, $dataType, PropertyValueSnak $snak)
 {
     /** @var GlobeCoordinateValue $value */
     $value = $snak->getDataValue();
     $point = "Point({$value->getLatitude()} {$value->getLongitude()})";
     $writer->say($propertyValueNamespace, $propertyValueLName)->value($point, RdfVocabulary::NS_GEO, "wktLiteral");
     if ($this->complexValueHelper !== null) {
         $this->addValueNode($writer, $propertyValueNamespace, $propertyValueLName, $dataType, $value);
     }
 }
 /**
  * Adds specific value
  *
  * @param RdfWriter $writer
  * @param string $propertyValueNamespace Property value relation namespace
  * @param string $propertyValueLName Property value relation name
  * @param string $dataType Property data type
  * @param PropertyValueSnak $snak
  */
 public function addValue(RdfWriter $writer, $propertyValueNamespace, $propertyValueLName, $dataType, PropertyValueSnak $snak)
 {
     /** @var QuantityValue $value */
     $value = $snak->getDataValue();
     $writer->say($propertyValueNamespace, $propertyValueLName)->value($value->getAmount(), 'xsd', 'decimal');
     //FIXME: this is meaningless without a unit identifier!
     if ($this->complexValueHelper !== null) {
         $this->addValueNode($writer, $propertyValueNamespace, $propertyValueLName, $dataType, $value);
     }
 }
 private function assertSnakHasUnDeserializableValue(PropertyValueSnak $snak)
 {
     $this->assertEquals(new PropertyId('P42'), $snak->getPropertyId());
     $dataValue = $snak->getDataValue();
     /**
      * @var UnDeserializableValue $dataValue
      */
     $this->assertInstanceOf('DataValues\\UnDeserializableValue', $dataValue);
     $this->assertEquals($dataValue->getTargetType(), 'string');
     $this->assertEquals($dataValue->getValue(), 1337);
 }
 /**
  * @see SnakUrlExpander::expandUrl
  *
  * @param PropertyValueSnak $snak
  *
  * @return string|null A URL or URI derived from the Snak, or null if no such URL
  *         could be determined.
  */
 public function expandUrl(PropertyValueSnak $snak)
 {
     $propertyId = $snak->getPropertyId();
     $value = $snak->getDataValue();
     Assert::parameterType('DataValues\\StringValue', $value, '$snak->getDataValue()');
     $pattern = $this->infoProvider->getPropertyInfo($propertyId);
     if ($pattern === null) {
         return null;
     }
     $id = urlencode($value->getValue());
     $url = str_replace('$1', $id, $pattern);
     return $url;
 }
 /**
  * Adds specific value
  *
  * @param RdfWriter $writer
  * @param string $propertyValueNamespace Property value relation namespace
  * @param string $propertyValueLName Property value relation name
  * @param string $dataType Property data type
  * @param PropertyValueSnak $snak
  */
 public function addValue(RdfWriter $writer, $propertyValueNamespace, $propertyValueLName, $dataType, PropertyValueSnak $snak)
 {
     /** @var GlobeCoordinateValue $value */
     $value = $snak->getDataValue();
     $point = "Point({$value->getLatitude()} {$value->getLongitude()})";
     $globe = $value->getGlobe();
     if ($globe && $globe !== GlobeCoordinateValue::GLOBE_EARTH) {
         $globe = str_replace('>', '%3E', $globe);
         // Add coordinate system according to http://www.opengeospatial.org/standards/geosparql
         // Per https://portal.opengeospatial.org/files/?artifact_id=47664 sec 8.5.1
         //    All RDFS Literals of type geo:wktLiteral shall consist of an optional URI
         //    identifying the coordinate reference system followed by Simple Features Well Known
         //   Text (WKT) describing a geometric value.
         // Example: "<http://www.opengis.net/def/crs/EPSG/0/4326> Point(33.95 -83.38)"^^<http://www.opengis.net/ont/geosparql#wktLiteral>
         $point = "<{$globe}> {$point}";
     }
     $writer->say($propertyValueNamespace, $propertyValueLName)->value($point, RdfVocabulary::NS_GEO, "wktLiteral");
     if ($this->complexValueHelper !== null) {
         $this->addValueNode($writer, $propertyValueNamespace, $propertyValueLName, $dataType, $value);
     }
 }
 public function testGetDataValue()
 {
     $snak = new PropertyValueSnak(new PropertyId('P1'), new StringValue('a'));
     $dataValue = $snak->getDataValue();
     $this->assertInstanceOf('DataValues\\DataValue', $dataValue);
     $this->assertTrue($dataValue->equals(new StringValue('a')));
 }
 /**
  * Adds specific value
  *
  * @param RdfWriter $writer
  * @param string $propertyValueNamespace Property value relation namespace
  * @param string $propertyValueLName Property value relation name
  * @param string $dataType Property data type
  * @param PropertyValueSnak $snak
  */
 public function addValue(RdfWriter $writer, $propertyValueNamespace, $propertyValueLName, $dataType, PropertyValueSnak $snak)
 {
     $uri = $this->getValueUri($snak->getDataValue());
     $writer->say($propertyValueNamespace, $propertyValueLName)->is($uri);
 }
 /**
  * Adds specific value
  *
  * @param RdfWriter $writer
  * @param string $propertyValueNamespace Property value relation namespace
  * @param string $propertyValueLName Property value relation name
  * @param string $dataType Property data type
  * @param PropertyValueSnak $snak
  */
 public function addValue(RdfWriter $writer, $propertyValueNamespace, $propertyValueLName, $dataType, PropertyValueSnak $snak)
 {
     /** @var MonolingualTextValue $value */
     $value = $snak->getDataValue();
     $writer->say($propertyValueNamespace, $propertyValueLName)->text($value->getText(), $value->getLanguageCode());
 }
 /**
  * Adds specific value
  *
  * @param RdfWriter $writer
  * @param string $propertyValueNamespace Property value relation namespace
  * @param string $propertyValueLName Property value relation name
  * @param string $dataType Property data type
  * @param PropertyValueSnak $snak
  */
 public function addValue(RdfWriter $writer, $propertyValueNamespace, $propertyValueLName, $dataType, PropertyValueSnak $snak)
 {
     $literalValue = $this->getLiteralValue($snak->getDataValue());
     $nsType = $this->typeBase ?: ($this->typeLocal === null ? null : 'xsd');
     $writer->say($propertyValueNamespace, $propertyValueLName)->value($literalValue, $nsType, $this->typeLocal);
 }