class_docstr: Class implementing database connection.
  
  Example
  -------
  >>> AMPLIGRAPH_DATA_HOME='/your/path/to/datasets/'
  >>> # Initialize GraphDataLoader from .csv file
  >>> data = GraphDataLoader("data.csv", backend=SQLiteAdapter)
  >>> # Initialize GraphDataLoader from .txt file using indexer
  >>> # to map entities to integers
  >>> data = GraphDataLoader(AMPLIGRAPH_DATA_HOME + "fb15k/test.txt",
  >>>                        backend=SQLiteAdapter("database.db",
  >>>                        use_indexer=True))
  >>> for elem in data:
  >>>     print(elem)
  >>>     break
  [(1, 1, 2)]
  >>> # Populate the database with raw triples for training
  >>> with SQLiteAdapter("database.db") as backend:
  >>>     backend.populate(AMPLIGRAPH_DATA_HOME + "fb15k/train.txt",
  >>>                      dataset_type="train")
  >>> # Populate the database with indexed triples for training
  >>> with SQLiteAdapter("database.db", use_indexer=True) as backend:
  >>>     backend.populate(AMPLIGRAPH_DATA_HOME + "fb15k/train.txt",
  >>>                      dataset_type="train")
docstr: Get the output signature of the tf.data.Dataset object.
docstr_tok: ["Get","the","output","signature","of","the","tf.data.Dataset","object","."]
code: def get_output_signature(self):
      """Get the output signature of the tf.data.Dataset object."""
      triple_tensor = tf.TensorSpec(shape=(None, 3), dtype=tf.int32)
  
      # focusE
      if self.data_shape > 3:
          weights_tensor = tf.TensorSpec(
              shape=(None, self.data_shape - 3), dtype=tf.float32
          )
          if self.use_filter:
              return (
                  triple_tensor,
                  tf.RaggedTensorSpec(
                      shape=(2, None, None), dtype=tf.int32
                  ),
                  weights_tensor,
              )
          return (triple_tensor, weights_tensor)
      if self.use_filter:
          return (
              triple_tensor,
              tf.RaggedTensorSpec(
                  shape=(2, None, None), dtype=tf.int32
              ),
          )
      return triple_tensor
  
imports: import logging
  import os
  import sqlite3
  import tempfile
  from sqlite3 import Error
  from urllib.request import pathname2url
  import numpy
  import pandas
  import tensorflow
  from ampligraph.utils.profiling import get_human_readable_size
  from .data_indexer import DataIndexer
label_desc: Use image node_id 2 for calling the SQLiteAdapter obj's underlying member method code with example usage: obj.get_output_signature() and returns: triple_tensor, triple_tensor,  weights_tensor, triple_tensor,  tf, triple_tensor,  tf,  weights_tensor