spec [Researcher:?]->(Smoker)->[Boolean:yes];
spec [Researcher:?]->(isSmoker);
spec Hacker_smoker: ?;
spec Not_hacker_not_smoker: ?;
spec [Researcher:?]<-(Agent)<-[Smoke] | set smokers;
spec [Researcher:?]<-(Agent)<-[Hack] | set hackers;
spec [Researcher:?]- { (Agent)<-[Hack];
(Agent)<-[Smoke]; } | set hackers_smokers;
subtract "$smokers" "$hackers_smokers" | set smokers_non_hackers;
subtract "$hackers" "$hackers_smokers" | set hackers_non_smokers;