On 04/09/2020 14:38, Élie Roux wrote:
select ?le ?la where {
      ?le adm:logDate ?sdate .
      FILTER(?sdate > "2021-08-20T00:00:00"^^xsd:dateTime)
      BIND(?le AS ?la)
}

In that trivial case yes, the longer query doesn't allow that:

Put the common part in a single place:


WHERE {
   ... common part ...
   {
     ...
   } UNION {
     ...
   }
}

and reorder to put common part together.


construct {
   ?eadm tmp:lastSync ?d .
   ?eadm tmp:dateCreated ?sdate  .
  }
WHERE
   {
     {
         ?le adm:logDate ?sdate .
         FILTER(?sdate > "2020-08-20T00:00:00"^^xsd:dateTime)
         ?le a adm:Synced .
         ?va adm:logEntry ?le ;
             adm:adminAbout ?v .
         ?v bdo:volumeOf ?iinstance .
         ?eadm adm:adminAbout ?iinstance .
     } union {
         ?le adm:logDate ?sdate .
         FILTER(?sdate > "2020-08-20T00:00:00"^^xsd:dateTime)
         ?le a adm:InitialDataCreation .
         ?eadm adm:logEntry ?le ;
             adm:adminAbout ?e .
         ?e a ?type .
         FILTER (?type != bdo:ImageGroup)
     }
   }

and takes 3.5s.

Best,

Reply via email to