@@ -0,0 +1,703 @@
+import java.util.HashSet;%0Aimport java.util.Set;%0Aimport semantics.model.Individual;%0Aimport static semantics.Individuals.getNames;%0Aimport static semantics.Individuals.getSorted;%0A%0Apublic class Wineries knows %22wine.rdf%22 %7B%0A  private static Set%3C%C2%AB:Winery%C2%BB%3E toMaker(Set%3C? extends Individual%3E wines) %7B%0A    Set%3C%C2%AB:Winery%C2%BB%3E wineries = new HashSet%3C%3E();%0A%0A    for (Individual wine : wines) %7B%0A      for (Individual maker : wine.%C2%AB:hasMaker%C2%BB) %7B%0A        wineries.add((%C2%AB:Winery%C2%BB) maker);%0A      %7D%0A    %7D%0A%0A    return wineries;%0A  %7D%0A%0A%0A  public static void main(String%5B%5D args) %7B%0A    Set%3C%C2%AB:Winery%C2%BB%3E makers = toMaker(do-query(%22:RedWine%22 %E2%8A%93 %22:DryWine%22));%0A    System.out.println(String.join(%22%5Cn%22, getNames(getSorted(makers))));%0A  %7D%0A%7D%0A

Add wine makers example