diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 446e4f86..5dcadaa2 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -35,7 +35,7 @@ jobs: services: rdf4j: # Docker Hub image - image: eclipse/rdf4j-workbench:4.3.15 + image: eclipse/rdf4j-workbench:5.1.0 ports: - 8080:8080 diff --git a/src/cimsparql/sparql/bus.sparql b/src/cimsparql/sparql/bus.sparql index 9556294f..6deff47c 100644 --- a/src/cimsparql/sparql/bus.sparql +++ b/src/cimsparql/sparql/bus.sparql @@ -33,17 +33,15 @@ where { } } . optional { - # When an EIC code does not exist, look for an EIC code in neighbouring nodes - filter(!bound(?direct_bidzone)) - { - select ?top_node (max(?connected_bidzone) as ?nearby_bidzone) { - ?con_node cim:ConnectivityNode.TopologicalNode ?top_node . - ?_eq_subj2 ?eq_repo2 . - service ?eq_repo2 { - # Collect bidzones from substations connected to the current substation via a ConductingEquipment - ?con_node ^cim:Terminal.ConnectivityNode/cim:Terminal.ConductingEquipment/^cim:Terminal.ConductingEquipment/cim:Terminal.ConnectivityNode/cim:ConnectivityNode.ConnectivityNodeContainer/cim:VoltageLevel.Substation/SN:Substation.MarketDeliveryPoint/SN:MarketDeliveryPoint.BiddingArea/entsoeSecretariat:IdentifiedObject.energyIdentCodeEIC ?connected_bidzone . - }} group by ?top_node} + select ?top_node (max(?connected_bidzone) as ?nearby_bidzone) { + ?con_node cim:ConnectivityNode.TopologicalNode ?top_node . + ?_eq_subj2 ?eq_repo2 . + service ?eq_repo2 { + # Collect bidzones from substations connected to the current substation via a ConductingEquipment + ?con_node ^cim:Terminal.ConnectivityNode/cim:Terminal.ConductingEquipment/^cim:Terminal.ConductingEquipment/cim:Terminal.ConnectivityNode/cim:ConnectivityNode.ConnectivityNodeContainer/cim:VoltageLevel.Substation/SN:Substation.MarketDeliveryPoint/SN:MarketDeliveryPoint.BiddingArea/entsoeSecretariat:IdentifiedObject.energyIdentCodeEIC ?connected_bidzone . + }} group by ?top_node } + bind(coalesce(?direct_bidzone, ?nearby_bidzone) as ?bidzone) FILTER regex(?area, '${region}')