/** * 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); }