-
Notifications
You must be signed in to change notification settings - Fork 28
Description
A query graph containing edges e0, e1, and e2 is traditionally interpreted as implying that all assertions are true, i.e. e0 AND e1 AND e2. As a side note, it would be good to make that interpretation explicit somewhere. But that raises the question of how to represent different and more complex logical operations, e.g. e0 OR (e1 AND e2) or (e0 OR e1) AND NOT e2.
This is tied up with data modeling issues around polarity and strength of evidence for individual assertions (relationships/edges). We should be clear about what it means to bind some assertion onto e0. I think it ought to mean just that there is evidence for the assertion (and assertion matches the query template). Note that the assertion may be of the form e.g. "A does not cause B", which would be modeled with a causes predicate and negated = True. Then binding that assertion indicates "we know that A does not cause B". Binding NOT e0 would indicate a lack of evidence for the assertion, i.e. "we do not know that A does not cause B". It would then be up to the client whether they wish to assume that absence of evidence is evidence of absence ("A causes B"), but the server would make no such assumption.
In addition to agreeing on an interpretation of these logical operations, we need to determine how to represent them, syntactically. That should be easier.