
sparql select ?first ?last ((coalesce(?s1, 0) - coalesce(?s2,0)) as ?score) ?fof ?gender ?locationname #Q10 
where {
   {select distinct ?fof
    where {
        sn:pers00000028587302327404 snvoc:knows ?fr .
        ?fr snvoc:knows ?fof .
        filter (?fof != sn:pers00000028587302327404) .
        minus { sn:pers00000028587302327404 snvoc:knows ?fof } .
    }
   } .
   optional { ?fof snvoc:firstName ?first } .
   optional { ?fof snvoc:lastName ?last } .
   ?fof snvoc:gender ?gender .     ?fof snvoc:birthday ?bday .
   ?fof snvoc:isLocatedIn ?based . ?based foaf:name ?locationname .
   filter (1 = if (month (?bday) = 11, if (day(?bday) >= 21, 1, 0), if (month (?bday) = 12, if (day(?bday) < 22, 1, 0), 0))) .
   optional {
     {select ?fof (count (distinct ?post) as ?s1)
      where {
        ?post a snvoc:Post .
        ?post snvoc:hasCreator ?fof .
        ?post snvoc:hasTag ?tag .
        sn:pers00000028587302327404 snvoc:hasInterest ?tag
      }
      group by ?fof
     }	    
   }.
   optional {
     {select ?fof (count (distinct ?post) as ?s2)
      where {
        ?post a snvoc:Post .
        ?post snvoc:hasCreator ?fof .
        filter (!exists {sn:pers00000028587302327404 snvoc:hasInterest ?tag. ?post snvoc:hasTag ?tag .})
      }
      group by ?fof
     }
   }.
}
order by desc(?score) ?fof
limit 10
;

sparql select ?first ?last ((coalesce(?s1, 0) - coalesce(?s2,0)) as ?score) ?fof ?gender ?locationname #Q10 
where {
   {select distinct ?fof
    where {
        sn:pers00000006597069777199 snvoc:knows ?fr .
        ?fr snvoc:knows ?fof .
        filter (?fof != sn:pers00000006597069777199) .
        minus { sn:pers00000006597069777199 snvoc:knows ?fof } .
    }
   } .
   optional { ?fof snvoc:firstName ?first } .
   optional { ?fof snvoc:lastName ?last } .
   ?fof snvoc:gender ?gender .     ?fof snvoc:birthday ?bday .
   ?fof snvoc:isLocatedIn ?based . ?based foaf:name ?locationname .
   filter (1 = if (month (?bday) = 10, if (day(?bday) >= 21, 1, 0), if (month (?bday) = 11, if (day(?bday) < 22, 1, 0), 0))) .
   optional {
     {select ?fof (count (distinct ?post) as ?s1)
      where {
        ?post a snvoc:Post .
        ?post snvoc:hasCreator ?fof .
        ?post snvoc:hasTag ?tag .
        sn:pers00000006597069777199 snvoc:hasInterest ?tag
      }
      group by ?fof
     }	    
   }.
   optional {
     {select ?fof (count (distinct ?post) as ?s2)
      where {
        ?post a snvoc:Post .
        ?post snvoc:hasCreator ?fof .
        filter (!exists {sn:pers00000006597069777199 snvoc:hasInterest ?tag. ?post snvoc:hasTag ?tag .})
      }
      group by ?fof
     }
   }.
}
order by desc(?score) ?fof
limit 10
;

sparql select ?first ?last ((coalesce(?s1, 0) - coalesce(?s2,0)) as ?score) ?fof ?gender ?locationname #Q10 
where {
   {select distinct ?fof
    where {
        sn:pers00000017592186053911 snvoc:knows ?fr .
        ?fr snvoc:knows ?fof .
        filter (?fof != sn:pers00000017592186053911) .
        minus { sn:pers00000017592186053911 snvoc:knows ?fof } .
    }
   } .
   optional { ?fof snvoc:firstName ?first } .
   optional { ?fof snvoc:lastName ?last } .
   ?fof snvoc:gender ?gender .     ?fof snvoc:birthday ?bday .
   ?fof snvoc:isLocatedIn ?based . ?based foaf:name ?locationname .
   filter (1 = if (month (?bday) = 7, if (day(?bday) >= 21, 1, 0), if (month (?bday) = 8, if (day(?bday) < 22, 1, 0), 0))) .
   optional {
     {select ?fof (count (distinct ?post) as ?s1)
      where {
        ?post a snvoc:Post .
        ?post snvoc:hasCreator ?fof .
        ?post snvoc:hasTag ?tag .
        sn:pers00000017592186053911 snvoc:hasInterest ?tag
      }
      group by ?fof
     }	    
   }.
   optional {
     {select ?fof (count (distinct ?post) as ?s2)
      where {
        ?post a snvoc:Post .
        ?post snvoc:hasCreator ?fof .
        filter (!exists {sn:pers00000017592186053911 snvoc:hasInterest ?tag. ?post snvoc:hasTag ?tag .})
      }
      group by ?fof
     }
   }.
}
order by desc(?score) ?fof
limit 10
;

sparql select ?first ?last ((coalesce(?s1, 0) - coalesce(?s2,0)) as ?score) ?fof ?gender ?locationname #Q10 
where {
   {select distinct ?fof
    where {
        sn:pers00000032985348841043 snvoc:knows ?fr .
        ?fr snvoc:knows ?fof .
        filter (?fof != sn:pers00000032985348841043) .
        minus { sn:pers00000032985348841043 snvoc:knows ?fof } .
    }
   } .
   optional { ?fof snvoc:firstName ?first } .
   optional { ?fof snvoc:lastName ?last } .
   ?fof snvoc:gender ?gender .     ?fof snvoc:birthday ?bday .
   ?fof snvoc:isLocatedIn ?based . ?based foaf:name ?locationname .
   filter (1 = if (month (?bday) = 5, if (day(?bday) >= 21, 1, 0), if (month (?bday) = 6, if (day(?bday) < 22, 1, 0), 0))) .
   optional {
     {select ?fof (count (distinct ?post) as ?s1)
      where {
        ?post a snvoc:Post .
        ?post snvoc:hasCreator ?fof .
        ?post snvoc:hasTag ?tag .
        sn:pers00000032985348841043 snvoc:hasInterest ?tag
      }
      group by ?fof
     }	    
   }.
   optional {
     {select ?fof (count (distinct ?post) as ?s2)
      where {
        ?post a snvoc:Post .
        ?post snvoc:hasCreator ?fof .
        filter (!exists {sn:pers00000032985348841043 snvoc:hasInterest ?tag. ?post snvoc:hasTag ?tag .})
      }
      group by ?fof
     }
   }.
}
order by desc(?score) ?fof
limit 10
;

sparql select ?first ?last ((coalesce(?s1, 0) - coalesce(?s2,0)) as ?score) ?fof ?gender ?locationname #Q10 
where {
   {select distinct ?fof
    where {
        sn:pers00000021990232561075 snvoc:knows ?fr .
        ?fr snvoc:knows ?fof .
        filter (?fof != sn:pers00000021990232561075) .
        minus { sn:pers00000021990232561075 snvoc:knows ?fof } .
    }
   } .
   optional { ?fof snvoc:firstName ?first } .
   optional { ?fof snvoc:lastName ?last } .
   ?fof snvoc:gender ?gender .     ?fof snvoc:birthday ?bday .
   ?fof snvoc:isLocatedIn ?based . ?based foaf:name ?locationname .
   filter (1 = if (month (?bday) = 4, if (day(?bday) >= 21, 1, 0), if (month (?bday) = 5, if (day(?bday) < 22, 1, 0), 0))) .
   optional {
     {select ?fof (count (distinct ?post) as ?s1)
      where {
        ?post a snvoc:Post .
        ?post snvoc:hasCreator ?fof .
        ?post snvoc:hasTag ?tag .
        sn:pers00000021990232561075 snvoc:hasInterest ?tag
      }
      group by ?fof
     }	    
   }.
   optional {
     {select ?fof (count (distinct ?post) as ?s2)
      where {
        ?post a snvoc:Post .
        ?post snvoc:hasCreator ?fof .
        filter (!exists {sn:pers00000021990232561075 snvoc:hasInterest ?tag. ?post snvoc:hasTag ?tag .})
      }
      group by ?fof
     }
   }.
}
order by desc(?score) ?fof
limit 10
;

sparql select ?first ?last ((coalesce(?s1, 0) - coalesce(?s2,0)) as ?score) ?fof ?gender ?locationname #Q10 
where {
   {select distinct ?fof
    where {
        sn:pers00000006597069776011 snvoc:knows ?fr .
        ?fr snvoc:knows ?fof .
        filter (?fof != sn:pers00000006597069776011) .
        minus { sn:pers00000006597069776011 snvoc:knows ?fof } .
    }
   } .
   optional { ?fof snvoc:firstName ?first } .
   optional { ?fof snvoc:lastName ?last } .
   ?fof snvoc:gender ?gender .     ?fof snvoc:birthday ?bday .
   ?fof snvoc:isLocatedIn ?based . ?based foaf:name ?locationname .
   filter (1 = if (month (?bday) = 2, if (day(?bday) >= 21, 1, 0), if (month (?bday) = 3, if (day(?bday) < 22, 1, 0), 0))) .
   optional {
     {select ?fof (count (distinct ?post) as ?s1)
      where {
        ?post a snvoc:Post .
        ?post snvoc:hasCreator ?fof .
        ?post snvoc:hasTag ?tag .
        sn:pers00000006597069776011 snvoc:hasInterest ?tag
      }
      group by ?fof
     }	    
   }.
   optional {
     {select ?fof (count (distinct ?post) as ?s2)
      where {
        ?post a snvoc:Post .
        ?post snvoc:hasCreator ?fof .
        filter (!exists {sn:pers00000006597069776011 snvoc:hasInterest ?tag. ?post snvoc:hasTag ?tag .})
      }
      group by ?fof
     }
   }.
}
order by desc(?score) ?fof
limit 10
;

sparql select ?first ?last ((coalesce(?s1, 0) - coalesce(?s2,0)) as ?score) ?fof ?gender ?locationname #Q10 
where {
   {select distinct ?fof
    where {
        sn:pers00000010995116288285 snvoc:knows ?fr .
        ?fr snvoc:knows ?fof .
        filter (?fof != sn:pers00000010995116288285) .
        minus { sn:pers00000010995116288285 snvoc:knows ?fof } .
    }
   } .
   optional { ?fof snvoc:firstName ?first } .
   optional { ?fof snvoc:lastName ?last } .
   ?fof snvoc:gender ?gender .     ?fof snvoc:birthday ?bday .
   ?fof snvoc:isLocatedIn ?based . ?based foaf:name ?locationname .
   filter (1 = if (month (?bday) = 10, if (day(?bday) >= 21, 1, 0), if (month (?bday) = 11, if (day(?bday) < 22, 1, 0), 0))) .
   optional {
     {select ?fof (count (distinct ?post) as ?s1)
      where {
        ?post a snvoc:Post .
        ?post snvoc:hasCreator ?fof .
        ?post snvoc:hasTag ?tag .
        sn:pers00000010995116288285 snvoc:hasInterest ?tag
      }
      group by ?fof
     }	    
   }.
   optional {
     {select ?fof (count (distinct ?post) as ?s2)
      where {
        ?post a snvoc:Post .
        ?post snvoc:hasCreator ?fof .
        filter (!exists {sn:pers00000010995116288285 snvoc:hasInterest ?tag. ?post snvoc:hasTag ?tag .})
      }
      group by ?fof
     }
   }.
}
order by desc(?score) ?fof
limit 10
;

sparql select ?first ?last ((coalesce(?s1, 0) - coalesce(?s2,0)) as ?score) ?fof ?gender ?locationname #Q10 
where {
   {select distinct ?fof
    where {
        sn:pers00000021990232559198 snvoc:knows ?fr .
        ?fr snvoc:knows ?fof .
        filter (?fof != sn:pers00000021990232559198) .
        minus { sn:pers00000021990232559198 snvoc:knows ?fof } .
    }
   } .
   optional { ?fof snvoc:firstName ?first } .
   optional { ?fof snvoc:lastName ?last } .
   ?fof snvoc:gender ?gender .     ?fof snvoc:birthday ?bday .
   ?fof snvoc:isLocatedIn ?based . ?based foaf:name ?locationname .
   filter (1 = if (month (?bday) = 2, if (day(?bday) >= 21, 1, 0), if (month (?bday) = 3, if (day(?bday) < 22, 1, 0), 0))) .
   optional {
     {select ?fof (count (distinct ?post) as ?s1)
      where {
        ?post a snvoc:Post .
        ?post snvoc:hasCreator ?fof .
        ?post snvoc:hasTag ?tag .
        sn:pers00000021990232559198 snvoc:hasInterest ?tag
      }
      group by ?fof
     }	    
   }.
   optional {
     {select ?fof (count (distinct ?post) as ?s2)
      where {
        ?post a snvoc:Post .
        ?post snvoc:hasCreator ?fof .
        filter (!exists {sn:pers00000021990232559198 snvoc:hasInterest ?tag. ?post snvoc:hasTag ?tag .})
      }
      group by ?fof
     }
   }.
}
order by desc(?score) ?fof
limit 10
;

sparql select ?first ?last ((coalesce(?s1, 0) - coalesce(?s2,0)) as ?score) ?fof ?gender ?locationname #Q10 
where {
   {select distinct ?fof
    where {
        sn:pers00000002199023265657 snvoc:knows ?fr .
        ?fr snvoc:knows ?fof .
        filter (?fof != sn:pers00000002199023265657) .
        minus { sn:pers00000002199023265657 snvoc:knows ?fof } .
    }
   } .
   optional { ?fof snvoc:firstName ?first } .
   optional { ?fof snvoc:lastName ?last } .
   ?fof snvoc:gender ?gender .     ?fof snvoc:birthday ?bday .
   ?fof snvoc:isLocatedIn ?based . ?based foaf:name ?locationname .
   filter (1 = if (month (?bday) = 9, if (day(?bday) >= 21, 1, 0), if (month (?bday) = 10, if (day(?bday) < 22, 1, 0), 0))) .
   optional {
     {select ?fof (count (distinct ?post) as ?s1)
      where {
        ?post a snvoc:Post .
        ?post snvoc:hasCreator ?fof .
        ?post snvoc:hasTag ?tag .
        sn:pers00000002199023265657 snvoc:hasInterest ?tag
      }
      group by ?fof
     }	    
   }.
   optional {
     {select ?fof (count (distinct ?post) as ?s2)
      where {
        ?post a snvoc:Post .
        ?post snvoc:hasCreator ?fof .
        filter (!exists {sn:pers00000002199023265657 snvoc:hasInterest ?tag. ?post snvoc:hasTag ?tag .})
      }
      group by ?fof
     }
   }.
}
order by desc(?score) ?fof
limit 10
;
