mirror of
https://github.com/tomasriveral/ReSSPublica.git
synced 2026-08-11 18:28:38 +02:00
reorganize project
This commit is contained in:
@@ -0,0 +1 @@
|
||||
# resspublica/__init__.py
|
||||
@@ -0,0 +1,19 @@
|
||||
from SPARQLWrapper import SPARQLWrapper, JSON
|
||||
from feedgen.feed import FeedGenerator
|
||||
from importlib.resources import files
|
||||
|
||||
def generateFederalFeed():
|
||||
sparql = SPARQLWrapper("https://cached.lindas.admin.ch/sparql")
|
||||
|
||||
query = files("resspublica").joinpath(
|
||||
"queries/federalPopularInitiatives.sparql"
|
||||
).read_text()
|
||||
|
||||
sparql.setQuery(query)
|
||||
sparql.setReturnFormat(JSON)
|
||||
|
||||
results = sparql.query().convert()
|
||||
print(results)
|
||||
|
||||
def main():
|
||||
generateFederalFeed()
|
||||
@@ -0,0 +1,45 @@
|
||||
PREFIX schema: <http://schema.org/>
|
||||
|
||||
SELECT
|
||||
?id
|
||||
?date
|
||||
|
||||
(GROUP_CONCAT(DISTINCT IF(LANG(?title)="fr", STR(?title), ""); separator=" || ") AS ?title_fr)
|
||||
(GROUP_CONCAT(DISTINCT IF(LANG(?title)="de", STR(?title), ""); separator=" || ") AS ?title_de)
|
||||
(GROUP_CONCAT(DISTINCT IF(LANG(?title)="it", STR(?title), ""); separator=" || ") AS ?title_it)
|
||||
|
||||
(GROUP_CONCAT(DISTINCT IF(LANG(?status)="fr", STR(?status), ""); separator=" || ") AS ?status_fr)
|
||||
(GROUP_CONCAT(DISTINCT IF(LANG(?status)="de", STR(?status), ""); separator=" || ") AS ?status_de)
|
||||
(GROUP_CONCAT(DISTINCT IF(LANG(?status)="it", STR(?status), ""); separator=" || ") AS ?status_it)
|
||||
|
||||
(GROUP_CONCAT(DISTINCT IF(LANG(?initiativtext)="fr", STR(?initiativtext), ""); separator=" || ") AS ?text_fr)
|
||||
(GROUP_CONCAT(DISTINCT IF(LANG(?initiativtext)="de", STR(?initiativtext), ""); separator=" || ") AS ?text_de)
|
||||
(GROUP_CONCAT(DISTINCT IF(LANG(?initiativtext)="it", STR(?initiativtext), ""); separator=" || ") AS ?text_it)
|
||||
|
||||
(GROUP_CONCAT(DISTINCT IF(LANG(?artikel)="fr", STR(?artikel), ""); separator=" || ") AS ?artikel_fr)
|
||||
(GROUP_CONCAT(DISTINCT IF(LANG(?artikel)="de", STR(?artikel), ""); separator=" || ") AS ?artikel_de)
|
||||
(GROUP_CONCAT(DISTINCT IF(LANG(?artikel)="it", STR(?artikel), ""); separator=" || ") AS ?artikel_it)
|
||||
|
||||
WHERE {
|
||||
<https://politics.ld.admin.ch/political-rights/popular-initiative/1>
|
||||
<https://cube.link/observationSet> ?obsSet .
|
||||
|
||||
?obsSet <https://cube.link/observation> ?source .
|
||||
|
||||
?source
|
||||
<https://politics.ld.admin.ch/political-rights/popular-initiative/id> ?id ;
|
||||
<https://politics.ld.admin.ch/political-rights/popular-initiative/sammelbeginn> ?date ;
|
||||
<https://politics.ld.admin.ch/political-rights/popular-initiative/titel> ?titleUri ;
|
||||
<https://politics.ld.admin.ch/political-rights/popular-initiative/status> ?statusUri ;
|
||||
<https://politics.ld.admin.ch/political-rights/popular-initiative/initiativtext> ?textUri ;
|
||||
<https://politics.ld.admin.ch/political-rights/popular-initiative/artikelBv> ?articleUri .
|
||||
|
||||
?titleUri schema:name ?title .
|
||||
?statusUri schema:name ?status .
|
||||
|
||||
OPTIONAL { ?textUri schema:name ?initiativtext . }
|
||||
OPTIONAL { ?articleUri schema:name ?artikel . }
|
||||
}
|
||||
GROUP BY ?id ?date
|
||||
ORDER BY DESC(?date)
|
||||
LIMIT 100
|
||||
Reference in New Issue
Block a user