diff --git a/Appraise/urls.py b/Appraise/urls.py index 8c728079..b41306c3 100644 --- a/Appraise/urls.py +++ b/Appraise/urls.py @@ -192,6 +192,11 @@ campaign_views.campaign_status, name='campaign_status', ), + re_path( + r'^pairwise-assessment-document-esa/$', + evalview_views.pairwise_assessment_document_esa, + name="pairwise-assessment-document-esa", + ), ] if DEBUG: diff --git a/Campaign/management/commands/MakeAnnotation.py b/Campaign/management/commands/MakeAnnotation.py index 9faad8c5..211764b4 100644 --- a/Campaign/management/commands/MakeAnnotation.py +++ b/Campaign/management/commands/MakeAnnotation.py @@ -232,6 +232,34 @@ def handle(self, *args, **options): mqms[0], username, ) + + ################################################################## + elif campaign_type == "PairwiseDocumentESA": + if len(scores) != 2: + raise ValueError('Task "PairwiseDocumentESA" requires exactly 2 scores') + + data = { + "score1": scores[0], + "score2": scores[1], + "mqm1": mqms[0], + "mqm2": mqms[1], + "item_id": response.context["item_id"], + "task_id": response.context["task_id"], + "document_id": response.context["document_id"], + "start_timestamp": (datetime.now() - timedelta(minutes=5)).timestamp(), + "end_timestamp": datetime.now().timestamp(), + } + + msg_info = "item {}/{}/{} with score(s) {}, {} and mqm(s) {}, {} for user {}".format( + response.context["item_id"], + response.context["task_id"], + response.context["document_id"], + scores[0], + scores[1], + mqms[0], + mqms[1], + username, + ) ################################################################## elif campaign_type == "Data": diff --git a/Campaign/views.py b/Campaign/views.py index e0b916a3..bf5e0c82 100644 --- a/Campaign/views.py +++ b/Campaign/views.py @@ -20,6 +20,7 @@ from EvalData.models import DataAssessmentResult from EvalData.models import DirectAssessmentDocumentResult from EvalData.models import PairwiseAssessmentDocumentResult +from EvalData.models import PairwiseAssessmentDocumentESAResult from EvalData.models import PairwiseAssessmentResult from EvalData.models import seconds_to_timedelta from EvalData.models import TASK_DEFINITIONS @@ -77,12 +78,14 @@ def campaign_status(request, campaign_name, sort_key=2): if ( result_type is DirectAssessmentDocumentResult or result_type is PairwiseAssessmentDocumentResult + or result_type is PairwiseAssessmentDocumentESAResult ): _data = _data.exclude(item__isCompleteDocument=True) # Contrastive tasks use different field names for target segments/scores if ( result_type is PairwiseAssessmentResult or result_type is PairwiseAssessmentDocumentResult + or result_type is PairwiseAssessmentDocumentESAResult ): _data = _data.values_list( 'start_time', diff --git a/Dashboard/utils.py b/Dashboard/utils.py index f05e24ec..520f19cc 100644 --- a/Dashboard/utils.py +++ b/Dashboard/utils.py @@ -19,6 +19,7 @@ from EvalData.models import DirectAssessmentResult from EvalData.models import MultiModalAssessmentResult from EvalData.models import PairwiseAssessmentDocumentResult +from EvalData.models import PairwiseAssessmentDocumentESAResult from EvalData.models import PairwiseAssessmentResult from EvalData.models import RESULT_TYPES @@ -75,6 +76,7 @@ def run_quality_control(username): if ( result_type is PairwiseAssessmentResult or result_type is PairwiseAssessmentDocumentResult + or result_type is PairwiseAssessmentDocumentESAResult ): _data = _data.values_list( 'start_time', diff --git a/EvalData/migrations/0055_textsegmentwithtwotargets_mqm1_and_more.py b/EvalData/migrations/0055_textsegmentwithtwotargets_mqm1_and_more.py new file mode 100644 index 00000000..baa32f13 --- /dev/null +++ b/EvalData/migrations/0055_textsegmentwithtwotargets_mqm1_and_more.py @@ -0,0 +1,91 @@ +# Generated by Django 4.1 on 2024-07-25 07:29 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('Campaign', '0015_alter_campaign_activatedby_alter_campaign_batches_and_more'), + ('EvalData', '0054_alter_dataassessmentresult_activatedby_and_more'), + ] + + operations = [ + migrations.AddField( + model_name='textsegmentwithtwotargets', + name='mqm1', + field=models.TextField(blank=True, default='[]', verbose_name='MQM Annotations (1)'), + ), + migrations.AddField( + model_name='textsegmentwithtwotargets', + name='mqm2', + field=models.TextField(blank=True, default='[]', verbose_name='MQM Annotations (2)'), + ), + migrations.CreateModel( + name='PairwiseAssessmentDocumentESATask', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('dateCreated', models.DateTimeField(auto_now_add=True, verbose_name='Date created')), + ('dateActivated', models.DateTimeField(blank=True, null=True, verbose_name='Date activated')), + ('dateCompleted', models.DateTimeField(blank=True, null=True, verbose_name='Date completed')), + ('dateRetired', models.DateTimeField(blank=True, null=True, verbose_name='Date retired')), + ('dateModified', models.DateTimeField(blank=True, null=True, verbose_name='Date modified')), + ('activated', models.BooleanField(blank=True, db_index=True, default=False, verbose_name='Activated?')), + ('completed', models.BooleanField(blank=True, db_index=True, default=False, verbose_name='Completed?')), + ('retired', models.BooleanField(blank=True, db_index=True, default=False, verbose_name='Retired?')), + ('rawData', models.TextField(blank=True, editable=False, verbose_name='Raw data')), + ('_str_name', models.TextField(blank=True, default='', editable=False)), + ('requiredAnnotations', models.PositiveSmallIntegerField(help_text='(value in range=[1,50])', verbose_name='Required annotations')), + ('batchNo', models.PositiveIntegerField(help_text='(1-based)', verbose_name='Batch number')), + ('activatedBy', models.ForeignKey(blank=True, editable=False, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='%(app_label)s_%(class)s_activated_by', related_query_name='%(app_label)s_%(class)ss', to=settings.AUTH_USER_MODEL, verbose_name='Activated by')), + ('assignedTo', models.ManyToManyField(blank=True, db_index=True, help_text='(users working on this task)', related_name='%(app_label)s_%(class)s_assignedTo', related_query_name='%(app_label)s_%(class)ss', to=settings.AUTH_USER_MODEL, verbose_name='Assigned to')), + ('batchData', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='%(app_label)s_%(class)s_batchData', related_query_name='%(app_label)s_%(class)ss', to='Campaign.campaigndata', verbose_name='Batch data')), + ('campaign', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='%(app_label)s_%(class)s_campaign', related_query_name='%(app_label)s_%(class)ss', to='Campaign.campaign', verbose_name='Campaign')), + ('completedBy', models.ForeignKey(blank=True, editable=False, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='%(app_label)s_%(class)s_completed_by', related_query_name='%(app_label)s_%(class)ss', to=settings.AUTH_USER_MODEL, verbose_name='Completed by')), + ('createdBy', models.ForeignKey(editable=False, on_delete=django.db.models.deletion.PROTECT, related_name='%(app_label)s_%(class)s_created_by', related_query_name='%(app_label)s_%(class)ss', to=settings.AUTH_USER_MODEL, verbose_name='Created by')), + ('items', models.ManyToManyField(related_name='%(app_label)s_%(class)s_items', related_query_name='%(app_label)s_%(class)ss', to='EvalData.textsegmentwithtwotargetswithcontext', verbose_name='Items')), + ('modifiedBy', models.ForeignKey(blank=True, editable=False, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='%(app_label)s_%(class)s_modified_by', related_query_name='%(app_label)s_%(class)ss', to=settings.AUTH_USER_MODEL, verbose_name='Modified by')), + ('retiredBy', models.ForeignKey(blank=True, editable=False, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='%(app_label)s_%(class)s_retired_by', related_query_name='%(app_label)s_%(class)ss', to=settings.AUTH_USER_MODEL, verbose_name='Retired by')), + ], + options={ + 'ordering': ['_str_name'], + 'abstract': False, + }, + ), + migrations.CreateModel( + name='PairwiseAssessmentDocumentESAResult', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('dateCreated', models.DateTimeField(auto_now_add=True, verbose_name='Date created')), + ('dateActivated', models.DateTimeField(blank=True, null=True, verbose_name='Date activated')), + ('dateCompleted', models.DateTimeField(blank=True, null=True, verbose_name='Date completed')), + ('dateRetired', models.DateTimeField(blank=True, null=True, verbose_name='Date retired')), + ('dateModified', models.DateTimeField(blank=True, null=True, verbose_name='Date modified')), + ('activated', models.BooleanField(blank=True, db_index=True, default=False, verbose_name='Activated?')), + ('completed', models.BooleanField(blank=True, db_index=True, default=False, verbose_name='Completed?')), + ('retired', models.BooleanField(blank=True, db_index=True, default=False, verbose_name='Retired?')), + ('rawData', models.TextField(blank=True, editable=False, verbose_name='Raw data')), + ('_str_name', models.TextField(blank=True, default='', editable=False)), + ('score1', models.PositiveSmallIntegerField(help_text='(value in range=[1,100])', verbose_name='Score (1)')), + ('score2', models.PositiveSmallIntegerField(blank=True, help_text='(value in range=[1,100])', null=True, verbose_name='Score (2)')), + ('start_time', models.FloatField(help_text='(in seconds)', verbose_name='Start time')), + ('end_time', models.FloatField(help_text='(in seconds)', verbose_name='End time')), + ('activatedBy', models.ForeignKey(blank=True, editable=False, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='%(app_label)s_%(class)s_activated_by', related_query_name='%(app_label)s_%(class)ss', to=settings.AUTH_USER_MODEL, verbose_name='Activated by')), + ('completedBy', models.ForeignKey(blank=True, editable=False, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='%(app_label)s_%(class)s_completed_by', related_query_name='%(app_label)s_%(class)ss', to=settings.AUTH_USER_MODEL, verbose_name='Completed by')), + ('createdBy', models.ForeignKey(editable=False, on_delete=django.db.models.deletion.PROTECT, related_name='%(app_label)s_%(class)s_created_by', related_query_name='%(app_label)s_%(class)ss', to=settings.AUTH_USER_MODEL, verbose_name='Created by')), + ('item', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='%(app_label)s_%(class)s_item', related_query_name='%(app_label)s_%(class)ss', to='EvalData.textsegmentwithtwotargetswithcontext', verbose_name='Item')), + ('modifiedBy', models.ForeignKey(blank=True, editable=False, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='%(app_label)s_%(class)s_modified_by', related_query_name='%(app_label)s_%(class)ss', to=settings.AUTH_USER_MODEL, verbose_name='Modified by')), + ('retiredBy', models.ForeignKey(blank=True, editable=False, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='%(app_label)s_%(class)s_retired_by', related_query_name='%(app_label)s_%(class)ss', to=settings.AUTH_USER_MODEL, verbose_name='Retired by')), + ('task', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='%(app_label)s_%(class)s_task', related_query_name='%(app_label)s_%(class)ss', to='EvalData.pairwiseassessmentdocumentesatask', verbose_name='Task')), + ('mqm1', models.TextField(default='[]', help_text='MQM JSON string', verbose_name='MQM (1)')), + ('mqm2', models.TextField(default='[]', help_text='MQM JSON string', verbose_name='MQM (2)')), + ], + options={ + 'ordering': ['_str_name'], + 'abstract': False, + }, + ), + ] diff --git a/EvalData/models/__init__.py b/EvalData/models/__init__.py index 92943e4c..05dba04d 100644 --- a/EvalData/models/__init__.py +++ b/EvalData/models/__init__.py @@ -69,6 +69,15 @@ 'evaldata_pairwiseassessmentdocumenttasks', 'evaldata_pairwiseassessmentdocumentresults', ), + ( + 'PairwiseDocumentESA', + PairwiseAssessmentDocumentESATask, + PairwiseAssessmentDocumentESAResult, + 'pairwise-assessment-document-esa', + TextSegmentWithTwoTargetsWithContext, + 'evaldata_pairwiseassessmentdocumentesatasks', + 'evaldata_pairwiseassessmentdocumentesaresults', + ), ( 'Data', DataAssessmentTask, diff --git a/EvalData/models/base_models.py b/EvalData/models/base_models.py index 98a9d7b7..26894003 100644 --- a/EvalData/models/base_models.py +++ b/EvalData/models/base_models.py @@ -98,6 +98,7 @@ def get_object_instance(self): DirectAssessmentDocumentTask, MultiModalAssessmentTask, PairwiseAssessmentDocumentTask, + PairwiseAssessmentDocumentESATask, PairwiseAssessmentTask, ) @@ -722,6 +723,20 @@ class TextSegmentWithTwoTargets(TextSegment): blank=True, null=True, verbose_name=_('Target context (2)') ) + # used for error span annotations + mqm1 = models.TextField( + blank=True, + verbose_name=_('MQM Annotations (1)'), + default="[]", + ) + + # used for error span annotations + mqm2 = models.TextField( + blank=True, + verbose_name=_('MQM Annotations (2)'), + default="[]", + ) + def has_context(self): """Checks if the current segment has context provided.""" return self.contextLeft or self.contextRight diff --git a/EvalData/models/pairwise_assessment_document.py b/EvalData/models/pairwise_assessment_document.py index 41716007..65e5073d 100644 --- a/EvalData/models/pairwise_assessment_document.py +++ b/EvalData/models/pairwise_assessment_document.py @@ -6,7 +6,7 @@ # pylint: disable=C0103,C0330,no-member import sys from collections import defaultdict -from json import loads +from json import dumps, loads from zipfile import is_zipfile from zipfile import ZipFile @@ -57,120 +57,1080 @@ def is_valid(self): return super(TextSegmentWithTwoTargetsWithContext, self).is_valid() +class BasePairwiseAssessmentDocumentTask(BaseMetadata): + """ + Abstract base PairwiseAssessmentDocumentTask + """ + campaign = models.ForeignKey( + 'Campaign.Campaign', + db_index=True, + on_delete=models.PROTECT, + related_name='%(app_label)s_%(class)s_campaign', + related_query_name="%(app_label)s_%(class)ss", + verbose_name=_('Campaign'), + ) + + items = models.ManyToManyField( + TextSegmentWithTwoTargetsWithContext, + related_name='%(app_label)s_%(class)s_items', + related_query_name="%(app_label)s_%(class)ss", + verbose_name=_('Items'), + ) + + requiredAnnotations = models.PositiveSmallIntegerField( + verbose_name=_('Required annotations'), + help_text=_( + f( + '(value in range=[1,{value}])', + value=MAX_REQUIREDANNOTATIONS_VALUE, + ) + ), + ) + + assignedTo = models.ManyToManyField( + User, + blank=True, + db_index=True, + related_name='%(app_label)s_%(class)s_assignedTo', + related_query_name="%(app_label)s_%(class)ss", + verbose_name=_('Assigned to'), + help_text=_('(users working on this task)'), + ) + + batchNo = models.PositiveIntegerField( + verbose_name=_('Batch number'), help_text=_('(1-based)') + ) + + batchData = models.ForeignKey( + 'Campaign.CampaignData', + on_delete=models.PROTECT, + blank=True, + db_index=True, + null=True, + related_name='%(app_label)s_%(class)s_batchData', + related_query_name="%(app_label)s_%(class)ss", + verbose_name=_('Batch data'), + ) + + class Meta: + abstract = True + ordering = ['_str_name'] + + def dataName(self): + return str(self.batchData) + + def marketName(self): + return str(self.items.first().metadata.market) + + def marketSourceLanguage(self): + tokens = str(self.items.first().metadata.market).split('_') + if len(tokens) == 3 and tokens[0] in LANGUAGE_CODES_AND_NAMES.keys(): + return LANGUAGE_CODES_AND_NAMES[tokens[0]] + return None + + def marketSourceLanguageCode(self): + tokens = str(self.items.first().metadata.market).split('_') + if len(tokens) == 3 and tokens[0] in LANGUAGE_CODES_AND_NAMES.keys(): + return tokens[0] + return None + + def marketTargetLanguage(self): + tokens = str(self.items.first().metadata.market).split('_') + if len(tokens) == 3 and tokens[1] in LANGUAGE_CODES_AND_NAMES.keys(): + return LANGUAGE_CODES_AND_NAMES[tokens[1]] + return None + + def marketTargetLanguageCode(self): + tokens = str(self.items.first().metadata.market).split('_') + if len(tokens) == 3 and tokens[1] in LANGUAGE_CODES_AND_NAMES.keys(): + return tokens[1] + return None + + def is_trusted_user(self, user): + from Campaign.models import TrustedUser + + trusted_user = TrustedUser.objects.filter(user=user, campaign=self.campaign) + return trusted_user.exists() + + @classmethod + def get_task_for_user(cls, user): + for active_task in cls.objects.filter( + assignedTo=user, activated=True, completed=False + ).order_by('-id'): + next_item = active_task.next_item_for_user(user) + if next_item is not None: + return active_task + + return None + + @classmethod + def get_next_free_task_for_language(cls, code, campaign=None, user=None): + active_tasks = cls.objects.filter( + activated=True, + completed=False, + items__metadata__market__targetLanguageCode=code, + ) + + if campaign: + active_tasks = active_tasks.filter(campaign=campaign) + + for active_task in active_tasks.order_by('id'): + active_users = active_task.assignedTo.count() + if active_users < active_task.requiredAnnotations: + if user and not user in active_task.assignedTo.all(): + return active_task + + return None + + # It seems that assignedTo is converted to an integer count. + active_tasks = active_tasks.order_by('id').values_list( + 'id', 'requiredAnnotations', 'assignedTo' + ) + + for active_task in active_tasks: + print(active_task) + active_users = active_task[2] or 0 + if active_users < active_task[1]: + return cls.objects.get(pk=active_task[0]) + + return None + + # TODO: this needs to be removed. + for active_task in active_tasks: + market = active_task.items.first().metadata.market + if not market.targetLanguageCode == code: + continue + + active_users = active_task.assignedTo.count() + if active_users < active_task.requiredAnnotations: + return active_task + + return None + + @classmethod + def get_next_free_task_for_language_and_campaign(cls, code, campaign): + return cls.get_next_free_task_for_language(code, campaign) + + # pylint: disable=E1101 + def is_valid(self): + """ + Validates the current DA task, checking campaign and items exist. + """ + if not hasattr(self, 'campaign') or not self.campaign.is_valid(): + return False + + if not hasattr(self, 'items'): + return False + + for item in self.items: + if not item.is_valid(): + return False + + return True + + def _generate_str_name(self): + return '{0}.{1}[{2}]'.format(self.__class__.__name__, self.campaign, self.id) + + +class BasePairwiseAssessmentDocumentResult(BaseMetadata): + """ + Abstract base PairwiseAssessmentDocumentResult + """ + + score1 = models.PositiveSmallIntegerField( + verbose_name=_('Score (1)'), + help_text=_('(value in range=[1,100])'), + ) + + score2 = models.PositiveSmallIntegerField( + blank=True, + null=True, + verbose_name=_('Score (2)'), + help_text=_('(value in range=[1,100])'), + ) + + start_time = models.FloatField( + verbose_name=_('Start time'), help_text=_('(in seconds)') + ) + + end_time = models.FloatField( + verbose_name=_('End time'), help_text=_('(in seconds)') + ) + + item = models.ForeignKey( + TextSegmentWithTwoTargetsWithContext, + db_index=True, + on_delete=models.PROTECT, + related_name='%(app_label)s_%(class)s_item', + related_query_name="%(app_label)s_%(class)ss", + verbose_name=_('Item'), + ) + + class Meta: + abstract = True + ordering = ['_str_name'] + + # pylint: disable=E1136 + def _generate_str_name(self): + return '{0}.{1}={2}+{3}'.format( + self.__class__.__name__, + self.item, + self.score1, + self.score2, + ) + + def duration(self): + d = self.end_time - self.start_time + return round(d, 1) + + def item_type(self): + return self.item.itemType + + @classmethod + def get_completed_for_user(cls, user, unique_only=True): + _query = cls.objects.filter(createdBy=user, activated=False, completed=True) + if unique_only: + return _query.values_list('item__id').distinct().count() + return _query.count() + + @classmethod + def get_hit_status_for_user(cls, user): + user_data = defaultdict(int) + + for user_item in cls.objects.filter( + createdBy=user, activated=False, completed=True + ).values_list('task__id', 'item__itemType'): + if user_item[1].lower() != 'tgt': + continue + + user_data[user_item[0]] += 1 + + total_hits = len(user_data.keys()) + completed_hits = len([x for x in user_data.values() if x >= 70]) + + return (completed_hits, total_hits) + + @classmethod + def get_time_for_user(cls, user): + results = cls.objects.filter(createdBy=user, activated=False, completed=True) + + timestamps = [] + for result in results: + timestamps.append((result.start_time, result.end_time)) + + return seconds_to_timedelta(_compute_user_total_annotation_time(timestamps)) + + @classmethod + def get_system_annotations(cls): + system_scores = defaultdict(list) + + value_types = ('TGT', 'CHK') + qs = cls.objects.filter(completed=True, item__itemType__in=value_types) + + value_names = ( + 'item__target1ID', + 'score1', + 'target2ID', + 'score2', + 'createdBy', + 'item__itemID', + 'item__metadata__market__sourceLanguageCode', + 'item__metadata__market__targetLanguageCode', + ) + for result in qs.values_list(*value_names): + systemID = result[0] + score1 = result[1] + score2 = result[2] + annotatorID = result[3] + segmentID = result[4] + marketID = '{0}-{1}'.format(result[5], result[6]) + system_scores[marketID].append( + (systemID, annotatorID, segmentID, score1, score2) + ) + + return system_scores + + @classmethod + def compute_accurate_group_status(cls): + from Dashboard.models import LANGUAGE_CODES_AND_NAMES + + user_status = defaultdict(list) + qs = cls.objects.filter(completed=True) + + value_names = ('createdBy', 'item__itemType', 'task__id') + for result in qs.values_list(*value_names): + if result[1].lower() != 'tgt': + continue + + annotatorID = result[0] + taskID = result[2] + user_status[annotatorID].append(taskID) + + group_status = defaultdict(list) + for annotatorID in user_status: + user = User.objects.get(pk=annotatorID) + usergroups = ';'.join( + [ + x.name + for x in user.groups.all() + if not x.name in LANGUAGE_CODES_AND_NAMES.keys() + ] + ) + if not usergroups: + usergroups = 'NoGroupInfo' + + group_status[usergroups].extend(user_status[annotatorID]) + + group_hits = {} + for group_name in group_status: + task_ids = set(group_status[group_name]) + completed_tasks = 0 + for task_id in task_ids: + if group_status[group_name].count(task_id) >= 70: + completed_tasks += 1 + + group_hits[group_name] = (completed_tasks, len(task_ids)) + + return group_hits + + @classmethod + def dump_all_results_to_csv_file(cls, csv_file): + from Dashboard.models import LANGUAGE_CODES_AND_NAMES + + system_scores = defaultdict(list) + user_data = {} + qs = cls.objects.filter(completed=True) + + value_names = ( + 'item__targetID', + 'score1', + 'item__target2ID', + 'score2', + 'start_time', + 'end_time', + 'createdBy', + 'item__itemID', + 'item__metadata__market__sourceLanguageCode', + 'item__metadata__market__targetLanguageCode', + 'item__metadata__market__domainName', + 'item__itemType', + 'task__id', + 'task__campaign__campaignName', + 'item__documentID', + 'item__isCompleteDocument', + ) + for result in qs.values_list(*value_names): + system1ID = result[0] + score1 = result[1] + system2ID = result[2] + score2 = result[3] + start_time = result[4] + end_time = result[5] + duration = round(float(end_time) - float(start_time), 1) + annotatorID = result[6] + segmentID = result[7] + marketID = '{0}-{1}'.format(result[8], result[9]) + domainName = result[10] + itemType = result[11] + taskID = result[12] + campaignName = result[13] + documentID = result[14] + isCompleteDocument = result[15] + + if annotatorID in user_data: + username = user_data[annotatorID][0] + useremail = user_data[annotatorID][1] + usergroups = user_data[annotatorID][2] + + else: + user = User.objects.get(pk=annotatorID) + username = user.username + useremail = user.email + usergroups = ';'.join( + [ + x.name + for x in user.groups.all() + if not x.name in LANGUAGE_CODES_AND_NAMES.keys() + ] + ) + if not usergroups: + usergroups = 'NoGroupInfo' + + user_data[annotatorID] = (username, useremail, usergroups) + + system_scores[marketID + '-' + domainName].append( + ( + taskID, + segmentID, + username, + useremail, + usergroups, + system1ID, + score1, + system2ID, + score2, + start_time, + end_time, + duration, + itemType, + campaignName, + documentID, + isCompleteDocument, + ) + ) + + # TODO: this is very intransparent... and needs to be fixed! + x = system_scores + s = [ + 'taskID,segmentID,username,email,groups,system1ID,score1,system2ID,score2,startTime,endTime,durationInSeconds,itemType,campaignName,documentID,isCompleteDocument' + ] + for l in x: + for i in x[l]: + s.append(','.join([str(a) for a in i])) + + from os.path import join + from Appraise.settings import BASE_DIR + + media_file_path = join(BASE_DIR, 'media', csv_file) + with open(media_file_path, 'w') as outfile: + for c in s: + outfile.write(c) + outfile.write('\n') + + @classmethod + def get_csv(cls, srcCode, tgtCode, domain): + system_scores = defaultdict(list) + qs = cls.objects.filter(completed=True) + + value_names = ( + 'item__target1ID', + 'score1', + 'item__target2ID', + 'score2', + 'start_time', + 'end_time', + 'createdBy', + 'item__itemID', + 'item__metadata__market__sourceLanguageCode', + 'item__metadata__market__targetLanguageCode', + 'item__metadata__market__domainName', + 'item__itemType', + 'item__documentID', + 'item__isCompleteDocument', + ) + for result in qs.values_list(*value_names): + + if ( + not domain == result[10] + or not srcCode == result[8] + or not tgtCode == result[9] + ): + continue + + system1ID = result[0] + score1 = result[1] + system2ID = result[2] + score2 = result[3] + start_time = result[4] + end_time = result[5] + duration = round(float(end_time) - float(start_time), 1) + annotatorID = result[6] + segmentID = result[7] + marketID = '{0}-{1}'.format(result[8], result[9]) + domainName = result[10] + itemType = result[11] + documentID = result[12] + isCompleteDocument = result[13] + user = User.objects.get(pk=annotatorID) + username = user.username + useremail = user.email + system_scores[marketID + '-' + domainName].append( + ( + segmentID, + username, + useremail, + system1ID, + score1, + system2ID, + score2, + duration, + itemType, + documentID, + isCompleteDocument, + ) + ) + + return system_scores + + @classmethod + def write_csv(cls, srcCode, tgtCode, domain, csvFile, allData=False): + x = cls.get_csv(srcCode, tgtCode, domain) + s = [ + 'username,email,segmentID,score1,score2,durationInSeconds,itemType,documentID,isCompleteDocument' + ] + if allData: + s[0] = 'systemID,' + s[0] + + for l in x: + for i in x[l]: + e = i[1:] if not allData else i + s.append(','.join([str(a) for a in e])) + + from os.path import join + from Appraise.settings import BASE_DIR + + media_file_path = join(BASE_DIR, 'media', csvFile) + with open(media_file_path, 'w') as outfile: + for c in s: + outfile.write(c) + outfile.write('\n') + + @classmethod + def get_system_scores(cls, campaign_id): + system_scores = defaultdict(list) + + value_types = ('TGT', 'CHK') + qs = cls.objects.filter(completed=True, item__itemType__in=value_types) + + # If campaign ID is given, only return results for this campaign. + if campaign_id: + qs = qs.filter(task__campaign__id=campaign_id) + + value_names = ( + 'item__target1ID', + 'item__target2ID', + 'item__itemID', + 'score1', + 'score2', + 'item__documentID', + 'item__isCompleteDocument', + ) + for result in qs.values_list(*value_names): + # if not result.completed or result.item.itemType not in ('TGT', 'CHK'): + # continue + + system1_ids = result[0].split('+') # result.item.targetID.split('+') + system2_ids = result[1].split('+') # result.item.targetID.split('+') + segment_id = result[1] + segment_id = result[2] + score1 = result[3] # .score + score2 = result[4] # .score + documentID = result[5] + isCompleteDocument = result[6] + + for system_id in system1_ids: + system_scores[system_id].append( + (segment_id, score1, documentID, isCompleteDocument) + ) + for system_id in system2_ids: + system_scores[system_id].append( + (segment_id, score2, documentID, isCompleteDocument) + ) + + return system_scores + + @classmethod + def get_system_data( + cls, + campaign_id, + extended_csv=False, + expand_multi_sys=True, + include_inactive=False, + add_batch_info=False, + ): + system_data = [] + + item_types = ('TGT', 'CHK') + if extended_csv: + item_types += ('BAD', 'REF') + + qs = cls.objects.filter(completed=True, item__itemType__in=item_types) + + # If campaign ID is given, only return results for this campaign. + if campaign_id: + qs = qs.filter(task__campaign__id=campaign_id) + + if not include_inactive: + qs = qs.filter(createdBy__is_active=True) + + attributes_to_extract = ( + 'createdBy__username', # User ID + 'item__target1ID', # System ID + 'item__target2ID', # System ID + 'item__itemID', # Segment ID + 'item__itemType', # Item type + 'item__metadata__market__sourceLanguageCode', # Source language + 'item__metadata__market__targetLanguageCode', # Target language + 'score1', # Score + 'score2', # Score + 'item__documentID', # Document ID + 'item__isCompleteDocument', # isCompleteDocument + ) + + if extended_csv: + attributes_to_extract = attributes_to_extract + ( + 'start_time', # Start time + 'end_time', # End time + ) + + if add_batch_info: + attributes_to_extract = attributes_to_extract + ( + 'task__batchNo', # Batch number + 'item_id', # Real item ID + ) + + for _result in qs.values_list(*attributes_to_extract): + results = [ + ( + _result[0], + _result[1], + _result[3], + _result[4], + _result[5], + _result[6], + _result[7], + _result[9], + _result[10], + *_result[11:], + ), + ( + _result[0], + _result[2], + _result[3], + _result[4], + _result[5], + _result[6], + _result[8], + _result[9], + _result[10], + *_result[11:], + ), + ] + + if add_batch_info: # Add index of the target segment + results[0] = (*results[0], 0) + results[1] = (*results[1], 1) + + for result in results: + if ( + result[1] is None + ): # Ignore if this was an item with only one target segment + continue + + user_id = result[0] + sys_ids = result[1] + + if expand_multi_sys: + system_ids = sys_ids.split('+') + + for system_id in system_ids: + data = (user_id,) + (system_id,) + result[2:] + system_data.append(data) + + else: + system_id = sys_ids + data = (user_id,) + (system_id,) + result[2:] + system_data.append(data) + + return system_data + + @classmethod + def get_system_status(cls, campaign_id=None, sort_index=3): + system_scores = cls.get_system_scores(campaign_id=None) + non_english_codes = ( + 'cs', + 'de', + 'fi', + 'lv', + 'tr', + 'tr', + 'ru', + 'zh', + ) + + codes = ['en-{0}'.format(x) for x in non_english_codes] + [ + '{0}-en'.format(x) for x in non_english_codes + ] + + data = {} + for code in codes: + data[code] = {} + for key in [x for x in system_scores if code in x]: + data[code][key] = system_scores[key] + + output_data = {} + for code in codes: + total_annotations = sum([len(x) for x in data[code].values()]) + output_local = [] + for key in data[code]: + x = data[code][key] + z = sum(x) / total_annotations + output_local.append((key, len(x), sum(x) / len(x), z)) + + output_data[code] = list( + sorted(output_local, key=lambda x: x[sort_index], reverse=True) + ) + + return output_data + + @classmethod + def completed_results_for_user_and_campaign(cls, user, campaign): + results = cls.objects.filter( + activated=False, + completed=True, + createdBy=user, + task__campaign=campaign, + ).values_list('item_id', flat=True) + + return len(set(results)) + + @AnnotationTaskRegistry.register -class PairwiseAssessmentDocumentTask(BaseMetadata): +class PairwiseAssessmentDocumentTask(BasePairwiseAssessmentDocumentTask): """ Models a pairwise assessment document evaluation task. - Note: this task is, similarily to other models, a shameless copy of - DirectAssessmentContextTask, with one additional method for retrieving all - items belonging to the same document in the task called - `next_document_for_user`, and a helper method `get_results_for_each_item`. - The underlying model is the same as for - DirectAssessmentContextTask. - """ + Note: this task is, similarily to other models, a shameless copy of + DirectAssessmentContextTask, with one additional method for retrieving all + items belonging to the same document in the task called + `next_document_for_user`, and a helper method `get_results_for_each_item`. + The underlying model is the same as for + DirectAssessmentContextTask. + """ + + def completed_items_for_user(self, user): + results = PairwiseAssessmentDocumentResult.objects.filter( + task=self, activated=False, completed=True, createdBy=user + ).values_list('item_id', flat=True) + + return len(set(results)) + + def next_item_for_user(self, user, return_completed_items=False): + trusted_user = self.is_trusted_user(user) + + next_item = None + completed_items = 0 + for item in self.items.all().order_by('id'): + result = PairwiseAssessmentDocumentResult.objects.filter( + item=item, activated=False, completed=True, createdBy=user + ) + + if not result.exists(): + print( + 'Identified next item: {}/{} (itemID={}) for trusted={}'.format( + item.id, item.itemType, item.itemID, trusted_user + ) + ) + if not trusted_user or item.itemType == 'TGT': + next_item = item + break + + completed_items += 1 + + if not next_item: + LOGGER.info('No next item found for task {0}'.format(self.id)) + annotations = PairwiseAssessmentDocumentResult.objects.filter( + task=self, activated=False, completed=True + ).values_list('item_id', flat=True) + uniqueAnnotations = len(set(annotations)) + + required_user_results = 100 + if trusted_user: + required_user_results = 70 + + _total_required = self.requiredAnnotations * required_user_results + LOGGER.info( + 'Unique annotations={0}/{1}'.format(uniqueAnnotations, _total_required) + ) + if uniqueAnnotations >= _total_required: + LOGGER.info('Completing task {0}'.format(self.id)) + self.complete() + self.save() + + # Not sure why I would complete the batch here? + # self.batchData.complete() + # self.batchData.save() + + if return_completed_items: + return (next_item, completed_items) + + return next_item + + def next_document_for_user(self, user, return_statistics=True): + """Returns the next item and all items from its document.""" + # Find the next not annotated item + ( + next_item, + completed_items, + ) = self.next_item_for_user(user, return_completed_items=True) + + if not next_item: + if not return_statistics: + return (next_item, [], []) + return (next_item, completed_items, 0, 0, [], [], 0) + + # Retrieve all items from the document which next_item belongs to + _items = self.items.filter( + documentID=next_item.documentID, + ).order_by('id') + + block_items = [] + current_block = False + for item in _items: + block_items.append(item) + if item.id == next_item.id: + current_block = True + if item.isCompleteDocument: + if current_block: + break + block_items.clear() + + # Get results for completed items in this block + block_results = self.get_results_for_each_item(block_items, user) + + if not return_statistics: + return (next_item, block_items, block_results) + + # Collect statistics + completed_items_in_block = len( + [res for res in block_results if res is not None] + ) + completed_blocks = PairwiseAssessmentDocumentResult.objects.filter( + task=self, + item__isCompleteDocument=True, + completed=True, + createdBy=user, + ).count() + total_blocks = self.items.filter(isCompleteDocument=True).count() + + print( + 'Completed {}/{} documents, {}/{} items in the current document, completed {} items in total'.format( + completed_blocks, + total_blocks, + completed_items_in_block, + len(block_items), + completed_items, + ) + ) + + return ( + next_item, # the first unannotated item for the user + completed_items, # the number of completed items in the task + completed_blocks, # the number of completed documents in the task + completed_items_in_block, # the number of completed items in the current document + block_items, # all items from the current document + block_results, # all score results from the current document + total_blocks, # the total number of documents in the task + ) + + def get_results_for_each_item(self, block_items, user): + """Returns the latest result object for each item or none.""" + # TODO: optimize, this possibly makes too many individual queries + block_results = [] + + for item in block_items: + result = ( + PairwiseAssessmentDocumentResult.objects.filter( + item__id=item.id, + completed=True, + createdBy=user, # TODO: is passing user as an argument needed? + task=self, + ) + .order_by('item__id', 'dateModified') + .first() + ) + block_results.append(result) + + # Sanity checks for items and results + if len(block_items) != len(block_results): + print('Warning: incorrect number of retrieved results!') + for item, result in zip(block_items, block_results): + # print(f' >> item={item} result={result}') + if result and item.id != result.item.id: + print('Warning: incorrect order of items and results!') + + return block_results + + @classmethod + def import_from_json(cls, campaign, batch_user, batch_data, max_count): + """ + Creates new PairwiseAssessmentDocumentTask instances based on JSON input. + """ + batch_meta = batch_data.metadata + batch_name = batch_data.dataFile.name + batch_file = batch_data.dataFile + batch_json = None + + if batch_name.endswith('.zip'): + if not is_zipfile(batch_file): + _msg = 'Batch {0} not a valid ZIP archive'.format(batch_name) + LOGGER.warn(_msg) + return + + batch_zip = ZipFile(batch_file) + batch_json_files = [x for x in batch_zip.namelist() if x.endswith('.json')] + # TODO: implement proper support for multiple json files in archive. + for batch_json_file in batch_json_files: + batch_content = batch_zip.read(batch_json_file).decode('utf-8') + # Python 3.9 removed 'encoding' from json.loads + if sys.version_info >= (3, 9, 0): + batch_json = loads(batch_content) + else: + batch_json = loads(batch_content, encoding='utf-8') + + else: + batch_json = loads(str(batch_file.read(), encoding='utf-8')) + + from datetime import datetime + + t1 = datetime.now() + + current_count = 0 + max_length_id = 0 + max_length_text = 0 + for batch_task in batch_json: + if max_count > 0 and current_count >= max_count: + _msg = 'Stopping after max_count={0} iterations'.format(max_count) + LOGGER.info(_msg) + + t2 = datetime.now() + print(t2 - t1) + return + + print('Loading batch:', batch_name, batch_task['task']['batchNo']) - campaign = models.ForeignKey( - 'Campaign.Campaign', - db_index=True, - on_delete=models.PROTECT, - related_name='%(app_label)s_%(class)s_campaign', - related_query_name="%(app_label)s_%(class)ss", - verbose_name=_('Campaign'), - ) + doc_items = 0 + new_items = [] + count_items = 0 + for item in batch_task['items']: + count_items += 1 - items = models.ManyToManyField( - TextSegmentWithTwoTargetsWithContext, - related_name='%(app_label)s_%(class)s_items', - related_query_name="%(app_label)s_%(class)ss", - verbose_name=_('Items'), - ) + current_length_id = len(item['segmentID']) + current_length_text = len(item['segmentText']) - requiredAnnotations = models.PositiveSmallIntegerField( - verbose_name=_('Required annotations'), - help_text=_( - f( - '(value in range=[1,{value}])', - value=MAX_REQUIREDANNOTATIONS_VALUE, + if current_length_id > max_length_id: + print('New max length ID:', current_length_id, item['segmentID']) + max_length_id = current_length_id + + if current_length_text > max_length_text: + print( + 'New max length text:', + current_length_text, + item['segmentText'].encode('utf-8'), + ) + max_length_text = current_length_text + + item_targets = item['targets'] + # TODO: check if 'targets' is empty or has more elements than 2 + item_tgt1_idx = item_targets[0]['targetID'] + item_tgt1_txt = item_targets[0]['targetText'] + item_tgt1_ctx = item_targets[0].get('targetContextLeft', '') + item_tgt2_idx = None + item_tgt2_txt = None + item_tgt2_ctx = None + if len(item_targets) > 1: + item_tgt2_idx = item_targets[1]['targetID'] + item_tgt2_txt = item_targets[1]['targetText'] + item_tgt2_ctx = item_targets[1].get('targetContextLeft', '') + + new_item = TextSegmentWithTwoTargetsWithContext( + segmentID=item['segmentID'], + segmentText=item['segmentText'], + contextLeft=item.get('segmentContextLeft', ''), + target1ID=item_tgt1_idx, + target1Text=item_tgt1_txt, + target1ContextLeft=item_tgt1_ctx, + target2ID=item_tgt2_idx, + target2Text=item_tgt2_txt, + target2ContextLeft=item_tgt2_ctx, + createdBy=batch_user, + itemID=item['itemID'], + itemType=item['itemType'], + documentID=item['documentID'], + isCompleteDocument=item['isCompleteDocument'], + ) + new_items.append(new_item) + if item['isCompleteDocument']: + doc_items += 1 + + if (len(new_items) - doc_items) != 100: + _msg = 'Expected 100 items for task but found {0}'.format( + len(new_items) - doc_items + ) + LOGGER.warn(_msg) + continue + + current_count += 1 + + for new_item in new_items: + new_item.metadata = batch_meta + new_item.save() + # batch_meta.textpairwithcontext_set.add(*new_items, bulk=False) + # batch_meta.save() + + new_task = PairwiseAssessmentDocumentTask( + campaign=campaign, + requiredAnnotations=batch_task['task']['requiredAnnotations'], + batchNo=batch_task['task']['batchNo'], + batchData=batch_data, + createdBy=batch_user, ) - ), - ) + new_task.save() - assignedTo = models.ManyToManyField( - User, - blank=True, - db_index=True, - related_name='%(app_label)s_%(class)s_assignedTo', - related_query_name="%(app_label)s_%(class)ss", - verbose_name=_('Assigned to'), - help_text=_('(users working on this task)'), - ) + # for new_item in new_items: + # new_task.items.add(new_item) + new_task.items.add(*new_items) + new_task.save() - batchNo = models.PositiveIntegerField( - verbose_name=_('Batch number'), help_text=_('(1-based)') - ) + _msg = 'Success processing batch {0}, task {1}'.format( + str(batch_data), batch_task['task']['batchNo'] + ) + LOGGER.info(_msg) - batchData = models.ForeignKey( - 'Campaign.CampaignData', - on_delete=models.PROTECT, + _msg = 'Max length ID={0}, text={1}'.format(max_length_id, max_length_text) + LOGGER.info(_msg) + + t2 = datetime.now() + print(t2 - t1) + + +class PairwiseAssessmentDocumentResult(BasePairwiseAssessmentDocumentResult): + """ + Models a pairwise assessment document evaluation result. + """ + + task = models.ForeignKey( + PairwiseAssessmentDocumentTask, blank=True, db_index=True, null=True, - related_name='%(app_label)s_%(class)s_batchData', + on_delete=models.PROTECT, + related_name='%(app_label)s_%(class)s_task', related_query_name="%(app_label)s_%(class)ss", - verbose_name=_('Batch data'), + verbose_name=_('Task'), ) - def dataName(self): - return str(self.batchData) - - def marketName(self): - return str(self.items.first().metadata.market) - - def marketSourceLanguage(self): - tokens = str(self.items.first().metadata.market).split('_') - if len(tokens) == 3 and tokens[0] in LANGUAGE_CODES_AND_NAMES.keys(): - return LANGUAGE_CODES_AND_NAMES[tokens[0]] - return None - - def marketSourceLanguageCode(self): - tokens = str(self.items.first().metadata.market).split('_') - if len(tokens) == 3 and tokens[0] in LANGUAGE_CODES_AND_NAMES.keys(): - return tokens[0] - return None - - def marketTargetLanguage(self): - tokens = str(self.items.first().metadata.market).split('_') - if len(tokens) == 3 and tokens[1] in LANGUAGE_CODES_AND_NAMES.keys(): - return LANGUAGE_CODES_AND_NAMES[tokens[1]] - return None - - def marketTargetLanguageCode(self): - tokens = str(self.items.first().metadata.market).split('_') - if len(tokens) == 3 and tokens[1] in LANGUAGE_CODES_AND_NAMES.keys(): - return tokens[1] - return None + +@AnnotationTaskRegistry.register +class PairwiseAssessmentDocumentESATask(BasePairwiseAssessmentDocumentTask): + """ + Models a pairwise assessment document evaluation with error span annotations task. + """ def completed_items_for_user(self, user): - results = PairwiseAssessmentDocumentResult.objects.filter( + results = PairwiseAssessmentDocumentESAResult.objects.filter( task=self, activated=False, completed=True, createdBy=user ).values_list('item_id', flat=True) return len(set(results)) - def is_trusted_user(self, user): - from Campaign.models import TrustedUser - - trusted_user = TrustedUser.objects.filter(user=user, campaign=self.campaign) - return trusted_user.exists() - def next_item_for_user(self, user, return_completed_items=False): trusted_user = self.is_trusted_user(user) next_item = None completed_items = 0 for item in self.items.all().order_by('id'): - result = PairwiseAssessmentDocumentResult.objects.filter( + result = PairwiseAssessmentDocumentESAResult.objects.filter( item=item, activated=False, completed=True, createdBy=user ) @@ -188,7 +1148,7 @@ def next_item_for_user(self, user, return_completed_items=False): if not next_item: LOGGER.info('No next item found for task {0}'.format(self.id)) - annotations = PairwiseAssessmentDocumentResult.objects.filter( + annotations = PairwiseAssessmentDocumentESAResult.objects.filter( task=self, activated=False, completed=True ).values_list('item_id', flat=True) uniqueAnnotations = len(set(annotations)) @@ -254,7 +1214,7 @@ def next_document_for_user(self, user, return_statistics=True): completed_items_in_block = len( [res for res in block_results if res is not None] ) - completed_blocks = PairwiseAssessmentDocumentResult.objects.filter( + completed_blocks = PairwiseAssessmentDocumentESAResult.objects.filter( task=self, item__isCompleteDocument=True, completed=True, @@ -289,90 +1249,31 @@ def get_results_for_each_item(self, block_items, user): for item in block_items: result = ( - PairwiseAssessmentDocumentResult.objects.filter( + PairwiseAssessmentDocumentESAResult.objects.filter( item__id=item.id, completed=True, createdBy=user, # TODO: is passing user as an argument needed? - task=self, - ) - .order_by('item__id', 'dateModified') - .first() - ) - block_results.append(result) - - # Sanity checks for items and results - if len(block_items) != len(block_results): - print('Warning: incorrect number of retrieved results!') - for item, result in zip(block_items, block_results): - # print(f' >> item={item} result={result}') - if result and item.id != result.item.id: - print('Warning: incorrect order of items and results!') - - return block_results - - @classmethod - def get_task_for_user(cls, user): - for active_task in cls.objects.filter( - assignedTo=user, activated=True, completed=False - ).order_by('-id'): - next_item = active_task.next_item_for_user(user) - if next_item is not None: - return active_task - - return None - - @classmethod - def get_next_free_task_for_language(cls, code, campaign=None, user=None): - active_tasks = cls.objects.filter( - activated=True, - completed=False, - items__metadata__market__targetLanguageCode=code, - ) - - if campaign: - active_tasks = active_tasks.filter(campaign=campaign) - - for active_task in active_tasks.order_by('id'): - active_users = active_task.assignedTo.count() - if active_users < active_task.requiredAnnotations: - if user and not user in active_task.assignedTo.all(): - return active_task - - return None - - # It seems that assignedTo is converted to an integer count. - active_tasks = active_tasks.order_by('id').values_list( - 'id', 'requiredAnnotations', 'assignedTo' - ) - - for active_task in active_tasks: - print(active_task) - active_users = active_task[2] or 0 - if active_users < active_task[1]: - return cls.objects.get(pk=active_task[0]) - - return None - - # TODO: this needs to be removed. - for active_task in active_tasks: - market = active_task.items.first().metadata.market - if not market.targetLanguageCode == code: - continue - - active_users = active_task.assignedTo.count() - if active_users < active_task.requiredAnnotations: - return active_task + task=self, + ) + .order_by('item__id', 'dateModified') + .first() + ) + block_results.append(result) - return None + # Sanity checks for items and results + if len(block_items) != len(block_results): + print('Warning: incorrect number of retrieved results!') + for item, result in zip(block_items, block_results): + # print(f' >> item={item} result={result}') + if result and item.id != result.item.id: + print('Warning: incorrect order of items and results!') - @classmethod - def get_next_free_task_for_language_and_campaign(cls, code, campaign): - return cls.get_next_free_task_for_language(code, campaign) + return block_results @classmethod def import_from_json(cls, campaign, batch_user, batch_data, max_count): """ - Creates new PairwiseAssessmentDocumentTask instances based on JSON input. + Creates new PairwiseAssessmentDocumentESATask instances based on JSON input. """ batch_meta = batch_data.metadata batch_name = batch_data.dataFile.name @@ -466,6 +1367,8 @@ def import_from_json(cls, campaign, batch_user, batch_data, max_count): itemType=item['itemType'], documentID=item['documentID'], isCompleteDocument=item['isCompleteDocument'], + mqm1=dumps(item.get('mqm1', [])), + mqm2=dumps(item.get('mqm2', [])), ) new_items.append(new_item) if item['isCompleteDocument']: @@ -486,7 +1389,7 @@ def import_from_json(cls, campaign, batch_user, batch_data, max_count): # batch_meta.textpairwithcontext_set.add(*new_items, bulk=False) # batch_meta.save() - new_task = PairwiseAssessmentDocumentTask( + new_task = PairwiseAssessmentDocumentESATask( campaign=campaign, requiredAnnotations=batch_task['task']['requiredAnnotations'], batchNo=batch_task['task']['batchNo'], @@ -511,63 +1414,22 @@ def import_from_json(cls, campaign, batch_user, batch_data, max_count): t2 = datetime.now() print(t2 - t1) - # pylint: disable=E1101 - def is_valid(self): - """ - Validates the current DA task, checking campaign and items exist. - """ - if not hasattr(self, 'campaign') or not self.campaign.is_valid(): - return False - - if not hasattr(self, 'items'): - return False - - for item in self.items: - if not item.is_valid(): - return False - - return True - - def _generate_str_name(self): - return '{0}.{1}[{2}]'.format(self.__class__.__name__, self.campaign, self.id) - -class PairwiseAssessmentDocumentResult(BaseMetadata): +class PairwiseAssessmentDocumentESAResult(BasePairwiseAssessmentDocumentResult): """ - Models a direct assessment document evaluation result. + Models a pairwise assessment document evaluation with error span annotations result. """ - score1 = models.PositiveSmallIntegerField( - verbose_name=_('Score (1)'), - help_text=_('(value in range=[1,100])'), - ) - - score2 = models.PositiveSmallIntegerField( - blank=True, - null=True, - verbose_name=_('Score (2)'), - help_text=_('(value in range=[1,100])'), - ) - - start_time = models.FloatField( - verbose_name=_('Start time'), help_text=_('(in seconds)') - ) - - end_time = models.FloatField( - verbose_name=_('End time'), help_text=_('(in seconds)') + mqm1 = models.TextField( + verbose_name=_('MQM (1)'), help_text=_('MQM JSON string'), default="[]" ) - item = models.ForeignKey( - TextSegmentWithTwoTargetsWithContext, - db_index=True, - on_delete=models.PROTECT, - related_name='%(app_label)s_%(class)s_item', - related_query_name="%(app_label)s_%(class)ss", - verbose_name=_('Item'), + mqm2 = models.TextField( + verbose_name=_('MQM (2)'), help_text=_('MQM JSON string'), default="[]" ) task = models.ForeignKey( - PairwiseAssessmentDocumentTask, + PairwiseAssessmentDocumentESATask, blank=True, db_index=True, null=True, @@ -577,56 +1439,6 @@ class PairwiseAssessmentDocumentResult(BaseMetadata): verbose_name=_('Task'), ) - # pylint: disable=E1136 - def _generate_str_name(self): - return '{0}.{1}={2}+{3}'.format( - self.__class__.__name__, - self.item, - self.score1, - self.score2, - ) - - def duration(self): - d = self.end_time - self.start_time - return round(d, 1) - - def item_type(self): - return self.item.itemType - - @classmethod - def get_completed_for_user(cls, user, unique_only=True): - _query = cls.objects.filter(createdBy=user, activated=False, completed=True) - if unique_only: - return _query.values_list('item__id').distinct().count() - return _query.count() - - @classmethod - def get_hit_status_for_user(cls, user): - user_data = defaultdict(int) - - for user_item in cls.objects.filter( - createdBy=user, activated=False, completed=True - ).values_list('task__id', 'item__itemType'): - if user_item[1].lower() != 'tgt': - continue - - user_data[user_item[0]] += 1 - - total_hits = len(user_data.keys()) - completed_hits = len([x for x in user_data.values() if x >= 70]) - - return (completed_hits, total_hits) - - @classmethod - def get_time_for_user(cls, user): - results = cls.objects.filter(createdBy=user, activated=False, completed=True) - - timestamps = [] - for result in results: - timestamps.append((result.start_time, result.end_time)) - - return seconds_to_timedelta(_compute_user_total_annotation_time(timestamps)) - @classmethod def get_system_annotations(cls): system_scores = defaultdict(list) @@ -643,6 +1455,8 @@ def get_system_annotations(cls): 'item__itemID', 'item__metadata__market__sourceLanguageCode', 'item__metadata__market__targetLanguageCode', + 'mqm1', + 'mqm2', ) for result in qs.values_list(*value_names): systemID = result[0] @@ -651,55 +1465,14 @@ def get_system_annotations(cls): annotatorID = result[3] segmentID = result[4] marketID = '{0}-{1}'.format(result[5], result[6]) + mqm1 = result[7] + mqm2 = result[8] system_scores[marketID].append( - (systemID, annotatorID, segmentID, score1, score2) + (systemID, annotatorID, segmentID, score1, score2, mqm1, mqm2) ) return system_scores - @classmethod - def compute_accurate_group_status(cls): - from Dashboard.models import LANGUAGE_CODES_AND_NAMES - - user_status = defaultdict(list) - qs = cls.objects.filter(completed=True) - - value_names = ('createdBy', 'item__itemType', 'task__id') - for result in qs.values_list(*value_names): - if result[1].lower() != 'tgt': - continue - - annotatorID = result[0] - taskID = result[2] - user_status[annotatorID].append(taskID) - - group_status = defaultdict(list) - for annotatorID in user_status: - user = User.objects.get(pk=annotatorID) - usergroups = ';'.join( - [ - x.name - for x in user.groups.all() - if not x.name in LANGUAGE_CODES_AND_NAMES.keys() - ] - ) - if not usergroups: - usergroups = 'NoGroupInfo' - - group_status[usergroups].extend(user_status[annotatorID]) - - group_hits = {} - for group_name in group_status: - task_ids = set(group_status[group_name]) - completed_tasks = 0 - for task_id in task_ids: - if group_status[group_name].count(task_id) >= 70: - completed_tasks += 1 - - group_hits[group_name] = (completed_tasks, len(task_ids)) - - return group_hits - @classmethod def dump_all_results_to_csv_file(cls, csv_file): from Dashboard.models import LANGUAGE_CODES_AND_NAMES @@ -725,6 +1498,8 @@ def dump_all_results_to_csv_file(cls, csv_file): 'task__campaign__campaignName', 'item__documentID', 'item__isCompleteDocument', + 'mqm1', + 'mqm2', ) for result in qs.values_list(*value_names): system1ID = result[0] @@ -743,6 +1518,8 @@ def dump_all_results_to_csv_file(cls, csv_file): campaignName = result[13] documentID = result[14] isCompleteDocument = result[15] + mqm1 = result[16] + mqm2 = result[17] if annotatorID in user_data: username = user_data[annotatorID][0] @@ -783,13 +1560,15 @@ def dump_all_results_to_csv_file(cls, csv_file): campaignName, documentID, isCompleteDocument, + mqm1, + mqm2, ) ) # TODO: this is very intransparent... and needs to be fixed! x = system_scores s = [ - 'taskID,segmentID,username,email,groups,system1ID,score1,system2ID,score2,startTime,endTime,durationInSeconds,itemType,campaignName,documentID,isCompleteDocument' + 'taskID,segmentID,username,email,groups,system1ID,score1,system2ID,score2,startTime,endTime,durationInSeconds,itemType,campaignName,documentID,isCompleteDocument,mqm1,mqm2' ] for l in x: for i in x[l]: @@ -824,6 +1603,8 @@ def get_csv(cls, srcCode, tgtCode, domain): 'item__itemType', 'item__documentID', 'item__isCompleteDocument', + 'mqm1', + 'mqm2', ) for result in qs.values_list(*value_names): @@ -848,6 +1629,8 @@ def get_csv(cls, srcCode, tgtCode, domain): itemType = result[11] documentID = result[12] isCompleteDocument = result[13] + mqm1 = result[14] + mqm2 = result[15] user = User.objects.get(pk=annotatorID) username = user.username useremail = user.email @@ -864,6 +1647,8 @@ def get_csv(cls, srcCode, tgtCode, domain): itemType, documentID, isCompleteDocument, + mqm1, + mqm2, ) ) @@ -873,7 +1658,7 @@ def get_csv(cls, srcCode, tgtCode, domain): def write_csv(cls, srcCode, tgtCode, domain, csvFile, allData=False): x = cls.get_csv(srcCode, tgtCode, domain) s = [ - 'username,email,segmentID,score1,score2,durationInSeconds,itemType,documentID,isCompleteDocument' + 'username,email,segmentID,score1,score2,durationInSeconds,itemType,documentID,isCompleteDocument,mqm1,mqm2' ] if allData: s[0] = 'systemID,' + s[0] @@ -892,50 +1677,6 @@ def write_csv(cls, srcCode, tgtCode, domain, csvFile, allData=False): outfile.write(c) outfile.write('\n') - @classmethod - def get_system_scores(cls, campaign_id): - system_scores = defaultdict(list) - - value_types = ('TGT', 'CHK') - qs = cls.objects.filter(completed=True, item__itemType__in=value_types) - - # If campaign ID is given, only return results for this campaign. - if campaign_id: - qs = qs.filter(task__campaign__id=campaign_id) - - value_names = ( - 'item__target1ID', - 'item__target2ID', - 'item__itemID', - 'score1', - 'score2', - 'item__documentID', - 'item__isCompleteDocument', - ) - for result in qs.values_list(*value_names): - # if not result.completed or result.item.itemType not in ('TGT', 'CHK'): - # continue - - system1_ids = result[0].split('+') # result.item.targetID.split('+') - system2_ids = result[1].split('+') # result.item.targetID.split('+') - segment_id = result[1] - segment_id = result[2] - score1 = result[3] # .score - score2 = result[4] # .score - documentID = result[5] - isCompleteDocument = result[6] - - for system_id in system1_ids: - system_scores[system_id].append( - (segment_id, score1, documentID, isCompleteDocument) - ) - for system_id in system2_ids: - system_scores[system_id].append( - (segment_id, score2, documentID, isCompleteDocument) - ) - - return system_scores - @classmethod def get_system_data( cls, @@ -972,6 +1713,8 @@ def get_system_data( 'score2', # Score 'item__documentID', # Document ID 'item__isCompleteDocument', # isCompleteDocument + 'mqm1', # MQM + 'mqm2', # MQM ) if extended_csv: @@ -998,7 +1741,8 @@ def get_system_data( _result[7], _result[9], _result[10], - *_result[11:], + _result[11], + *_result[13:], ), ( _result[0], @@ -1010,7 +1754,8 @@ def get_system_data( _result[8], _result[9], _result[10], - *_result[11:], + _result[12], + *_result[13:], ), ] @@ -1041,52 +1786,4 @@ def get_system_data( return system_data - @classmethod - def get_system_status(cls, campaign_id=None, sort_index=3): - system_scores = cls.get_system_scores(campaign_id=None) - non_english_codes = ( - 'cs', - 'de', - 'fi', - 'lv', - 'tr', - 'tr', - 'ru', - 'zh', - ) - - codes = ['en-{0}'.format(x) for x in non_english_codes] + [ - '{0}-en'.format(x) for x in non_english_codes - ] - - data = {} - for code in codes: - data[code] = {} - for key in [x for x in system_scores if code in x]: - data[code][key] = system_scores[key] - - output_data = {} - for code in codes: - total_annotations = sum([len(x) for x in data[code].values()]) - output_local = [] - for key in data[code]: - x = data[code][key] - z = sum(x) / total_annotations - output_local.append((key, len(x), sum(x) / len(x), z)) - - output_data[code] = list( - sorted(output_local, key=lambda x: x[sort_index], reverse=True) - ) - - return output_data - - @classmethod - def completed_results_for_user_and_campaign(cls, user, campaign): - results = cls.objects.filter( - activated=False, - completed=True, - createdBy=user, - task__campaign=campaign, - ).values_list('item_id', flat=True) - return len(set(results)) diff --git a/EvalData/models/task_agenda.py b/EvalData/models/task_agenda.py index a452cff8..686616e4 100644 --- a/EvalData/models/task_agenda.py +++ b/EvalData/models/task_agenda.py @@ -30,6 +30,7 @@ from EvalData.models.pairwise_assessment import PairwiseAssessmentResult from EvalData.models.pairwise_assessment_document import ( PairwiseAssessmentDocumentResult, + PairwiseAssessmentDocumentESAResult, ) # TODO: Unclear if these are needed? @@ -153,6 +154,7 @@ def reset_taskagenda(self): 'MultiModalAssessmentTask': MultiModalAssessmentResult, 'PairwiseAssessmentDocumentTask': PairwiseAssessmentDocumentResult, 'PairwiseAssessmentTask': PairwiseAssessmentResult, + 'PairwiseAssessmentDocumentESATask': PairwiseAssessmentDocumentESAResult, } result_class = type_to_result_class_mapping.get( diff --git a/EvalView/templates/EvalView/pairwise-assessment-document-esa.html b/EvalView/templates/EvalView/pairwise-assessment-document-esa.html new file mode 100644 index 00000000..54123cf3 --- /dev/null +++ b/EvalView/templates/EvalView/pairwise-assessment-document-esa.html @@ -0,0 +1,841 @@ +{% extends "Dashboard/base.html" %} +{% load static %} + +{% block head %} + + + + + + + + +{% endblock %} + +{% block content %} + +
+ + + + + + +
+ + {{completed_blocks}}/{{total_blocks}} documents, + {{num_items}} + segment(s) in document + + + {{campaign}} #{{datask_id}}:Document #{{document_id}}-{{item_id}} + + {% if source_language %}{{source_language}} → {% endif %}{{target_language}} +
+
+ +
+
+
+

Below you see two translated texts in {{ target_language }}: {{ candidate1_label }} and {{ candidate2_label }}. + Please read and compare both translations and decide which one is preferrable.

+ {% comment %}

You can click and highlight each paragraph to independently mark your preferred translation to guide you in the final decision later.

{% endcomment %} +
    +
  • Higlighting errors: +
      +
    • + Highlight the text fragment where you have identified a translation error (drag or click start & end). +
    • +
    • Click repeatedly on the highlighted fragment to increase its severity level or to remove the selection.
    • +
    • Minor Severity: + Style/grammar/lexical choice could be better/more natural. + +
    • +
    • Major Severity: + Seriously changed meaning, difficult to read, decreases usability. + +
    • + +
    • The highlights do not have to have character-level precision. It's sufficient if you highlight the word or rough area where the error appears.
    • +
    • Each error should have a separate highlight.
    • +
    +
  • +
+
+
+
+
+ + {% if not monolingual %} + + {% endif %} + + +
+
+
+ +{% if guidelines_popup %} + {% include 'EvalView/_guidelines_popup.html' %} +{% endif %} + +
+
+ {% if not monolingual %} +
+

{{ reference_label }}

+
+ {% endif %} + +
+

{{ candidate1_label }}

+
+
+

{{ candidate2_label }}

