alaajabari's picture
Rename re/ontology.py to relation_module/ontology.py
f4a5524 verified
from collections import defaultdict
relation_domain_range=[
{
"relation": "manager_of",
"domain": ["PERS"],
"range": ["ORG", "FAC"]
},
{
"relation": "birth_date",
"domain": ["PERS"],
"range": ["DATE"]
},
{
"relation": "has_parent",
"domain": ["PERS"],
"range": ["PERS"]
},
{
"relation": "has_sibling",
"domain": ["PERS"],
"range": ["PERS"]
},
{
"relation": "has_spouse",
"domain": ["PERS"],
"range": ["PERS"]
},
{
"relation": "has_relative",
"domain": ["PERS"],
"range": ["PERS"]
},
{
"relation": "death_date",
"domain": ["PERS"],
"range": ["DATE"]
},
{
"relation": "birth_place",
"domain": ["PERS"],
"range": ["GPE", "LOC"]
},
{
"relation": "has_occupation",
"domain": ["PERS"],
"range": ["OCC"]
},
{
"relation": "has_conflict_with",
"domain": ["ORG", "NORP", "GPE"],
"range": ["ORG", "NORP", "GPE"]
},
{
"relation": "has_compititor",
"domain": ["PERS", "ORG"],
"range": ["PERS", "ORG"]
},
{
"relation": "has_partner_with",
"domain": ["ORG"],
"range": ["ORG"]
},
{
"relation": "president_of",
"domain": ["PERS"],
"range": ["ORG", "GPE"]
},
{
"relation": "leader_of",
"domain": ["PERS"],
"range": ["ORG"]
},
{
"relation": "geopolitical_division",
"domain": ["GPE", "LOC"],
"range": ["GPE", "LOC"]
},
{
"relation": "member_of",
"domain": ["PERS"],
"range": ["ORG", "NORP"]
},
{
"relation": "subsidary",
"domain": ["ORG"],
"range": ["ORG"]
},
{
"relation": "employee_of",
"domain": ["PERS"],
"range": ["ORG", "FAC"]
},
{
"relation": "student_at",
"domain": ["PERS"],
"range": ["ORG"]
},
{
"relation": "owner_of",
"domain": ["PERS"],
"range": ["ORG", "FAC"]
},
{
"relation": "inventor_of",
"domain": ["PERS"],
"range": ["PRODUCT"]
},
{
"relation": "manufacturer_of",
"domain": ["ORG"],
"range": ["PRODUCT"]
},
{
"relation": "builder_of",
"domain": ["PERS", "NORP"],
"range": ["FAC"]
},
{
"relation": "founder_of",
"domain": ["PERS"],
"range": ["ORG"]
},
{
"relation": "lives_in",
"domain": ["PERS", "NORP"],
"range": ["GPE", "LOC"]
},
{
"relation": "located_in",
"domain": ["FAC", "ORG"],
"range": ["GPE", "LOC"]
},
{
"relation": "headquartered_in",
"domain": ["ORG"],
"range": ["GPE", "LOC"]
},
{
"relation": "has_border_with",
"domain": ["LOC", "GPE"],
"range": ["LOC", "GPE"]
},
{
"relation": "nearby",
"domain": ["GPE", "LOC", "ORG", "FAC"],
"range": ["GPE", "LOC", "ORG", "FAC"]
},
{
"relation": "has_property",
"domain": ["ORG"],
"range": ["PRODUCT"]
},
{
"relation": "branch_count",
"domain": ["ORG"],
"range": ["CARDINAL"]
},
{
"relation": "has_revenue",
"domain": ["ORG"],
"range": ["MONEY"]
},
{
"relation": "employs",
"domain": ["ORG"],
"range": ["CARDINAL"]
},
{
"relation": "found_on",
"domain": ["ORG"],
"range": ["DATE", "TIME"]
},
{
"relation": "has_alternate_name",
"domain": ["ORG", "FAC"],
"range": ["ORG", "FAC"]
},
{
"relation": "has_area",
"domain": ["GPE", "LOC"],
"range": ["QUANTITY"]
},
{
"relation": "official_language",
"domain": ["GPE", "LOC"],
"range": ["LANGUAGE"]
},
{
"relation": "has_currency",
"domain": ["GPE", "LOC"],
"range": ["CURR"]
},
{
"relation": "has_population",
"domain": ["GPE"],
"range": ["CARDINAL"]
},
{
"relation": "capital_of",
"domain": ["GPE"],
"range": ["GPE"]
}
]
def build_relation_lookup():
relation_lookup = defaultdict(lambda: defaultdict(list))
for rel in relation_domain_range:
for d in rel["domain"]:
for r in rel["range"]:
relation_lookup[d][r].append(rel["relation"])
return relation_lookup