Vés al contingut

Tema de Usuari Discussió:Paucabot

com estàs d SPARQL ?

8
Resum per Paucabot

Millor demanar-ho a Request a Query.

Amadalvarez (discussiócontribucions)

Tinc aquesta query i vull obtenir, també, el qualificador P585 de la població P1082.

He deixat comentada una opció que ja he provat i no m'ha funcionat.

Per un camí tortuós seguint un altre exemple he aconseguit que m'ho mostrés, però el preu era veure totes les instàncies de P1082 i no la preferred.

Alguna idea ?

Paucabot (discussiócontribucions)

Me sap greu, però tenc l'SPARQL una mica rovellat. I si ho demanes a Request a Query?

Amadalvarez (discussiócontribucions)

abans volia explorar les vies locals. Vaig a fer-ho. Per cert, sàpigues que tinc una col·lecció de casos útils a User:Amadalvarez/Queries

KRLS (discussiócontribucions)

Hola Amador. Aquí tens una aproximació similar al que busques que vaig fer per Llista de municipis de Catalunya (té el problema dels ranks preferred; si hi ha rank prefered l'SPARQL ignora la resta d'opcions). Remena, si no te'n ensurts te'n trec l'entrellat:

#Població municipal a Catalunya del 2017.
SELECT ?itemLabel ?comarcaLabel ?population WHERE {
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],ca". }
  ?item wdt:P31/wdt:P279* wd:Q2074737;
        wdt:P131 ?comarca;
        p:P1082 [ ps:P1082 ?population; pq:P585 ?data].
  ?comarca wdt:P31 wd:Q937876.
  FILTER(YEAR(?data) = 2017).
}

Prova-ho !

KRLS (discussiócontribucions)

Aquesta query ja retorna tots els municipis de Catalunya:

SELECT DISTINCT ?item ?comarcaLabel ?population WHERE {
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],ca". }
  ?item wdt:P31/wdt:P279* wd:Q2074737;
        wdt:P131 ?comarca;
        p:P1082 [ ps:P1082 ?population; pq:P585 ?data].
  ?comarca wdt:P31/wdt:P279* wd:Q11917457.
  FILTER(YEAR(?data) = 2017).
}
  ORDER BY ASC (?itemLabel)

Prova-ho !

Amadalvarez (discussiócontribucions)

Merci, @KRLS. Una cosa similar ja l'havia aconseguit (no sé ni com, amb la de proves que he fet) però et passa tots els valors de ?data. No hi vull posar el FILTER perquè no sé quin any tindrà i vull el preferred, igual que et retornaria la població amb wdt

Amadalvarez (discussiócontribucions)

ei, @Paucabot@KRLS. Ja m'han respost la request:

SELECT DISTINCT ?item ?itemLabel ?poblacio ?superficie ?imatge_de_l_escut_d_armes ?pointInTime WHERE {
  ?item wdt:P31 wd:Q33146843;
    wdt:P4335 ?p4335.
  FILTER(STRSTARTS(?p4335, "25"))
  OPTIONAL { ?item p:P1082 [ps:P1082 ?poblacio; pq:P585 ?pointInTime; wikibase:rank wikibase:PreferredRank] . }
  OPTIONAL { ?item wdt:P2046 ?superficie. }
  OPTIONAL { ?item wdt:P94 ?imatge_de_l_escut_d_armes. }
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
LIMIT 100

Prova-ho !

Ara ja sabem com filtrar per rank.

Merci

Amadalvarez (discussiócontribucions)