+
+
+
+ +{% for item,scores in items %} + +
+ +
+ {% csrf_token %} + + + + + + + + + + + + + {% if not item.isCompleteDocument %} + +
+
+ {% if not monolingual %} +
+ {{ scores.segment_text|safe }} +
+ {% endif %} + +
+
+ {{scores.candidate1_text|safe}} +
+
+
+ {{scores.candidate2_text|safe}} +
+
+
+ + {% else %} + +
+
+
+

Which translation do you prefer?

+ +
+

+ + + +

+
+ + + +
+

Submitting your answer(s). You will be redirected to the next document in few seconds...

+
+
+
+
+
+ + {% endif %} +
+
+ +{% endfor %} + +{% endblock %} diff --git a/EvalView/views.py b/EvalView/views.py index 60fcc886..f6317391 100644 --- a/EvalView/views.py +++ b/EvalView/views.py @@ -30,6 +30,8 @@ from EvalData.models import MultiModalAssessmentTask from EvalData.models import PairwiseAssessmentDocumentResult from EvalData.models import PairwiseAssessmentDocumentTask +from EvalData.models import PairwiseAssessmentDocumentESAResult +from EvalData.models import PairwiseAssessmentDocumentESATask from EvalData.models import PairwiseAssessmentResult from EvalData.models import PairwiseAssessmentTask from EvalData.models import TaskAgenda @@ -2398,3 +2400,480 @@ def pairwise_assessment_document(request, code=None, campaign_name=None): if new_ui: template = 'EvalView/pairwise-assessment-document-newui.html' return render(request, template, context) + + +# pylint: disable=C0103,C0330 +@login_required +def pairwise_assessment_document_esa(request, code=None, campaign_name=None): + """ + Pairwise direct assessment document annotation view. + """ + t1 = datetime.now() + + campaign = None + if campaign_name: + campaign = Campaign.objects.filter(campaignName=campaign_name) + if not campaign.exists(): + _msg = 'No campaign named "%s" exists, redirecting to dashboard' + LOGGER.info(_msg, campaign_name) + return redirect('dashboard') + + campaign = campaign[0] + + LOGGER.info( + 'Rendering direct assessment document view for user "%s".', + request.user.username or "Anonymous", + ) + + current_task = None + + # Try to identify TaskAgenda for current user. + agendas = TaskAgenda.objects.filter(user=request.user) + + if campaign: + agendas = agendas.filter(campaign=campaign) + + for agenda in agendas: + LOGGER.info('Identified work agenda %s', agenda) + + tasks_to_complete = [] + for serialized_open_task in agenda.serialized_open_tasks(): + open_task = serialized_open_task.get_object_instance() + + # Skip tasks which are not available anymore + if open_task is None: + continue + + if open_task.next_item_for_user(request.user) is not None: + current_task = open_task + if not campaign: + campaign = agenda.campaign + else: + tasks_to_complete.append(serialized_open_task) + + modified = False + for task in tasks_to_complete: + modified = agenda.complete_open_task(task) or modified + + if modified: + agenda.save() + + if not current_task and agendas.count() > 0: + LOGGER.info('Work agendas completed, redirecting to dashboard') + LOGGER.info('- code=%s, campaign=%s', code, campaign) + return redirect('dashboard') + + # If language code has been given, find a free task and assign to user. + if not current_task: + current_task = PairwiseAssessmentDocumentESATask.get_task_for_user( + user=request.user + ) + + if not current_task: + if code is None or campaign is None: + LOGGER.info('No current task detected, redirecting to dashboard') + LOGGER.info('- code=%s, campaign=%s', code, campaign) + return redirect('dashboard') + + LOGGER.info( + 'Identifying next task for code "%s", campaign="%s"', + code, + campaign, + ) + next_task = PairwiseAssessmentDocumentESATask.get_next_free_task_for_language( + code, campaign, request.user + ) + + if next_task is None: + LOGGER.info('No next task detected, redirecting to dashboard') + return redirect('dashboard') + + next_task.assignedTo.add(request.user) + next_task.save() + + current_task = next_task + + if current_task: + if not campaign: + campaign = current_task.campaign + + elif campaign.campaignName != current_task.campaign.campaignName: + _msg = 'Incompatible campaign given, using item campaign instead!' + LOGGER.info(_msg) + campaign = current_task.campaign + + # Handling POST requests differs from the original direct_assessment/ + # direct_assessment_context view + t2 = datetime.now() + ajax = False + item_saved = False + error_msg = '' + if request.method == "POST": + score1 = request.POST.get('score1', None) + score2 = request.POST.get('score2', None) + mqm1 = request.POST.get('mqm1', None) + mqm2 = request.POST.get('mqm2', None) + item_id = request.POST.get('item_id', None) + task_id = request.POST.get('task_id', None) + document_id = request.POST.get('document_id', None) + start_timestamp = request.POST.get('start_timestamp', None) + end_timestamp = request.POST.get('end_timestamp', None) + ajax = bool(request.POST.get('ajax', None) == 'True') + + LOGGER.info('score1=%s, score2=%s, item_id=%s', score1, score2, item_id) + print( + 'Got request score1={0}, score2={1}, item_id={2}, ajax={3}'.format( + score1, score2, item_id, ajax + ) + ) + + # If all required information was provided in the POST request + if score1 and item_id and start_timestamp and end_timestamp: + duration = float(end_timestamp) - float(start_timestamp) + LOGGER.debug(float(start_timestamp)) + LOGGER.debug(float(end_timestamp)) + LOGGER.info( + 'start=%s, end=%s, duration=%s', + start_timestamp, + end_timestamp, + duration, + ) + + # Get all items from the document that the submitted item belongs + # to, and all already collected scores for this document + ( + current_item, + block_items, + block_results, + ) = current_task.next_document_for_user( + request.user, return_statistics=False + ) + + # An item from the right document was submitted + if current_item.documentID == document_id: + # This is the item that we expected to be annotated first, + # which means that there is no score for the current item, so + # create new score + if current_item.itemID == int(item_id) and current_item.id == int( + task_id + ): + + utc_now = datetime.utcnow().replace(tzinfo=utc) + # pylint: disable=E1101 + PairwiseAssessmentDocumentESAResult.objects.create( + score1=score1, + score2=score2, + mqm1=mqm1, + mqm2=mqm2, + start_time=float(start_timestamp), + end_time=float(end_timestamp), + item=current_item, + task=current_task, + createdBy=request.user, + activated=False, + completed=True, + dateCompleted=utc_now, + ) + print('Item {} (itemID={}) saved'.format(task_id, item_id)) + item_saved = True + + # It is not the current item, so check if the result for it + # exists + else: + # Check if there is a score result for the submitted item + # TODO: this could be a single query, would it be better or + # more effective? + current_result = None + for result in block_results: + if not result: + continue + if result.item.itemID == int(item_id) and result.item.id == int( + task_id + ): + current_result = result + break + + # If already scored, update the result + # TODO: consider adding new score, not updating the + # previous one + if current_result: + prev_score1 = current_result.score1 + prev_score2 = current_result.score2 + current_result.score1 = score1 + current_result.score2 = score2 + current_result.mqm1 = mqm1 + current_result.mqm2 = mqm2 + current_result.start_time = float(start_timestamp) + current_result.end_time = float(end_timestamp) + utc_now = datetime.utcnow().replace(tzinfo=utc) + current_result.dateCompleted = utc_now + current_result.save() + _msg = 'Item {} (itemID={}) updated {}->{} and {}->{}'.format( + task_id, item_id, prev_score1, score1, prev_score2, score2 + ) + LOGGER.debug(_msg) + print(_msg) + item_saved = True + + # If not yet scored, check if the submitted item is from + # the expected document. Note that document ID is **not** + # sufficient, because there can be multiple documents with + # the same ID in the task. + else: + found_item = False + for item in block_items: + if item.itemID == int(item_id) and item.id == int(task_id): + found_item = item + break + + # The submitted item is from the same document as the + # first unannotated item. It is fine, so save it + if found_item: + utc_now = datetime.utcnow().replace(tzinfo=utc) + # pylint: disable=E1101 + PairwiseAssessmentDocumentESAResult.objects.create( + score1=score1, + score2=score2, + mqm1=mqm1, + mqm2=mqm2, + start_time=float(start_timestamp), + end_time=float(end_timestamp), + item=found_item, + task=current_task, + createdBy=request.user, + activated=False, + completed=True, + dateCompleted=utc_now, + ) + _msg = 'Item {} (itemID={}) saved, although it was not the next item'.format( + task_id, item_id + ) + LOGGER.debug(_msg) + print(_msg) + item_saved = True + + else: + error_msg = ( + 'We did not expect this item to be submitted. ' + 'If you used backward/forward buttons in your browser, ' + 'please reload the page and try again.' + ) + + _msg = 'Item ID {} does not match item {}, will not save!'.format( + item_id, current_item.itemID + ) + LOGGER.debug(_msg) + print(_msg) + + # An item from a wrong document was submitted + else: + print( + 'Different document IDs: {} != {}, will not save!'.format( + current_item.documentID, document_id + ) + ) + + error_msg = ( + 'We did not expect an item from this document to be submitted. ' + 'If you used backward/forward buttons in your browser, ' + 'please reload the page and try again.' + ) + + t3 = datetime.now() + + # Get all items from the document that the first unannotated item in the + # task belongs to, and collect some additional statistics + ( + current_item, + completed_items, + completed_blocks, + completed_items_in_block, + block_items, + block_results, + total_blocks, + ) = current_task.next_document_for_user(request.user) + + if not current_item: + LOGGER.info('No current item detected, redirecting to dashboard') + return redirect('dashboard') + + campaign_opts = set((campaign.campaignOptions or "").lower().split(";")) + escape_eos = 'escapeeos' in campaign_opts + escape_br = 'escapebr' in campaign_opts + + # Get item scores from the latest corresponding results + block_scores = [] + for item, result in zip(block_items, block_results): + # Get target texts with injected HTML tags showing diffs + _candidate1_text, _candidate2_text = item.target_texts_with_diffs( + escape_html=False + ) + _source_text = item.segmentText + _default_score = 50 + + if escape_eos: + _source_text = _source_text.replace( + "<eos>", "<eos>" + ) + _candidate1_text = _candidate1_text.replace( + "<eos>", "<eos>" + ) + _candidate2_text = _candidate2_text.replace( + "<eos>", "<eos>" + ) + + if escape_br: + _source_text = _source_text.replace("<br/>", "
") + _candidate1_text = _candidate1_text.replace( + "<br/>", "
" + ) + _candidate2_text = _candidate2_text.replace( + "<br/>", "
" + ) + + item_scores = { + 'completed': bool(result and result.score1 > -1), + 'current_item': bool(item.id == current_item.id), + 'score1': result.score1 if result else _default_score, + 'score2': result.score2 if result else _default_score, + 'mqm1': result.mqm1 if result else item.mqm1, + 'mqm2': result.mqm2 if result else item.mqm2, + 'candidate1_text': _candidate1_text, + 'candidate2_text': _candidate2_text, + 'segment_text': _source_text, + } + block_scores.append(item_scores) + + # completed_items_check = current_task.completed_items_for_user( + # request.user) + _msg = 'completed_items=%s, completed_blocks=%s' + LOGGER.info(_msg, completed_items, completed_blocks) + + source_language = current_task.marketSourceLanguage() + target_language = current_task.marketTargetLanguage() + + t4 = datetime.now() + + reference_label = 'Source text' + candidate1_label = 'Translation A' + candidate2_label = 'Translation B' + + priming_question_texts = [ + 'Below you see a document with {0} sentences in {1} (left columns) ' + 'and their corresponding candidate translations from two different systems ' + 'in {2} (right columns). ' + 'Score each candidate sentence translation in the system\'s document context. ' + 'You may revisit already scored sentences and update their scores at any time ' + 'by clicking at a source text.'.format( + len(block_items), source_language, target_language + ), + 'Assess the translation quality answering the question: ', + 'How accurately does the candidate text for each system (right column, in bold) ' + 'convey the original semantics of the source text (left column) in the ' + 'system\'s document context? ', + ] + document_question_texts = [ + 'Please score the overall document translation quality for each system ' + '(you can score the whole documents only after scoring all individual ' + 'sentences first).', + 'Assess the translation quality answering the question: ', + 'How accurately does the entire candidate document translation ' + 'in {0} (right column) convey the original semantics of the source document ' + 'in {1} (left column)? '.format(target_language, source_language), + ] + + monolingual_task = 'monolingual' in campaign_opts + use_sqm = 'sqm' in campaign_opts + static_context = 'staticcontext' in campaign_opts + doc_guidelines = 'doclvlguideline' in campaign_opts + guidelines_popup = ( + 'guidelinepopup' in campaign_opts or 'guidelinespopup' in campaign_opts + ) + gaming_domain = 'gamingdomainnote' in campaign_opts + + if use_sqm: + priming_question_texts = priming_question_texts[:1] + document_question_texts = document_question_texts[:1] + + if monolingual_task: + source_language = None + priming_question_texts = [ + 'Below you see two documents, each with {0} sentences in {1}. ' + 'Score each sentence in both documents in their respective document context. ' + 'You may revisit already scored sentences and update their scores at any time ' + 'by clicking at a source text.'.format( + len(block_items) - 1, target_language + ), + ] + document_question_texts = [ + 'Please score the overall quality of each document (you can score ' + 'the whole document only after scoring all individual sentences from all ' + 'documents first).', + ] + candidate1_label = 'Translation A' + candidate2_label = 'Translation B' + + if doc_guidelines: + priming_question_texts = [ + 'Below you see a document with {0} partial paragraphs in {1} (left columns) ' + 'and their corresponding two candidate translations in {2} (middle and right column). ' + 'Please score each paragraph of both candidate translations ' + 'paying special attention to document-level properties, ' + 'such as consistency of formality and style, selection of translation terms, pronoun choice, ' + 'and so on, in addition to the usual correctness criteria. '.format( + len(block_items) - 1, + source_language, + target_language, + ), + ] + + if gaming_domain: + priming_question_texts += [ + 'The presented texts are messages from an online video game chat. ' + 'Please take into account the video gaming genre when making your assessments.
' + ] + + # A part of context used in responses to both Ajax and standard POST + # requests + context = { + 'active_page': 'pairwise-assessment-document-esa', + 'item_id': current_item.itemID, + 'task_id': current_item.id, + 'document_id': current_item.documentID, + 'completed_blocks': completed_blocks, + 'total_blocks': total_blocks, + 'items_left_in_block': len(block_items) - completed_items_in_block, + 'source_language': source_language, + 'target_language': target_language, + 'debug_times': (t2 - t1, t3 - t2, t4 - t3, t4 - t1), + 'template_debug': 'debug' in request.GET, + 'campaign': campaign.campaignName, + 'datask_id': current_task.id, + 'trusted_user': current_task.is_trusted_user(request.user), + 'monolingual': monolingual_task, + 'sqm': use_sqm, + 'static_context': static_context, + 'guidelines_popup': guidelines_popup, + 'doc_guidelines': doc_guidelines, + } + + if ajax: + ajax_context = {'saved': item_saved, 'error_msg': error_msg} + context.update(ajax_context) + context.update(BASE_CONTEXT) + return JsonResponse(context) # Sent response to the Ajax POST request + + page_context = { + 'items': zip(block_items, block_scores), + 'num_items': len(block_items), + 'reference_label': reference_label, + 'candidate1_label': candidate1_label, + 'candidate2_label': candidate2_label, + 'priming_question_texts': priming_question_texts, + 'document_question_texts': document_question_texts, + } + context.update(page_context) + context.update(BASE_CONTEXT) + + template = 'EvalView/pairwise-assessment-document-esa.html' + return render(request, template, context) diff --git a/Examples/PairwiseDocESA/README.md b/Examples/PairwiseDocESA/README.md new file mode 100644 index 00000000..a6bdea02 --- /dev/null +++ b/Examples/PairwiseDocESA/README.md @@ -0,0 +1,14 @@ +# Appraise Evaluation System + + python3 manage.py StartNewCampaign Examples/PairwiseDocESA/manifest.json \ + --batches-json Examples/PairwiseDocESA/batches.json \ + --csv-output Examples/PairwiseDocESA/output.csv + + # See Examples/PairwiseDocESA/outputs.csv for a SSO login for the annotator account + # Collect some annotations, then export annotation scores... + + python3 manage.py ExportSystemScoresToCSV example18docnewuiesa + +# Score Descriptions + + score = Math.max(0, 100 - 4 * number_of_minor_errors - 20 * number_of_major_errors) diff --git a/Examples/PairwiseDocESA/batches.json b/Examples/PairwiseDocESA/batches.json new file mode 100644 index 00000000..e3f94170 --- /dev/null +++ b/Examples/PairwiseDocESA/batches.json @@ -0,0 +1,3094 @@ +[ + { + "items": [ + { + "_block": -1, + "_item": 0, + "documentID": "5#1-101", + "isCompleteDocument": false, + "itemID": 0, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::5#1-101::1", + "segmentText": "EuGH-Urteil st\u00e4rkt Eltern", + "targets": [ + { + "_itemAll": 0, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "ECJ ruling strengthens parents" + }, + { + "_itemAll": 1, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "ECJ ruling strengthens parents" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 1, + "documentID": "5#1-101", + "isCompleteDocument": false, + "itemID": 1, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::5#1-101::2", + "segmentText": "

Erziehungszeit im EU-Ausland z\u00e4hlt f\u00fcr Rente

", + "targets": [ + { + "_itemAll": 2, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "

Parenting time in another EU country counts towards your pension

" + }, + { + "_itemAll": 3, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "

Parental leave in another EU country counts towards pension

" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 2, + "documentID": "5#1-101", + "isCompleteDocument": false, + "itemID": 2, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::5#1-101::3", + "segmentText": "Stand: 22.02.2024 16:49 Uhr", + "targets": [ + { + "_itemAll": 4, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "As of: February 22, 2024 4:49 p.m" + }, + { + "_itemAll": 5, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "Last updated: 22.02.2024 16:49" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 3, + "documentID": "5#1-101", + "isCompleteDocument": false, + "itemID": 3, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::5#1-101::4", + "segmentText": "Erziehungszeiten im EU-Ausland k\u00f6nnen laut EuGH auch dann bei der Rente ber\u00fccksichtigt werden, wenn zuvor nicht in die deutsche Rentenkasse eingezahlt wurde. Konkret ging es um eine Deutsche, die lange in den Niederlanden wohnte.", + "targets": [ + { + "_itemAll": 6, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "According to the ECJ, parenting periods in other EU countries can be taken into account in the pension even if they have not previously been paid into the German pension fund. Specifically, it was about a German woman who had lived in the Netherlands for a long time." + }, + { + "_itemAll": 7, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "According to the ECJ, child-rearing periods in other EU countries can also be taken into account in the pension if no previous payment has been made into the German pension fund. Specifically, it was about a German woman who had lived in the Netherlands for a long time." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 4, + "documentID": "5#1-101", + "isCompleteDocument": false, + "itemID": 4, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::5#1-101::5", + "segmentText": "Von Alena Lagm\u00f6ller, ARD-Rechtsredaktion", + "targets": [ + { + "_itemAll": 8, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "By Alena Lagm\u00f6ller, ARD Legal Editor" + }, + { + "_itemAll": 9, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "By Alena Lagm\u00f6ller, ARD legal department" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 5, + "documentID": "5#1-101", + "isCompleteDocument": false, + "itemID": 5, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::5#1-101::6", + "segmentText": "EU-B\u00fcrger genie\u00dfen Freiz\u00fcgigkeit - sie haben das Recht, sich frei zwischen den Mitgliedsstaaten zu bewegen. Arbeitszeiten, die im EU-Ausland verrichtet werden, werden auf den inl\u00e4ndischen Rentenanspruch angerechnet.Doch wer im Ausland Kinder erzogen hat, der muss mitunter um eine Anrechnung der Zeiten auf den Rentenanspruch k\u00e4mpfen.", + "targets": [ + { + "_itemAll": 10, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "EU citizens enjoy freedom of movement - they have the right to move freely between member states. Working hours carried out in other EU countries are counted towards the domestic pension entitlement. But those who have raised children abroad sometimes have to fight for their periods to be counted towards their pension entitlement." + }, + { + "_itemAll": 11, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "EU citizens enjoy freedom of movement - they have the right to move freely between member states. Working hours worked in other EU countries are counted towards the domestic pension entitlement. However, those who have raised children abroad sometimes have to fight for their periods to be counted towards their pension entitlement." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 6, + "documentID": "5#1-101", + "isCompleteDocument": false, + "itemID": 6, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::5#1-101::7", + "segmentText": "So erging es auch einer Frau aus dem deutsch-niederl\u00e4ndischen Grenzgebiet: Sie hat vor dem Landessozialgericht Nordrhein-Westfalen geklagt, weil die Deutsche Rentenversicherung ihre Kindererziehungszeit in den Niederlanden nicht anrechnen wollte. Die Kl\u00e4gerin wohnte viele Jahre in den Niederlanden in der N\u00e4he von Aachen. Ihre Ausbildung hatte sie als Grenzg\u00e4ngerin in Aachen absolviert, war aber nie sozialversicherungspflichtig t\u00e4tig. Sie bekam zwei Kinder, die sie in den Niederlanden aufgezogen hatte und war w\u00e4hrenddessen nicht berufst\u00e4tig. Erst viele Jahre sp\u00e4ter zog sie nach Deutschland und zahlte dann erstmals in die Rentenkasse ein.", + "targets": [ + { + "_itemAll": 12, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "This is what happened to a woman from the German-Dutch border area: She sued the state social court of North Rhine-Westphalia because the German pension insurance did not want to take into account the time she spent raising children in the Netherlands. The plaintiff lived in the Netherlands near Aachen for many years. She completed her training as a cross-border commuter in Aachen, but was never subject to social security contributions. She had two children who she raised in the Netherlands and did not work during this time. It was only many years later that she moved to Germany and then paid into the pension fund for the first time." + }, + { + "_itemAll": 13, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "This is what happened to a woman from the German-Dutch border area: She filed a lawsuit before the Regional Social Court of North Rhine-Westphalia because the German pension insurance did not want to take into account her child-rearing time in the Netherlands. The plaintiff lived for many years in the Netherlands, near Aachen. She had completed her training as a cross-border commuter in Aachen, but was never subject to social security contributions. She had two children whom she had raised in the Netherlands and was not working during this time. It was not until many years later that she moved to Germany and paid into the pension fund for the first time." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 7, + "documentID": "5#1-101", + "isCompleteDocument": false, + "itemID": 7, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::5#1-101::8", + "segmentText": "

Kein Unterschied zwischen Erziehung im In- und Ausland

", + "targets": [ + { + "_itemAll": 14, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "

No difference between education at home and abroad

" + }, + { + "_itemAll": 15, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "

No difference between education at home and abroad

" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 8, + "documentID": "5#1-101", + "isCompleteDocument": false, + "itemID": 8, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::5#1-101::9", + "segmentText": "Als die Frau erwerbsunf\u00e4hig wurde, rechnete die Deutsche Rentenversicherung die Kindererziehungszeit in den Niederlanden nicht auf ihren Rentenanspruch an. Der Europ\u00e4ische Gerichtshof sieht das anders: F\u00fcr die Anrechnung kommt es darauf an, ob zwischen der Kindererziehungszeit im Ausland und der Versicherungszeit im Inland eine \"hinreichende Verbindung\" besteht.", + "targets": [ + { + "_itemAll": 16, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "When the woman became unable to work, the German pension insurance did not count the time spent raising children in the Netherlands towards her pension entitlement. The European Court of Justice sees it differently: For the credit to be taken into account, it depends on whether there is a \u201csufficient connection\u201d between the time spent raising children abroad and the insurance time at home." + }, + { + "_itemAll": 17, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "When the woman became unable to work, the German pension insurance did not count the child-rearing period in the Netherlands against her pension entitlement. The European Court of Justice takes a different view: for the purposes of crediting, it depends on whether there is a \"sufficient connection\" between the child-rearing period abroad and the insurance period in Germany." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 9, + "documentID": "5#1-101", + "isCompleteDocument": false, + "itemID": 9, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::5#1-101::10", + "segmentText": "Dieses Kriterium hat der EuGH bereits in fr\u00fcheren Entscheidungen entwickelt. Deswegen war schon l\u00e4nger klar, dass grunds\u00e4tzlich auch Kindererziehungszeiten im EU-Ausland bei der Rentenberechnung ber\u00fccksichtigt werden m\u00fcssen. Neu ist aber, dass eine \"hinreichende Verbindung\" selbst dann besteht, wenn die Betroffene vor der Kindererziehungszeit im Ausland keine Beitr\u00e4ge in die Rentenversicherung eingezahlt hat.", + "targets": [ + { + "_itemAll": 18, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "The ECJ has already developed this criterion in previous decisions. It has therefore been clear for some time that, in principle, periods spent raising children in other EU countries must also be taken into account when calculating pensions. What is new, however, is that there is a \u201csufficient connection\u201d even if the person concerned did not pay any contributions to the pension insurance before raising children abroad." + }, + { + "_itemAll": 19, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "This criterion has already been developed by the ECJ in previous decisions. For this reason, it has been clear for some time that child-rearing periods in other EU countries must also be taken into account when calculating pensions. What is new, however, is that there is a \"sufficient connection\" even if the person concerned did not pay any contributions to the pension insurance scheme before the child-rearing period abroad." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 10, + "documentID": "5#1-101", + "isCompleteDocument": true, + "itemID": 10, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::5#1-101::10", + "segmentText": "EuGH-Urteil st\u00e4rkt Eltern

