Skip to content

Instantly share code, notes, and snippets.

@robertbrook
Created March 22, 2022 15:20
Show Gist options
  • Save robertbrook/8d72b8fcb4d4623e1fd4b5e730517874 to your computer and use it in GitHub Desktop.
Save robertbrook/8d72b8fcb4d4623e1fd4b5e730517874 to your computer and use it in GitHub Desktop.
PREFIX : <https://id.parliament.uk/schema/>
PREFIX id: <https://id.parliament.uk/>
SELECT ?flag
WHERE {
{
SELECT (count(*) as ?flag)
WHERE {
?x a :House.
FILTER EXISTS {
{
?route1 :procedureRouteIsFromProcedureStep ?fromstep.
?route1 :procedureRouteIsToProcedureStep ?tostep.
?route1 :procedureRouteHasProcedure ?procedure.
}
union
{
?route1 :procedureRouteIsFromProcedureStep ?fromstep.
?route1 :procedureRouteIsToProcedureStep/:procedureStepIsToProcedureRoute ?route2.
?route2 :procedureRouteIsToProcedureStep ?tostep.
?route1 :procedureRouteHasProcedure ?procedure.
?route2 :procedureRouteHasProcedure ?procedure.
}
union
{
?route1 :procedureRouteIsFromProcedureStep ?fromstep.
?route1 :procedureRouteIsToProcedureStep/:procedureStepIsToProcedureRoute ?route2.
?route2 :procedureRouteIsToProcedureStep/:procedureStepIsToProcedureRoute ?route3.
?route3 :procedureRouteIsToProcedureStep ?tostep.
?route1 :procedureRouteHasProcedure ?procedure.
?route2 :procedureRouteHasProcedure ?procedure.
?route3 :procedureRouteHasProcedure ?procedure.
}
}
{
BIND (@fromstep as ?fromstep)
BIND (@tostep as ?tostep)
BIND (@procedure as ?procedure)
}
}
}
UNION
{
SELECT (count(*) as ?flag)
WHERE {
?x a :House.
FILTER EXISTS {
{
?fromstep :procedureStepIsFromProcedureRoute ?route1.
?route1 :procedureRouteIsFromProcedureStep/:procedureStepIsToProcedureRoute ?route2.
?route2 :procedureRouteIsToProcedureStep/:procedureStepIsToProcedureRoute ?route3.
?route3 :procedureRouteIsToProcedureStep ?tostep.
?route1 :procedureRouteHasProcedure ?procedure.
?route2 :procedureRouteHasProcedure ?procedure.
?route3 :procedureRouteHasProcedure ?procedure.
}
union
{
?route1 :procedureRouteIsFromProcedureStep ?fromstep.
?route1 :procedureRouteIsToProcedureStep/:procedureStepIsToProcedureRoute ?route2.
?route2 :procedureRouteIsToProcedureStep/:procedureStepIsFromProcedureRoute ?route3.
?route3 :procedureRouteIsFromProcedureStep ?tostep.
?route1 :procedureRouteHasProcedure ?procedure.
?route2 :procedureRouteHasProcedure ?procedure.
?route3 :procedureRouteHasProcedure ?procedure.
}
}
{
BIND (@fromstep as ?fromstep)
BIND (@tostep as ?tostep)
BIND (@procedure as ?procedure)
}
}
}
UNION
{
SELECT (count(*) as ?flag)
WHERE {
?x a :House.
FILTER EXISTS {
{
?route1 :procedureRouteIsFromProcedureStep ?fromstep.
?route1 :procedureRouteIsToProcedureStep ?tostep.
?route1 :procedureRouteHasProcedure ?procedure.
}
union
{
?route1 :procedureRouteIsFromProcedureStep ?fromstep.
?route1 :procedureRouteIsToProcedureStep/:procedureStepIsToProcedureRoute ?route2.
?route2 :procedureRouteIsToProcedureStep ?tostep.
?route1 :procedureRouteHasProcedure ?procedure.
?route2 :procedureRouteHasProcedure ?procedure.
}
union
{
?route1 :procedureRouteIsFromProcedureStep ?fromstep.
?route1 :procedureRouteIsToProcedureStep/:procedureStepIsToProcedureRoute ?route2.
?route2 :procedureRouteIsToProcedureStep/:procedureStepIsToProcedureRoute ?route3.
?route3 :procedureRouteIsToProcedureStep ?tostep.
?route1 :procedureRouteHasProcedure ?procedure.
?route2 :procedureRouteHasProcedure ?procedure.
?route3 :procedureRouteHasProcedure ?procedure.
}
}
{
BIND (@fromstep as ?tostep)
BIND (@tostep as ?fromstep)
BIND (@procedure as ?procedure)
}
}
}
UNION
{
SELECT (count(*) as ?flag)
WHERE {
?x a :House.
FILTER EXISTS {
{
?fromstep :procedureStepIsFromProcedureRoute ?route1.
?route1 :procedureRouteIsFromProcedureStep/:procedureStepIsToProcedureRoute ?route2.
?route2 :procedureRouteIsToProcedureStep/:procedureStepIsToProcedureRoute ?route3.
?route3 :procedureRouteIsToProcedureStep ?tostep.
?route1 :procedureRouteHasProcedure ?procedure.
?route2 :procedureRouteHasProcedure ?procedure.
?route3 :procedureRouteHasProcedure ?procedure.
}
union
{
?fromstep :procedureStepIsToProcedureRoute ?route1.
?route1 :procedureRouteIsToProcedureStep/:procedureStepIsToProcedureRoute ?route2.
?route2 :procedureRouteIsToProcedureStep/:procedureStepIsFromProcedureRoute ?route3.
?route3 :procedureRouteIsFromProcedureStep ?tostep.
?route1 :procedureRouteHasProcedure ?procedure.
?route2 :procedureRouteHasProcedure ?procedure.
?route3 :procedureRouteHasProcedure ?procedure.
}
}
{
BIND (@fromstep as ?tostep)
BIND (@tostep as ?fromstep)
BIND (@procedure as ?procedure)
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment