We add new agents with the goal of benchmarking common reasoning queries. Two agents simply insert new data, and so are applicable for benchmarking on other databases. Reasoning queries do not have a fair comparison in other DBs and so are only implemented for TypeDB.
What are the changes implemented in this PR?
New agents for TypeDB and Neo4j:
MarriageAgent
ParenthoodAgent
New reasoning agents for TypeDB only:
NationalityAgent queries for people's nationality, determined based on their birthplace being contained in a country.
CitizenshipAgent queries for citizens of a country. People can be citizens based on three rules. Either they are nationals, they have a parent as a national, or their partner in marriage is a national.
CoupleFriendshipAgent queries for friendships. The name is to differentiate from FriendshipAgent (which inserts friendships), and also indicates the rule being benchmarked. The rule dictates that married couples are friends.
GrandparenthoodAgent queries for grandparenthood, which is always inferred. Note this is not transitive, this is a simple two hops over parenthood.
LineageAgent queries for lineage, which is a transitive relation over parentship.
MaritalStatusAgent queries for an attribute on a person that shows their marital status based on whether they are in a marriage.
What is the goal of this PR?
We add new agents with the goal of benchmarking common reasoning queries. Two agents simply insert new data, and so are applicable for benchmarking on other databases. Reasoning queries do not have a fair comparison in other DBs and so are only implemented for TypeDB.
What are the changes implemented in this PR?
New agents for TypeDB and Neo4j:
MarriageAgent
ParenthoodAgent
New reasoning agents for TypeDB only:
NationalityAgent
queries for people's nationality, determined based on their birthplace being contained in a country.CitizenshipAgent
queries for citizens of a country. People can be citizens based on three rules. Either they are nationals, they have a parent as a national, or their partner in marriage is a national.CoupleFriendshipAgent
queries for friendships. The name is to differentiate fromFriendshipAgent
(which inserts friendships), and also indicates the rule being benchmarked. The rule dictates that married couples are friends.GrandparenthoodAgent
queries forgrandparenthood
, which is always inferred. Note this is not transitive, this is a simple two hops overparenthood
.LineageAgent
queries forlineage
, which is a transitive relation overparentship
.MaritalStatusAgent
queries for an attribute on a person that shows their marital status based on whether they are in amarriage
.