Erziehungszeit im EU-Ausland z\u00e4hlt f\u00fcr Rente

Stand: 22.02.2024 16:49 Uhr Erziehungszeiten im EU-Ausland k\u00f6nnen laut EuGH auch dann bei der Rente ber\u00fccksichtigt werden, wenn zuvor nicht in die deutsche Rentenkasse eingezahlt wurde. Konkret ging es um eine Deutsche, die lange in den Niederlanden wohnte. Von Alena Lagm\u00f6ller, ARD-Rechtsredaktion EU-B\u00fcrger genie\u00dfen Freiz\u00fcgigkeit - sie haben das Recht, sich frei zwischen den Mitgliedsstaaten zu bewegen. Arbeitszeiten, die im EU-Ausland verrichtet werden, werden auf den inl\u00e4ndischen Rentenanspruch angerechnet.Doch wer im Ausland Kinder erzogen hat, der muss mitunter um eine Anrechnung der Zeiten auf den Rentenanspruch k\u00e4mpfen. So erging es auch einer Frau aus dem deutsch-niederl\u00e4ndischen Grenzgebiet: Sie hat vor dem Landessozialgericht Nordrhein-Westfalen geklagt, weil die Deutsche Rentenversicherung ihre Kindererziehungszeit in den Niederlanden nicht anrechnen wollte. Die Kl\u00e4gerin wohnte viele Jahre in den Niederlanden in der N\u00e4he von Aachen. Ihre Ausbildung hatte sie als Grenzg\u00e4ngerin in Aachen absolviert, war aber nie sozialversicherungspflichtig t\u00e4tig. Sie bekam zwei Kinder, die sie in den Niederlanden aufgezogen hatte und war w\u00e4hrenddessen nicht berufst\u00e4tig. Erst viele Jahre sp\u00e4ter zog sie nach Deutschland und zahlte dann erstmals in die Rentenkasse ein.

Kein Unterschied zwischen Erziehung im In- und Ausland

