Identify and clean component uncertainty in timespans

This commit is contained in:
2026-06-08 13:42:45 +02:00
parent 59580720fe
commit 5b6d7f9401
2 changed files with 19 additions and 0 deletions
+16
View File
@@ -266,6 +266,15 @@ final class NodaUncertaintyHelper {
return "";
}
if (str_contains($name, '-')) {
$parts = explode('-', $name);
$partsCleaned = [];
foreach ($parts as $part) {
$partsCleaned[] = self::cleanUncertaintyIndicatorsTime($part);
}
$name = implode('-', $partsCleaned);
}
// Remove uncertainty prefixes
foreach (NodaUncertaintyHelper::TIME_UNCERTAINTY_PREFIXES as $prefix) {
if (\substr($name, 0, \strlen($prefix)) === "$prefix") {
@@ -296,6 +305,13 @@ final class NodaUncertaintyHelper {
$zeit_name = self::trim(strtolower($zeit_name));
if (str_contains($zeit_name, '-')) {
$parts = explode('-', $zeit_name);
foreach ($parts as $part) {
if (self::guessTimeCertainty($part) === false) return false;
}
}
// Attempt to guess uncertainty based on prefixes.
foreach (self::TIME_UNCERTAINTY_PREFIXES as $prefix) {
if (\substr($zeit_name, 0, \strlen($prefix)) === $prefix) {
+3
View File
@@ -24,6 +24,9 @@ final class NodaUncertaintyHelperTest extends TestCase {
public static function uncertainTimesProvider():array {
return [
'infix: "1950-wohl 1960"' => ["1950-ca. 1960", "1950-1960", false],
'uncertainty prefix + infix: "ca. 1950-ca. 1960"' => ["ca. 1950-ca. 1960", "1950-1960", false],
'uncertainty prefix + infix: "wohl 1950-wohl 1960"' => ["wohl 1950-wohl 1960", "1950-1960", false],
'uncertainty prefix: "wohl 1950"' => ["wohl 1950", "1950", false],
'uncertainty prefix: "etwa 1950"' => ["etwa 1950", "1950", false],
'uncertainty suffix: "1950?"' => ["1950?", "1950", false],