-
Notifications
You must be signed in to change notification settings - Fork 23
Open
Description
Example query generated by Elda:
PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
PREFIX dct: <http://purl.org/dc/terms/>
PREFIX def-som: <http://environment.data.gov.uk/def/bwq-som/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX spatialrelations: <http://data.ordnancesurvey.co.uk/ontology/spatialrelations/>
PREFIX def-ef: <http://location.data.gov.uk/def/ef/SamplingPoint/>
PREFIX def-stp: <http://environment.data.gov.uk/def/bwq-stp/>
PREFIX def-bw: <http://environment.data.gov.uk/def/bathing-water/>
SELECT DISTINCT ?item WHERE
{
{
BIND(xsd:dateTime(replace(str(now()), "\\\\..*$", "")) AS ?doi)
{
?som def-bw:bathingWater ?bwt .
?som def-som:startOfSuspension ?start
FILTER NOT EXISTS {?som dct:isReplacedBy ?som2 }
}
OPTIONAL { ?som def-som:endOfSuspension ?end }
BIND(?som AS ?item)
FILTER ( ( ( bound(?end) && ( ?start <= ?doi ) ) && ( ?doi <= ?end ) ) || ( ( ! bound(?end) ) && ( ?start <= ?doi ) ) )
}
UNION
{
BIND(xsd:dateTime(replace(str(now()), "\\\\..*$", "")) AS ?doi)
?stp def-stp:riskLevel def-stp:increased .
?stp def-stp:bathingWater ?bwt .
?stp def-stp:publishedAt ?padt .
?stp def-stp:expiresAt ?end .
?stp def-stp:predictedAt ?start
FILTER ( ( ?start <= ?doi ) && ( ?doi <= ?end ) )
FILTER NOT EXISTS {
?stp2 def-stp:bathingWater ?bwt .
?stp2 def-stp:publishedAt ?padt2 .
?stp2 def-stp:expiresAt ?end2 .
?stp2 def-stp:predictedAt ?start2
FILTER ( ( ( ?padt2 > ?padt ) && ( ?start2 <= ?doi ) ) && ( ?doi <= ?end2 ) )
}
BIND(?stp AS ?item)
}
UNION
{
BIND(xsd:dateTime(replace(str(now()), "\\\\..*$", "")) AS ?doi)
{
?pi rdf:type def-som:PollutionIncident .
?pi def-bw:bathingWater ?bwt .
?pi def-som:startOfIncident ?start
FILTER NOT EXISTS { ?pi dct:isReplacedBy ?other }
}
OPTIONAL { ?pi def-som:endOfIncident ?end }
FILTER ( ( ?start <= ?doi ) && ( ( ! bound(?end) ) || ( ?doi <= ?end ) ) )
BIND(?pi AS ?item)
}
OPTIONAL { ?item def-bw:bathingWater ?___1 . ?___1 rdf:type ?___0 }
OPTIONAL { ?item def-bw:regionalOrganization ?___3 . ?___3 rdf:type ?___2 }
OPTIONAL { ?item def-ef:samplingPoint ?___5 . ?___5 spatialrelations:northing ?___4 }
OPTIONAL { ?___0 skos:prefLabel ?___6 }
OPTIONAL { ?___4 geo:long ?___7 }
OPTIONAL { ?item def-som:expectedEndOfSuspension ?___8 }
}
ORDER BY ?___0 ?___2 DESC(?___4) ?___6 DESC(?___7) DESC(?___8) ?item
OFFSET 100 LIMIT 50
Example rewritten form which avoids unbounds in nested optionals:
PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
PREFIX dct: <http://purl.org/dc/terms/>
PREFIX def-som: <http://environment.data.gov.uk/def/bwq-som/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX spatialrelations: <http://data.ordnancesurvey.co.uk/ontology/spatialrelations/>
PREFIX def-ef: <http://location.data.gov.uk/def/ef/SamplingPoint/>
PREFIX def-stp: <http://environment.data.gov.uk/def/bwq-stp/>
PREFIX def-bw: <http://environment.data.gov.uk/def/bathing-water/>
SELECT DISTINCT ?item WHERE {
{
BIND(xsd:dateTime(REPLACE(STR(NOW()), "\\\\..*$", "")) AS ?doi)
{
?som def-bw:bathingWater ?bwt ;
def-som:startOfSuspension ?start .
FILTER(NOT EXISTS {?som dct:isReplacedBy ?som2 . })
}
OPTIONAL { ?som def-som:endOfSuspension ?end . }
BIND(?som AS ?item)
FILTER ( ( ( (BOUND(?end)) && ( ?start <= ?doi ) ) && ( ?doi <= ?end ) ) || ( ( ! (BOUND(?end)) ) && ( ?start <= ?doi ) ) )
}
UNION
{
BIND(xsd:dateTime(REPLACE(STR(NOW()), "\\\\..*$", "")) AS ?doi)
?stp def-stp:riskLevel def-stp:increased ;
def-stp:bathingWater ?bwt ;
def-stp:publishedAt ?padt ;
def-stp:expiresAt ?end ;
def-stp:predictedAt ?start .
FILTER ( ( ?start <= ?doi ) && ( ?doi <= ?end ) )
FILTER(NOT EXISTS {
?stp2 def-stp:bathingWater ?bwt ;
def-stp:publishedAt ?padt2 ;
def-stp:expiresAt ?end2 ;
def-stp:predictedAt ?start2 .
FILTER ( ( ( ?padt2 > ?padt ) && ( ?start2 <= ?doi ) ) && ( ?doi <= ?end2 ) )
})
BIND(?stp AS ?item)
}
UNION
{
BIND(xsd:dateTime(REPLACE(STR(NOW()), "\\\\..*$", "")) AS ?doi)
{
?pi rdf:type def-som:PollutionIncident ;
def-bw:bathingWater ?bwt ;
def-som:startOfIncident ?start .
FILTER(NOT EXISTS { ?pi dct:isReplacedBy ?other. })
}
OPTIONAL { ?pi def-som:endOfIncident ?end. }
FILTER ( ( ?start <= ?doi ) && ( ( ! (BOUND(?end)) ) || ( ?doi <= ?end ) ) )
BIND(?pi AS ?item)
}
OPTIONAL {
?item def-bw:bathingWater ?___1 .
?___1 rdf:type ?___0.
OPTIONAL { ?___0 skos:prefLabel ?___6. }
}
OPTIONAL {
?item def-bw:regionalOrganization ?___3 .
?___3 rdf:type ?___2.
}
OPTIONAL {
?item def-ef:samplingPoint ?___5 .
?___5 spatialrelations:northing ?___4.
OPTIONAL { ?___4 geo:long ?___7. }
}
OPTIONAL { ?item def-som:expectedEndOfSuspension ?___8. }
}
ORDER BY (?___0) (?___2) DESC(?___4) (?___6) DESC(?___7) DESC(?___8) (?item)
OFFSET 100
LIMIT 50
Metadata
Metadata
Assignees
Labels
No labels