code: def _load_xai_fb15k_237_experiment_log(full=False, subset="all"):
      """Load the XAI FB15k-237 experiment log
  
          XAI-FB15k-237 is a reduced version of FB15K-237 containing human-readable triples.
  
          The dataset contains several fields, by default the returned data frame contains only triples, when
          option full is equal to True (``full=True``) the full data is returned (it reflects filtering protocol).
  
          Fields:
  
          - predicate,
          - predicate label,
          - predicates_description,
          - subject,
          - subject_label,
          - object_label,
          - object.
  
          All triples are returned 273 x 7.
  
          Full Fields:
  
          *note: some field can have 3 forms, these are marked with X, X = {1,2,3} for 3 triples,
                 that were displayed to the annotators with a given predicate.
  
          - predicate: evaluated predicate,
          - predicate label: human label for predicate,
          - predicates_description: human description of what the predicate means,
          - question triple X: textual form of triple 1 containing predicate,
          - subject_tripleX: subject of triple X,
          - object_tripleX: object of triple X,
          - subject_label_tripleX: human label of subject of triple X,
          - object_label_tripleX: human label of object of triple X,
          - avg rank triple X: avergae rank that the triple obtain among models,
          - std rank triple X: standard deviation of rank that the triple obtain among models,
          - avg O rank triple X: average object rank that the triple obtain among models,
          - std O rank triple X: standard deviation of object rank that the triple obtain among models,
          - avg S rank triple X: average subject rank that the triple obtain among models,
          - std S rank triple X: standard deviation of subject rank that the triple obtain among models,
          - evaluated: summed score of 3 evaluators for a predicate (when each evaluator gave score 0 - not understandable or 1- understandable):
                   0 - triples with this predicate are not understandable - full agreement between annotators.
                   1 - triples with this predicate are mostly understandable - partial agreement between annotators.
                   2 - triples with this predicate are mostly not understandable - partial agreement between annotators.
                   3 - triples with this predicate are clearly understandable - full agreement between annotators.
  
         All predicates are returned 91 x 37 records each containing 3 triples.
  
          ============= ========= ==========
          Dataset       Entities  Relations
          ============= ========= ==========
          XAI-FB15K-237  446       91
          ============= ========= ==========
  
  
          Parameters
          ----------
          full [False]: wether to return full dataset or reduced view with triples.
          subset ["all"]: subset of records to be returned:
               - "all" - returns all records,
               - "clear" - returns only triples which all annotators marked as understandable,
               - "not clear" - not understandable triples,
               - "confusing+" - mostly understandable triples,
               - "confusing-" - mostly not understandable.
  
  
          X: pandas data frame containing triples (full=False), records with predicates (full=True).
  
          Example
          -------
  
          >>> from ampligraph.datasets import _load_xai_fb15k_237_experiment_log
          >>> X = _load_xai_fb15k_237_experiment_log()
          >>> X.head(2)
  
          predicate 	                        predicate label 	predicates_description 	                        subject 	subject_label 	object_label 	object
      0 	/media_common/netflix_genre/titles 	Titles 	                Titles that have this Genre in Netflix@en 	/m/07c52 	Television 	Friends 	/m/030cx
      1 	/film/film/edited_by 	                Edited by 	        NaN 	                                        /m/0cc5qkt 	War Horse 	Michael Kahn 	/m/03q8ch
  
      """
      import requests
  
      url = "https://ampgraphenc.s3-eu-west-1.amazonaws.com/datasets/xai_fb15k_237.csv"
  
      r = requests.get(url, allow_redirects=True)
      open("xai_fb15k_237.csv", "wb").write(r.content)
  
      mapper = {
          "all": "all",
          "clear": 3,
          "not clear": 0,
          "confusing+": 2,
          "confusing-": 1,
      }
      if subset != "all":
          if subset in mapper:
              X = pd.read_csv("xai_fb15k_237.csv", sep=",")
              X = X[X["evaluated"] == mapper[subset]]
          else:
              print("No such option!")
      else:
          X = pd.read_csv("xai_fb15k_237.csv", sep=",")
  
      if full:
          return X
      else:
          t1 = X[
              [
                  "predicate",
                  "predicate label",
                  "predicates_description",
                  "subject_triple1",
                  "subject_label_triple1",
                  "object_label_triple1",
                  "object_triple1",
              ]
          ]
          t2 = X[
              [
                  "predicate",
                  "predicate label",
                  "predicates_description",
                  "subject_triple2",
                  "subject_label_triple2",
                  "object_label_triple2",
                  "object_triple2",
              ]
          ]
          t3 = X[
              [
                  "predicate",
                  "predicate label",
                  "predicates_description",
                  "subject_triple3",
                  "subject_label_triple3",
                  "object_label_triple3",
                  "object_triple3",
              ]
          ]
          mapper1 = {
              "subject_triple1": "subject",
              "subject_label_triple1": "subject_label",
              "object_label_triple1": "object_label",
              "object_triple1": "object",
          }
          t1 = t1.rename(columns=mapper1)
          mapper2 = {
              "subject_triple2": "subject",
              "subject_label_triple2": "subject_label",
              "object_label_triple2": "object_label",
              "object_triple2": "object",
          }
          t2 = t2.rename(columns=mapper2)
          mapper3 = {
              "subject_triple3": "subject",
              "subject_label_triple3": "subject_label",
              "object_label_triple3": "object_label",
              "object_triple3": "object",
          }
          t3 = t3.rename(columns=mapper3)
          t1 = t1.append(t2, ignore_index=True)
          t1 = t1.append(t3, ignore_index=True)
          return t1
  
imports: import hashlib
  import json
  import logging
  import os
  import urllib
  import zipfile
  from collections import namedtuple
  from pathlib import Path
  import numpy
  import pandas
label_desc: Use image node_id 26 for calling a global function with example usage: _load_xai_fb15k_237_experiment_log(full, subset) and returns: X, t1