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;