Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tester et paramétrer les requêtes SPARQL de Marc #3

Open
tfrancart opened this issue Feb 5, 2025 · 0 comments
Open

Tester et paramétrer les requêtes SPARQL de Marc #3

tfrancart opened this issue Feb 5, 2025 · 0 comments
Assignees

Comments

@tfrancart
Copy link
Collaborator

====================================================================================================
Tous les actes en vigueur
-> Auteur Santé

En rajoutant des colonnes avec :

  • URI
  • Type
  • Date de signature
  • Date de Publication
  • Entrée en vigueur
  • Num Mémorial
    -> Modifie URI
    -> Règlement d’exécution de URI

SELECT ?act
(CONCAT(STR(DAY(?dateDocument)), "/", STR(MONTH(?dateDocument)), "/", STR(YEAR(?dateDocument))) as ?date_signature)
(CONCAT(STR(DAY(?dateEntryInForce)), "/", STR(MONTH(?dateEntryInForce)), "/", STR(YEAR(?dateEntryInForce))) as ?date_entree_en_vigueur)
(STR(?lblTypeDocument) AS ?nature)
(CONCAT(STR(DAY(?publicationDate)), "/", STR(MONTH(?publicationDate)), "/", STR(YEAR(?publicationDate))) as ?date_publication)
(xsd:int(?memorialNumber) AS ?num_memorial)
(GROUP_CONCAT(DISTINCT(?lblSubjectLevel1); separator="\n") as ?sujets_principaux)
(GROUP_CONCAT(DISTINCT(?lblSubjectLevel2); separator="\n") as ?sujets_secondaires)
(GROUP_CONCAT(DISTINCT(?modifies); separator="\n") as ?modifie)
(GROUP_CONCAT(DISTINCT(?basedOn); separator="\n") as ?reglement_d_execution)
WHERE {
?act a jolux:Act; # on veut les actes
jolux:inForceStatus http://data.legilux.public.lu/resource/authority/statut-application/applicable; # en vigueur
jolux:responsibilityOf http://data.legilux.public.lu/resource/authority/legal-institution/MS; # du ministère de la Santé
jolux:dateDocument ?dateDocument; # on récupère leur date de signature
jolux:dateEntryInForce ?dateEntryInForce; # on récupère leur date d'entrée en vigueur
jolux:typeDocument ?typeDocument; # on récupère leur type
jolux:isPartOf ?mem . # on récupère le Mémorial pour la date de publication

OPTIONAL {?act jolux:modifies ?modifies} # on récupère les actes qu'il modifie
OPTIONAL {?act jolux:basedOn ?basedOn} # on récupère ses règlements d'exécution

OPTIONAL {?act jolux:subjectLevel1 ?subjectLevel1 .
?subjectLevel1 skos:prefLabel ?lblSubjectLevel1} # on récupère les sujets principaux
OPTIONAL {?act jolux:subjectLevel2 ?subjectLevel2 .
?subjectLevel2 skos:prefLabel ?lblSubjectLevel2} # on récupère les sujets secondaires

?typeDocument skos:prefLabel ?lblTypeDocument . # on récupère le libellé du type

?mem jolux:memorialNumber ?memorialNumber; # on récupère le numéro de Mémorial
jolux:isMemberOf ?isMemberOf; # on récupère le type de Mémorial
jolux:publicationDate ?publicationDate . # on récupère la date de publication
} ORDER BY DESC(?isMemberOf) DESC(?publicationDate)

====================================================================================================

Liste des actes ayant une consolidation


SELECT * WHERE {
GRAPH ?gAct {
?act a jolux:Act;
jolux:isMemberOf ?workAct .
}
GRAPH ?gConso {
?conso a jolux:Consolidation;
jolux:isMemberOf ?workAct .
}
}

====================================================================================================

Requête pour avoir le nbr de RGD sans projet en 2024


PREFIX jolux: http://data.legilux.public.lu/resource/ontology/jolux#
SELECT (count(?rgd) AS ?nb)
WHERE {
?memorial a jolux:Memorial;
jolux:memorialYear ?memYear;
jolux:memorialNumber ?memorialNumber;
jolux:publicationDate ?publicationDate;
jolux:isMemberOf ?memorialSerial .
?act a jolux:Act .
?act jolux:isPartOf ?memorial .
?act jolux:typeDocument ?typeDocument .

BIND("rgd" AS ?rgd)
FILTER(?memYear=2024)
FILTER(STR(?typeDocument)='http://data.legilux.public.lu/resource/authority/resource-type/RGD')
FILTER(NOT EXISTS{?act jolux:draft ?draft})
} GROUP BY ?rgd

====================================================================================================

Requête pour avoir le nbr de RGD avec projet en 2024


PREFIX jolux: http://data.legilux.public.lu/resource/ontology/jolux#
SELECT (count(?rgd) AS ?nb)
WHERE {
?memorial a jolux:Memorial;
jolux:memorialYear ?memYear;
jolux:memorialNumber ?memorialNumber;
jolux:publicationDate ?publicationDate;
jolux:isMemberOf ?memorialSerial .
?act a jolux:Act .
?act jolux:isPartOf ?memorial .
?act jolux:typeDocument ?typeDocument .

BIND("rgd" AS ?rgd)
FILTER(?memYear=2024)
FILTER(STR(?typeDocument)='http://data.legilux.public.lu/resource/authority/resource-type/RGD')
FILTER(EXISTS{?act jolux:draft ?draft})
} GROUP BY ?rgd

====================================================================================================

Actes modificateurs et rectificatifs (modificateurs purs) encore en vigueur
et dont son acte de base n’est plus en vigueur.


SELECT DISTINCT ?mod WHERE {
{
?mod a jolux:Act;
jolux:modifies ?actBase .

FILTER(NOT EXISTS{?mod a jolux:BaseAct})
FILTER(EXISTS{?actBase jolux:inForceStatus http://data.legilux.public.lu/resource/authority/statut-application/non-applicable})
FILTER(EXISTS{?mod jolux:inForceStatus http://data.legilux.public.lu/resource/authority/statut-application/applicable})
} UNION {
?mod a jolux:Act;
jolux:rectifies ?actBase .

FILTER(NOT EXISTS{?mod a jolux:BaseAct})
FILTER(EXISTS{?actBase jolux:inForceStatus http://data.legilux.public.lu/resource/authority/statut-application/non-applicable})
FILTER(EXISTS{?mod jolux:inForceStatus http://data.legilux.public.lu/resource/authority/statut-application/applicable})
}
}

====================================================================================================

Actes ayant un modificateur qui lui est rectifié


SELECT ?eli ?mod ?rect WHERE {
?eli a jolux:Act .

?rect jolux:rectifies ?mod .
?mod jolux:modifies ?eli .
}

====================================================================================================

Voici la liste des actes plus en vigueur contenant une consolidation en vigueur :


SELECT * WHERE {
?conso a jolux:Consolidation;
jolux:inForceStatus http://data.legilux.public.lu/resource/authority/statut-application/applicable;
jolux:isMemberOf ?workActBase .

?actBase a jolux:Act;
jolux:isMemberOf ?workActBase .

FILTER(EXISTS{?actBase jolux:inForceStatus http://data.legilux.public.lu/resource/authority/statut-application/non-applicable})
}

====================================================================================================

Tous les actes URI dont l’intitulé comprend : “interministériel” ou “interdépartementale”


SELECT ?eli ?title WHERE {
?eli a jolux:Act;
jolux:isRealizedBy ?expression .
?expression jolux:title ?title .

FILTER(REGEX(?title, 'interministériel') OR REGEX(?title, 'interdépartementale'))
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants