Для этого есть хитрость. Используйте
filter(str(?q) < str(?s))
вместо
filter(?q != ?s)
. Причина, по которой это работает, заключается в том, что если вы сравниваете с использованием !=
, вы получаете два совпадения: после того, как все оба узла не равны друг другу. Однако только один идентификатор bnode меньше другого, поэтому вы получите только одно совпадение.