code: def run_shex_manifest(manifest_url, index=0, debug=False):
          
          manifest = json.loads(manifest_url, debug=False)
          manifest_results = dict()
          for case in manifest[index]:
              if case.data.startswith("Endpoint:"):
                  sparql_endpoint = case.data.replace("Endpoint: ", "")
                  schema = requests.get(case.schemaURL).text
                  shex = ShExC(schema).schema
                  evaluator = ShExEvaluator(schema=shex, debug=debug)
                  sparql_query = case.queryMap.replace("SPARQL '''", "").replace("'''@START", "")
  
                  df = WDItemEngine.execute_sparql_query(sparql_query)
                  for row in df["results"]["bindings"]:
                      wdid = row["item"]["value"]
                      if wdid not in  manifest_results.keys():
                          manifest_results[wdid] = dict()
                      slurpeddata = SlurpyGraph(sparql_endpoint)
                      results = evaluator.evaluate(rdf=slurpeddata, focus=wdid, debug=debug)
                      for result in results:
                          if result.result:
                              manifest_results[wdid]["status"] = "CONFORMS"
                          else:
                              manifest_results[wdid]["status"] = "DOES NOT CONFORM"
                              manifest_results[wdid]["debug"] = result.reason
          return manifest_results
docs: :param manifest: A url to a manifest that contains all the ingredients to run a shex conformance test
          :param index: Manifests are stored in lists. This method only handles one manifest, hence by default the first
                 manifest is going to be selected
          :return: