1. NEED TO GO THROUGH A FILTER.
country[
    ethnicgroups[
        percentage(@ethnicPercentage=x1)],
    religions[
        percentage(@religPercentage=x2)],
    languages[
        percentage(@langPercentage=x3)],
    province[
        city[
            name(@name=x4){functional},
            population(@cityPop=x5,@year=x6)]],
    name(@countryName=x7){functional},
    area(@area=x8){functional},
    population(@countryPop=x9,@year=x10)]
:-
Country(Y1),ReligionPercent(Y2),Population(Y3),
EthnicGroupPercent(Y4),City(Y5),LanguagePercent(Y6),
Population(Y7),CapitalCity(Y8),ethnicgroups(Y1,Y4),
religions(Y1,Y2),languages(Y1,Y6),located_in(Y5,Y1),
hasPopulation(Y1,Y3),hasPopulation(Y5,Y7),hasPopulation(Y8,Y7),
hasPopulation(Y8,Y3),countryName(Y1,x7),percent(Y2,x2),
area(Y1,x8),populationNumber(Y3,x9),percent(Y4,x1),
cityName(Y5,x4),year(Y3,x6),percent(Y6,x3),
populationNumber(Y7,x5).

2. NEED TO GO THROUGH A FILTER.
country[
    ethnicgroups[
        percentage(@ethnicPercentage=x1)],
    religions[
        percentage(@religPercentage=x2)],
    languages[
        percentage(@langPercentage=x3)],
    province[
        city[
            name(@name=x4){functional},
            population(@cityPop=x5,@year=x6)]],
    name(@countryName=x7){functional},
    area(@area=x8){functional},
    population(@countryPop=x9,@year=x10)]
:-
Country(Y1),ReligionPercent(Y2),Population(Y3),
EthnicGroupPercent(Y4),City(Y5),LanguagePercent(Y6),
Population(Y7),ethnicgroups(Y1,Y4),religions(Y1,Y2),
languages(Y1,Y6),located_in(Y5,Y1),hasPopulation(Y1,Y3),
hasPopulation(Y5,Y7),hasPopulation(Y5,Y3),countryName(Y1,x7),
percent(Y2,x2),area(Y1,x8),populationNumber(Y3,x9),
percent(Y4,x1),cityName(Y5,x4),year(Y3,x6),
percent(Y6,x3),populationNumber(Y7,x5).

3. NEED TO GO THROUGH A FILTER.
country[
    ethnicgroups[
        percentage(@ethnicPercentage=x1)],
    religions[
        percentage(@religPercentage=x2)],
    languages[
        percentage(@langPercentage=x3)],
    province[
        city[
            name(@name=x4){functional},
            population(@cityPop=x5,@year=x6)]],
    name(@countryName=x7){functional},
    area(@area=x8){functional},
    population(@countryPop=x9,@year=x10)]
:-
Country(Y1),ReligionPercent(Y2),Population(Y3),
EthnicGroupPercent(Y4),City(Y5),LanguagePercent(Y6),
Population(Y7),ethnicgroups(Y1,Y4),religions(Y1,Y2),
languages(Y1,Y6),located_in(Y5,Y1),hasPopulation(Y1,Y3),
hasPopulation(Y5,Y7),hasPopulation(Y1,Y7),countryName(Y1,x7),
percent(Y2,x2),area(Y1,x8),populationNumber(Y3,x9),
percent(Y4,x1),cityName(Y5,x4),year(Y3,x6),
percent(Y6,x3),populationNumber(Y7,x5).

