I want to start speccing out a revised and more clean match API. This is separate from the discussion about a bulk screening API for now. The idea is just to incorporate all the learnings we've had from the older API into a simplified interface. As we discuss this, please feel free to edit and update the sample query/response below.
Request
POST /v2/match - no scope.
{
"filters": {
# either a simple list of OR-joined scopes, or a complex query as a dict (see ftm #272):
"datasets": ["sanctions"],
# for consistency:
"topics": ["role.pep", "sanction"],
"changed_since": "2022-02-24",
# big list:
"exclude_entities": ["Q7747", ...],
"exclude_schemata": ["Address", ...],
},
"algorithm": "logic-v2",
"threshold": 0.7,
# as before:
"weights": {},
"config": {},
"query": {
"schema": "Person",
"properties": {}
}
}
Behavioural differences:
- If query contains invalid properties, return 400
- If query property values are discarded by cleaning, return 400
- no batching
- dataset filter DSL
Response
{
"query": {},
"results": [],
}
No difference?
I want to start speccing out a revised and more clean match API. This is separate from the discussion about a bulk screening API for now. The idea is just to incorporate all the learnings we've had from the older API into a simplified interface. As we discuss this, please feel free to edit and update the sample query/response below.
Request
POST /v2/match- no scope.{ "filters": { # either a simple list of OR-joined scopes, or a complex query as a dict (see ftm #272): "datasets": ["sanctions"], # for consistency: "topics": ["role.pep", "sanction"], "changed_since": "2022-02-24", # big list: "exclude_entities": ["Q7747", ...], "exclude_schemata": ["Address", ...], }, "algorithm": "logic-v2", "threshold": 0.7, # as before: "weights": {}, "config": {}, "query": { "schema": "Person", "properties": {} } }Behavioural differences:
Response
{ "query": {}, "results": [], }No difference?