Als die Frau erwerbsunf\u00e4hig wurde, rechnete die Deutsche Rentenversicherung die Kindererziehungszeit in den Niederlanden nicht auf ihren Rentenanspruch an. Der Europ\u00e4ische Gerichtshof sieht das anders: F\u00fcr die Anrechnung kommt es darauf an, ob zwischen der Kindererziehungszeit im Ausland und der Versicherungszeit im Inland eine \"hinreichende Verbindung\" besteht. Dieses Kriterium hat der EuGH bereits in fr\u00fcheren Entscheidungen entwickelt. Deswegen war schon l\u00e4nger klar, dass grunds\u00e4tzlich auch Kindererziehungszeiten im EU-Ausland bei der Rentenberechnung ber\u00fccksichtigt werden m\u00fcssen. Neu ist aber, dass eine \"hinreichende Verbindung\" selbst dann besteht, wenn die Betroffene vor der Kindererziehungszeit im Ausland keine Beitr\u00e4ge in die Rentenversicherung eingezahlt hat.", + "targets": [ + { + "_itemAll": 20, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "ECJ ruling strengthens parents

Parenting time in another EU country counts towards your pension

As of: February 22, 2024 4:49 p.m According to the ECJ, parenting periods in other EU countries can be taken into account in the pension even if they have not previously been paid into the German pension fund. Specifically, it was about a German woman who had lived in the Netherlands for a long time. By Alena Lagm\u00f6ller, ARD Legal Editor EU citizens enjoy freedom of movement - they have the right to move freely between member states. Working hours carried out in other EU countries are counted towards the domestic pension entitlement. But those who have raised children abroad sometimes have to fight for their periods to be counted towards their pension entitlement. This is what happened to a woman from the German-Dutch border area: She sued the state social court of North Rhine-Westphalia because the German pension insurance did not want to take into account the time she spent raising children in the Netherlands. The plaintiff lived in the Netherlands near Aachen for many years. She completed her training as a cross-border commuter in Aachen, but was never subject to social security contributions. She had two children who she raised in the Netherlands and did not work during this time. It was only many years later that she moved to Germany and then paid into the pension fund for the first time.

No difference between education at home and abroad

When the woman became unable to work, the German pension insurance did not count the time spent raising children in the Netherlands towards her pension entitlement. The European Court of Justice sees it differently: For the credit to be taken into account, it depends on whether there is a \u201csufficient connection\u201d between the time spent raising children abroad and the insurance time at home. The ECJ has already developed this criterion in previous decisions. It has therefore been clear for some time that, in principle, periods spent raising children in other EU countries must also be taken into account when calculating pensions. What is new, however, is that there is a \u201csufficient connection\u201d even if the person concerned did not pay any contributions to the pension insurance before raising children abroad." + }, + { + "_itemAll": 21, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "ECJ ruling strengthens parents

Parental leave in another EU country counts towards pension

Last updated: 22.02.2024 16:49 According to the ECJ, child-rearing periods in other EU countries can also be taken into account in the pension if no previous payment has been made into the German pension fund. Specifically, it was about a German woman who had lived in the Netherlands for a long time. By Alena Lagm\u00f6ller, ARD legal department EU citizens enjoy freedom of movement - they have the right to move freely between member states. Working hours worked in other EU countries are counted towards the domestic pension entitlement. However, those who have raised children abroad sometimes have to fight for their periods to be counted towards their pension entitlement. This is what happened to a woman from the German-Dutch border area: She filed a lawsuit before the Regional Social Court of North Rhine-Westphalia because the German pension insurance did not want to take into account her child-rearing time in the Netherlands. The plaintiff lived for many years in the Netherlands, near Aachen. She had completed her training as a cross-border commuter in Aachen, but was never subject to social security contributions. She had two children whom she had raised in the Netherlands and was not working during this time. It was not until many years later that she moved to Germany and paid into the pension fund for the first time.

No difference between education at home and abroad

When the woman became unable to work, the German pension insurance did not count the child-rearing period in the Netherlands against her pension entitlement. The European Court of Justice takes a different view: for the purposes of crediting, it depends on whether there is a \"sufficient connection\" between the child-rearing period abroad and the insurance period in Germany. This criterion has already been developed by the ECJ in previous decisions. For this reason, it has been clear for some time that child-rearing periods in other EU countries must also be taken into account when calculating pensions. What is new, however, is that there is a \"sufficient connection\" even if the person concerned did not pay any contributions to the pension insurance scheme before the child-rearing period abroad." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 10, + "documentID": "4#1-101", + "isCompleteDocument": false, + "itemID": 0, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::4#1-101::1", + "segmentText": "EuGH-Urteil st\u00e4rkt Eltern", + "targets": [ + { + "_itemAll": 22, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "ECJ ruling strengthens parents" + }, + { + "_itemAll": 23, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "ECJ ruling strengthens parents" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 11, + "documentID": "4#1-101", + "isCompleteDocument": false, + "itemID": 1, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::4#1-101::2", + "segmentText": "

Erziehungszeit im EU-Ausland z\u00e4hlt f\u00fcr Rente

", + "targets": [ + { + "_itemAll": 24, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "

Parental leave in another EU country counts towards pension

" + }, + { + "_itemAll": 25, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "

Parenting time in another EU country counts towards your pension

" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 12, + "documentID": "4#1-101", + "isCompleteDocument": false, + "itemID": 2, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::4#1-101::3", + "segmentText": "Stand: 22.02.2024 16:49 Uhr", + "targets": [ + { + "_itemAll": 26, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "Last updated: 22.02.2024 16:49" + }, + { + "_itemAll": 27, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "As of: February 22, 2024 4:49 p.m" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 13, + "documentID": "4#1-101", + "isCompleteDocument": false, + "itemID": 3, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::4#1-101::4", + "segmentText": "Erziehungszeiten im EU-Ausland k\u00f6nnen laut EuGH auch dann bei der Rente ber\u00fccksichtigt werden, wenn zuvor nicht in die deutsche Rentenkasse eingezahlt wurde. Konkret ging es um eine Deutsche, die lange in den Niederlanden wohnte.", + "targets": [ + { + "_itemAll": 28, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "According to the ECJ, child-rearing periods in other EU countries can also be taken into account in the pension if no previous payment has been made into the German pension fund. Specifically, it was about a German woman who had lived in the Netherlands for a long time." + }, + { + "_itemAll": 29, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "According to the ECJ, parenting periods in other EU countries can be taken into account in the pension even if they have not previously been paid into the German pension fund. Specifically, it was about a German woman who had lived in the Netherlands for a long time." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 14, + "documentID": "4#1-101", + "isCompleteDocument": false, + "itemID": 4, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::4#1-101::5", + "segmentText": "Von Alena Lagm\u00f6ller, ARD-Rechtsredaktion", + "targets": [ + { + "_itemAll": 30, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "By Alena Lagm\u00f6ller, ARD legal department" + }, + { + "_itemAll": 31, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "By Alena Lagm\u00f6ller, ARD Legal Editor" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 15, + "documentID": "4#1-101", + "isCompleteDocument": false, + "itemID": 5, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::4#1-101::6", + "segmentText": "EU-B\u00fcrger genie\u00dfen Freiz\u00fcgigkeit - sie haben das Recht, sich frei zwischen den Mitgliedsstaaten zu bewegen. Arbeitszeiten, die im EU-Ausland verrichtet werden, werden auf den inl\u00e4ndischen Rentenanspruch angerechnet.Doch wer im Ausland Kinder erzogen hat, der muss mitunter um eine Anrechnung der Zeiten auf den Rentenanspruch k\u00e4mpfen.", + "targets": [ + { + "_itemAll": 32, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "EU citizens enjoy freedom of movement - they have the right to move freely between member states. Working hours worked in other EU countries are counted towards the domestic pension entitlement. However, those who have raised children abroad sometimes have to fight for their periods to be counted towards their pension entitlement." + }, + { + "_itemAll": 33, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "EU citizens enjoy freedom of movement - they have the right to move freely between member states. Working hours carried out in other EU countries are counted towards the domestic pension entitlement. But those who have raised children abroad sometimes have to fight for their periods to be counted towards their pension entitlement." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 16, + "documentID": "4#1-101", + "isCompleteDocument": false, + "itemID": 6, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::4#1-101::7", + "segmentText": "So erging es auch einer Frau aus dem deutsch-niederl\u00e4ndischen Grenzgebiet: Sie hat vor dem Landessozialgericht Nordrhein-Westfalen geklagt, weil die Deutsche Rentenversicherung ihre Kindererziehungszeit in den Niederlanden nicht anrechnen wollte. Die Kl\u00e4gerin wohnte viele Jahre in den Niederlanden in der N\u00e4he von Aachen. Ihre Ausbildung hatte sie als Grenzg\u00e4ngerin in Aachen absolviert, war aber nie sozialversicherungspflichtig t\u00e4tig. Sie bekam zwei Kinder, die sie in den Niederlanden aufgezogen hatte und war w\u00e4hrenddessen nicht berufst\u00e4tig. Erst viele Jahre sp\u00e4ter zog sie nach Deutschland und zahlte dann erstmals in die Rentenkasse ein.", + "targets": [ + { + "_itemAll": 34, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "This is what happened to a woman from the German-Dutch border area: She filed a lawsuit before the Regional Social Court of North Rhine-Westphalia because the German pension insurance did not want to take into account her child-rearing time in the Netherlands. The plaintiff lived for many years in the Netherlands, near Aachen. She had completed her training as a cross-border commuter in Aachen, but was never subject to social security contributions. She had two children whom she had raised in the Netherlands and was not working during this time. It was not until many years later that she moved to Germany and paid into the pension fund for the first time." + }, + { + "_itemAll": 35, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "This is what happened to a woman from the German-Dutch border area: She sued the state social court of North Rhine-Westphalia because the German pension insurance did not want to take into account the time she spent raising children in the Netherlands. The plaintiff lived in the Netherlands near Aachen for many years. She completed her training as a cross-border commuter in Aachen, but was never subject to social security contributions. She had two children who she raised in the Netherlands and did not work during this time. It was only many years later that she moved to Germany and then paid into the pension fund for the first time." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 17, + "documentID": "4#1-101", + "isCompleteDocument": false, + "itemID": 7, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::4#1-101::8", + "segmentText": "

Kein Unterschied zwischen Erziehung im In- und Ausland

", + "targets": [ + { + "_itemAll": 36, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "

No difference between education at home and abroad

" + }, + { + "_itemAll": 37, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "

No difference between education at home and abroad

" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 18, + "documentID": "4#1-101", + "isCompleteDocument": false, + "itemID": 8, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::4#1-101::9", + "segmentText": "Als die Frau erwerbsunf\u00e4hig wurde, rechnete die Deutsche Rentenversicherung die Kindererziehungszeit in den Niederlanden nicht auf ihren Rentenanspruch an. Der Europ\u00e4ische Gerichtshof sieht das anders: F\u00fcr die Anrechnung kommt es darauf an, ob zwischen der Kindererziehungszeit im Ausland und der Versicherungszeit im Inland eine \"hinreichende Verbindung\" besteht.", + "targets": [ + { + "_itemAll": 38, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "When the woman became unable to work, the German pension insurance did not count the child-rearing period in the Netherlands against her pension entitlement. The European Court of Justice takes a different view: for the purposes of crediting, it depends on whether there is a \"sufficient connection\" between the child-rearing period abroad and the insurance period in Germany." + }, + { + "_itemAll": 39, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "When the woman became unable to work, the German pension insurance did not count the time spent raising children in the Netherlands towards her pension entitlement. The European Court of Justice sees it differently: For the credit to be taken into account, it depends on whether there is a \u201csufficient connection\u201d between the time spent raising children abroad and the insurance time at home." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 19, + "documentID": "4#1-101", + "isCompleteDocument": false, + "itemID": 9, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::4#1-101::10", + "segmentText": "Dieses Kriterium hat der EuGH bereits in fr\u00fcheren Entscheidungen entwickelt. Deswegen war schon l\u00e4nger klar, dass grunds\u00e4tzlich auch Kindererziehungszeiten im EU-Ausland bei der Rentenberechnung ber\u00fccksichtigt werden m\u00fcssen. Neu ist aber, dass eine \"hinreichende Verbindung\" selbst dann besteht, wenn die Betroffene vor der Kindererziehungszeit im Ausland keine Beitr\u00e4ge in die Rentenversicherung eingezahlt hat.", + "targets": [ + { + "_itemAll": 40, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "This criterion has already been developed by the ECJ in previous decisions. For this reason, it has been clear for some time that child-rearing periods in other EU countries must also be taken into account when calculating pensions. What is new, however, is that there is a \"sufficient connection\" even if the person concerned did not pay any contributions to the pension insurance scheme before the child-rearing period abroad." + }, + { + "_itemAll": 41, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "The ECJ has already developed this criterion in previous decisions. It has therefore been clear for some time that, in principle, periods spent raising children in other EU countries must also be taken into account when calculating pensions. What is new, however, is that there is a \u201csufficient connection\u201d even if the person concerned did not pay any contributions to the pension insurance before raising children abroad." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 20, + "documentID": "4#1-101", + "isCompleteDocument": true, + "itemID": 10, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::4#1-101::10", + "segmentText": "EuGH-Urteil st\u00e4rkt Eltern

Erziehungszeit im EU-Ausland z\u00e4hlt f\u00fcr Rente

Stand: 22.02.2024 16:49 Uhr Erziehungszeiten im EU-Ausland k\u00f6nnen laut EuGH auch dann bei der Rente ber\u00fccksichtigt werden, wenn zuvor nicht in die deutsche Rentenkasse eingezahlt wurde. Konkret ging es um eine Deutsche, die lange in den Niederlanden wohnte. Von Alena Lagm\u00f6ller, ARD-Rechtsredaktion EU-B\u00fcrger genie\u00dfen Freiz\u00fcgigkeit - sie haben das Recht, sich frei zwischen den Mitgliedsstaaten zu bewegen. Arbeitszeiten, die im EU-Ausland verrichtet werden, werden auf den inl\u00e4ndischen Rentenanspruch angerechnet.Doch wer im Ausland Kinder erzogen hat, der muss mitunter um eine Anrechnung der Zeiten auf den Rentenanspruch k\u00e4mpfen. So erging es auch einer Frau aus dem deutsch-niederl\u00e4ndischen Grenzgebiet: Sie hat vor dem Landessozialgericht Nordrhein-Westfalen geklagt, weil die Deutsche Rentenversicherung ihre Kindererziehungszeit in den Niederlanden nicht anrechnen wollte. Die Kl\u00e4gerin wohnte viele Jahre in den Niederlanden in der N\u00e4he von Aachen. Ihre Ausbildung hatte sie als Grenzg\u00e4ngerin in Aachen absolviert, war aber nie sozialversicherungspflichtig t\u00e4tig. Sie bekam zwei Kinder, die sie in den Niederlanden aufgezogen hatte und war w\u00e4hrenddessen nicht berufst\u00e4tig. Erst viele Jahre sp\u00e4ter zog sie nach Deutschland und zahlte dann erstmals in die Rentenkasse ein.

Kein Unterschied zwischen Erziehung im In- und Ausland

Als die Frau erwerbsunf\u00e4hig wurde, rechnete die Deutsche Rentenversicherung die Kindererziehungszeit in den Niederlanden nicht auf ihren Rentenanspruch an. Der Europ\u00e4ische Gerichtshof sieht das anders: F\u00fcr die Anrechnung kommt es darauf an, ob zwischen der Kindererziehungszeit im Ausland und der Versicherungszeit im Inland eine \"hinreichende Verbindung\" besteht. Dieses Kriterium hat der EuGH bereits in fr\u00fcheren Entscheidungen entwickelt. Deswegen war schon l\u00e4nger klar, dass grunds\u00e4tzlich auch Kindererziehungszeiten im EU-Ausland bei der Rentenberechnung ber\u00fccksichtigt werden m\u00fcssen. Neu ist aber, dass eine \"hinreichende Verbindung\" selbst dann besteht, wenn die Betroffene vor der Kindererziehungszeit im Ausland keine Beitr\u00e4ge in die Rentenversicherung eingezahlt hat.", + "targets": [ + { + "_itemAll": 42, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "ECJ ruling strengthens parents

Parental leave in another EU country counts towards pension

Last updated: 22.02.2024 16:49 According to the ECJ, child-rearing periods in other EU countries can also be taken into account in the pension if no previous payment has been made into the German pension fund. Specifically, it was about a German woman who had lived in the Netherlands for a long time. By Alena Lagm\u00f6ller, ARD legal department EU citizens enjoy freedom of movement - they have the right to move freely between member states. Working hours worked in other EU countries are counted towards the domestic pension entitlement. However, those who have raised children abroad sometimes have to fight for their periods to be counted towards their pension entitlement. This is what happened to a woman from the German-Dutch border area: She filed a lawsuit before the Regional Social Court of North Rhine-Westphalia because the German pension insurance did not want to take into account her child-rearing time in the Netherlands. The plaintiff lived for many years in the Netherlands, near Aachen. She had completed her training as a cross-border commuter in Aachen, but was never subject to social security contributions. She had two children whom she had raised in the Netherlands and was not working during this time. It was not until many years later that she moved to Germany and paid into the pension fund for the first time.

No difference between education at home and abroad

When the woman became unable to work, the German pension insurance did not count the child-rearing period in the Netherlands against her pension entitlement. The European Court of Justice takes a different view: for the purposes of crediting, it depends on whether there is a \"sufficient connection\" between the child-rearing period abroad and the insurance period in Germany. This criterion has already been developed by the ECJ in previous decisions. For this reason, it has been clear for some time that child-rearing periods in other EU countries must also be taken into account when calculating pensions. What is new, however, is that there is a \"sufficient connection\" even if the person concerned did not pay any contributions to the pension insurance scheme before the child-rearing period abroad." + }, + { + "_itemAll": 43, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "ECJ ruling strengthens parents

Parenting time in another EU country counts towards your pension

As of: February 22, 2024 4:49 p.m According to the ECJ, parenting periods in other EU countries can be taken into account in the pension even if they have not previously been paid into the German pension fund. Specifically, it was about a German woman who had lived in the Netherlands for a long time. By Alena Lagm\u00f6ller, ARD Legal Editor EU citizens enjoy freedom of movement - they have the right to move freely between member states. Working hours carried out in other EU countries are counted towards the domestic pension entitlement. But those who have raised children abroad sometimes have to fight for their periods to be counted towards their pension entitlement. This is what happened to a woman from the German-Dutch border area: She sued the state social court of North Rhine-Westphalia because the German pension insurance did not want to take into account the time she spent raising children in the Netherlands. The plaintiff lived in the Netherlands near Aachen for many years. She completed her training as a cross-border commuter in Aachen, but was never subject to social security contributions. She had two children who she raised in the Netherlands and did not work during this time. It was only many years later that she moved to Germany and then paid into the pension fund for the first time.

No difference between education at home and abroad

When the woman became unable to work, the German pension insurance did not count the time spent raising children in the Netherlands towards her pension entitlement. The European Court of Justice sees it differently: For the credit to be taken into account, it depends on whether there is a \u201csufficient connection\u201d between the time spent raising children abroad and the insurance time at home. The ECJ has already developed this criterion in previous decisions. It has therefore been clear for some time that, in principle, periods spent raising children in other EU countries must also be taken into account when calculating pensions. What is new, however, is that there is a \u201csufficient connection\u201d even if the person concerned did not pay any contributions to the pension insurance before raising children abroad." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 20, + "documentID": "1#1-101", + "isCompleteDocument": false, + "itemID": 0, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::1#1-101::1", + "segmentText": "EuGH-Urteil st\u00e4rkt Eltern", + "targets": [ + { + "_itemAll": 44, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "ECJ ruling strengthens parents" + }, + { + "_itemAll": 45, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "ECJ ruling strengthens parents" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 21, + "documentID": "1#1-101", + "isCompleteDocument": false, + "itemID": 1, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::1#1-101::2", + "segmentText": "

Erziehungszeit im EU-Ausland z\u00e4hlt f\u00fcr Rente

", + "targets": [ + { + "_itemAll": 46, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "

Parental leave in another EU country counts towards pension

" + }, + { + "_itemAll": 47, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "

Parenting time in another EU country counts towards your pension

" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 22, + "documentID": "1#1-101", + "isCompleteDocument": false, + "itemID": 2, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::1#1-101::3", + "segmentText": "Stand: 22.02.2024 16:49 Uhr", + "targets": [ + { + "_itemAll": 48, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "Last updated: 22.02.2024 16:49" + }, + { + "_itemAll": 49, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "As of: February 22, 2024 4:49 p.m" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 23, + "documentID": "1#1-101", + "isCompleteDocument": false, + "itemID": 3, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::1#1-101::4", + "segmentText": "Erziehungszeiten im EU-Ausland k\u00f6nnen laut EuGH auch dann bei der Rente ber\u00fccksichtigt werden, wenn zuvor nicht in die deutsche Rentenkasse eingezahlt wurde. Konkret ging es um eine Deutsche, die lange in den Niederlanden wohnte.", + "targets": [ + { + "_itemAll": 50, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "According to the ECJ, child-rearing periods in other EU countries can also be taken into account in the pension if no previous payment has been made into the German pension fund. Specifically, it was about a German woman who had lived in the Netherlands for a long time." + }, + { + "_itemAll": 51, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "According to the ECJ, parenting periods in other EU countries can be taken into account in the pension even if they have not previously been paid into the German pension fund. Specifically, it was about a German woman who had lived in the Netherlands for a long time." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 24, + "documentID": "1#1-101", + "isCompleteDocument": false, + "itemID": 4, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::1#1-101::5", + "segmentText": "Von Alena Lagm\u00f6ller, ARD-Rechtsredaktion", + "targets": [ + { + "_itemAll": 52, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "By Alena Lagm\u00f6ller, ARD legal department" + }, + { + "_itemAll": 53, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "By Alena Lagm\u00f6ller, ARD Legal Editor" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 25, + "documentID": "1#1-101", + "isCompleteDocument": false, + "itemID": 5, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::1#1-101::6", + "segmentText": "EU-B\u00fcrger genie\u00dfen Freiz\u00fcgigkeit - sie haben das Recht, sich frei zwischen den Mitgliedsstaaten zu bewegen. Arbeitszeiten, die im EU-Ausland verrichtet werden, werden auf den inl\u00e4ndischen Rentenanspruch angerechnet.Doch wer im Ausland Kinder erzogen hat, der muss mitunter um eine Anrechnung der Zeiten auf den Rentenanspruch k\u00e4mpfen.", + "targets": [ + { + "_itemAll": 54, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "EU citizens enjoy freedom of movement - they have the right to move freely between member states. Working hours worked in other EU countries are counted towards the domestic pension entitlement. However, those who have raised children abroad sometimes have to fight for their periods to be counted towards their pension entitlement." + }, + { + "_itemAll": 55, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "EU citizens enjoy freedom of movement - they have the right to move freely between member states. Working hours carried out in other EU countries are counted towards the domestic pension entitlement. But those who have raised children abroad sometimes have to fight for their periods to be counted towards their pension entitlement." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 26, + "documentID": "1#1-101", + "isCompleteDocument": false, + "itemID": 6, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::1#1-101::7", + "segmentText": "So erging es auch einer Frau aus dem deutsch-niederl\u00e4ndischen Grenzgebiet: Sie hat vor dem Landessozialgericht Nordrhein-Westfalen geklagt, weil die Deutsche Rentenversicherung ihre Kindererziehungszeit in den Niederlanden nicht anrechnen wollte. Die Kl\u00e4gerin wohnte viele Jahre in den Niederlanden in der N\u00e4he von Aachen. Ihre Ausbildung hatte sie als Grenzg\u00e4ngerin in Aachen absolviert, war aber nie sozialversicherungspflichtig t\u00e4tig. Sie bekam zwei Kinder, die sie in den Niederlanden aufgezogen hatte und war w\u00e4hrenddessen nicht berufst\u00e4tig. Erst viele Jahre sp\u00e4ter zog sie nach Deutschland und zahlte dann erstmals in die Rentenkasse ein.", + "targets": [ + { + "_itemAll": 56, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "This is what happened to a woman from the German-Dutch border area: She filed a lawsuit before the Regional Social Court of North Rhine-Westphalia because the German pension insurance did not want to take into account her child-rearing time in the Netherlands. The plaintiff lived for many years in the Netherlands, near Aachen. She had completed her training as a cross-border commuter in Aachen, but was never subject to social security contributions. She had two children whom she had raised in the Netherlands and was not working during this time. It was not until many years later that she moved to Germany and paid into the pension fund for the first time." + }, + { + "_itemAll": 57, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "This is what happened to a woman from the German-Dutch border area: She sued the state social court of North Rhine-Westphalia because the German pension insurance did not want to take into account the time she spent raising children in the Netherlands. The plaintiff lived in the Netherlands near Aachen for many years. She completed her training as a cross-border commuter in Aachen, but was never subject to social security contributions. She had two children who she raised in the Netherlands and did not work during this time. It was only many years later that she moved to Germany and then paid into the pension fund for the first time." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 27, + "documentID": "1#1-101", + "isCompleteDocument": false, + "itemID": 7, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::1#1-101::8", + "segmentText": "

Kein Unterschied zwischen Erziehung im In- und Ausland

", + "targets": [ + { + "_itemAll": 58, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "

No difference between education at home and abroad

" + }, + { + "_itemAll": 59, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "

No difference between education at home and abroad

" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 28, + "documentID": "1#1-101", + "isCompleteDocument": false, + "itemID": 8, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::1#1-101::9", + "segmentText": "Als die Frau erwerbsunf\u00e4hig wurde, rechnete die Deutsche Rentenversicherung die Kindererziehungszeit in den Niederlanden nicht auf ihren Rentenanspruch an. Der Europ\u00e4ische Gerichtshof sieht das anders: F\u00fcr die Anrechnung kommt es darauf an, ob zwischen der Kindererziehungszeit im Ausland und der Versicherungszeit im Inland eine \"hinreichende Verbindung\" besteht.", + "targets": [ + { + "_itemAll": 60, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "When the woman became unable to work, the German pension insurance did not count the child-rearing period in the Netherlands against her pension entitlement. The European Court of Justice takes a different view: for the purposes of crediting, it depends on whether there is a \"sufficient connection\" between the child-rearing period abroad and the insurance period in Germany." + }, + { + "_itemAll": 61, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "When the woman became unable to work, the German pension insurance did not count the time spent raising children in the Netherlands towards her pension entitlement. The European Court of Justice sees it differently: For the credit to be taken into account, it depends on whether there is a \u201csufficient connection\u201d between the time spent raising children abroad and the insurance time at home." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 29, + "documentID": "1#1-101", + "isCompleteDocument": false, + "itemID": 9, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::1#1-101::10", + "segmentText": "Dieses Kriterium hat der EuGH bereits in fr\u00fcheren Entscheidungen entwickelt. Deswegen war schon l\u00e4nger klar, dass grunds\u00e4tzlich auch Kindererziehungszeiten im EU-Ausland bei der Rentenberechnung ber\u00fccksichtigt werden m\u00fcssen. Neu ist aber, dass eine \"hinreichende Verbindung\" selbst dann besteht, wenn die Betroffene vor der Kindererziehungszeit im Ausland keine Beitr\u00e4ge in die Rentenversicherung eingezahlt hat.", + "targets": [ + { + "_itemAll": 62, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "This criterion has already been developed by the ECJ in previous decisions. For this reason, it has been clear for some time that child-rearing periods in other EU countries must also be taken into account when calculating pensions. What is new, however, is that there is a \"sufficient connection\" even if the person concerned did not pay any contributions to the pension insurance scheme before the child-rearing period abroad." + }, + { + "_itemAll": 63, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "The ECJ has already developed this criterion in previous decisions. It has therefore been clear for some time that, in principle, periods spent raising children in other EU countries must also be taken into account when calculating pensions. What is new, however, is that there is a \u201csufficient connection\u201d even if the person concerned did not pay any contributions to the pension insurance before raising children abroad." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 30, + "documentID": "1#1-101", + "isCompleteDocument": true, + "itemID": 10, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::1#1-101::10", + "segmentText": "EuGH-Urteil st\u00e4rkt Eltern

Erziehungszeit im EU-Ausland z\u00e4hlt f\u00fcr Rente

Stand: 22.02.2024 16:49 Uhr Erziehungszeiten im EU-Ausland k\u00f6nnen laut EuGH auch dann bei der Rente ber\u00fccksichtigt werden, wenn zuvor nicht in die deutsche Rentenkasse eingezahlt wurde. Konkret ging es um eine Deutsche, die lange in den Niederlanden wohnte. Von Alena Lagm\u00f6ller, ARD-Rechtsredaktion EU-B\u00fcrger genie\u00dfen Freiz\u00fcgigkeit - sie haben das Recht, sich frei zwischen den Mitgliedsstaaten zu bewegen. Arbeitszeiten, die im EU-Ausland verrichtet werden, werden auf den inl\u00e4ndischen Rentenanspruch angerechnet.Doch wer im Ausland Kinder erzogen hat, der muss mitunter um eine Anrechnung der Zeiten auf den Rentenanspruch k\u00e4mpfen. So erging es auch einer Frau aus dem deutsch-niederl\u00e4ndischen Grenzgebiet: Sie hat vor dem Landessozialgericht Nordrhein-Westfalen geklagt, weil die Deutsche Rentenversicherung ihre Kindererziehungszeit in den Niederlanden nicht anrechnen wollte. Die Kl\u00e4gerin wohnte viele Jahre in den Niederlanden in der N\u00e4he von Aachen. Ihre Ausbildung hatte sie als Grenzg\u00e4ngerin in Aachen absolviert, war aber nie sozialversicherungspflichtig t\u00e4tig. Sie bekam zwei Kinder, die sie in den Niederlanden aufgezogen hatte und war w\u00e4hrenddessen nicht berufst\u00e4tig. Erst viele Jahre sp\u00e4ter zog sie nach Deutschland und zahlte dann erstmals in die Rentenkasse ein.

Kein Unterschied zwischen Erziehung im In- und Ausland

Als die Frau erwerbsunf\u00e4hig wurde, rechnete die Deutsche Rentenversicherung die Kindererziehungszeit in den Niederlanden nicht auf ihren Rentenanspruch an. Der Europ\u00e4ische Gerichtshof sieht das anders: F\u00fcr die Anrechnung kommt es darauf an, ob zwischen der Kindererziehungszeit im Ausland und der Versicherungszeit im Inland eine \"hinreichende Verbindung\" besteht. Dieses Kriterium hat der EuGH bereits in fr\u00fcheren Entscheidungen entwickelt. Deswegen war schon l\u00e4nger klar, dass grunds\u00e4tzlich auch Kindererziehungszeiten im EU-Ausland bei der Rentenberechnung ber\u00fccksichtigt werden m\u00fcssen. Neu ist aber, dass eine \"hinreichende Verbindung\" selbst dann besteht, wenn die Betroffene vor der Kindererziehungszeit im Ausland keine Beitr\u00e4ge in die Rentenversicherung eingezahlt hat.", + "targets": [ + { + "_itemAll": 64, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "ECJ ruling strengthens parents

Parental leave in another EU country counts towards pension

Last updated: 22.02.2024 16:49 According to the ECJ, child-rearing periods in other EU countries can also be taken into account in the pension if no previous payment has been made into the German pension fund. Specifically, it was about a German woman who had lived in the Netherlands for a long time. By Alena Lagm\u00f6ller, ARD legal department EU citizens enjoy freedom of movement - they have the right to move freely between member states. Working hours worked in other EU countries are counted towards the domestic pension entitlement. However, those who have raised children abroad sometimes have to fight for their periods to be counted towards their pension entitlement. This is what happened to a woman from the German-Dutch border area: She filed a lawsuit before the Regional Social Court of North Rhine-Westphalia because the German pension insurance did not want to take into account her child-rearing time in the Netherlands. The plaintiff lived for many years in the Netherlands, near Aachen. She had completed her training as a cross-border commuter in Aachen, but was never subject to social security contributions. She had two children whom she had raised in the Netherlands and was not working during this time. It was not until many years later that she moved to Germany and paid into the pension fund for the first time.

No difference between education at home and abroad

When the woman became unable to work, the German pension insurance did not count the child-rearing period in the Netherlands against her pension entitlement. The European Court of Justice takes a different view: for the purposes of crediting, it depends on whether there is a \"sufficient connection\" between the child-rearing period abroad and the insurance period in Germany. This criterion has already been developed by the ECJ in previous decisions. For this reason, it has been clear for some time that child-rearing periods in other EU countries must also be taken into account when calculating pensions. What is new, however, is that there is a \"sufficient connection\" even if the person concerned did not pay any contributions to the pension insurance scheme before the child-rearing period abroad." + }, + { + "_itemAll": 65, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "ECJ ruling strengthens parents

Parenting time in another EU country counts towards your pension

As of: February 22, 2024 4:49 p.m According to the ECJ, parenting periods in other EU countries can be taken into account in the pension even if they have not previously been paid into the German pension fund. Specifically, it was about a German woman who had lived in the Netherlands for a long time. By Alena Lagm\u00f6ller, ARD Legal Editor EU citizens enjoy freedom of movement - they have the right to move freely between member states. Working hours carried out in other EU countries are counted towards the domestic pension entitlement. But those who have raised children abroad sometimes have to fight for their periods to be counted towards their pension entitlement. This is what happened to a woman from the German-Dutch border area: She sued the state social court of North Rhine-Westphalia because the German pension insurance did not want to take into account the time she spent raising children in the Netherlands. The plaintiff lived in the Netherlands near Aachen for many years. She completed her training as a cross-border commuter in Aachen, but was never subject to social security contributions. She had two children who she raised in the Netherlands and did not work during this time. It was only many years later that she moved to Germany and then paid into the pension fund for the first time.

No difference between education at home and abroad

When the woman became unable to work, the German pension insurance did not count the time spent raising children in the Netherlands towards her pension entitlement. The European Court of Justice sees it differently: For the credit to be taken into account, it depends on whether there is a \u201csufficient connection\u201d between the time spent raising children abroad and the insurance time at home. The ECJ has already developed this criterion in previous decisions. It has therefore been clear for some time that, in principle, periods spent raising children in other EU countries must also be taken into account when calculating pensions. What is new, however, is that there is a \u201csufficient connection\u201d even if the person concerned did not pay any contributions to the pension insurance before raising children abroad." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 30, + "documentID": "9#1-101", + "isCompleteDocument": false, + "itemID": 0, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::9#1-101::1", + "segmentText": "EuGH-Urteil st\u00e4rkt Eltern", + "targets": [ + { + "_itemAll": 66, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "ECJ ruling strengthens parents" + }, + { + "_itemAll": 67, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "ECJ ruling strengthens parents" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 31, + "documentID": "9#1-101", + "isCompleteDocument": false, + "itemID": 1, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::9#1-101::2", + "segmentText": "

Erziehungszeit im EU-Ausland z\u00e4hlt f\u00fcr Rente

", + "targets": [ + { + "_itemAll": 68, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "

Parenting time in another EU country counts towards your pension

" + }, + { + "_itemAll": 69, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "

Parental leave in another EU country counts towards pension

" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 32, + "documentID": "9#1-101", + "isCompleteDocument": false, + "itemID": 2, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::9#1-101::3", + "segmentText": "Stand: 22.02.2024 16:49 Uhr", + "targets": [ + { + "_itemAll": 70, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "As of: February 22, 2024 4:49 p.m" + }, + { + "_itemAll": 71, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "Last updated: 22.02.2024 16:49" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 33, + "documentID": "9#1-101", + "isCompleteDocument": false, + "itemID": 3, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::9#1-101::4", + "segmentText": "Erziehungszeiten im EU-Ausland k\u00f6nnen laut EuGH auch dann bei der Rente ber\u00fccksichtigt werden, wenn zuvor nicht in die deutsche Rentenkasse eingezahlt wurde. Konkret ging es um eine Deutsche, die lange in den Niederlanden wohnte.", + "targets": [ + { + "_itemAll": 72, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "According to the ECJ, parenting periods in other EU countries can be taken into account in the pension even if they have not previously been paid into the German pension fund. Specifically, it was about a German woman who had lived in the Netherlands for a long time." + }, + { + "_itemAll": 73, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "According to the ECJ, child-rearing periods in other EU countries can also be taken into account in the pension if no previous payment has been made into the German pension fund. Specifically, it was about a German woman who had lived in the Netherlands for a long time." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 34, + "documentID": "9#1-101", + "isCompleteDocument": false, + "itemID": 4, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::9#1-101::5", + "segmentText": "Von Alena Lagm\u00f6ller, ARD-Rechtsredaktion", + "targets": [ + { + "_itemAll": 74, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "By Alena Lagm\u00f6ller, ARD Legal Editor" + }, + { + "_itemAll": 75, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "By Alena Lagm\u00f6ller, ARD legal department" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 35, + "documentID": "9#1-101", + "isCompleteDocument": false, + "itemID": 5, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::9#1-101::6", + "segmentText": "EU-B\u00fcrger genie\u00dfen Freiz\u00fcgigkeit - sie haben das Recht, sich frei zwischen den Mitgliedsstaaten zu bewegen. Arbeitszeiten, die im EU-Ausland verrichtet werden, werden auf den inl\u00e4ndischen Rentenanspruch angerechnet.Doch wer im Ausland Kinder erzogen hat, der muss mitunter um eine Anrechnung der Zeiten auf den Rentenanspruch k\u00e4mpfen.", + "targets": [ + { + "_itemAll": 76, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "EU citizens enjoy freedom of movement - they have the right to move freely between member states. Working hours carried out in other EU countries are counted towards the domestic pension entitlement. But those who have raised children abroad sometimes have to fight for their periods to be counted towards their pension entitlement." + }, + { + "_itemAll": 77, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "EU citizens enjoy freedom of movement - they have the right to move freely between member states. Working hours worked in other EU countries are counted towards the domestic pension entitlement. However, those who have raised children abroad sometimes have to fight for their periods to be counted towards their pension entitlement." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 36, + "documentID": "9#1-101", + "isCompleteDocument": false, + "itemID": 6, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::9#1-101::7", + "segmentText": "So erging es auch einer Frau aus dem deutsch-niederl\u00e4ndischen Grenzgebiet: Sie hat vor dem Landessozialgericht Nordrhein-Westfalen geklagt, weil die Deutsche Rentenversicherung ihre Kindererziehungszeit in den Niederlanden nicht anrechnen wollte. Die Kl\u00e4gerin wohnte viele Jahre in den Niederlanden in der N\u00e4he von Aachen. Ihre Ausbildung hatte sie als Grenzg\u00e4ngerin in Aachen absolviert, war aber nie sozialversicherungspflichtig t\u00e4tig. Sie bekam zwei Kinder, die sie in den Niederlanden aufgezogen hatte und war w\u00e4hrenddessen nicht berufst\u00e4tig. Erst viele Jahre sp\u00e4ter zog sie nach Deutschland und zahlte dann erstmals in die Rentenkasse ein.", + "targets": [ + { + "_itemAll": 78, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "This is what happened to a woman from the German-Dutch border area: She sued the state social court of North Rhine-Westphalia because the German pension insurance did not want to take into account the time she spent raising children in the Netherlands. The plaintiff lived in the Netherlands near Aachen for many years. She completed her training as a cross-border commuter in Aachen, but was never subject to social security contributions. She had two children who she raised in the Netherlands and did not work during this time. It was only many years later that she moved to Germany and then paid into the pension fund for the first time." + }, + { + "_itemAll": 79, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "This is what happened to a woman from the German-Dutch border area: She filed a lawsuit before the Regional Social Court of North Rhine-Westphalia because the German pension insurance did not want to take into account her child-rearing time in the Netherlands. The plaintiff lived for many years in the Netherlands, near Aachen. She had completed her training as a cross-border commuter in Aachen, but was never subject to social security contributions. She had two children whom she had raised in the Netherlands and was not working during this time. It was not until many years later that she moved to Germany and paid into the pension fund for the first time." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 37, + "documentID": "9#1-101", + "isCompleteDocument": false, + "itemID": 7, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::9#1-101::8", + "segmentText": "

Kein Unterschied zwischen Erziehung im In- und Ausland

", + "targets": [ + { + "_itemAll": 80, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "

No difference between education at home and abroad

" + }, + { + "_itemAll": 81, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "

No difference between education at home and abroad

" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 38, + "documentID": "9#1-101", + "isCompleteDocument": false, + "itemID": 8, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::9#1-101::9", + "segmentText": "Als die Frau erwerbsunf\u00e4hig wurde, rechnete die Deutsche Rentenversicherung die Kindererziehungszeit in den Niederlanden nicht auf ihren Rentenanspruch an. Der Europ\u00e4ische Gerichtshof sieht das anders: F\u00fcr die Anrechnung kommt es darauf an, ob zwischen der Kindererziehungszeit im Ausland und der Versicherungszeit im Inland eine \"hinreichende Verbindung\" besteht.", + "targets": [ + { + "_itemAll": 82, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "When the woman became unable to work, the German pension insurance did not count the time spent raising children in the Netherlands towards her pension entitlement. The European Court of Justice sees it differently: For the credit to be taken into account, it depends on whether there is a \u201csufficient connection\u201d between the time spent raising children abroad and the insurance time at home." + }, + { + "_itemAll": 83, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "When the woman became unable to work, the German pension insurance did not count the child-rearing period in the Netherlands against her pension entitlement. The European Court of Justice takes a different view: for the purposes of crediting, it depends on whether there is a \"sufficient connection\" between the child-rearing period abroad and the insurance period in Germany." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 39, + "documentID": "9#1-101", + "isCompleteDocument": false, + "itemID": 9, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::9#1-101::10", + "segmentText": "Dieses Kriterium hat der EuGH bereits in fr\u00fcheren Entscheidungen entwickelt. Deswegen war schon l\u00e4nger klar, dass grunds\u00e4tzlich auch Kindererziehungszeiten im EU-Ausland bei der Rentenberechnung ber\u00fccksichtigt werden m\u00fcssen. Neu ist aber, dass eine \"hinreichende Verbindung\" selbst dann besteht, wenn die Betroffene vor der Kindererziehungszeit im Ausland keine Beitr\u00e4ge in die Rentenversicherung eingezahlt hat.", + "targets": [ + { + "_itemAll": 84, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "The ECJ has already developed this criterion in previous decisions. It has therefore been clear for some time that, in principle, periods spent raising children in other EU countries must also be taken into account when calculating pensions. What is new, however, is that there is a \u201csufficient connection\u201d even if the person concerned did not pay any contributions to the pension insurance before raising children abroad." + }, + { + "_itemAll": 85, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "This criterion has already been developed by the ECJ in previous decisions. For this reason, it has been clear for some time that child-rearing periods in other EU countries must also be taken into account when calculating pensions. What is new, however, is that there is a \"sufficient connection\" even if the person concerned did not pay any contributions to the pension insurance scheme before the child-rearing period abroad." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 40, + "documentID": "9#1-101", + "isCompleteDocument": true, + "itemID": 10, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::9#1-101::10", + "segmentText": "EuGH-Urteil st\u00e4rkt Eltern

Erziehungszeit im EU-Ausland z\u00e4hlt f\u00fcr Rente

Stand: 22.02.2024 16:49 Uhr Erziehungszeiten im EU-Ausland k\u00f6nnen laut EuGH auch dann bei der Rente ber\u00fccksichtigt werden, wenn zuvor nicht in die deutsche Rentenkasse eingezahlt wurde. Konkret ging es um eine Deutsche, die lange in den Niederlanden wohnte. Von Alena Lagm\u00f6ller, ARD-Rechtsredaktion EU-B\u00fcrger genie\u00dfen Freiz\u00fcgigkeit - sie haben das Recht, sich frei zwischen den Mitgliedsstaaten zu bewegen. Arbeitszeiten, die im EU-Ausland verrichtet werden, werden auf den inl\u00e4ndischen Rentenanspruch angerechnet.Doch wer im Ausland Kinder erzogen hat, der muss mitunter um eine Anrechnung der Zeiten auf den Rentenanspruch k\u00e4mpfen. So erging es auch einer Frau aus dem deutsch-niederl\u00e4ndischen Grenzgebiet: Sie hat vor dem Landessozialgericht Nordrhein-Westfalen geklagt, weil die Deutsche Rentenversicherung ihre Kindererziehungszeit in den Niederlanden nicht anrechnen wollte. Die Kl\u00e4gerin wohnte viele Jahre in den Niederlanden in der N\u00e4he von Aachen. Ihre Ausbildung hatte sie als Grenzg\u00e4ngerin in Aachen absolviert, war aber nie sozialversicherungspflichtig t\u00e4tig. Sie bekam zwei Kinder, die sie in den Niederlanden aufgezogen hatte und war w\u00e4hrenddessen nicht berufst\u00e4tig. Erst viele Jahre sp\u00e4ter zog sie nach Deutschland und zahlte dann erstmals in die Rentenkasse ein.

Kein Unterschied zwischen Erziehung im In- und Ausland

Als die Frau erwerbsunf\u00e4hig wurde, rechnete die Deutsche Rentenversicherung die Kindererziehungszeit in den Niederlanden nicht auf ihren Rentenanspruch an. Der Europ\u00e4ische Gerichtshof sieht das anders: F\u00fcr die Anrechnung kommt es darauf an, ob zwischen der Kindererziehungszeit im Ausland und der Versicherungszeit im Inland eine \"hinreichende Verbindung\" besteht. Dieses Kriterium hat der EuGH bereits in fr\u00fcheren Entscheidungen entwickelt. Deswegen war schon l\u00e4nger klar, dass grunds\u00e4tzlich auch Kindererziehungszeiten im EU-Ausland bei der Rentenberechnung ber\u00fccksichtigt werden m\u00fcssen. Neu ist aber, dass eine \"hinreichende Verbindung\" selbst dann besteht, wenn die Betroffene vor der Kindererziehungszeit im Ausland keine Beitr\u00e4ge in die Rentenversicherung eingezahlt hat.", + "targets": [ + { + "_itemAll": 86, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "ECJ ruling strengthens parents

Parenting time in another EU country counts towards your pension

As of: February 22, 2024 4:49 p.m According to the ECJ, parenting periods in other EU countries can be taken into account in the pension even if they have not previously been paid into the German pension fund. Specifically, it was about a German woman who had lived in the Netherlands for a long time. By Alena Lagm\u00f6ller, ARD Legal Editor EU citizens enjoy freedom of movement - they have the right to move freely between member states. Working hours carried out in other EU countries are counted towards the domestic pension entitlement. But those who have raised children abroad sometimes have to fight for their periods to be counted towards their pension entitlement. This is what happened to a woman from the German-Dutch border area: She sued the state social court of North Rhine-Westphalia because the German pension insurance did not want to take into account the time she spent raising children in the Netherlands. The plaintiff lived in the Netherlands near Aachen for many years. She completed her training as a cross-border commuter in Aachen, but was never subject to social security contributions. She had two children who she raised in the Netherlands and did not work during this time. It was only many years later that she moved to Germany and then paid into the pension fund for the first time.

No difference between education at home and abroad

When the woman became unable to work, the German pension insurance did not count the time spent raising children in the Netherlands towards her pension entitlement. The European Court of Justice sees it differently: For the credit to be taken into account, it depends on whether there is a \u201csufficient connection\u201d between the time spent raising children abroad and the insurance time at home. The ECJ has already developed this criterion in previous decisions. It has therefore been clear for some time that, in principle, periods spent raising children in other EU countries must also be taken into account when calculating pensions. What is new, however, is that there is a \u201csufficient connection\u201d even if the person concerned did not pay any contributions to the pension insurance before raising children abroad." + }, + { + "_itemAll": 87, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "ECJ ruling strengthens parents

Parental leave in another EU country counts towards pension

Last updated: 22.02.2024 16:49 According to the ECJ, child-rearing periods in other EU countries can also be taken into account in the pension if no previous payment has been made into the German pension fund. Specifically, it was about a German woman who had lived in the Netherlands for a long time. By Alena Lagm\u00f6ller, ARD legal department EU citizens enjoy freedom of movement - they have the right to move freely between member states. Working hours worked in other EU countries are counted towards the domestic pension entitlement. However, those who have raised children abroad sometimes have to fight for their periods to be counted towards their pension entitlement. This is what happened to a woman from the German-Dutch border area: She filed a lawsuit before the Regional Social Court of North Rhine-Westphalia because the German pension insurance did not want to take into account her child-rearing time in the Netherlands. The plaintiff lived for many years in the Netherlands, near Aachen. She had completed her training as a cross-border commuter in Aachen, but was never subject to social security contributions. She had two children whom she had raised in the Netherlands and was not working during this time. It was not until many years later that she moved to Germany and paid into the pension fund for the first time.

No difference between education at home and abroad

When the woman became unable to work, the German pension insurance did not count the child-rearing period in the Netherlands against her pension entitlement. The European Court of Justice takes a different view: for the purposes of crediting, it depends on whether there is a \"sufficient connection\" between the child-rearing period abroad and the insurance period in Germany. This criterion has already been developed by the ECJ in previous decisions. For this reason, it has been clear for some time that child-rearing periods in other EU countries must also be taken into account when calculating pensions. What is new, however, is that there is a \"sufficient connection\" even if the person concerned did not pay any contributions to the pension insurance scheme before the child-rearing period abroad." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 40, + "documentID": "3#1-101", + "isCompleteDocument": false, + "itemID": 0, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::3#1-101::1", + "segmentText": "EuGH-Urteil st\u00e4rkt Eltern", + "targets": [ + { + "_itemAll": 88, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "ECJ ruling strengthens parents" + }, + { + "_itemAll": 89, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "ECJ ruling strengthens parents" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 41, + "documentID": "3#1-101", + "isCompleteDocument": false, + "itemID": 1, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::3#1-101::2", + "segmentText": "

Erziehungszeit im EU-Ausland z\u00e4hlt f\u00fcr Rente

", + "targets": [ + { + "_itemAll": 90, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "

Parental leave in another EU country counts towards pension

" + }, + { + "_itemAll": 91, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "

Parenting time in another EU country counts towards your pension

" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 42, + "documentID": "3#1-101", + "isCompleteDocument": false, + "itemID": 2, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::3#1-101::3", + "segmentText": "Stand: 22.02.2024 16:49 Uhr", + "targets": [ + { + "_itemAll": 92, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "Last updated: 22.02.2024 16:49" + }, + { + "_itemAll": 93, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "As of: February 22, 2024 4:49 p.m" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 43, + "documentID": "3#1-101", + "isCompleteDocument": false, + "itemID": 3, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::3#1-101::4", + "segmentText": "Erziehungszeiten im EU-Ausland k\u00f6nnen laut EuGH auch dann bei der Rente ber\u00fccksichtigt werden, wenn zuvor nicht in die deutsche Rentenkasse eingezahlt wurde. Konkret ging es um eine Deutsche, die lange in den Niederlanden wohnte.", + "targets": [ + { + "_itemAll": 94, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "According to the ECJ, child-rearing periods in other EU countries can also be taken into account in the pension if no previous payment has been made into the German pension fund. Specifically, it was about a German woman who had lived in the Netherlands for a long time." + }, + { + "_itemAll": 95, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "According to the ECJ, parenting periods in other EU countries can be taken into account in the pension even if they have not previously been paid into the German pension fund. Specifically, it was about a German woman who had lived in the Netherlands for a long time." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 44, + "documentID": "3#1-101", + "isCompleteDocument": false, + "itemID": 4, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::3#1-101::5", + "segmentText": "Von Alena Lagm\u00f6ller, ARD-Rechtsredaktion", + "targets": [ + { + "_itemAll": 96, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "By Alena Lagm\u00f6ller, ARD legal department" + }, + { + "_itemAll": 97, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "By Alena Lagm\u00f6ller, ARD Legal Editor" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 45, + "documentID": "3#1-101", + "isCompleteDocument": false, + "itemID": 5, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::3#1-101::6", + "segmentText": "EU-B\u00fcrger genie\u00dfen Freiz\u00fcgigkeit - sie haben das Recht, sich frei zwischen den Mitgliedsstaaten zu bewegen. Arbeitszeiten, die im EU-Ausland verrichtet werden, werden auf den inl\u00e4ndischen Rentenanspruch angerechnet.Doch wer im Ausland Kinder erzogen hat, der muss mitunter um eine Anrechnung der Zeiten auf den Rentenanspruch k\u00e4mpfen.", + "targets": [ + { + "_itemAll": 98, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "EU citizens enjoy freedom of movement - they have the right to move freely between member states. Working hours worked in other EU countries are counted towards the domestic pension entitlement. However, those who have raised children abroad sometimes have to fight for their periods to be counted towards their pension entitlement." + }, + { + "_itemAll": 99, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "EU citizens enjoy freedom of movement - they have the right to move freely between member states. Working hours carried out in other EU countries are counted towards the domestic pension entitlement. But those who have raised children abroad sometimes have to fight for their periods to be counted towards their pension entitlement." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 46, + "documentID": "3#1-101", + "isCompleteDocument": false, + "itemID": 6, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::3#1-101::7", + "segmentText": "So erging es auch einer Frau aus dem deutsch-niederl\u00e4ndischen Grenzgebiet: Sie hat vor dem Landessozialgericht Nordrhein-Westfalen geklagt, weil die Deutsche Rentenversicherung ihre Kindererziehungszeit in den Niederlanden nicht anrechnen wollte. Die Kl\u00e4gerin wohnte viele Jahre in den Niederlanden in der N\u00e4he von Aachen. Ihre Ausbildung hatte sie als Grenzg\u00e4ngerin in Aachen absolviert, war aber nie sozialversicherungspflichtig t\u00e4tig. Sie bekam zwei Kinder, die sie in den Niederlanden aufgezogen hatte und war w\u00e4hrenddessen nicht berufst\u00e4tig. Erst viele Jahre sp\u00e4ter zog sie nach Deutschland und zahlte dann erstmals in die Rentenkasse ein.", + "targets": [ + { + "_itemAll": 100, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "This is what happened to a woman from the German-Dutch border area: She filed a lawsuit before the Regional Social Court of North Rhine-Westphalia because the German pension insurance did not want to take into account her child-rearing time in the Netherlands. The plaintiff lived for many years in the Netherlands, near Aachen. She had completed her training as a cross-border commuter in Aachen, but was never subject to social security contributions. She had two children whom she had raised in the Netherlands and was not working during this time. It was not until many years later that she moved to Germany and paid into the pension fund for the first time." + }, + { + "_itemAll": 101, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "This is what happened to a woman from the German-Dutch border area: She sued the state social court of North Rhine-Westphalia because the German pension insurance did not want to take into account the time she spent raising children in the Netherlands. The plaintiff lived in the Netherlands near Aachen for many years. She completed her training as a cross-border commuter in Aachen, but was never subject to social security contributions. She had two children who she raised in the Netherlands and did not work during this time. It was only many years later that she moved to Germany and then paid into the pension fund for the first time." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 47, + "documentID": "3#1-101", + "isCompleteDocument": false, + "itemID": 7, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::3#1-101::8", + "segmentText": "

Kein Unterschied zwischen Erziehung im In- und Ausland

", + "targets": [ + { + "_itemAll": 102, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "

No difference between education at home and abroad

" + }, + { + "_itemAll": 103, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "

No difference between education at home and abroad

" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 48, + "documentID": "3#1-101", + "isCompleteDocument": false, + "itemID": 8, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::3#1-101::9", + "segmentText": "Als die Frau erwerbsunf\u00e4hig wurde, rechnete die Deutsche Rentenversicherung die Kindererziehungszeit in den Niederlanden nicht auf ihren Rentenanspruch an. Der Europ\u00e4ische Gerichtshof sieht das anders: F\u00fcr die Anrechnung kommt es darauf an, ob zwischen der Kindererziehungszeit im Ausland und der Versicherungszeit im Inland eine \"hinreichende Verbindung\" besteht.", + "targets": [ + { + "_itemAll": 104, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "When the woman became unable to work, the German pension insurance did not count the child-rearing period in the Netherlands against her pension entitlement. The European Court of Justice takes a different view: for the purposes of crediting, it depends on whether there is a \"sufficient connection\" between the child-rearing period abroad and the insurance period in Germany." + }, + { + "_itemAll": 105, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "When the woman became unable to work, the German pension insurance did not count the time spent raising children in the Netherlands towards her pension entitlement. The European Court of Justice sees it differently: For the credit to be taken into account, it depends on whether there is a \u201csufficient connection\u201d between the time spent raising children abroad and the insurance time at home." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 49, + "documentID": "3#1-101", + "isCompleteDocument": false, + "itemID": 9, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::3#1-101::10", + "segmentText": "Dieses Kriterium hat der EuGH bereits in fr\u00fcheren Entscheidungen entwickelt. Deswegen war schon l\u00e4nger klar, dass grunds\u00e4tzlich auch Kindererziehungszeiten im EU-Ausland bei der Rentenberechnung ber\u00fccksichtigt werden m\u00fcssen. Neu ist aber, dass eine \"hinreichende Verbindung\" selbst dann besteht, wenn die Betroffene vor der Kindererziehungszeit im Ausland keine Beitr\u00e4ge in die Rentenversicherung eingezahlt hat.", + "targets": [ + { + "_itemAll": 106, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "This criterion has already been developed by the ECJ in previous decisions. For this reason, it has been clear for some time that child-rearing periods in other EU countries must also be taken into account when calculating pensions. What is new, however, is that there is a \"sufficient connection\" even if the person concerned did not pay any contributions to the pension insurance scheme before the child-rearing period abroad." + }, + { + "_itemAll": 107, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "The ECJ has already developed this criterion in previous decisions. It has therefore been clear for some time that, in principle, periods spent raising children in other EU countries must also be taken into account when calculating pensions. What is new, however, is that there is a \u201csufficient connection\u201d even if the person concerned did not pay any contributions to the pension insurance before raising children abroad." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 50, + "documentID": "3#1-101", + "isCompleteDocument": true, + "itemID": 10, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::3#1-101::10", + "segmentText": "EuGH-Urteil st\u00e4rkt Eltern

Erziehungszeit im EU-Ausland z\u00e4hlt f\u00fcr Rente

Stand: 22.02.2024 16:49 Uhr Erziehungszeiten im EU-Ausland k\u00f6nnen laut EuGH auch dann bei der Rente ber\u00fccksichtigt werden, wenn zuvor nicht in die deutsche Rentenkasse eingezahlt wurde. Konkret ging es um eine Deutsche, die lange in den Niederlanden wohnte. Von Alena Lagm\u00f6ller, ARD-Rechtsredaktion EU-B\u00fcrger genie\u00dfen Freiz\u00fcgigkeit - sie haben das Recht, sich frei zwischen den Mitgliedsstaaten zu bewegen. Arbeitszeiten, die im EU-Ausland verrichtet werden, werden auf den inl\u00e4ndischen Rentenanspruch angerechnet.Doch wer im Ausland Kinder erzogen hat, der muss mitunter um eine Anrechnung der Zeiten auf den Rentenanspruch k\u00e4mpfen. So erging es auch einer Frau aus dem deutsch-niederl\u00e4ndischen Grenzgebiet: Sie hat vor dem Landessozialgericht Nordrhein-Westfalen geklagt, weil die Deutsche Rentenversicherung ihre Kindererziehungszeit in den Niederlanden nicht anrechnen wollte. Die Kl\u00e4gerin wohnte viele Jahre in den Niederlanden in der N\u00e4he von Aachen. Ihre Ausbildung hatte sie als Grenzg\u00e4ngerin in Aachen absolviert, war aber nie sozialversicherungspflichtig t\u00e4tig. Sie bekam zwei Kinder, die sie in den Niederlanden aufgezogen hatte und war w\u00e4hrenddessen nicht berufst\u00e4tig. Erst viele Jahre sp\u00e4ter zog sie nach Deutschland und zahlte dann erstmals in die Rentenkasse ein.

Kein Unterschied zwischen Erziehung im In- und Ausland

Als die Frau erwerbsunf\u00e4hig wurde, rechnete die Deutsche Rentenversicherung die Kindererziehungszeit in den Niederlanden nicht auf ihren Rentenanspruch an. Der Europ\u00e4ische Gerichtshof sieht das anders: F\u00fcr die Anrechnung kommt es darauf an, ob zwischen der Kindererziehungszeit im Ausland und der Versicherungszeit im Inland eine \"hinreichende Verbindung\" besteht. Dieses Kriterium hat der EuGH bereits in fr\u00fcheren Entscheidungen entwickelt. Deswegen war schon l\u00e4nger klar, dass grunds\u00e4tzlich auch Kindererziehungszeiten im EU-Ausland bei der Rentenberechnung ber\u00fccksichtigt werden m\u00fcssen. Neu ist aber, dass eine \"hinreichende Verbindung\" selbst dann besteht, wenn die Betroffene vor der Kindererziehungszeit im Ausland keine Beitr\u00e4ge in die Rentenversicherung eingezahlt hat.", + "targets": [ + { + "_itemAll": 108, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "ECJ ruling strengthens parents

Parental leave in another EU country counts towards pension

Last updated: 22.02.2024 16:49 According to the ECJ, child-rearing periods in other EU countries can also be taken into account in the pension if no previous payment has been made into the German pension fund. Specifically, it was about a German woman who had lived in the Netherlands for a long time. By Alena Lagm\u00f6ller, ARD legal department EU citizens enjoy freedom of movement - they have the right to move freely between member states. Working hours worked in other EU countries are counted towards the domestic pension entitlement. However, those who have raised children abroad sometimes have to fight for their periods to be counted towards their pension entitlement. This is what happened to a woman from the German-Dutch border area: She filed a lawsuit before the Regional Social Court of North Rhine-Westphalia because the German pension insurance did not want to take into account her child-rearing time in the Netherlands. The plaintiff lived for many years in the Netherlands, near Aachen. She had completed her training as a cross-border commuter in Aachen, but was never subject to social security contributions. She had two children whom she had raised in the Netherlands and was not working during this time. It was not until many years later that she moved to Germany and paid into the pension fund for the first time.

No difference between education at home and abroad

When the woman became unable to work, the German pension insurance did not count the child-rearing period in the Netherlands against her pension entitlement. The European Court of Justice takes a different view: for the purposes of crediting, it depends on whether there is a \"sufficient connection\" between the child-rearing period abroad and the insurance period in Germany. This criterion has already been developed by the ECJ in previous decisions. For this reason, it has been clear for some time that child-rearing periods in other EU countries must also be taken into account when calculating pensions. What is new, however, is that there is a \"sufficient connection\" even if the person concerned did not pay any contributions to the pension insurance scheme before the child-rearing period abroad." + }, + { + "_itemAll": 109, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "ECJ ruling strengthens parents

Parenting time in another EU country counts towards your pension

As of: February 22, 2024 4:49 p.m According to the ECJ, parenting periods in other EU countries can be taken into account in the pension even if they have not previously been paid into the German pension fund. Specifically, it was about a German woman who had lived in the Netherlands for a long time. By Alena Lagm\u00f6ller, ARD Legal Editor EU citizens enjoy freedom of movement - they have the right to move freely between member states. Working hours carried out in other EU countries are counted towards the domestic pension entitlement. But those who have raised children abroad sometimes have to fight for their periods to be counted towards their pension entitlement. This is what happened to a woman from the German-Dutch border area: She sued the state social court of North Rhine-Westphalia because the German pension insurance did not want to take into account the time she spent raising children in the Netherlands. The plaintiff lived in the Netherlands near Aachen for many years. She completed her training as a cross-border commuter in Aachen, but was never subject to social security contributions. She had two children who she raised in the Netherlands and did not work during this time. It was only many years later that she moved to Germany and then paid into the pension fund for the first time.

No difference between education at home and abroad

When the woman became unable to work, the German pension insurance did not count the time spent raising children in the Netherlands towards her pension entitlement. The European Court of Justice sees it differently: For the credit to be taken into account, it depends on whether there is a \u201csufficient connection\u201d between the time spent raising children abroad and the insurance time at home. The ECJ has already developed this criterion in previous decisions. It has therefore been clear for some time that, in principle, periods spent raising children in other EU countries must also be taken into account when calculating pensions. What is new, however, is that there is a \u201csufficient connection\u201d even if the person concerned did not pay any contributions to the pension insurance before raising children abroad." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 50, + "documentID": "2#1-101", + "isCompleteDocument": false, + "itemID": 0, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::2#1-101::1", + "segmentText": "EuGH-Urteil st\u00e4rkt Eltern", + "targets": [ + { + "_itemAll": 110, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "ECJ ruling strengthens parents" + }, + { + "_itemAll": 111, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "ECJ ruling strengthens parents" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 51, + "documentID": "2#1-101", + "isCompleteDocument": false, + "itemID": 1, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::2#1-101::2", + "segmentText": "

Erziehungszeit im EU-Ausland z\u00e4hlt f\u00fcr Rente

", + "targets": [ + { + "_itemAll": 112, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "

Parenting time in another EU country counts towards your pension

" + }, + { + "_itemAll": 113, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "

Parental leave in another EU country counts towards pension

" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 52, + "documentID": "2#1-101", + "isCompleteDocument": false, + "itemID": 2, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::2#1-101::3", + "segmentText": "Stand: 22.02.2024 16:49 Uhr", + "targets": [ + { + "_itemAll": 114, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "As of: February 22, 2024 4:49 p.m" + }, + { + "_itemAll": 115, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "Last updated: 22.02.2024 16:49" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 53, + "documentID": "2#1-101", + "isCompleteDocument": false, + "itemID": 3, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::2#1-101::4", + "segmentText": "Erziehungszeiten im EU-Ausland k\u00f6nnen laut EuGH auch dann bei der Rente ber\u00fccksichtigt werden, wenn zuvor nicht in die deutsche Rentenkasse eingezahlt wurde. Konkret ging es um eine Deutsche, die lange in den Niederlanden wohnte.", + "targets": [ + { + "_itemAll": 116, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "According to the ECJ, parenting periods in other EU countries can be taken into account in the pension even if they have not previously been paid into the German pension fund. Specifically, it was about a German woman who had lived in the Netherlands for a long time." + }, + { + "_itemAll": 117, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "According to the ECJ, child-rearing periods in other EU countries can also be taken into account in the pension if no previous payment has been made into the German pension fund. Specifically, it was about a German woman who had lived in the Netherlands for a long time." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 54, + "documentID": "2#1-101", + "isCompleteDocument": false, + "itemID": 4, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::2#1-101::5", + "segmentText": "Von Alena Lagm\u00f6ller, ARD-Rechtsredaktion", + "targets": [ + { + "_itemAll": 118, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "By Alena Lagm\u00f6ller, ARD Legal Editor" + }, + { + "_itemAll": 119, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "By Alena Lagm\u00f6ller, ARD legal department" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 55, + "documentID": "2#1-101", + "isCompleteDocument": false, + "itemID": 5, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::2#1-101::6", + "segmentText": "EU-B\u00fcrger genie\u00dfen Freiz\u00fcgigkeit - sie haben das Recht, sich frei zwischen den Mitgliedsstaaten zu bewegen. Arbeitszeiten, die im EU-Ausland verrichtet werden, werden auf den inl\u00e4ndischen Rentenanspruch angerechnet.Doch wer im Ausland Kinder erzogen hat, der muss mitunter um eine Anrechnung der Zeiten auf den Rentenanspruch k\u00e4mpfen.", + "targets": [ + { + "_itemAll": 120, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "EU citizens enjoy freedom of movement - they have the right to move freely between member states. Working hours carried out in other EU countries are counted towards the domestic pension entitlement. But those who have raised children abroad sometimes have to fight for their periods to be counted towards their pension entitlement." + }, + { + "_itemAll": 121, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "EU citizens enjoy freedom of movement - they have the right to move freely between member states. Working hours worked in other EU countries are counted towards the domestic pension entitlement. However, those who have raised children abroad sometimes have to fight for their periods to be counted towards their pension entitlement." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 56, + "documentID": "2#1-101", + "isCompleteDocument": false, + "itemID": 6, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::2#1-101::7", + "segmentText": "So erging es auch einer Frau aus dem deutsch-niederl\u00e4ndischen Grenzgebiet: Sie hat vor dem Landessozialgericht Nordrhein-Westfalen geklagt, weil die Deutsche Rentenversicherung ihre Kindererziehungszeit in den Niederlanden nicht anrechnen wollte. Die Kl\u00e4gerin wohnte viele Jahre in den Niederlanden in der N\u00e4he von Aachen. Ihre Ausbildung hatte sie als Grenzg\u00e4ngerin in Aachen absolviert, war aber nie sozialversicherungspflichtig t\u00e4tig. Sie bekam zwei Kinder, die sie in den Niederlanden aufgezogen hatte und war w\u00e4hrenddessen nicht berufst\u00e4tig. Erst viele Jahre sp\u00e4ter zog sie nach Deutschland und zahlte dann erstmals in die Rentenkasse ein.", + "targets": [ + { + "_itemAll": 122, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "This is what happened to a woman from the German-Dutch border area: She sued the state social court of North Rhine-Westphalia because the German pension insurance did not want to take into account the time she spent raising children in the Netherlands. The plaintiff lived in the Netherlands near Aachen for many years. She completed her training as a cross-border commuter in Aachen, but was never subject to social security contributions. She had two children who she raised in the Netherlands and did not work during this time. It was only many years later that she moved to Germany and then paid into the pension fund for the first time." + }, + { + "_itemAll": 123, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "This is what happened to a woman from the German-Dutch border area: She filed a lawsuit before the Regional Social Court of North Rhine-Westphalia because the German pension insurance did not want to take into account her child-rearing time in the Netherlands. The plaintiff lived for many years in the Netherlands, near Aachen. She had completed her training as a cross-border commuter in Aachen, but was never subject to social security contributions. She had two children whom she had raised in the Netherlands and was not working during this time. It was not until many years later that she moved to Germany and paid into the pension fund for the first time." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 57, + "documentID": "2#1-101", + "isCompleteDocument": false, + "itemID": 7, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::2#1-101::8", + "segmentText": "

Kein Unterschied zwischen Erziehung im In- und Ausland

", + "targets": [ + { + "_itemAll": 124, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "

No difference between education at home and abroad

" + }, + { + "_itemAll": 125, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "

No difference between education at home and abroad

" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 58, + "documentID": "2#1-101", + "isCompleteDocument": false, + "itemID": 8, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::2#1-101::9", + "segmentText": "Als die Frau erwerbsunf\u00e4hig wurde, rechnete die Deutsche Rentenversicherung die Kindererziehungszeit in den Niederlanden nicht auf ihren Rentenanspruch an. Der Europ\u00e4ische Gerichtshof sieht das anders: F\u00fcr die Anrechnung kommt es darauf an, ob zwischen der Kindererziehungszeit im Ausland und der Versicherungszeit im Inland eine \"hinreichende Verbindung\" besteht.", + "targets": [ + { + "_itemAll": 126, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "When the woman became unable to work, the German pension insurance did not count the time spent raising children in the Netherlands towards her pension entitlement. The European Court of Justice sees it differently: For the credit to be taken into account, it depends on whether there is a \u201csufficient connection\u201d between the time spent raising children abroad and the insurance time at home." + }, + { + "_itemAll": 127, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "When the woman became unable to work, the German pension insurance did not count the child-rearing period in the Netherlands against her pension entitlement. The European Court of Justice takes a different view: for the purposes of crediting, it depends on whether there is a \"sufficient connection\" between the child-rearing period abroad and the insurance period in Germany." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 59, + "documentID": "2#1-101", + "isCompleteDocument": false, + "itemID": 9, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::2#1-101::10", + "segmentText": "Dieses Kriterium hat der EuGH bereits in fr\u00fcheren Entscheidungen entwickelt. Deswegen war schon l\u00e4nger klar, dass grunds\u00e4tzlich auch Kindererziehungszeiten im EU-Ausland bei der Rentenberechnung ber\u00fccksichtigt werden m\u00fcssen. Neu ist aber, dass eine \"hinreichende Verbindung\" selbst dann besteht, wenn die Betroffene vor der Kindererziehungszeit im Ausland keine Beitr\u00e4ge in die Rentenversicherung eingezahlt hat.", + "targets": [ + { + "_itemAll": 128, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "The ECJ has already developed this criterion in previous decisions. It has therefore been clear for some time that, in principle, periods spent raising children in other EU countries must also be taken into account when calculating pensions. What is new, however, is that there is a \u201csufficient connection\u201d even if the person concerned did not pay any contributions to the pension insurance before raising children abroad." + }, + { + "_itemAll": 129, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "This criterion has already been developed by the ECJ in previous decisions. For this reason, it has been clear for some time that child-rearing periods in other EU countries must also be taken into account when calculating pensions. What is new, however, is that there is a \"sufficient connection\" even if the person concerned did not pay any contributions to the pension insurance scheme before the child-rearing period abroad." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 60, + "documentID": "2#1-101", + "isCompleteDocument": true, + "itemID": 10, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::2#1-101::10", + "segmentText": "EuGH-Urteil st\u00e4rkt Eltern

Erziehungszeit im EU-Ausland z\u00e4hlt f\u00fcr Rente

Stand: 22.02.2024 16:49 Uhr Erziehungszeiten im EU-Ausland k\u00f6nnen laut EuGH auch dann bei der Rente ber\u00fccksichtigt werden, wenn zuvor nicht in die deutsche Rentenkasse eingezahlt wurde. Konkret ging es um eine Deutsche, die lange in den Niederlanden wohnte. Von Alena Lagm\u00f6ller, ARD-Rechtsredaktion EU-B\u00fcrger genie\u00dfen Freiz\u00fcgigkeit - sie haben das Recht, sich frei zwischen den Mitgliedsstaaten zu bewegen. Arbeitszeiten, die im EU-Ausland verrichtet werden, werden auf den inl\u00e4ndischen Rentenanspruch angerechnet.Doch wer im Ausland Kinder erzogen hat, der muss mitunter um eine Anrechnung der Zeiten auf den Rentenanspruch k\u00e4mpfen. So erging es auch einer Frau aus dem deutsch-niederl\u00e4ndischen Grenzgebiet: Sie hat vor dem Landessozialgericht Nordrhein-Westfalen geklagt, weil die Deutsche Rentenversicherung ihre Kindererziehungszeit in den Niederlanden nicht anrechnen wollte. Die Kl\u00e4gerin wohnte viele Jahre in den Niederlanden in der N\u00e4he von Aachen. Ihre Ausbildung hatte sie als Grenzg\u00e4ngerin in Aachen absolviert, war aber nie sozialversicherungspflichtig t\u00e4tig. Sie bekam zwei Kinder, die sie in den Niederlanden aufgezogen hatte und war w\u00e4hrenddessen nicht berufst\u00e4tig. Erst viele Jahre sp\u00e4ter zog sie nach Deutschland und zahlte dann erstmals in die Rentenkasse ein.

Kein Unterschied zwischen Erziehung im In- und Ausland

Als die Frau erwerbsunf\u00e4hig wurde, rechnete die Deutsche Rentenversicherung die Kindererziehungszeit in den Niederlanden nicht auf ihren Rentenanspruch an. Der Europ\u00e4ische Gerichtshof sieht das anders: F\u00fcr die Anrechnung kommt es darauf an, ob zwischen der Kindererziehungszeit im Ausland und der Versicherungszeit im Inland eine \"hinreichende Verbindung\" besteht. Dieses Kriterium hat der EuGH bereits in fr\u00fcheren Entscheidungen entwickelt. Deswegen war schon l\u00e4nger klar, dass grunds\u00e4tzlich auch Kindererziehungszeiten im EU-Ausland bei der Rentenberechnung ber\u00fccksichtigt werden m\u00fcssen. Neu ist aber, dass eine \"hinreichende Verbindung\" selbst dann besteht, wenn die Betroffene vor der Kindererziehungszeit im Ausland keine Beitr\u00e4ge in die Rentenversicherung eingezahlt hat.", + "targets": [ + { + "_itemAll": 130, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "ECJ ruling strengthens parents

Parenting time in another EU country counts towards your pension

As of: February 22, 2024 4:49 p.m According to the ECJ, parenting periods in other EU countries can be taken into account in the pension even if they have not previously been paid into the German pension fund. Specifically, it was about a German woman who had lived in the Netherlands for a long time. By Alena Lagm\u00f6ller, ARD Legal Editor EU citizens enjoy freedom of movement - they have the right to move freely between member states. Working hours carried out in other EU countries are counted towards the domestic pension entitlement. But those who have raised children abroad sometimes have to fight for their periods to be counted towards their pension entitlement. This is what happened to a woman from the German-Dutch border area: She sued the state social court of North Rhine-Westphalia because the German pension insurance did not want to take into account the time she spent raising children in the Netherlands. The plaintiff lived in the Netherlands near Aachen for many years. She completed her training as a cross-border commuter in Aachen, but was never subject to social security contributions. She had two children who she raised in the Netherlands and did not work during this time. It was only many years later that she moved to Germany and then paid into the pension fund for the first time.

No difference between education at home and abroad

When the woman became unable to work, the German pension insurance did not count the time spent raising children in the Netherlands towards her pension entitlement. The European Court of Justice sees it differently: For the credit to be taken into account, it depends on whether there is a \u201csufficient connection\u201d between the time spent raising children abroad and the insurance time at home. The ECJ has already developed this criterion in previous decisions. It has therefore been clear for some time that, in principle, periods spent raising children in other EU countries must also be taken into account when calculating pensions. What is new, however, is that there is a \u201csufficient connection\u201d even if the person concerned did not pay any contributions to the pension insurance before raising children abroad." + }, + { + "_itemAll": 131, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "ECJ ruling strengthens parents

Parental leave in another EU country counts towards pension

Last updated: 22.02.2024 16:49 According to the ECJ, child-rearing periods in other EU countries can also be taken into account in the pension if no previous payment has been made into the German pension fund. Specifically, it was about a German woman who had lived in the Netherlands for a long time. By Alena Lagm\u00f6ller, ARD legal department EU citizens enjoy freedom of movement - they have the right to move freely between member states. Working hours worked in other EU countries are counted towards the domestic pension entitlement. However, those who have raised children abroad sometimes have to fight for their periods to be counted towards their pension entitlement. This is what happened to a woman from the German-Dutch border area: She filed a lawsuit before the Regional Social Court of North Rhine-Westphalia because the German pension insurance did not want to take into account her child-rearing time in the Netherlands. The plaintiff lived for many years in the Netherlands, near Aachen. She had completed her training as a cross-border commuter in Aachen, but was never subject to social security contributions. She had two children whom she had raised in the Netherlands and was not working during this time. It was not until many years later that she moved to Germany and paid into the pension fund for the first time.

No difference between education at home and abroad

When the woman became unable to work, the German pension insurance did not count the child-rearing period in the Netherlands against her pension entitlement. The European Court of Justice takes a different view: for the purposes of crediting, it depends on whether there is a \"sufficient connection\" between the child-rearing period abroad and the insurance period in Germany. This criterion has already been developed by the ECJ in previous decisions. For this reason, it has been clear for some time that child-rearing periods in other EU countries must also be taken into account when calculating pensions. What is new, however, is that there is a \"sufficient connection\" even if the person concerned did not pay any contributions to the pension insurance scheme before the child-rearing period abroad." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 60, + "documentID": "8#1-101", + "isCompleteDocument": false, + "itemID": 0, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::8#1-101::1", + "segmentText": "EuGH-Urteil st\u00e4rkt Eltern", + "targets": [ + { + "_itemAll": 132, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "ECJ ruling strengthens parents" + }, + { + "_itemAll": 133, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "ECJ ruling strengthens parents" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 61, + "documentID": "8#1-101", + "isCompleteDocument": false, + "itemID": 1, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::8#1-101::2", + "segmentText": "

Erziehungszeit im EU-Ausland z\u00e4hlt f\u00fcr Rente

", + "targets": [ + { + "_itemAll": 134, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "

Parental leave in another EU country counts towards pension

" + }, + { + "_itemAll": 135, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "

Parenting time in another EU country counts towards your pension

" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 62, + "documentID": "8#1-101", + "isCompleteDocument": false, + "itemID": 2, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::8#1-101::3", + "segmentText": "Stand: 22.02.2024 16:49 Uhr", + "targets": [ + { + "_itemAll": 136, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "Last updated: 22.02.2024 16:49" + }, + { + "_itemAll": 137, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "As of: February 22, 2024 4:49 p.m" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 63, + "documentID": "8#1-101", + "isCompleteDocument": false, + "itemID": 3, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::8#1-101::4", + "segmentText": "Erziehungszeiten im EU-Ausland k\u00f6nnen laut EuGH auch dann bei der Rente ber\u00fccksichtigt werden, wenn zuvor nicht in die deutsche Rentenkasse eingezahlt wurde. Konkret ging es um eine Deutsche, die lange in den Niederlanden wohnte.", + "targets": [ + { + "_itemAll": 138, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "According to the ECJ, child-rearing periods in other EU countries can also be taken into account in the pension if no previous payment has been made into the German pension fund. Specifically, it was about a German woman who had lived in the Netherlands for a long time." + }, + { + "_itemAll": 139, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "According to the ECJ, parenting periods in other EU countries can be taken into account in the pension even if they have not previously been paid into the German pension fund. Specifically, it was about a German woman who had lived in the Netherlands for a long time." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 64, + "documentID": "8#1-101", + "isCompleteDocument": false, + "itemID": 4, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::8#1-101::5", + "segmentText": "Von Alena Lagm\u00f6ller, ARD-Rechtsredaktion", + "targets": [ + { + "_itemAll": 140, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "By Alena Lagm\u00f6ller, ARD legal department" + }, + { + "_itemAll": 141, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "By Alena Lagm\u00f6ller, ARD Legal Editor" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 65, + "documentID": "8#1-101", + "isCompleteDocument": false, + "itemID": 5, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::8#1-101::6", + "segmentText": "EU-B\u00fcrger genie\u00dfen Freiz\u00fcgigkeit - sie haben das Recht, sich frei zwischen den Mitgliedsstaaten zu bewegen. Arbeitszeiten, die im EU-Ausland verrichtet werden, werden auf den inl\u00e4ndischen Rentenanspruch angerechnet.Doch wer im Ausland Kinder erzogen hat, der muss mitunter um eine Anrechnung der Zeiten auf den Rentenanspruch k\u00e4mpfen.", + "targets": [ + { + "_itemAll": 142, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "EU citizens enjoy freedom of movement - they have the right to move freely between member states. Working hours worked in other EU countries are counted towards the domestic pension entitlement. However, those who have raised children abroad sometimes have to fight for their periods to be counted towards their pension entitlement." + }, + { + "_itemAll": 143, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "EU citizens enjoy freedom of movement - they have the right to move freely between member states. Working hours carried out in other EU countries are counted towards the domestic pension entitlement. But those who have raised children abroad sometimes have to fight for their periods to be counted towards their pension entitlement." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 66, + "documentID": "8#1-101", + "isCompleteDocument": false, + "itemID": 6, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::8#1-101::7", + "segmentText": "So erging es auch einer Frau aus dem deutsch-niederl\u00e4ndischen Grenzgebiet: Sie hat vor dem Landessozialgericht Nordrhein-Westfalen geklagt, weil die Deutsche Rentenversicherung ihre Kindererziehungszeit in den Niederlanden nicht anrechnen wollte. Die Kl\u00e4gerin wohnte viele Jahre in den Niederlanden in der N\u00e4he von Aachen. Ihre Ausbildung hatte sie als Grenzg\u00e4ngerin in Aachen absolviert, war aber nie sozialversicherungspflichtig t\u00e4tig. Sie bekam zwei Kinder, die sie in den Niederlanden aufgezogen hatte und war w\u00e4hrenddessen nicht berufst\u00e4tig. Erst viele Jahre sp\u00e4ter zog sie nach Deutschland und zahlte dann erstmals in die Rentenkasse ein.", + "targets": [ + { + "_itemAll": 144, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "This is what happened to a woman from the German-Dutch border area: She filed a lawsuit before the Regional Social Court of North Rhine-Westphalia because the German pension insurance did not want to take into account her child-rearing time in the Netherlands. The plaintiff lived for many years in the Netherlands, near Aachen. She had completed her training as a cross-border commuter in Aachen, but was never subject to social security contributions. She had two children whom she had raised in the Netherlands and was not working during this time. It was not until many years later that she moved to Germany and paid into the pension fund for the first time." + }, + { + "_itemAll": 145, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "This is what happened to a woman from the German-Dutch border area: She sued the state social court of North Rhine-Westphalia because the German pension insurance did not want to take into account the time she spent raising children in the Netherlands. The plaintiff lived in the Netherlands near Aachen for many years. She completed her training as a cross-border commuter in Aachen, but was never subject to social security contributions. She had two children who she raised in the Netherlands and did not work during this time. It was only many years later that she moved to Germany and then paid into the pension fund for the first time." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 67, + "documentID": "8#1-101", + "isCompleteDocument": false, + "itemID": 7, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::8#1-101::8", + "segmentText": "

Kein Unterschied zwischen Erziehung im In- und Ausland

", + "targets": [ + { + "_itemAll": 146, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "

No difference between education at home and abroad

" + }, + { + "_itemAll": 147, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "

No difference between education at home and abroad

" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 68, + "documentID": "8#1-101", + "isCompleteDocument": false, + "itemID": 8, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::8#1-101::9", + "segmentText": "Als die Frau erwerbsunf\u00e4hig wurde, rechnete die Deutsche Rentenversicherung die Kindererziehungszeit in den Niederlanden nicht auf ihren Rentenanspruch an. Der Europ\u00e4ische Gerichtshof sieht das anders: F\u00fcr die Anrechnung kommt es darauf an, ob zwischen der Kindererziehungszeit im Ausland und der Versicherungszeit im Inland eine \"hinreichende Verbindung\" besteht.", + "targets": [ + { + "_itemAll": 148, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "When the woman became unable to work, the German pension insurance did not count the child-rearing period in the Netherlands against her pension entitlement. The European Court of Justice takes a different view: for the purposes of crediting, it depends on whether there is a \"sufficient connection\" between the child-rearing period abroad and the insurance period in Germany." + }, + { + "_itemAll": 149, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "When the woman became unable to work, the German pension insurance did not count the time spent raising children in the Netherlands towards her pension entitlement. The European Court of Justice sees it differently: For the credit to be taken into account, it depends on whether there is a \u201csufficient connection\u201d between the time spent raising children abroad and the insurance time at home." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 69, + "documentID": "8#1-101", + "isCompleteDocument": false, + "itemID": 9, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::8#1-101::10", + "segmentText": "Dieses Kriterium hat der EuGH bereits in fr\u00fcheren Entscheidungen entwickelt. Deswegen war schon l\u00e4nger klar, dass grunds\u00e4tzlich auch Kindererziehungszeiten im EU-Ausland bei der Rentenberechnung ber\u00fccksichtigt werden m\u00fcssen. Neu ist aber, dass eine \"hinreichende Verbindung\" selbst dann besteht, wenn die Betroffene vor der Kindererziehungszeit im Ausland keine Beitr\u00e4ge in die Rentenversicherung eingezahlt hat.", + "targets": [ + { + "_itemAll": 150, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "This criterion has already been developed by the ECJ in previous decisions. For this reason, it has been clear for some time that child-rearing periods in other EU countries must also be taken into account when calculating pensions. What is new, however, is that there is a \"sufficient connection\" even if the person concerned did not pay any contributions to the pension insurance scheme before the child-rearing period abroad." + }, + { + "_itemAll": 151, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "The ECJ has already developed this criterion in previous decisions. It has therefore been clear for some time that, in principle, periods spent raising children in other EU countries must also be taken into account when calculating pensions. What is new, however, is that there is a \u201csufficient connection\u201d even if the person concerned did not pay any contributions to the pension insurance before raising children abroad." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 70, + "documentID": "8#1-101", + "isCompleteDocument": true, + "itemID": 10, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::8#1-101::10", + "segmentText": "EuGH-Urteil st\u00e4rkt Eltern

Erziehungszeit im EU-Ausland z\u00e4hlt f\u00fcr Rente

Stand: 22.02.2024 16:49 Uhr Erziehungszeiten im EU-Ausland k\u00f6nnen laut EuGH auch dann bei der Rente ber\u00fccksichtigt werden, wenn zuvor nicht in die deutsche Rentenkasse eingezahlt wurde. Konkret ging es um eine Deutsche, die lange in den Niederlanden wohnte. Von Alena Lagm\u00f6ller, ARD-Rechtsredaktion EU-B\u00fcrger genie\u00dfen Freiz\u00fcgigkeit - sie haben das Recht, sich frei zwischen den Mitgliedsstaaten zu bewegen. Arbeitszeiten, die im EU-Ausland verrichtet werden, werden auf den inl\u00e4ndischen Rentenanspruch angerechnet.Doch wer im Ausland Kinder erzogen hat, der muss mitunter um eine Anrechnung der Zeiten auf den Rentenanspruch k\u00e4mpfen. So erging es auch einer Frau aus dem deutsch-niederl\u00e4ndischen Grenzgebiet: Sie hat vor dem Landessozialgericht Nordrhein-Westfalen geklagt, weil die Deutsche Rentenversicherung ihre Kindererziehungszeit in den Niederlanden nicht anrechnen wollte. Die Kl\u00e4gerin wohnte viele Jahre in den Niederlanden in der N\u00e4he von Aachen. Ihre Ausbildung hatte sie als Grenzg\u00e4ngerin in Aachen absolviert, war aber nie sozialversicherungspflichtig t\u00e4tig. Sie bekam zwei Kinder, die sie in den Niederlanden aufgezogen hatte und war w\u00e4hrenddessen nicht berufst\u00e4tig. Erst viele Jahre sp\u00e4ter zog sie nach Deutschland und zahlte dann erstmals in die Rentenkasse ein.

Kein Unterschied zwischen Erziehung im In- und Ausland

Als die Frau erwerbsunf\u00e4hig wurde, rechnete die Deutsche Rentenversicherung die Kindererziehungszeit in den Niederlanden nicht auf ihren Rentenanspruch an. Der Europ\u00e4ische Gerichtshof sieht das anders: F\u00fcr die Anrechnung kommt es darauf an, ob zwischen der Kindererziehungszeit im Ausland und der Versicherungszeit im Inland eine \"hinreichende Verbindung\" besteht. Dieses Kriterium hat der EuGH bereits in fr\u00fcheren Entscheidungen entwickelt. Deswegen war schon l\u00e4nger klar, dass grunds\u00e4tzlich auch Kindererziehungszeiten im EU-Ausland bei der Rentenberechnung ber\u00fccksichtigt werden m\u00fcssen. Neu ist aber, dass eine \"hinreichende Verbindung\" selbst dann besteht, wenn die Betroffene vor der Kindererziehungszeit im Ausland keine Beitr\u00e4ge in die Rentenversicherung eingezahlt hat.", + "targets": [ + { + "_itemAll": 152, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "ECJ ruling strengthens parents

Parental leave in another EU country counts towards pension

Last updated: 22.02.2024 16:49 According to the ECJ, child-rearing periods in other EU countries can also be taken into account in the pension if no previous payment has been made into the German pension fund. Specifically, it was about a German woman who had lived in the Netherlands for a long time. By Alena Lagm\u00f6ller, ARD legal department EU citizens enjoy freedom of movement - they have the right to move freely between member states. Working hours worked in other EU countries are counted towards the domestic pension entitlement. However, those who have raised children abroad sometimes have to fight for their periods to be counted towards their pension entitlement. This is what happened to a woman from the German-Dutch border area: She filed a lawsuit before the Regional Social Court of North Rhine-Westphalia because the German pension insurance did not want to take into account her child-rearing time in the Netherlands. The plaintiff lived for many years in the Netherlands, near Aachen. She had completed her training as a cross-border commuter in Aachen, but was never subject to social security contributions. She had two children whom she had raised in the Netherlands and was not working during this time. It was not until many years later that she moved to Germany and paid into the pension fund for the first time.

No difference between education at home and abroad

When the woman became unable to work, the German pension insurance did not count the child-rearing period in the Netherlands against her pension entitlement. The European Court of Justice takes a different view: for the purposes of crediting, it depends on whether there is a \"sufficient connection\" between the child-rearing period abroad and the insurance period in Germany. This criterion has already been developed by the ECJ in previous decisions. For this reason, it has been clear for some time that child-rearing periods in other EU countries must also be taken into account when calculating pensions. What is new, however, is that there is a \"sufficient connection\" even if the person concerned did not pay any contributions to the pension insurance scheme before the child-rearing period abroad." + }, + { + "_itemAll": 153, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "ECJ ruling strengthens parents

Parenting time in another EU country counts towards your pension

As of: February 22, 2024 4:49 p.m According to the ECJ, parenting periods in other EU countries can be taken into account in the pension even if they have not previously been paid into the German pension fund. Specifically, it was about a German woman who had lived in the Netherlands for a long time. By Alena Lagm\u00f6ller, ARD Legal Editor EU citizens enjoy freedom of movement - they have the right to move freely between member states. Working hours carried out in other EU countries are counted towards the domestic pension entitlement. But those who have raised children abroad sometimes have to fight for their periods to be counted towards their pension entitlement. This is what happened to a woman from the German-Dutch border area: She sued the state social court of North Rhine-Westphalia because the German pension insurance did not want to take into account the time she spent raising children in the Netherlands. The plaintiff lived in the Netherlands near Aachen for many years. She completed her training as a cross-border commuter in Aachen, but was never subject to social security contributions. She had two children who she raised in the Netherlands and did not work during this time. It was only many years later that she moved to Germany and then paid into the pension fund for the first time.

No difference between education at home and abroad

When the woman became unable to work, the German pension insurance did not count the time spent raising children in the Netherlands towards her pension entitlement. The European Court of Justice sees it differently: For the credit to be taken into account, it depends on whether there is a \u201csufficient connection\u201d between the time spent raising children abroad and the insurance time at home. The ECJ has already developed this criterion in previous decisions. It has therefore been clear for some time that, in principle, periods spent raising children in other EU countries must also be taken into account when calculating pensions. What is new, however, is that there is a \u201csufficient connection\u201d even if the person concerned did not pay any contributions to the pension insurance before raising children abroad." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 70, + "documentID": "10#1-101", + "isCompleteDocument": false, + "itemID": 0, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::10#1-101::1", + "segmentText": "EuGH-Urteil st\u00e4rkt Eltern", + "targets": [ + { + "_itemAll": 154, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "ECJ ruling strengthens parents" + }, + { + "_itemAll": 155, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "ECJ ruling strengthens parents" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 71, + "documentID": "10#1-101", + "isCompleteDocument": false, + "itemID": 1, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::10#1-101::2", + "segmentText": "

Erziehungszeit im EU-Ausland z\u00e4hlt f\u00fcr Rente

", + "targets": [ + { + "_itemAll": 156, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "

Parental leave in another EU country counts towards pension

" + }, + { + "_itemAll": 157, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "

Parenting time in another EU country counts towards your pension

" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 72, + "documentID": "10#1-101", + "isCompleteDocument": false, + "itemID": 2, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::10#1-101::3", + "segmentText": "Stand: 22.02.2024 16:49 Uhr", + "targets": [ + { + "_itemAll": 158, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "Last updated: 22.02.2024 16:49" + }, + { + "_itemAll": 159, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "As of: February 22, 2024 4:49 p.m" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 73, + "documentID": "10#1-101", + "isCompleteDocument": false, + "itemID": 3, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::10#1-101::4", + "segmentText": "Erziehungszeiten im EU-Ausland k\u00f6nnen laut EuGH auch dann bei der Rente ber\u00fccksichtigt werden, wenn zuvor nicht in die deutsche Rentenkasse eingezahlt wurde. Konkret ging es um eine Deutsche, die lange in den Niederlanden wohnte.", + "targets": [ + { + "_itemAll": 160, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "According to the ECJ, child-rearing periods in other EU countries can also be taken into account in the pension if no previous payment has been made into the German pension fund. Specifically, it was about a German woman who had lived in the Netherlands for a long time." + }, + { + "_itemAll": 161, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "According to the ECJ, parenting periods in other EU countries can be taken into account in the pension even if they have not previously been paid into the German pension fund. Specifically, it was about a German woman who had lived in the Netherlands for a long time." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 74, + "documentID": "10#1-101", + "isCompleteDocument": false, + "itemID": 4, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::10#1-101::5", + "segmentText": "Von Alena Lagm\u00f6ller, ARD-Rechtsredaktion", + "targets": [ + { + "_itemAll": 162, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "By Alena Lagm\u00f6ller, ARD legal department" + }, + { + "_itemAll": 163, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "By Alena Lagm\u00f6ller, ARD Legal Editor" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 75, + "documentID": "10#1-101", + "isCompleteDocument": false, + "itemID": 5, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::10#1-101::6", + "segmentText": "EU-B\u00fcrger genie\u00dfen Freiz\u00fcgigkeit - sie haben das Recht, sich frei zwischen den Mitgliedsstaaten zu bewegen. Arbeitszeiten, die im EU-Ausland verrichtet werden, werden auf den inl\u00e4ndischen Rentenanspruch angerechnet.Doch wer im Ausland Kinder erzogen hat, der muss mitunter um eine Anrechnung der Zeiten auf den Rentenanspruch k\u00e4mpfen.", + "targets": [ + { + "_itemAll": 164, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "EU citizens enjoy freedom of movement - they have the right to move freely between member states. Working hours worked in other EU countries are counted towards the domestic pension entitlement. However, those who have raised children abroad sometimes have to fight for their periods to be counted towards their pension entitlement." + }, + { + "_itemAll": 165, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "EU citizens enjoy freedom of movement - they have the right to move freely between member states. Working hours carried out in other EU countries are counted towards the domestic pension entitlement. But those who have raised children abroad sometimes have to fight for their periods to be counted towards their pension entitlement." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 76, + "documentID": "10#1-101", + "isCompleteDocument": false, + "itemID": 6, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::10#1-101::7", + "segmentText": "So erging es auch einer Frau aus dem deutsch-niederl\u00e4ndischen Grenzgebiet: Sie hat vor dem Landessozialgericht Nordrhein-Westfalen geklagt, weil die Deutsche Rentenversicherung ihre Kindererziehungszeit in den Niederlanden nicht anrechnen wollte. Die Kl\u00e4gerin wohnte viele Jahre in den Niederlanden in der N\u00e4he von Aachen. Ihre Ausbildung hatte sie als Grenzg\u00e4ngerin in Aachen absolviert, war aber nie sozialversicherungspflichtig t\u00e4tig. Sie bekam zwei Kinder, die sie in den Niederlanden aufgezogen hatte und war w\u00e4hrenddessen nicht berufst\u00e4tig. Erst viele Jahre sp\u00e4ter zog sie nach Deutschland und zahlte dann erstmals in die Rentenkasse ein.", + "targets": [ + { + "_itemAll": 166, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "This is what happened to a woman from the German-Dutch border area: She filed a lawsuit before the Regional Social Court of North Rhine-Westphalia because the German pension insurance did not want to take into account her child-rearing time in the Netherlands. The plaintiff lived for many years in the Netherlands, near Aachen. She had completed her training as a cross-border commuter in Aachen, but was never subject to social security contributions. She had two children whom she had raised in the Netherlands and was not working during this time. It was not until many years later that she moved to Germany and paid into the pension fund for the first time." + }, + { + "_itemAll": 167, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "This is what happened to a woman from the German-Dutch border area: She sued the state social court of North Rhine-Westphalia because the German pension insurance did not want to take into account the time she spent raising children in the Netherlands. The plaintiff lived in the Netherlands near Aachen for many years. She completed her training as a cross-border commuter in Aachen, but was never subject to social security contributions. She had two children who she raised in the Netherlands and did not work during this time. It was only many years later that she moved to Germany and then paid into the pension fund for the first time." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 77, + "documentID": "10#1-101", + "isCompleteDocument": false, + "itemID": 7, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::10#1-101::8", + "segmentText": "

Kein Unterschied zwischen Erziehung im In- und Ausland

", + "targets": [ + { + "_itemAll": 168, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "

No difference between education at home and abroad

" + }, + { + "_itemAll": 169, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "

No difference between education at home and abroad

" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 78, + "documentID": "10#1-101", + "isCompleteDocument": false, + "itemID": 8, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::10#1-101::9", + "segmentText": "Als die Frau erwerbsunf\u00e4hig wurde, rechnete die Deutsche Rentenversicherung die Kindererziehungszeit in den Niederlanden nicht auf ihren Rentenanspruch an. Der Europ\u00e4ische Gerichtshof sieht das anders: F\u00fcr die Anrechnung kommt es darauf an, ob zwischen der Kindererziehungszeit im Ausland und der Versicherungszeit im Inland eine \"hinreichende Verbindung\" besteht.", + "targets": [ + { + "_itemAll": 170, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "When the woman became unable to work, the German pension insurance did not count the child-rearing period in the Netherlands against her pension entitlement. The European Court of Justice takes a different view: for the purposes of crediting, it depends on whether there is a \"sufficient connection\" between the child-rearing period abroad and the insurance period in Germany." + }, + { + "_itemAll": 171, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "When the woman became unable to work, the German pension insurance did not count the time spent raising children in the Netherlands towards her pension entitlement. The European Court of Justice sees it differently: For the credit to be taken into account, it depends on whether there is a \u201csufficient connection\u201d between the time spent raising children abroad and the insurance time at home." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 79, + "documentID": "10#1-101", + "isCompleteDocument": false, + "itemID": 9, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::10#1-101::10", + "segmentText": "Dieses Kriterium hat der EuGH bereits in fr\u00fcheren Entscheidungen entwickelt. Deswegen war schon l\u00e4nger klar, dass grunds\u00e4tzlich auch Kindererziehungszeiten im EU-Ausland bei der Rentenberechnung ber\u00fccksichtigt werden m\u00fcssen. Neu ist aber, dass eine \"hinreichende Verbindung\" selbst dann besteht, wenn die Betroffene vor der Kindererziehungszeit im Ausland keine Beitr\u00e4ge in die Rentenversicherung eingezahlt hat.", + "targets": [ + { + "_itemAll": 172, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "This criterion has already been developed by the ECJ in previous decisions. For this reason, it has been clear for some time that child-rearing periods in other EU countries must also be taken into account when calculating pensions. What is new, however, is that there is a \"sufficient connection\" even if the person concerned did not pay any contributions to the pension insurance scheme before the child-rearing period abroad." + }, + { + "_itemAll": 173, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "The ECJ has already developed this criterion in previous decisions. It has therefore been clear for some time that, in principle, periods spent raising children in other EU countries must also be taken into account when calculating pensions. What is new, however, is that there is a \u201csufficient connection\u201d even if the person concerned did not pay any contributions to the pension insurance before raising children abroad." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 80, + "documentID": "10#1-101", + "isCompleteDocument": true, + "itemID": 10, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::10#1-101::10", + "segmentText": "EuGH-Urteil st\u00e4rkt Eltern

Erziehungszeit im EU-Ausland z\u00e4hlt f\u00fcr Rente

Stand: 22.02.2024 16:49 Uhr Erziehungszeiten im EU-Ausland k\u00f6nnen laut EuGH auch dann bei der Rente ber\u00fccksichtigt werden, wenn zuvor nicht in die deutsche Rentenkasse eingezahlt wurde. Konkret ging es um eine Deutsche, die lange in den Niederlanden wohnte. Von Alena Lagm\u00f6ller, ARD-Rechtsredaktion EU-B\u00fcrger genie\u00dfen Freiz\u00fcgigkeit - sie haben das Recht, sich frei zwischen den Mitgliedsstaaten zu bewegen. Arbeitszeiten, die im EU-Ausland verrichtet werden, werden auf den inl\u00e4ndischen Rentenanspruch angerechnet.Doch wer im Ausland Kinder erzogen hat, der muss mitunter um eine Anrechnung der Zeiten auf den Rentenanspruch k\u00e4mpfen. So erging es auch einer Frau aus dem deutsch-niederl\u00e4ndischen Grenzgebiet: Sie hat vor dem Landessozialgericht Nordrhein-Westfalen geklagt, weil die Deutsche Rentenversicherung ihre Kindererziehungszeit in den Niederlanden nicht anrechnen wollte. Die Kl\u00e4gerin wohnte viele Jahre in den Niederlanden in der N\u00e4he von Aachen. Ihre Ausbildung hatte sie als Grenzg\u00e4ngerin in Aachen absolviert, war aber nie sozialversicherungspflichtig t\u00e4tig. Sie bekam zwei Kinder, die sie in den Niederlanden aufgezogen hatte und war w\u00e4hrenddessen nicht berufst\u00e4tig. Erst viele Jahre sp\u00e4ter zog sie nach Deutschland und zahlte dann erstmals in die Rentenkasse ein.

Kein Unterschied zwischen Erziehung im In- und Ausland

Als die Frau erwerbsunf\u00e4hig wurde, rechnete die Deutsche Rentenversicherung die Kindererziehungszeit in den Niederlanden nicht auf ihren Rentenanspruch an. Der Europ\u00e4ische Gerichtshof sieht das anders: F\u00fcr die Anrechnung kommt es darauf an, ob zwischen der Kindererziehungszeit im Ausland und der Versicherungszeit im Inland eine \"hinreichende Verbindung\" besteht. Dieses Kriterium hat der EuGH bereits in fr\u00fcheren Entscheidungen entwickelt. Deswegen war schon l\u00e4nger klar, dass grunds\u00e4tzlich auch Kindererziehungszeiten im EU-Ausland bei der Rentenberechnung ber\u00fccksichtigt werden m\u00fcssen. Neu ist aber, dass eine \"hinreichende Verbindung\" selbst dann besteht, wenn die Betroffene vor der Kindererziehungszeit im Ausland keine Beitr\u00e4ge in die Rentenversicherung eingezahlt hat.", + "targets": [ + { + "_itemAll": 174, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "ECJ ruling strengthens parents

Parental leave in another EU country counts towards pension

Last updated: 22.02.2024 16:49 According to the ECJ, child-rearing periods in other EU countries can also be taken into account in the pension if no previous payment has been made into the German pension fund. Specifically, it was about a German woman who had lived in the Netherlands for a long time. By Alena Lagm\u00f6ller, ARD legal department EU citizens enjoy freedom of movement - they have the right to move freely between member states. Working hours worked in other EU countries are counted towards the domestic pension entitlement. However, those who have raised children abroad sometimes have to fight for their periods to be counted towards their pension entitlement. This is what happened to a woman from the German-Dutch border area: She filed a lawsuit before the Regional Social Court of North Rhine-Westphalia because the German pension insurance did not want to take into account her child-rearing time in the Netherlands. The plaintiff lived for many years in the Netherlands, near Aachen. She had completed her training as a cross-border commuter in Aachen, but was never subject to social security contributions. She had two children whom she had raised in the Netherlands and was not working during this time. It was not until many years later that she moved to Germany and paid into the pension fund for the first time.

No difference between education at home and abroad

When the woman became unable to work, the German pension insurance did not count the child-rearing period in the Netherlands against her pension entitlement. The European Court of Justice takes a different view: for the purposes of crediting, it depends on whether there is a \"sufficient connection\" between the child-rearing period abroad and the insurance period in Germany. This criterion has already been developed by the ECJ in previous decisions. For this reason, it has been clear for some time that child-rearing periods in other EU countries must also be taken into account when calculating pensions. What is new, however, is that there is a \"sufficient connection\" even if the person concerned did not pay any contributions to the pension insurance scheme before the child-rearing period abroad." + }, + { + "_itemAll": 175, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "ECJ ruling strengthens parents

Parenting time in another EU country counts towards your pension

As of: February 22, 2024 4:49 p.m According to the ECJ, parenting periods in other EU countries can be taken into account in the pension even if they have not previously been paid into the German pension fund. Specifically, it was about a German woman who had lived in the Netherlands for a long time. By Alena Lagm\u00f6ller, ARD Legal Editor EU citizens enjoy freedom of movement - they have the right to move freely between member states. Working hours carried out in other EU countries are counted towards the domestic pension entitlement. But those who have raised children abroad sometimes have to fight for their periods to be counted towards their pension entitlement. This is what happened to a woman from the German-Dutch border area: She sued the state social court of North Rhine-Westphalia because the German pension insurance did not want to take into account the time she spent raising children in the Netherlands. The plaintiff lived in the Netherlands near Aachen for many years. She completed her training as a cross-border commuter in Aachen, but was never subject to social security contributions. She had two children who she raised in the Netherlands and did not work during this time. It was only many years later that she moved to Germany and then paid into the pension fund for the first time.

No difference between education at home and abroad

When the woman became unable to work, the German pension insurance did not count the time spent raising children in the Netherlands towards her pension entitlement. The European Court of Justice sees it differently: For the credit to be taken into account, it depends on whether there is a \u201csufficient connection\u201d between the time spent raising children abroad and the insurance time at home. The ECJ has already developed this criterion in previous decisions. It has therefore been clear for some time that, in principle, periods spent raising children in other EU countries must also be taken into account when calculating pensions. What is new, however, is that there is a \u201csufficient connection\u201d even if the person concerned did not pay any contributions to the pension insurance before raising children abroad." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 80, + "documentID": "6#1-101", + "isCompleteDocument": false, + "itemID": 0, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::6#1-101::1", + "segmentText": "EuGH-Urteil st\u00e4rkt Eltern", + "targets": [ + { + "_itemAll": 176, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "ECJ ruling strengthens parents" + }, + { + "_itemAll": 177, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "ECJ ruling strengthens parents" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 81, + "documentID": "6#1-101", + "isCompleteDocument": false, + "itemID": 1, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::6#1-101::2", + "segmentText": "

Erziehungszeit im EU-Ausland z\u00e4hlt f\u00fcr Rente

", + "targets": [ + { + "_itemAll": 178, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "

Parenting time in another EU country counts towards your pension

" + }, + { + "_itemAll": 179, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "

Parental leave in another EU country counts towards pension

" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 82, + "documentID": "6#1-101", + "isCompleteDocument": false, + "itemID": 2, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::6#1-101::3", + "segmentText": "Stand: 22.02.2024 16:49 Uhr", + "targets": [ + { + "_itemAll": 180, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "As of: February 22, 2024 4:49 p.m" + }, + { + "_itemAll": 181, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "Last updated: 22.02.2024 16:49" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 83, + "documentID": "6#1-101", + "isCompleteDocument": false, + "itemID": 3, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::6#1-101::4", + "segmentText": "Erziehungszeiten im EU-Ausland k\u00f6nnen laut EuGH auch dann bei der Rente ber\u00fccksichtigt werden, wenn zuvor nicht in die deutsche Rentenkasse eingezahlt wurde. Konkret ging es um eine Deutsche, die lange in den Niederlanden wohnte.", + "targets": [ + { + "_itemAll": 182, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "According to the ECJ, parenting periods in other EU countries can be taken into account in the pension even if they have not previously been paid into the German pension fund. Specifically, it was about a German woman who had lived in the Netherlands for a long time." + }, + { + "_itemAll": 183, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "According to the ECJ, child-rearing periods in other EU countries can also be taken into account in the pension if no previous payment has been made into the German pension fund. Specifically, it was about a German woman who had lived in the Netherlands for a long time." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 84, + "documentID": "6#1-101", + "isCompleteDocument": false, + "itemID": 4, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::6#1-101::5", + "segmentText": "Von Alena Lagm\u00f6ller, ARD-Rechtsredaktion", + "targets": [ + { + "_itemAll": 184, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "By Alena Lagm\u00f6ller, ARD Legal Editor" + }, + { + "_itemAll": 185, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "By Alena Lagm\u00f6ller, ARD legal department" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 85, + "documentID": "6#1-101", + "isCompleteDocument": false, + "itemID": 5, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::6#1-101::6", + "segmentText": "EU-B\u00fcrger genie\u00dfen Freiz\u00fcgigkeit - sie haben das Recht, sich frei zwischen den Mitgliedsstaaten zu bewegen. Arbeitszeiten, die im EU-Ausland verrichtet werden, werden auf den inl\u00e4ndischen Rentenanspruch angerechnet.Doch wer im Ausland Kinder erzogen hat, der muss mitunter um eine Anrechnung der Zeiten auf den Rentenanspruch k\u00e4mpfen.", + "targets": [ + { + "_itemAll": 186, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "EU citizens enjoy freedom of movement - they have the right to move freely between member states. Working hours carried out in other EU countries are counted towards the domestic pension entitlement. But those who have raised children abroad sometimes have to fight for their periods to be counted towards their pension entitlement." + }, + { + "_itemAll": 187, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "EU citizens enjoy freedom of movement - they have the right to move freely between member states. Working hours worked in other EU countries are counted towards the domestic pension entitlement. However, those who have raised children abroad sometimes have to fight for their periods to be counted towards their pension entitlement." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 86, + "documentID": "6#1-101", + "isCompleteDocument": false, + "itemID": 6, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::6#1-101::7", + "segmentText": "So erging es auch einer Frau aus dem deutsch-niederl\u00e4ndischen Grenzgebiet: Sie hat vor dem Landessozialgericht Nordrhein-Westfalen geklagt, weil die Deutsche Rentenversicherung ihre Kindererziehungszeit in den Niederlanden nicht anrechnen wollte. Die Kl\u00e4gerin wohnte viele Jahre in den Niederlanden in der N\u00e4he von Aachen. Ihre Ausbildung hatte sie als Grenzg\u00e4ngerin in Aachen absolviert, war aber nie sozialversicherungspflichtig t\u00e4tig. Sie bekam zwei Kinder, die sie in den Niederlanden aufgezogen hatte und war w\u00e4hrenddessen nicht berufst\u00e4tig. Erst viele Jahre sp\u00e4ter zog sie nach Deutschland und zahlte dann erstmals in die Rentenkasse ein.", + "targets": [ + { + "_itemAll": 188, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "This is what happened to a woman from the German-Dutch border area: She sued the state social court of North Rhine-Westphalia because the German pension insurance did not want to take into account the time she spent raising children in the Netherlands. The plaintiff lived in the Netherlands near Aachen for many years. She completed her training as a cross-border commuter in Aachen, but was never subject to social security contributions. She had two children who she raised in the Netherlands and did not work during this time. It was only many years later that she moved to Germany and then paid into the pension fund for the first time." + }, + { + "_itemAll": 189, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "This is what happened to a woman from the German-Dutch border area: She filed a lawsuit before the Regional Social Court of North Rhine-Westphalia because the German pension insurance did not want to take into account her child-rearing time in the Netherlands. The plaintiff lived for many years in the Netherlands, near Aachen. She had completed her training as a cross-border commuter in Aachen, but was never subject to social security contributions. She had two children whom she had raised in the Netherlands and was not working during this time. It was not until many years later that she moved to Germany and paid into the pension fund for the first time." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 87, + "documentID": "6#1-101", + "isCompleteDocument": false, + "itemID": 7, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::6#1-101::8", + "segmentText": "

Kein Unterschied zwischen Erziehung im In- und Ausland

", + "targets": [ + { + "_itemAll": 190, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "

No difference between education at home and abroad

" + }, + { + "_itemAll": 191, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "

No difference between education at home and abroad

" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 88, + "documentID": "6#1-101", + "isCompleteDocument": false, + "itemID": 8, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::6#1-101::9", + "segmentText": "Als die Frau erwerbsunf\u00e4hig wurde, rechnete die Deutsche Rentenversicherung die Kindererziehungszeit in den Niederlanden nicht auf ihren Rentenanspruch an. Der Europ\u00e4ische Gerichtshof sieht das anders: F\u00fcr die Anrechnung kommt es darauf an, ob zwischen der Kindererziehungszeit im Ausland und der Versicherungszeit im Inland eine \"hinreichende Verbindung\" besteht.", + "targets": [ + { + "_itemAll": 192, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "When the woman became unable to work, the German pension insurance did not count the time spent raising children in the Netherlands towards her pension entitlement. The European Court of Justice sees it differently: For the credit to be taken into account, it depends on whether there is a \u201csufficient connection\u201d between the time spent raising children abroad and the insurance time at home." + }, + { + "_itemAll": 193, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "When the woman became unable to work, the German pension insurance did not count the child-rearing period in the Netherlands against her pension entitlement. The European Court of Justice takes a different view: for the purposes of crediting, it depends on whether there is a \"sufficient connection\" between the child-rearing period abroad and the insurance period in Germany." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 89, + "documentID": "6#1-101", + "isCompleteDocument": false, + "itemID": 9, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::6#1-101::10", + "segmentText": "Dieses Kriterium hat der EuGH bereits in fr\u00fcheren Entscheidungen entwickelt. Deswegen war schon l\u00e4nger klar, dass grunds\u00e4tzlich auch Kindererziehungszeiten im EU-Ausland bei der Rentenberechnung ber\u00fccksichtigt werden m\u00fcssen. Neu ist aber, dass eine \"hinreichende Verbindung\" selbst dann besteht, wenn die Betroffene vor der Kindererziehungszeit im Ausland keine Beitr\u00e4ge in die Rentenversicherung eingezahlt hat.", + "targets": [ + { + "_itemAll": 194, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "The ECJ has already developed this criterion in previous decisions. It has therefore been clear for some time that, in principle, periods spent raising children in other EU countries must also be taken into account when calculating pensions. What is new, however, is that there is a \u201csufficient connection\u201d even if the person concerned did not pay any contributions to the pension insurance before raising children abroad." + }, + { + "_itemAll": 195, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "This criterion has already been developed by the ECJ in previous decisions. For this reason, it has been clear for some time that child-rearing periods in other EU countries must also be taken into account when calculating pensions. What is new, however, is that there is a \"sufficient connection\" even if the person concerned did not pay any contributions to the pension insurance scheme before the child-rearing period abroad." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 90, + "documentID": "6#1-101", + "isCompleteDocument": true, + "itemID": 10, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::6#1-101::10", + "segmentText": "EuGH-Urteil st\u00e4rkt Eltern

Erziehungszeit im EU-Ausland z\u00e4hlt f\u00fcr Rente

Stand: 22.02.2024 16:49 Uhr Erziehungszeiten im EU-Ausland k\u00f6nnen laut EuGH auch dann bei der Rente ber\u00fccksichtigt werden, wenn zuvor nicht in die deutsche Rentenkasse eingezahlt wurde. Konkret ging es um eine Deutsche, die lange in den Niederlanden wohnte. Von Alena Lagm\u00f6ller, ARD-Rechtsredaktion EU-B\u00fcrger genie\u00dfen Freiz\u00fcgigkeit - sie haben das Recht, sich frei zwischen den Mitgliedsstaaten zu bewegen. Arbeitszeiten, die im EU-Ausland verrichtet werden, werden auf den inl\u00e4ndischen Rentenanspruch angerechnet.Doch wer im Ausland Kinder erzogen hat, der muss mitunter um eine Anrechnung der Zeiten auf den Rentenanspruch k\u00e4mpfen. So erging es auch einer Frau aus dem deutsch-niederl\u00e4ndischen Grenzgebiet: Sie hat vor dem Landessozialgericht Nordrhein-Westfalen geklagt, weil die Deutsche Rentenversicherung ihre Kindererziehungszeit in den Niederlanden nicht anrechnen wollte. Die Kl\u00e4gerin wohnte viele Jahre in den Niederlanden in der N\u00e4he von Aachen. Ihre Ausbildung hatte sie als Grenzg\u00e4ngerin in Aachen absolviert, war aber nie sozialversicherungspflichtig t\u00e4tig. Sie bekam zwei Kinder, die sie in den Niederlanden aufgezogen hatte und war w\u00e4hrenddessen nicht berufst\u00e4tig. Erst viele Jahre sp\u00e4ter zog sie nach Deutschland und zahlte dann erstmals in die Rentenkasse ein.

Kein Unterschied zwischen Erziehung im In- und Ausland

Als die Frau erwerbsunf\u00e4hig wurde, rechnete die Deutsche Rentenversicherung die Kindererziehungszeit in den Niederlanden nicht auf ihren Rentenanspruch an. Der Europ\u00e4ische Gerichtshof sieht das anders: F\u00fcr die Anrechnung kommt es darauf an, ob zwischen der Kindererziehungszeit im Ausland und der Versicherungszeit im Inland eine \"hinreichende Verbindung\" besteht. Dieses Kriterium hat der EuGH bereits in fr\u00fcheren Entscheidungen entwickelt. Deswegen war schon l\u00e4nger klar, dass grunds\u00e4tzlich auch Kindererziehungszeiten im EU-Ausland bei der Rentenberechnung ber\u00fccksichtigt werden m\u00fcssen. Neu ist aber, dass eine \"hinreichende Verbindung\" selbst dann besteht, wenn die Betroffene vor der Kindererziehungszeit im Ausland keine Beitr\u00e4ge in die Rentenversicherung eingezahlt hat.", + "targets": [ + { + "_itemAll": 196, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "ECJ ruling strengthens parents

Parenting time in another EU country counts towards your pension

As of: February 22, 2024 4:49 p.m According to the ECJ, parenting periods in other EU countries can be taken into account in the pension even if they have not previously been paid into the German pension fund. Specifically, it was about a German woman who had lived in the Netherlands for a long time. By Alena Lagm\u00f6ller, ARD Legal Editor EU citizens enjoy freedom of movement - they have the right to move freely between member states. Working hours carried out in other EU countries are counted towards the domestic pension entitlement. But those who have raised children abroad sometimes have to fight for their periods to be counted towards their pension entitlement. This is what happened to a woman from the German-Dutch border area: She sued the state social court of North Rhine-Westphalia because the German pension insurance did not want to take into account the time she spent raising children in the Netherlands. The plaintiff lived in the Netherlands near Aachen for many years. She completed her training as a cross-border commuter in Aachen, but was never subject to social security contributions. She had two children who she raised in the Netherlands and did not work during this time. It was only many years later that she moved to Germany and then paid into the pension fund for the first time.

No difference between education at home and abroad

When the woman became unable to work, the German pension insurance did not count the time spent raising children in the Netherlands towards her pension entitlement. The European Court of Justice sees it differently: For the credit to be taken into account, it depends on whether there is a \u201csufficient connection\u201d between the time spent raising children abroad and the insurance time at home. The ECJ has already developed this criterion in previous decisions. It has therefore been clear for some time that, in principle, periods spent raising children in other EU countries must also be taken into account when calculating pensions. What is new, however, is that there is a \u201csufficient connection\u201d even if the person concerned did not pay any contributions to the pension insurance before raising children abroad." + }, + { + "_itemAll": 197, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "ECJ ruling strengthens parents

Parental leave in another EU country counts towards pension

Last updated: 22.02.2024 16:49 According to the ECJ, child-rearing periods in other EU countries can also be taken into account in the pension if no previous payment has been made into the German pension fund. Specifically, it was about a German woman who had lived in the Netherlands for a long time. By Alena Lagm\u00f6ller, ARD legal department EU citizens enjoy freedom of movement - they have the right to move freely between member states. Working hours worked in other EU countries are counted towards the domestic pension entitlement. However, those who have raised children abroad sometimes have to fight for their periods to be counted towards their pension entitlement. This is what happened to a woman from the German-Dutch border area: She filed a lawsuit before the Regional Social Court of North Rhine-Westphalia because the German pension insurance did not want to take into account her child-rearing time in the Netherlands. The plaintiff lived for many years in the Netherlands, near Aachen. She had completed her training as a cross-border commuter in Aachen, but was never subject to social security contributions. She had two children whom she had raised in the Netherlands and was not working during this time. It was not until many years later that she moved to Germany and paid into the pension fund for the first time.

No difference between education at home and abroad

When the woman became unable to work, the German pension insurance did not count the child-rearing period in the Netherlands against her pension entitlement. The European Court of Justice takes a different view: for the purposes of crediting, it depends on whether there is a \"sufficient connection\" between the child-rearing period abroad and the insurance period in Germany. This criterion has already been developed by the ECJ in previous decisions. For this reason, it has been clear for some time that child-rearing periods in other EU countries must also be taken into account when calculating pensions. What is new, however, is that there is a \"sufficient connection\" even if the person concerned did not pay any contributions to the pension insurance scheme before the child-rearing period abroad." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 90, + "documentID": "7#1-101", + "isCompleteDocument": false, + "itemID": 0, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::7#1-101::1", + "segmentText": "EuGH-Urteil st\u00e4rkt Eltern", + "targets": [ + { + "_itemAll": 198, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "ECJ ruling strengthens parents" + }, + { + "_itemAll": 199, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "ECJ ruling strengthens parents" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 91, + "documentID": "7#1-101", + "isCompleteDocument": false, + "itemID": 1, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::7#1-101::2", + "segmentText": "

Erziehungszeit im EU-Ausland z\u00e4hlt f\u00fcr Rente

", + "targets": [ + { + "_itemAll": 200, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "

Parenting time in another EU country counts towards your pension

" + }, + { + "_itemAll": 201, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "

Parental leave in another EU country counts towards pension

" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 92, + "documentID": "7#1-101", + "isCompleteDocument": false, + "itemID": 2, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::7#1-101::3", + "segmentText": "Stand: 22.02.2024 16:49 Uhr", + "targets": [ + { + "_itemAll": 202, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "As of: February 22, 2024 4:49 p.m" + }, + { + "_itemAll": 203, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "Last updated: 22.02.2024 16:49" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 93, + "documentID": "7#1-101", + "isCompleteDocument": false, + "itemID": 3, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::7#1-101::4", + "segmentText": "Erziehungszeiten im EU-Ausland k\u00f6nnen laut EuGH auch dann bei der Rente ber\u00fccksichtigt werden, wenn zuvor nicht in die deutsche Rentenkasse eingezahlt wurde. Konkret ging es um eine Deutsche, die lange in den Niederlanden wohnte.", + "targets": [ + { + "_itemAll": 204, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "According to the ECJ, parenting periods in other EU countries can be taken into account in the pension even if they have not previously been paid into the German pension fund. Specifically, it was about a German woman who had lived in the Netherlands for a long time." + }, + { + "_itemAll": 205, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "According to the ECJ, child-rearing periods in other EU countries can also be taken into account in the pension if no previous payment has been made into the German pension fund. Specifically, it was about a German woman who had lived in the Netherlands for a long time." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 94, + "documentID": "7#1-101", + "isCompleteDocument": false, + "itemID": 4, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::7#1-101::5", + "segmentText": "Von Alena Lagm\u00f6ller, ARD-Rechtsredaktion", + "targets": [ + { + "_itemAll": 206, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "By Alena Lagm\u00f6ller, ARD Legal Editor" + }, + { + "_itemAll": 207, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "By Alena Lagm\u00f6ller, ARD legal department" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 95, + "documentID": "7#1-101", + "isCompleteDocument": false, + "itemID": 5, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::7#1-101::6", + "segmentText": "EU-B\u00fcrger genie\u00dfen Freiz\u00fcgigkeit - sie haben das Recht, sich frei zwischen den Mitgliedsstaaten zu bewegen. Arbeitszeiten, die im EU-Ausland verrichtet werden, werden auf den inl\u00e4ndischen Rentenanspruch angerechnet.Doch wer im Ausland Kinder erzogen hat, der muss mitunter um eine Anrechnung der Zeiten auf den Rentenanspruch k\u00e4mpfen.", + "targets": [ + { + "_itemAll": 208, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "EU citizens enjoy freedom of movement - they have the right to move freely between member states. Working hours carried out in other EU countries are counted towards the domestic pension entitlement. But those who have raised children abroad sometimes have to fight for their periods to be counted towards their pension entitlement." + }, + { + "_itemAll": 209, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "EU citizens enjoy freedom of movement - they have the right to move freely between member states. Working hours worked in other EU countries are counted towards the domestic pension entitlement. However, those who have raised children abroad sometimes have to fight for their periods to be counted towards their pension entitlement." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 96, + "documentID": "7#1-101", + "isCompleteDocument": false, + "itemID": 6, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::7#1-101::7", + "segmentText": "So erging es auch einer Frau aus dem deutsch-niederl\u00e4ndischen Grenzgebiet: Sie hat vor dem Landessozialgericht Nordrhein-Westfalen geklagt, weil die Deutsche Rentenversicherung ihre Kindererziehungszeit in den Niederlanden nicht anrechnen wollte. Die Kl\u00e4gerin wohnte viele Jahre in den Niederlanden in der N\u00e4he von Aachen. Ihre Ausbildung hatte sie als Grenzg\u00e4ngerin in Aachen absolviert, war aber nie sozialversicherungspflichtig t\u00e4tig. Sie bekam zwei Kinder, die sie in den Niederlanden aufgezogen hatte und war w\u00e4hrenddessen nicht berufst\u00e4tig. Erst viele Jahre sp\u00e4ter zog sie nach Deutschland und zahlte dann erstmals in die Rentenkasse ein.", + "targets": [ + { + "_itemAll": 210, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "This is what happened to a woman from the German-Dutch border area: She sued the state social court of North Rhine-Westphalia because the German pension insurance did not want to take into account the time she spent raising children in the Netherlands. The plaintiff lived in the Netherlands near Aachen for many years. She completed her training as a cross-border commuter in Aachen, but was never subject to social security contributions. She had two children who she raised in the Netherlands and did not work during this time. It was only many years later that she moved to Germany and then paid into the pension fund for the first time." + }, + { + "_itemAll": 211, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "This is what happened to a woman from the German-Dutch border area: She filed a lawsuit before the Regional Social Court of North Rhine-Westphalia because the German pension insurance did not want to take into account her child-rearing time in the Netherlands. The plaintiff lived for many years in the Netherlands, near Aachen. She had completed her training as a cross-border commuter in Aachen, but was never subject to social security contributions. She had two children whom she had raised in the Netherlands and was not working during this time. It was not until many years later that she moved to Germany and paid into the pension fund for the first time." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 97, + "documentID": "7#1-101", + "isCompleteDocument": false, + "itemID": 7, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::7#1-101::8", + "segmentText": "

Kein Unterschied zwischen Erziehung im In- und Ausland

", + "targets": [ + { + "_itemAll": 212, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "

No difference between education at home and abroad

" + }, + { + "_itemAll": 213, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "

No difference between education at home and abroad

" + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 98, + "documentID": "7#1-101", + "isCompleteDocument": false, + "itemID": 8, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::7#1-101::9", + "segmentText": "Als die Frau erwerbsunf\u00e4hig wurde, rechnete die Deutsche Rentenversicherung die Kindererziehungszeit in den Niederlanden nicht auf ihren Rentenanspruch an. Der Europ\u00e4ische Gerichtshof sieht das anders: F\u00fcr die Anrechnung kommt es darauf an, ob zwischen der Kindererziehungszeit im Ausland und der Versicherungszeit im Inland eine \"hinreichende Verbindung\" besteht.", + "targets": [ + { + "_itemAll": 214, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "When the woman became unable to work, the German pension insurance did not count the time spent raising children in the Netherlands towards her pension entitlement. The European Court of Justice sees it differently: For the credit to be taken into account, it depends on whether there is a \u201csufficient connection\u201d between the time spent raising children abroad and the insurance time at home." + }, + { + "_itemAll": 215, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "When the woman became unable to work, the German pension insurance did not count the child-rearing period in the Netherlands against her pension entitlement. The European Court of Justice takes a different view: for the purposes of crediting, it depends on whether there is a \"sufficient connection\" between the child-rearing period abroad and the insurance period in Germany." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 99, + "documentID": "7#1-101", + "isCompleteDocument": false, + "itemID": 9, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::7#1-101::10", + "segmentText": "Dieses Kriterium hat der EuGH bereits in fr\u00fcheren Entscheidungen entwickelt. Deswegen war schon l\u00e4nger klar, dass grunds\u00e4tzlich auch Kindererziehungszeiten im EU-Ausland bei der Rentenberechnung ber\u00fccksichtigt werden m\u00fcssen. Neu ist aber, dass eine \"hinreichende Verbindung\" selbst dann besteht, wenn die Betroffene vor der Kindererziehungszeit im Ausland keine Beitr\u00e4ge in die Rentenversicherung eingezahlt hat.", + "targets": [ + { + "_itemAll": 216, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "The ECJ has already developed this criterion in previous decisions. It has therefore been clear for some time that, in principle, periods spent raising children in other EU countries must also be taken into account when calculating pensions. What is new, however, is that there is a \u201csufficient connection\u201d even if the person concerned did not pay any contributions to the pension insurance before raising children abroad." + }, + { + "_itemAll": 217, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "This criterion has already been developed by the ECJ in previous decisions. For this reason, it has been clear for some time that child-rearing periods in other EU countries must also be taken into account when calculating pensions. What is new, however, is that there is a \"sufficient connection\" even if the person concerned did not pay any contributions to the pension insurance scheme before the child-rearing period abroad." + } + ], + "targetsSize": 2 + }, + { + "_block": -1, + "_item": 100, + "documentID": "7#1-101", + "isCompleteDocument": true, + "itemID": 10, + "itemType": "TGT", + "segmentContextLeft": "", + "segmentID": "example.tsv::7#1-101::10", + "segmentText": "EuGH-Urteil st\u00e4rkt Eltern

Erziehungszeit im EU-Ausland z\u00e4hlt f\u00fcr Rente

Stand: 22.02.2024 16:49 Uhr Erziehungszeiten im EU-Ausland k\u00f6nnen laut EuGH auch dann bei der Rente ber\u00fccksichtigt werden, wenn zuvor nicht in die deutsche Rentenkasse eingezahlt wurde. Konkret ging es um eine Deutsche, die lange in den Niederlanden wohnte. Von Alena Lagm\u00f6ller, ARD-Rechtsredaktion EU-B\u00fcrger genie\u00dfen Freiz\u00fcgigkeit - sie haben das Recht, sich frei zwischen den Mitgliedsstaaten zu bewegen. Arbeitszeiten, die im EU-Ausland verrichtet werden, werden auf den inl\u00e4ndischen Rentenanspruch angerechnet.Doch wer im Ausland Kinder erzogen hat, der muss mitunter um eine Anrechnung der Zeiten auf den Rentenanspruch k\u00e4mpfen. So erging es auch einer Frau aus dem deutsch-niederl\u00e4ndischen Grenzgebiet: Sie hat vor dem Landessozialgericht Nordrhein-Westfalen geklagt, weil die Deutsche Rentenversicherung ihre Kindererziehungszeit in den Niederlanden nicht anrechnen wollte. Die Kl\u00e4gerin wohnte viele Jahre in den Niederlanden in der N\u00e4he von Aachen. Ihre Ausbildung hatte sie als Grenzg\u00e4ngerin in Aachen absolviert, war aber nie sozialversicherungspflichtig t\u00e4tig. Sie bekam zwei Kinder, die sie in den Niederlanden aufgezogen hatte und war w\u00e4hrenddessen nicht berufst\u00e4tig. Erst viele Jahre sp\u00e4ter zog sie nach Deutschland und zahlte dann erstmals in die Rentenkasse ein.

Kein Unterschied zwischen Erziehung im In- und Ausland

Als die Frau erwerbsunf\u00e4hig wurde, rechnete die Deutsche Rentenversicherung die Kindererziehungszeit in den Niederlanden nicht auf ihren Rentenanspruch an. Der Europ\u00e4ische Gerichtshof sieht das anders: F\u00fcr die Anrechnung kommt es darauf an, ob zwischen der Kindererziehungszeit im Ausland und der Versicherungszeit im Inland eine \"hinreichende Verbindung\" besteht. Dieses Kriterium hat der EuGH bereits in fr\u00fcheren Entscheidungen entwickelt. Deswegen war schon l\u00e4nger klar, dass grunds\u00e4tzlich auch Kindererziehungszeiten im EU-Ausland bei der Rentenberechnung ber\u00fccksichtigt werden m\u00fcssen. Neu ist aber, dass eine \"hinreichende Verbindung\" selbst dann besteht, wenn die Betroffene vor der Kindererziehungszeit im Ausland keine Beitr\u00e4ge in die Rentenversicherung eingezahlt hat.", + "targets": [ + { + "_itemAll": 218, + "_target": 0, + "targetContextLeft": "", + "targetID": "system-B", + "targetText": "ECJ ruling strengthens parents

Parenting time in another EU country counts towards your pension

As of: February 22, 2024 4:49 p.m According to the ECJ, parenting periods in other EU countries can be taken into account in the pension even if they have not previously been paid into the German pension fund. Specifically, it was about a German woman who had lived in the Netherlands for a long time. By Alena Lagm\u00f6ller, ARD Legal Editor EU citizens enjoy freedom of movement - they have the right to move freely between member states. Working hours carried out in other EU countries are counted towards the domestic pension entitlement. But those who have raised children abroad sometimes have to fight for their periods to be counted towards their pension entitlement. This is what happened to a woman from the German-Dutch border area: She sued the state social court of North Rhine-Westphalia because the German pension insurance did not want to take into account the time she spent raising children in the Netherlands. The plaintiff lived in the Netherlands near Aachen for many years. She completed her training as a cross-border commuter in Aachen, but was never subject to social security contributions. She had two children who she raised in the Netherlands and did not work during this time. It was only many years later that she moved to Germany and then paid into the pension fund for the first time.

No difference between education at home and abroad

When the woman became unable to work, the German pension insurance did not count the time spent raising children in the Netherlands towards her pension entitlement. The European Court of Justice sees it differently: For the credit to be taken into account, it depends on whether there is a \u201csufficient connection\u201d between the time spent raising children abroad and the insurance time at home. The ECJ has already developed this criterion in previous decisions. It has therefore been clear for some time that, in principle, periods spent raising children in other EU countries must also be taken into account when calculating pensions. What is new, however, is that there is a \u201csufficient connection\u201d even if the person concerned did not pay any contributions to the pension insurance before raising children abroad." + }, + { + "_itemAll": 219, + "_target": 1, + "targetContextLeft": "", + "targetID": "system-A", + "targetText": "ECJ ruling strengthens parents

Parental leave in another EU country counts towards pension

Last updated: 22.02.2024 16:49 According to the ECJ, child-rearing periods in other EU countries can also be taken into account in the pension if no previous payment has been made into the German pension fund. Specifically, it was about a German woman who had lived in the Netherlands for a long time. By Alena Lagm\u00f6ller, ARD legal department EU citizens enjoy freedom of movement - they have the right to move freely between member states. Working hours worked in other EU countries are counted towards the domestic pension entitlement. However, those who have raised children abroad sometimes have to fight for their periods to be counted towards their pension entitlement. This is what happened to a woman from the German-Dutch border area: She filed a lawsuit before the Regional Social Court of North Rhine-Westphalia because the German pension insurance did not want to take into account her child-rearing time in the Netherlands. The plaintiff lived for many years in the Netherlands, near Aachen. She had completed her training as a cross-border commuter in Aachen, but was never subject to social security contributions. She had two children whom she had raised in the Netherlands and was not working during this time. It was not until many years later that she moved to Germany and paid into the pension fund for the first time.

No difference between education at home and abroad

When the woman became unable to work, the German pension insurance did not count the child-rearing period in the Netherlands against her pension entitlement. The European Court of Justice takes a different view: for the purposes of crediting, it depends on whether there is a \"sufficient connection\" between the child-rearing period abroad and the insurance period in Germany. This criterion has already been developed by the ECJ in previous decisions. For this reason, it has been clear for some time that child-rearing periods in other EU countries must also be taken into account when calculating pensions. What is new, however, is that there is a \"sufficient connection\" even if the person concerned did not pay any contributions to the pension insurance scheme before the child-rearing period abroad." + } + ], + "targetsSize": 2 + } + ], + "task": { + "batchNo": 1, + "batchSize": 100, + "randomSeed": 1111, + "requiredAnnotations": 1, + "sourceLanguage": "deu", + "targetLanguage": "eng" + } + } +] \ No newline at end of file diff --git a/Examples/PairwiseDocESA/create_batches.sh b/Examples/PairwiseDocESA/create_batches.sh new file mode 100644 index 00000000..b2328089 --- /dev/null +++ b/Examples/PairwiseDocESA/create_batches.sh @@ -0,0 +1,4 @@ +#!/bin/bash +set -x +python3 ../../Scripts/create_wmt22_pairwise_tasks.py -o batches -f ../PairwiseDocNewUI/example.tsv --tsv \ + --max-segs 100 -s deu -t eng -A system-A -B system-B --rng-seed 1111 --no-qc |& tee batches.run.log diff --git a/Examples/PairwiseDocESA/manifest.json b/Examples/PairwiseDocESA/manifest.json new file mode 100644 index 00000000..3faf1363 --- /dev/null +++ b/Examples/PairwiseDocESA/manifest.json @@ -0,0 +1,13 @@ +{ + "CAMPAIGN_URL": "http://127.0.0.1:8000/dashboard/sso/", + "CAMPAIGN_NAME": "example18docnewuiesa", + "CAMPAIGN_KEY": "c18", + "CAMPAIGN_NO": 18, + "REDUNDANCY": 1, + + "TASKS_TO_ANNOTATORS": [ + ["deu", "eng", "uniform", 1, 1] + ], + + "TASK_TYPE": "PairwiseDocumentESA" +} diff --git a/RegressionTests/tests/examples/example_pairwise_doc_esa.scores.csv.expected b/RegressionTests/tests/examples/example_pairwise_doc_esa.scores.csv.expected new file mode 100644 index 00000000..5b8b7b9a --- /dev/null +++ b/RegressionTests/tests/examples/example_pairwise_doc_esa.scores.csv.expected @@ -0,0 +1,18 @@ +deueng1201,system-B,0,TGT,deu,eng,10,5#1-101,False,"{'start_i': 0, 'end_i': 50, 'severity': 'major'}",1721976625.942,1721976628.489 +deueng1201,system-A,0,TGT,deu,eng,20,5#1-101,False,"{'start_i': 0, 'end_i': 50, 'severity': 'major'}",1721976625.942,1721976628.489 +deueng1201,system-B,1,TGT,deu,eng,20,5#1-101,False,"{'start_i': 0, 'end_i': 50, 'severity': 'major'}",1721976625.942,1721976629.731 +deueng1201,system-A,1,TGT,deu,eng,30,5#1-101,False,"{'start_i': 0, 'end_i': 50, 'severity': 'major'}",1721976625.942,1721976629.731 +deueng1201,system-B,2,TGT,deu,eng,30,5#1-101,False,"{'start_i': 0, 'end_i': 50, 'severity': 'major'}",1721976625.942,1721976631.653 +deueng1201,system-A,2,TGT,deu,eng,40,5#1-101,False,"{'start_i': 0, 'end_i': 50, 'severity': 'major'}",1721976625.942,1721976631.653 +deueng1201,system-B,3,TGT,deu,eng,40,5#1-101,False,"{'start_i': 0, 'end_i': 50, 'severity': 'major'}",1721976625.942,1721976634.057 +deueng1201,system-A,3,TGT,deu,eng,50,5#1-101,False,"{'start_i': 0, 'end_i': 50, 'severity': 'major'}",1721976625.942,1721976634.057 +deueng1201,system-B,4,TGT,deu,eng,50,5#1-101,False,"{'start_i': 0, 'end_i': 50, 'severity': 'major'}",1721976625.942,1721976636.432 +deueng1201,system-A,4,TGT,deu,eng,60,5#1-101,False,"{'start_i': 0, 'end_i': 50, 'severity': 'major'}",1721976625.942,1721976636.432 +deueng1201,system-B,5,TGT,deu,eng,60,5#1-101,False,"{'start_i': 0, 'end_i': 50, 'severity': 'major'}",1721976625.942,1721976638.324 +deueng1201,system-A,5,TGT,deu,eng,70,5#1-101,False,"{'start_i': 0, 'end_i': 50, 'severity': 'major'}",1721976625.942,1721976638.324 +deueng1201,system-B,6,TGT,deu,eng,70,5#1-101,False,"{'start_i': 0, 'end_i': 50, 'severity': 'major'}",1721976625.942,1721976642.538 +deueng1201,system-A,6,TGT,deu,eng,80,5#1-101,False,"{'start_i': 0, 'end_i': 50, 'severity': 'major'}",1721976625.942,1721976642.538 +deueng1201,system-B,7,TGT,deu,eng,80,5#1-101,False,"{'start_i': 0, 'end_i': 50, 'severity': 'major'}",1721976625.942,1721976645.109 +deueng1201,system-A,7,TGT,deu,eng,90,5#1-101,False,"{'start_i': 0, 'end_i': 50, 'severity': 'major'}",1721976625.942,1721976645.109 +deueng1201,system-B,8,TGT,deu,eng,90,5#1-101,False,"{'start_i': 0, 'end_i': 50, 'severity': 'major'}",1721976625.942,1721976647.037 +deueng1201,system-A,8,TGT,deu,eng,100,5#1-101,False,"{'start_i': 0, 'end_i': 50, 'severity': 'major'}",1721976625.942,1721976647.037 diff --git a/RegressionTests/tests/examples/example_pairwise_doc_esa.users.csv.expected b/RegressionTests/tests/examples/example_pairwise_doc_esa.users.csv.expected new file mode 100644 index 00000000..93c6cebb --- /dev/null +++ b/RegressionTests/tests/examples/example_pairwise_doc_esa.users.csv.expected @@ -0,0 +1,3 @@ +Username,Password,URL +deueng1201,a600717f,http://127.0.0.1:8000/dashboard/sso/deueng1201/a600717f/ + diff --git a/RegressionTests/tests/examples/test_examples_pairwise_doc_esa.sh b/RegressionTests/tests/examples/test_examples_pairwise_doc_esa.sh new file mode 100644 index 00000000..a28a5f0a --- /dev/null +++ b/RegressionTests/tests/examples/test_examples_pairwise_doc_esa.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env bash -x + +# Exit on error +set -eo pipefail + +prefix=example_pairwise_doc_esa + +# Create campaign from Examples\PairwiseDocESA +$APPRAISE_MANAGE StartNewCampaign $APPRAISE_EXAMPLES/PairwiseDocESA/manifest.json \ + --batches-json $APPRAISE_EXAMPLES/PairwiseDocESA/batches.json \ + --csv-output $prefix.users.csv + +# Check generated credentials +test -e $prefix.users.csv +diff $prefix.users.csv $prefix.users.csv.expected > $prefix.diff + +# Make a few annotations +for score in $( seq 10 10 90 ); do + $APPRAISE_MANAGE MakeAnnotation deueng1201:a600717f PairwiseDocumentESA $score:$(( $score + 10 )) --mqm '[{"start_i": 0, "end_i": 50, "severity": "major"}]' '[{"start_i": 0, "end_i": 50, "severity": "major"}]' +done + +# Export scores without timestamps and compare with the expected output +$APPRAISE_MANAGE ExportSystemScoresToCSV example18docnewuiesa | sed "s/, /| /g" | cut -f-10 -d, | sed "s/| /, /g" > $prefix.scores.csv +diff $prefix.scores.csv $prefix.scores.csv.expected + +# Exit with success code +exit $EXIT_CODE_SUCCESS