Skip to content

Instantly share code, notes, and snippets.

@langsamu
Last active May 21, 2018 17:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save langsamu/37db908d8ba2633221aa161934193f24 to your computer and use it in GitHub Desktop.
Save langsamu/37db908d8ba2633221aa161934193f24 to your computer and use it in GitHub Desktop.
What has happened and what might happen in a package of work subject to Parliamentary procedure?
PREFIX : <https://id.parliament.uk/schema/>
PREFIX ex: <https://example.com/>
CONSTRUCT {
?possibleStep a ex:STEP, ex:POSSIBLE .
?actualizedStep a ex:STEP, ex:ACTUALIZED .
?rootStep a ex:ROOT .
?actualizedStep ex:LEDTO ?otherActualizedStep .
?actualizedStep ex:CANLEADTO ?otherActualizedStep .
?enablingStep ex:ENABLES ?possibleStep .
?enablingStep ex:CANLEADTO ?possibleStep .
?actualizedStep :procedureStepName ?actualizedStepName .
?possibleStep :procedureStepName ?possibleName .
?actualizedItem ex:ACTUALIZED ?actualizedStep .
}
WHERE {
BIND(<https://id.parliament.uk/dD8Sk358> AS ?package)
?procedure :procedureHasWorkPackage ?package .
{
?enablingStep :procedureStepHasBusinessItem/:businessItemHasWorkPackage ?package .
?possibleRoute :procedureRouteHasProcedure ?procedure .
?possibleRoute :procedureRouteIsFromProcedureStep ?enablingStep .
?possibleRoute :procedureRouteIsToProcedureStep ?possibleStep .
?possibleStep :procedureStepName ?possibleName .
FILTER NOT EXISTS {
?possibleStep :procedureStepHasBusinessItem/:businessItemHasWorkPackage ?package .
}
FILTER NOT EXISTS {
?precludingRoute :procedureRouteIsToProcedureStep ?possibleStep .
?precludingRoute :procedureRouteHasProcedure ?procedure .
?precludingRoute :precludedProcedureRouteIsPrecludedByProcedureStep/:procedureStepHasBusinessItem/:businessItemHasWorkPackage ?package .
}
FILTER NOT EXISTS {
?reqRoute :requiredProcedureRouteIsRequiredByProcedureStep ?possibleStep .
?reqRoute :procedureRouteHasProcedure ?procedure .
FILTER NOT EXISTS {
?reqRoute :procedureRouteIsToProcedureStep/:procedureStepHasBusinessItem/:businessItemHasWorkPackage ?package .
}
}
}
UNION
{
?actualizedItem :businessItemHasWorkPackage ?package .
?actualizedItem :businessItemHasProcedureStep ?actualizedStep .
?actualizedStep :procedureStepName ?actualizedStepName .
OPTIONAL {
?actualizedRoute :procedureRouteIsFromProcedureStep ?actualizedStep .
?actualizedRoute :procedureRouteIsToProcedureStep ?otherActualizedStep .
?actualizedRoute :procedureRouteHasProcedure ?procedure .
?otherActualizedStep :procedureStepHasBusinessItem/:businessItemHasWorkPackage ?package .
FILTER (?otherActualizedStep != ?actualizedStep)
}
}
UNION
{
?rootItem :businessItemHasWorkPackage ?package .
?rootItem :businessItemHasProcedureStep ?rootStep .
FILTER NOT EXISTS {
?higherRoute :procedureRouteIsToProcedureStep ?rootStep .
?higherRoute :procedureRouteHasProcedure ?procedure .
?higherRoute (:causedProcedureRouteIsCausedByProcedureStep|:allowedProcedureRouteIsAllowedByProcedureStep)/:procedureStepHasBusinessItem/:businessItemHasWorkPackage ?package .
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment