From b978989099d87e43786d1e8aecb4a12d187b160d Mon Sep 17 00:00:00 2001 From: Birger Schacht Date: Wed, 8 Nov 2023 15:59:35 +0100 Subject: [PATCH] feat: replace construct_properties with importproperties importproperties is a custom management script that reads the properties from a json file and (re)creates them. --- .../management/commands/importproperties.py | 28 + apis_ontology/models.py | 420 -------------- data/properties.json | 522 ++++++++++++++++++ 3 files changed, 550 insertions(+), 420 deletions(-) create mode 100644 apis_ontology/management/commands/importproperties.py create mode 100644 data/properties.json diff --git a/apis_ontology/management/commands/importproperties.py b/apis_ontology/management/commands/importproperties.py new file mode 100644 index 0000000..0ebe7d7 --- /dev/null +++ b/apis_ontology/management/commands/importproperties.py @@ -0,0 +1,28 @@ +import json +from pathlib import Path + +from django.core.management.base import BaseCommand +from apis_core.apis_relations.models import Property +from django.contrib.contenttypes.models import ContentType + + +class Command(BaseCommand): + help = "Import properties from data/properties.json" + + def handle(self, *args, **options): + base_path = Path(__file__).resolve().parent.parent.parent.parent + properties_json = base_path / "data/properties.json" + data = json.loads(properties_json.read_text()) + + for p in data: + prop, _ = Property.objects.get_or_create(pk=p["id"]) + prop.name = p["name"] + prop.name_reverse = p["name_reverse"] + prop.save() + prop.obj_class.clear() + for obj in p["obj"]: + prop.obj_class.add(ContentType.objects.get(model=obj)) + prop.subj_class.clear() + for subj in p["subj"]: + prop.subj_class.add(ContentType.objects.get(model=subj)) + print(prop) diff --git a/apis_ontology/models.py b/apis_ontology/models.py index b632d13..a00a542 100644 --- a/apis_ontology/models.py +++ b/apis_ontology/models.py @@ -90,423 +90,3 @@ class Salary(TempEntityClass): typ = models.CharField(max_length=9, choices=TYP_CHOICES, blank=True, verbose_name = "Typ", help_text = "Art des Gehalts.") REPETITIONTYPE_CHOICES = (("einfach", "einfach"), ("wiederholend", "wiederholend"), ) repetitionType = models.CharField(max_length=12, choices=REPETITIONTYPE_CHOICES, blank=True, verbose_name = "Typ Wiederholungen", help_text = "Typ des Gehalts.") - - - -def construct_properties(): - """ - construct properties for all the models - based on the relations defined in the xml - """ - - from apis_core.apis_relations.models import Property - - - person_has_living_place = Property.objects.get_or_create( - name="bewohnt", - name_reverse="Bewohner von", - )[0] - person_has_living_place.subj_class.clear() - person_has_living_place.subj_class.add(ContentType.objects.get(model=Person.__name__)) - person_has_living_place.obj_class.clear() - person_has_living_place.obj_class.add(ContentType.objects.get(model=Place.__name__)) - - person_owns_place = Property.objects.get_or_create( - name="besitzt", - name_reverse="Besitzer von", - )[0] - person_owns_place.subj_class.clear() - person_owns_place.subj_class.add(ContentType.objects.get(model=Person.__name__)) - person_owns_place.obj_class.clear() - person_owns_place.obj_class.add(ContentType.objects.get(model=Place.__name__)) - - person_is_working_in_place = Property.objects.get_or_create( - name="ist tätig in", - name_reverse="ist Tätigkeitsort von", - )[0] - person_is_working_in_place.subj_class.clear() - person_is_working_in_place.subj_class.add(ContentType.objects.get(model=Person.__name__)) - person_is_working_in_place.obj_class.clear() - person_is_working_in_place.obj_class.add(ContentType.objects.get(model=Place.__name__)) - - person_place_of_residence = Property.objects.get_or_create( - name="hält sich auf in", - name_reverse="ist Aufenthaltsort von", - )[0] - person_place_of_residence.subj_class.clear() - person_place_of_residence.subj_class.add(ContentType.objects.get(model=Person.__name__)) - person_place_of_residence.obj_class.clear() - person_place_of_residence.obj_class.add(ContentType.objects.get(model=Place.__name__)) - - person_has_correspondance_with = Property.objects.get_or_create( - name="hat Korrespondenz mit", - name_reverse="hat Korrespondenz mit", - )[0] - person_has_correspondance_with.subj_class.clear() - person_has_correspondance_with.subj_class.add(ContentType.objects.get(model=Person.__name__)) - person_has_correspondance_with.obj_class.clear() - person_has_correspondance_with.obj_class.add(ContentType.objects.get(model=Person.__name__)) - - person_has_family_relation_with = Property.objects.get_or_create( - name="hat Familienbeziehung zu", - name_reverse="hat Familienbeziehung zu", - )[0] - person_has_family_relation_with.subj_class.clear() - person_has_family_relation_with.subj_class.add(ContentType.objects.get(model=Person.__name__)) - person_has_family_relation_with.obj_class.clear() - person_has_family_relation_with.obj_class.add(ContentType.objects.get(model=Person.__name__)) - - person_is_father_of = Property.objects.get_or_create( - name="ist Elternteil von", - name_reverse="ist Kind von", - )[0] - person_is_father_of.subj_class.clear() - person_is_father_of.subj_class.add(ContentType.objects.get(model=Person.__name__)) - person_is_father_of.obj_class.clear() - person_is_father_of.obj_class.add(ContentType.objects.get(model=Person.__name__)) - - person_is_brother_of = Property.objects.get_or_create( - name="ist Bruder/Schwester von", - name_reverse="ist Bruder/Schwester von", - )[0] - person_is_brother_of.subj_class.clear() - person_is_brother_of.subj_class.add(ContentType.objects.get(model=Person.__name__)) - person_is_brother_of.obj_class.clear() - person_is_brother_of.obj_class.add(ContentType.objects.get(model=Person.__name__)) - - person_is_son_of = Property.objects.get_or_create( - name="ist Kind von", - name_reverse="ist Elternteil von", - )[0] - person_is_son_of.subj_class.clear() - person_is_son_of.subj_class.add(ContentType.objects.get(model=Person.__name__)) - person_is_son_of.obj_class.clear() - person_is_son_of.obj_class.add(ContentType.objects.get(model=Person.__name__)) - - person_has_marrige_with = Property.objects.get_or_create( - name="hat Ehe mit", - name_reverse="hat Ehe mit", - )[0] - person_has_marrige_with.subj_class.clear() - person_has_marrige_with.subj_class.add(ContentType.objects.get(model=Person.__name__)) - person_has_marrige_with.obj_class.clear() - person_has_marrige_with.obj_class.add(ContentType.objects.get(model=Person.__name__)) - - person_was_present_at_court = Property.objects.get_or_create( - name="war anwesend bei", - name_reverse="hatte anwesende Person", - )[0] - person_was_present_at_court.subj_class.clear() - person_was_present_at_court.subj_class.add(ContentType.objects.get(model=Person.__name__)) - person_was_present_at_court.obj_class.clear() - person_was_present_at_court.obj_class.add(ContentType.objects.get(model=Court.__name__)) - - person_recommended_person_for_court = Property.objects.get_or_create( - name="empfahl", - name_reverse="wurde empfohlen von", - )[0] - person_recommended_person_for_court.subj_class.clear() - person_recommended_person_for_court.subj_class.add(ContentType.objects.get(model=Person.__name__)) - person_recommended_person_for_court.obj_class.clear() - person_recommended_person_for_court.obj_class.add(ContentType.objects.get(model=Person.__name__)) - - person_had_business_realtionship_with_person = Property.objects.get_or_create( - name="hat Geschäftsbeziehung zu", - name_reverse="hat Geschäftsbeziehung zu", - )[0] - person_had_business_realtionship_with_person.subj_class.clear() - person_had_business_realtionship_with_person.subj_class.add(ContentType.objects.get(model=Person.__name__)) - person_had_business_realtionship_with_person.obj_class.clear() - person_had_business_realtionship_with_person.obj_class.add(ContentType.objects.get(model=Person.__name__)) - - person_is_custodian_of_person = Property.objects.get_or_create( - name="ist Vormund von", - name_reverse="ist Mündel von", - )[0] - person_is_custodian_of_person.subj_class.clear() - person_is_custodian_of_person.subj_class.add(ContentType.objects.get(model=Person.__name__)) - person_is_custodian_of_person.obj_class.clear() - person_is_custodian_of_person.obj_class.add(ContentType.objects.get(model=Person.__name__)) - - person_was_member_of_institution = Property.objects.get_or_create( - name="Mitglied von", - name_reverse="hatte Mitglied", - )[0] - person_was_member_of_institution.subj_class.clear() - person_was_member_of_institution.subj_class.add(ContentType.objects.get(model=Person.__name__)) - person_was_member_of_institution.obj_class.clear() - person_was_member_of_institution.obj_class.add(ContentType.objects.get(model=Institution.__name__)) - - person_was_active_in_institution = Property.objects.get_or_create( - name="war tätig an", - name_reverse="hatte tätige Person", - )[0] - person_was_active_in_institution.subj_class.clear() - person_was_active_in_institution.subj_class.add(ContentType.objects.get(model=Person.__name__)) - person_was_active_in_institution.obj_class.clear() - person_was_active_in_institution.obj_class.add(ContentType.objects.get(model=Institution.__name__)) - - person_gets_pension_from_institution = Property.objects.get_or_create( - name="ist Pfründner von", - name_reverse="hat Pfründner", - )[0] - person_gets_pension_from_institution.subj_class.clear() - person_gets_pension_from_institution.subj_class.add(ContentType.objects.get(model=Person.__name__)) - person_gets_pension_from_institution.obj_class.clear() - person_gets_pension_from_institution.obj_class.add(ContentType.objects.get(model=Institution.__name__)) - - person_took_part_in_event = Property.objects.get_or_create( - name="nahm teil an", - name_reverse="hatte teilnehmende Person", - )[0] - person_took_part_in_event.subj_class.clear() - person_took_part_in_event.subj_class.add(ContentType.objects.get(model=Person.__name__)) - person_took_part_in_event.obj_class.clear() - person_took_part_in_event.obj_class.add(ContentType.objects.get(model=Event.__name__)) - - person_recieved_salary = Property.objects.get_or_create( - name="erhielt Gehalt", - name_reverse="wurde ausbezahlt an", - )[0] - person_recieved_salary.subj_class.clear() - person_recieved_salary.subj_class.add(ContentType.objects.get(model=Salary.__name__)) - person_recieved_salary.obj_class.clear() - person_recieved_salary.obj_class.add(ContentType.objects.get(model=Person.__name__)) - - person_authorized_salary = Property.objects.get_or_create( - name="weist an", - name_reverse="auf Anweisung von", - )[0] - person_authorized_salary.subj_class.clear() - person_authorized_salary.subj_class.add(ContentType.objects.get(model=Person.__name__)) - person_authorized_salary.obj_class.clear() - person_authorized_salary.obj_class.add(ContentType.objects.get(model=Salary.__name__)) - - person_born_in = Property.objects.get_or_create( - name="geboren in", - name_reverse="Geburtsort von", - )[0] - person_born_in.subj_class.clear() - person_born_in.subj_class.add(ContentType.objects.get(model=Person.__name__)) - person_born_in.obj_class.clear() - person_born_in.obj_class.add(ContentType.objects.get(model=Place.__name__)) - - person_died_in = Property.objects.get_or_create( - name="gestorben in", - name_reverse="Sterbeort von", - )[0] - person_died_in.subj_class.clear() - person_died_in.subj_class.add(ContentType.objects.get(model=Person.__name__)) - person_died_in.obj_class.clear() - person_died_in.obj_class.add(ContentType.objects.get(model=Place.__name__)) - - person_is_servant_of_person = Property.objects.get_or_create( - name="ist im Dienst von", - name_reverse="hat Diener", - )[0] - person_is_servant_of_person.subj_class.clear() - person_is_servant_of_person.subj_class.add(ContentType.objects.get(model=Person.__name__)) - person_is_servant_of_person.obj_class.clear() - person_is_servant_of_person.obj_class.add(ContentType.objects.get(model=Person.__name__)) - - person_has_hometown = Property.objects.get_or_create( - name="hat Heimatort in", - name_reverse="Heimatort von", - )[0] - person_has_hometown.subj_class.clear() - person_has_hometown.subj_class.add(ContentType.objects.get(model=Person.__name__)) - person_has_hometown.obj_class.clear() - person_has_hometown.obj_class.add(ContentType.objects.get(model=Place.__name__)) - - person_sells_property_to = Property.objects.get_or_create( - name="verkauft Besitz an", - name_reverse="kauft Besitz von", - )[0] - person_sells_property_to.subj_class.clear() - person_sells_property_to.subj_class.add(ContentType.objects.get(model=Person.__name__)) - person_sells_property_to.obj_class.clear() - person_sells_property_to.obj_class.add(ContentType.objects.get(model=Person.__name__)) - - person_has_dispute_with = Property.objects.get_or_create( - name="hat Streit mit", - name_reverse="hat Streit mit", - )[0] - person_has_dispute_with.subj_class.clear() - person_has_dispute_with.subj_class.add(ContentType.objects.get(model=Person.__name__)) - person_has_dispute_with.obj_class.clear() - person_has_dispute_with.obj_class.add(ContentType.objects.get(model=Person.__name__)) - - person_or_function_executes_salary = Property.objects.get_or_create( - name="führt durch", - name_reverse="wird durchgeführt von", - )[0] - person_or_function_executes_salary.subj_class.clear() - person_or_function_executes_salary.subj_class.add(ContentType.objects.get(model=Person.__name__)) - person_or_function_executes_salary.subj_class.add(ContentType.objects.get(model=Function.__name__)) - person_or_function_executes_salary.obj_class.clear() - person_or_function_executes_salary.obj_class.add(ContentType.objects.get(model=Salary.__name__)) - - person_or_function_takes_salary = Property.objects.get_or_create( - name="nimmt entgegen", - name_reverse="wird entgegengenommen von", - )[0] - person_or_function_takes_salary.subj_class.clear() - person_or_function_takes_salary.subj_class.add(ContentType.objects.get(model=Person.__name__)) - person_or_function_takes_salary.subj_class.add(ContentType.objects.get(model=Function.__name__)) - person_or_function_takes_salary.obj_class.clear() - person_or_function_takes_salary.obj_class.add(ContentType.objects.get(model=Salary.__name__)) - - person_vouchers_for_person = Property.objects.get_or_create( - name="bürgt für", - name_reverse="wird gebürgt von", - )[0] - person_vouchers_for_person.subj_class.clear() - person_vouchers_for_person.subj_class.add(ContentType.objects.get(model=Person.__name__)) - person_vouchers_for_person.obj_class.clear() - person_vouchers_for_person.obj_class.add(ContentType.objects.get(model=Person.__name__)) - - person_possible_identical_with_person = Property.objects.get_or_create( - name="ist möglicherweise identisch mit", - name_reverse="ist möglicherweise identisch mit", - )[0] - person_possible_identical_with_person.subj_class.clear() - person_possible_identical_with_person.subj_class.add(ContentType.objects.get(model=Person.__name__)) - person_possible_identical_with_person.obj_class.clear() - person_possible_identical_with_person.obj_class.add(ContentType.objects.get(model=Person.__name__)) - - function_is_located_at_institution = Property.objects.get_or_create( - name="ist an", - name_reverse="hat Funktion", - )[0] - function_is_located_at_institution.subj_class.clear() - function_is_located_at_institution.subj_class.add(ContentType.objects.get(model=Function.__name__)) - function_is_located_at_institution.obj_class.clear() - function_is_located_at_institution.obj_class.add(ContentType.objects.get(model=Institution.__name__)) - - function_is_located_at_institution.obj_class.add(ContentType.objects.get(model=Court.__name__)) - - function_is_hold_by = Property.objects.get_or_create( - name="wird bekleidet von", - name_reverse="hat Funktion inne", - )[0] - function_is_hold_by.subj_class.clear() - function_is_hold_by.subj_class.add(ContentType.objects.get(model=Function.__name__)) - function_is_hold_by.obj_class.clear() - function_is_hold_by.obj_class.add(ContentType.objects.get(model=Person.__name__)) - - function_ging_hervor_aus = Property.objects.get_or_create( - name="ging hervor aus", - name_reverse="war Vorgänger von", - )[0] - function_ging_hervor_aus.subj_class.clear() - function_ging_hervor_aus.subj_class.add(ContentType.objects.get(model=Function.__name__)) - function_ging_hervor_aus.obj_class.clear() - function_ging_hervor_aus.obj_class.add(ContentType.objects.get(model=Function.__name__)) - - function_is_subordinary_of = Property.objects.get_or_create( - name="ist untergeordnet", - name_reverse="hat untergeordnete Funktion", - )[0] - function_is_subordinary_of.subj_class.clear() - function_is_subordinary_of.subj_class.add(ContentType.objects.get(model=Function.__name__)) - function_is_subordinary_of.obj_class.clear() - function_is_subordinary_of.obj_class.add(ContentType.objects.get(model=Function.__name__)) - - function_was_located_in = Property.objects.get_or_create( - name="ausgeübt in", - name_reverse="war Ausübungsort von", - )[0] - function_was_located_in.subj_class.clear() - function_was_located_in.subj_class.add(ContentType.objects.get(model=Function.__name__)) - function_was_located_in.obj_class.clear() - function_was_located_in.obj_class.add(ContentType.objects.get(model=Place.__name__)) - - place_located_in_place = Property.objects.get_or_create( - name="Teil von", - name_reverse="hat Teil", - )[0] - place_located_in_place.subj_class.clear() - place_located_in_place.subj_class.add(ContentType.objects.get(model=Place.__name__)) - place_located_in_place.obj_class.clear() - place_located_in_place.obj_class.add(ContentType.objects.get(model=Place.__name__)) - - institution_paid_salary = Property.objects.get_or_create( - name="zahlte aus", - name_reverse="wurde ausbezahlt von", - )[0] - institution_paid_salary.subj_class.clear() - institution_paid_salary.subj_class.add(ContentType.objects.get(model=Institution.__name__)) - institution_paid_salary.obj_class.clear() - institution_paid_salary.obj_class.add(ContentType.objects.get(model=Salary.__name__)) - - institutionlocated_in = Property.objects.get_or_create( - name="ist gelegen in", - name_reverse="inkludiert", - )[0] - institutionlocated_in.subj_class.clear() - institutionlocated_in.subj_class.add(ContentType.objects.get(model=Institution.__name__)) - institutionlocated_in.obj_class.clear() - institutionlocated_in.obj_class.add(ContentType.objects.get(model=Place.__name__)) - - institution_given_in_mortage_to = Property.objects.get_or_create( - name="ist verpfändet an", - name_reverse="hat als Pfand", - )[0] - institution_given_in_mortage_to.subj_class.clear() - institution_given_in_mortage_to.subj_class.add(ContentType.objects.get(model=Institution.__name__)) - institution_given_in_mortage_to.obj_class.clear() - institution_given_in_mortage_to.obj_class.add(ContentType.objects.get(model=Person.__name__)) - - institution_belongs_to_institution = Property.objects.get_or_create( - name="gehört zu", - name_reverse="zuständig für", - )[0] - institution_belongs_to_institution.subj_class.clear() - institution_belongs_to_institution.subj_class.add(ContentType.objects.get(model=Institution.__name__)) - institution_belongs_to_institution.obj_class.clear() - institution_belongs_to_institution.obj_class.add(ContentType.objects.get(model=Institution.__name__)) - - institution_orders_salary = Property.objects.get_or_create( - name="weist an", - name_reverse="angewiesen von", - )[0] - institution_orders_salary.subj_class.clear() - institution_orders_salary.subj_class.add(ContentType.objects.get(model=Institution.__name__)) - institution_orders_salary.obj_class.clear() - institution_orders_salary.obj_class.add(ContentType.objects.get(model=Salary.__name__)) - - institution_has_tie_to_institution = Property.objects.get_or_create( - name="steht in Verbindung mit", - name_reverse="steht in Verbindung mit", - )[0] - institution_has_tie_to_institution.subj_class.clear() - institution_has_tie_to_institution.subj_class.add(ContentType.objects.get(model=Institution.__name__)) - institution_has_tie_to_institution.obj_class.clear() - institution_has_tie_to_institution.obj_class.add(ContentType.objects.get(model=Institution.__name__)) - - event_took_place_at = Property.objects.get_or_create( - name="fand statt in", - name_reverse="inkludierte", - )[0] - event_took_place_at.subj_class.clear() - event_took_place_at.subj_class.add(ContentType.objects.get(model=Event.__name__)) - event_took_place_at.obj_class.clear() - event_took_place_at.obj_class.add(ContentType.objects.get(model=Place.__name__)) - - salary_paid_to = Property.objects.get_or_create( - name="wurde ausbezahlt an", - name_reverse="erhielt", - )[0] - salary_paid_to.subj_class.clear() - salary_paid_to.subj_class.add(ContentType.objects.get(model=Salary.__name__)) - salary_paid_to.obj_class.clear() - salary_paid_to.obj_class.add(ContentType.objects.get(model=Function.__name__)) - - salary_ordered_by = Property.objects.get_or_create( - name="auf Anweisung von", - name_reverse="wies an", - )[0] - salary_ordered_by.subj_class.clear() - salary_ordered_by.subj_class.add(ContentType.objects.get(model=Salary.__name__)) - salary_ordered_by.obj_class.clear() - salary_ordered_by.obj_class.add(ContentType.objects.get(model=Function.__name__)) diff --git a/data/properties.json b/data/properties.json new file mode 100644 index 0000000..c1ab7dc --- /dev/null +++ b/data/properties.json @@ -0,0 +1,522 @@ +[ + { + "id": 1, + "name": "bewohnt", + "name_reverse": "Bewohner von", + "obj": [ + "Place" + ], + "subj": [ + "Person" + ] + }, + { + "id": 2, + "name": "besitzt", + "name_reverse": "Besitzer von", + "obj": [ + "Place" + ], + "subj": [ + "Person" + ] + }, + { + "id": 3, + "name": "hat Korrespondenz mit", + "name_reverse": "hat Korrespondenz mit", + "obj": [ + "Person" + ], + "subj": [ + "Person" + ] + }, + { + "id": 4, + "name": "hat Familienbeziehung zu", + "name_reverse": "hat Familienbeziehung zu", + "obj": [ + "Person" + ], + "subj": [ + "Person" + ] + }, + { + "id": 5, + "name": "hat Ehe mit", + "name_reverse": "hat Ehe mit", + "obj": [ + "Person" + ], + "subj": [ + "Person" + ] + }, + { + "id": 6, + "name": "war anwesend bei", + "name_reverse": "hatte anwesende Person", + "obj": [ + "Court" + ], + "subj": [ + "Person" + ] + }, + { + "id": 7, + "name": "empfahl", + "name_reverse": "wurde empfohlen von", + "obj": [ + "Person" + ], + "subj": [ + "Person" + ] + }, + { + "id": 8, + "name": "hat Gesch\u00e4ftsbeziehung zu", + "name_reverse": "hat Gesch\u00e4ftsbeziehung zu", + "obj": [ + "Person" + ], + "subj": [ + "Person" + ] + }, + { + "id": 9, + "name": "Mitglied von", + "name_reverse": "hatte Mitglied", + "obj": [ + "Institution" + ], + "subj": [ + "Person" + ] + }, + { + "id": 10, + "name": "nahm teil an", + "name_reverse": "hatte teilnehmende Person", + "obj": [ + "Event" + ], + "subj": [ + "Person" + ] + }, + { + "id": 11, + "name": "erhielt Gehalt", + "name_reverse": "wurde ausbezahlt an", + "obj": [ + "Person" + ], + "subj": [ + "Salary" + ] + }, + { + "id": 12, + "name": "ist an", + "name_reverse": "hat Funktion", + "obj": [ + "Court", + "Institution" + ], + "subj": [ + "Function" + ] + }, + { + "id": 13, + "name": "wird bekleidet von", + "name_reverse": "hat Funktion inne", + "obj": [ + "Person" + ], + "subj": [ + "Function" + ] + }, + { + "id": 14, + "name": "Teil von", + "name_reverse": "hat Teil", + "obj": [ + "Place" + ], + "subj": [ + "Place" + ] + }, + { + "id": 15, + "name": "zahlte aus", + "name_reverse": "wurde ausbezahlt von", + "obj": [ + "Salary" + ], + "subj": [ + "Institution" + ] + }, + { + "id": 142, + "name": "ist Elternteil von", + "name_reverse": "ist Kind von", + "obj": [ + "Person" + ], + "subj": [ + "Person" + ] + }, + { + "id": 143, + "name": "ist Bruder/Schwester von", + "name_reverse": "ist Bruder/Schwester von", + "obj": [ + "Person" + ], + "subj": [ + "Person" + ] + }, + { + "id": 144, + "name": "ist Kind von", + "name_reverse": "ist Elternteil von", + "obj": [ + "Person" + ], + "subj": [ + "Person" + ] + }, + { + "id": 145, + "name": "weist an", + "name_reverse": "auf Anweisung von", + "obj": [ + "Salary" + ], + "subj": [ + "Person" + ] + }, + { + "id": 146, + "name": "geboren in", + "name_reverse": "Geburtsort von", + "obj": [ + "Place" + ], + "subj": [ + "Person" + ] + }, + { + "id": 147, + "name": "gestorben in", + "name_reverse": "Sterbeort von", + "obj": [ + "Place" + ], + "subj": [ + "Person" + ] + }, + { + "id": 148, + "name": "ging hervor aus", + "name_reverse": "war Vorg\u00e4nger von", + "obj": [ + "Function" + ], + "subj": [ + "Function" + ] + }, + { + "id": 149, + "name": "ist untergeordnet", + "name_reverse": "hat untergeordnete Funktion", + "obj": [ + "Function" + ], + "subj": [ + "Function" + ] + }, + { + "id": 150, + "name": "ist gelegen in", + "name_reverse": "inkludiert", + "obj": [ + "Place" + ], + "subj": [ + "Institution" + ] + }, + { + "id": 151, + "name": "fand statt in", + "name_reverse": "inkludierte", + "obj": [ + "Place" + ], + "subj": [ + "Event" + ] + }, + { + "id": 152, + "name": "wurde ausbezahlt an", + "name_reverse": "erhielt", + "obj": [ + "Function" + ], + "subj": [ + "Salary" + ] + }, + { + "id": 473, + "name": "ist t\u00e4tig in", + "name_reverse": "ist T\u00e4tigkeitsort von", + "obj": [ + "Place" + ], + "subj": [ + "Person" + ] + }, + { + "id": 474, + "name": "h\u00e4lt sich auf in", + "name_reverse": "ist Aufenthaltsort von", + "obj": [ + "Place" + ], + "subj": [ + "Person" + ] + }, + { + "id": 475, + "name": "ist Vormund von", + "name_reverse": "ist M\u00fcndel von", + "obj": [ + "Person" + ], + "subj": [ + "Person" + ] + }, + { + "id": 476, + "name": "war t\u00e4tig an", + "name_reverse": "hatte t\u00e4tige Person", + "obj": [ + "Institution" + ], + "subj": [ + "Person" + ] + }, + { + "id": 477, + "name": "ist Pfr\u00fcndner von", + "name_reverse": "hat Pfr\u00fcndner", + "obj": [ + "Institution" + ], + "subj": [ + "Person" + ] + }, + { + "id": 478, + "name": "ausge\u00fcbt in", + "name_reverse": "war Aus\u00fcbungsort von", + "obj": [ + "Place" + ], + "subj": [ + "Function" + ] + }, + { + "id": 1978, + "name": "ist im Dienst von", + "name_reverse": "hat Diener", + "obj": [ + "Person" + ], + "subj": [ + "Person" + ] + }, + { + "id": 2421, + "name": "hat Heimatort in", + "name_reverse": "Heimatort von", + "obj": [ + "Place" + ], + "subj": [ + "Person" + ] + }, + { + "id": 2422, + "name": "ist verpf\u00e4ndet an", + "name_reverse": "hat als Pfand", + "obj": [ + "Person" + ], + "subj": [ + "Institution" + ] + }, + { + "id": 2423, + "name": "geh\u00f6rt zu", + "name_reverse": "zust\u00e4ndig f\u00fcr", + "obj": [ + "Institution" + ], + "subj": [ + "Institution" + ] + }, + { + "id": 2424, + "name": "weist an", + "name_reverse": "angewiesen von", + "obj": [ + "Salary" + ], + "subj": [ + "Institution" + ] + }, + { + "id": 2425, + "name": "auf Anweisung von", + "name_reverse": "wies an", + "obj": [ + "Function" + ], + "subj": [ + "Salary" + ] + }, + { + "id": 2455, + "name": "verkauft Besitz an", + "name_reverse": "kauft Besitz von", + "obj": [ + "Person" + ], + "subj": [ + "Person" + ] + }, + { + "id": 2456, + "name": "hat Streit mit", + "name_reverse": "hat Streit mit", + "obj": [ + "Person" + ], + "subj": [ + "Person" + ] + }, + { + "id": 3760, + "name": "f\u00fchrt durch", + "name_reverse": "wird durchgef\u00fchrt von", + "obj": [ + "Salary" + ], + "subj": [ + "Function", + "Person" + ] + }, + { + "id": 3761, + "name": "nimmt entgegen", + "name_reverse": "wird entgegengenommen von", + "obj": [ + "Salary" + ], + "subj": [ + "Function", + "Person" + ] + }, + { + "id": 4290, + "name": "b\u00fcrgt f\u00fcr", + "name_reverse": "wird geb\u00fcrgt von", + "obj": [ + "Person" + ], + "subj": [ + "Person" + ] + }, + { + "id": 4578, + "name": "ist m\u00f6glicherweise identisch mit", + "name_reverse": "ist m\u00f6glicherweise identisch mit", + "obj": [ + "Person" + ], + "subj": [ + "Person" + ] + }, + { + "id": 6846, + "name": "steht in Verbindung mit", + "name_reverse": "steht in Verbindung mit", + "obj": [ + "Institution" + ], + "subj": [ + "Institution" + ] + }, + { + "id": 6861, + "name": "ist verbunden mit", + "name_reverse": "ist verbunden mit", + "obj": [ + "Function" + ], + "subj": [ + "Function" + ] + }, + { + "id": 6865, + "name": "ist m\u00f6glicherweise spezifiziert als", + "name_reverse": "ist m\u00f6glicherweise verallgemeinert als", + "obj": [ + "Function" + ], + "subj": [ + "Function" + ] + } +] \ No newline at end of file