Thiemo Mättig (WMDE) has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/334977 )
Change subject: Replace FingerprintProvider with more specific ones in RDF builders ...................................................................... Replace FingerprintProvider with more specific ones in RDF builders This code is still problematic because it is unable to support new types of terms. But this patch solves one problem: Entity implementations do not have to support Fingerprints any more, but are free to mix and match Labels, Descriptions and Aliases as they wish. Note that one line of code moved outside of the condition. Is this relevant in terms of performance? Change-Id: I1c7e71d46a7fef09f6ed1334859474b16a25b73d --- M repo/includes/Rdf/RdfBuilder.php M repo/includes/Rdf/TermsRdfBuilder.php 2 files changed, 21 insertions(+), 15 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase refs/changes/77/334977/1 diff --git a/repo/includes/Rdf/RdfBuilder.php b/repo/includes/Rdf/RdfBuilder.php index 2e28325..986b78f 100644 --- a/repo/includes/Rdf/RdfBuilder.php +++ b/repo/includes/Rdf/RdfBuilder.php @@ -10,7 +10,8 @@ use Wikibase\DataModel\Entity\PropertyId; use Wikibase\DataModel\Services\Lookup\EntityLookup; use Wikibase\DataModel\Services\Lookup\PropertyDataTypeLookup; -use Wikibase\DataModel\Term\FingerprintProvider; +use Wikibase\DataModel\Term\DescriptionsProvider; +use Wikibase\DataModel\Term\LabelsProvider; use Wikibase\Lib\Store\EntityTitleLookup; use Wikibase\Lib\Store\RevisionedUnresolvedRedirectException; use Wikimedia\Purtle\RdfWriter; @@ -520,14 +521,14 @@ private function addEntityStub( EntityDocument $entity ) { $this->addEntityMetaData( $entity ); - if ( $entity instanceof FingerprintProvider ) { - $fingerprint = $entity->getFingerprint(); + $entityLName = $this->vocabulary->getEntityLName( $entity->getId() ); - /** @var EntityDocument $entity */ - $entityLName = $this->vocabulary->getEntityLName( $entity->getId() ); + if ( $entity instanceof LabelsProvider ) { + $this->termsBuilder->addLabels( $entityLName, $entity->getLabels() ); + } - $this->termsBuilder->addLabels( $entityLName, $fingerprint->getLabels() ); - $this->termsBuilder->addDescriptions( $entityLName, $fingerprint->getDescriptions() ); + if ( $entity instanceof DescriptionsProvider ) { + $this->termsBuilder->addDescriptions( $entityLName, $entity->getDescriptions() ); } } diff --git a/repo/includes/Rdf/TermsRdfBuilder.php b/repo/includes/Rdf/TermsRdfBuilder.php index 457a0df..d58bf2d 100644 --- a/repo/includes/Rdf/TermsRdfBuilder.php +++ b/repo/includes/Rdf/TermsRdfBuilder.php @@ -3,9 +3,11 @@ namespace Wikibase\Rdf; use Wikibase\DataModel\Entity\EntityDocument; +use Wikibase\DataModel\Term\AliasesProvider; use Wikibase\DataModel\Term\AliasGroup; use Wikibase\DataModel\Term\AliasGroupList; -use Wikibase\DataModel\Term\FingerprintProvider; +use Wikibase\DataModel\Term\DescriptionsProvider; +use Wikibase\DataModel\Term\LabelsProvider; use Wikibase\DataModel\Term\TermList; use Wikimedia\Purtle\RdfWriter; @@ -111,15 +113,18 @@ * @param EntityDocument $entity the entity to output. */ public function addEntity( EntityDocument $entity ) { - if ( $entity instanceof FingerprintProvider ) { - $fingerprint = $entity->getFingerprint(); + $entityLName = $this->vocabulary->getEntityLName( $entity->getId() ); - /** @var EntityDocument $entity */ - $entityLName = $this->vocabulary->getEntityLName( $entity->getId() ); + if ( $entity instanceof LabelsProvider ) { + $this->addLabels( $entityLName, $entity->getLabels() ); + } - $this->addLabels( $entityLName, $fingerprint->getLabels() ); - $this->addDescriptions( $entityLName, $fingerprint->getDescriptions() ); - $this->addAliases( $entityLName, $fingerprint->getAliasGroups() ); + if ( $entity instanceof DescriptionsProvider ) { + $this->addDescriptions( $entityLName, $entity->getDescriptions() ); + } + + if ( $entity instanceof AliasesProvider ) { + $this->addAliases( $entityLName, $entity->getAliasGroups() ); } } -- To view, visit https://gerrit.wikimedia.org/r/334977 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I1c7e71d46a7fef09f6ed1334859474b16a25b73d Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/Wikibase Gerrit-Branch: master Gerrit-Owner: Thiemo Mättig (WMDE) <thiemo.maet...@wikimedia.de> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits