docs: def temporal_from_resource(resource):
      '''
      Parse a temporal coverage from a RDF class/resource ie. either:
      - a `dct:PeriodOfTime` with schema.org `startDate` and `endDate` properties
      - an inline gov.uk Time Interval value
      - an URI reference to a gov.uk Time Interval ontology
        http://reference.data.gov.uk/
      '''
      if isinstance(resource.identifier, URIRef):
          # Fetch remote ontology if necessary
          g = Graph().parse(str(resource.identifier))
          resource = g.resource(resource.identifier)
      if resource.value(SCHEMA.startDate):
          return db.DateRange(
              start=resource.value(SCHEMA.startDate).toPython(),
              end=resource.value(SCHEMA.endDate).toPython()
          )
      elif resource.value(SCV.min):
          return db.DateRange(
              start=resource.value(SCV.min).toPython(),
              end=resource.value(SCV.max).toPython()
          )