diff --git a/app/Services/Wikidata/WikidataExtractor.php b/app/Services/Wikidata/WikidataExtractor.php index 9e8f007..0c58b57 100644 --- a/app/Services/Wikidata/WikidataExtractor.php +++ b/app/Services/Wikidata/WikidataExtractor.php @@ -119,6 +119,10 @@ private function browse(array $claims) $isUnused = !$isExcluded && !$isIncluded; $claimGroup = $this->parseClaims($key, $data, $isIncluded); + if (empty($claimGroup)) { + continue; + } + if ($isExcluded) { $newKey = $this->replaceValue($key, true, true); $excluded[$newKey] = $claimGroup; @@ -147,6 +151,10 @@ private function parseClaims(string $propertyId, array $data, bool $parentInclud foreach ($data as $claim) { $parsedClaim = $this->parseClaim($propertyId, $claim, $parentIncluded); + if (empty($parsedClaim)) { + continue; + } + if (is_array($parsedClaim)) { $result = array_merge_recursive($result, $parsedClaim); } else { @@ -164,6 +172,10 @@ private function parseClaim(string $propertyId, array $data, bool $parentInclude { $value = $this->parseSnak($data['mainsnak'], $parentIncluded); + if (empty($value)) { + return null; + } + if (!empty($data['qualifiers'])) { $itemQualifiers = []; @@ -197,7 +209,7 @@ private function parseClaim(string $propertyId, array $data, bool $parentInclude private function parseSnak(array $data, bool $parentIncluded) { if (empty($data['datavalue']['value'])) { - return $data; + return null; } $value = $data['datavalue']['value'];