Question - Interpretation of != in discovered rules
kliegr opened this issue · comments
When mining with constants, I sometimes get rules that contain "!=" as in
?e <https://w3id.org/biolink/vocab/interacts_with> ?b ?q <https://w3id.org/biolink/vocab/interacts_with> ?b ?e <https://w3id.org/biolink/vocab/interacts_with> ?l ?q <https://w3id.org/biolink/vocab/interacts_with> ?l ?e!=<http://ensembl.org/id/Cx> ?q!=<http://ensembl.org/id/Cx> => <http://ensembl.org/id/Cx> <https://w3id.org/biolink/vocab/interacts_with> ?b 0.2 0.5 0.5 3 6 6 -2
Do I interpret this correctly as non-equality, i.e., variable q must not be bound to "http://ensembl.org/id/Cx"? Is this feature unique to AMIE3? Is it possible to control whether rules containing this pattern will be output?
Hi,
This is non-equality.
If you have the atom <interacts_with> ?b and AMIE adds an atom ?q <interacts_with> ?b then it will also add the atom ?q != . The variable ?q is existential as we only need one instantiation of it per instantiation of ?b to have a match. The case ?q == is not interesting.
The InjectiveMappingsAssistant I told you about in the other thread is doing something similar, adding != atoms behind the scenes.
If you want to remove the atom, you will have to implement your own mining assistant.
Cheers,
Jonathan