From 921f538438c2c8878be491ba3308142938a7e1ca Mon Sep 17 00:00:00 2001 From: aMahanna Date: Sun, 31 Jul 2022 11:40:42 -0400 Subject: [PATCH 01/37] initial commit (WIP) --- adbdgl_adapter/abc.py | 53 ++++++++++++------- adbdgl_adapter/controller.py | 98 ++++++++++++++---------------------- adbdgl_adapter/encoders.py | 37 ++++++++++++++ adbdgl_adapter/exceptions.py | 19 +++++++ adbdgl_adapter/typings.py | 25 +++++++-- adbdgl_adapter/utils.py | 97 +++++++++++++++++++++++++++++++++++ tests/conftest.py | 7 ++- 7 files changed, 251 insertions(+), 85 deletions(-) create mode 100644 adbdgl_adapter/encoders.py create mode 100644 adbdgl_adapter/exceptions.py diff --git a/adbdgl_adapter/abc.py b/adbdgl_adapter/abc.py index 51c8117..ad2a1fc 100644 --- a/adbdgl_adapter/abc.py +++ b/adbdgl_adapter/abc.py @@ -5,11 +5,9 @@ from typing import Any, List, Set, Union from arango.graph import Graph as ArangoDBGraph -from dgl import DGLGraph -from dgl.heterograph import DGLHeteroGraph -from torch import Tensor +from dgl import DGLGraph, DGLHeteroGraph -from .typings import ArangoMetagraph, DGLCanonicalEType, Json +from .typings import ADBMetagraph, DGLCanonicalEType, DGLMetagraph, Json class Abstract_ADBDGL_Adapter(ABC): @@ -17,40 +15,53 @@ def __init__(self) -> None: raise NotImplementedError # pragma: no cover def arangodb_to_dgl( - self, name: str, metagraph: ArangoMetagraph, **query_options: Any - ) -> DGLHeteroGraph: + self, name: str, metagraph: ADBMetagraph, **query_options: Any + ) -> Union[DGLGraph, DGLHeteroGraph]: raise NotImplementedError # pragma: no cover def arangodb_collections_to_dgl( self, name: str, v_cols: Set[str], e_cols: Set[str], **query_options: Any - ) -> DGLHeteroGraph: + ) -> Union[DGLGraph, DGLHeteroGraph]: raise NotImplementedError # pragma: no cover - def arangodb_graph_to_dgl(self, name: str, **query_options: Any) -> DGLHeteroGraph: + def arangodb_graph_to_dgl( + self, name: str, **query_options: Any + ) -> Union[DGLGraph, DGLHeteroGraph]: raise NotImplementedError # pragma: no cover def dgl_to_arangodb( self, name: str, dgl_g: Union[DGLGraph, DGLHeteroGraph], + metagraph: DGLMetagraph = {}, + explicit_metagraph: bool = True, overwrite_graph: bool = False, **import_options: Any, ) -> ArangoDBGraph: raise NotImplementedError # pragma: no cover - def etypes_to_edefinitions( - self, canonical_etypes: List[DGLCanonicalEType] - ) -> List[Json]: + def etypes_to_edefinitions(self, edge_types: List[DGLCanonicalEType]) -> List[Json]: raise NotImplementedError # pragma: no cover - def __prepare_dgl_features(self) -> None: + def ntypes_to_ocollections( + self, node_types: List[str], edge_types: List[DGLCanonicalEType] + ) -> List[str]: raise NotImplementedError # pragma: no cover - def __insert_dgl_features(self) -> None: - raise NotImplementedError # pragma: no cover + # def __prepare_dgl_features(self) -> None: + # raise NotImplementedError # pragma: no cover - def __prepare_adb_attributes(self) -> None: - raise NotImplementedError # pragma: no cover + # def __insert_dgl_features(self) -> None: + # raise NotImplementedError # pragma: no cover + + # def __prepare_adb_attributes(self) -> None: + # raise NotImplementedError # pragma: no cover + + # def __fetch_adb_docs(self) -> None: + # raise NotImplementedError # pragma: no cover + + # def __insert_adb_docs(self) -> None: + # raise NotImplementedError # pragma: no cover def __fetch_adb_docs(self) -> None: raise NotImplementedError # pragma: no cover @@ -58,14 +69,20 @@ def __fetch_adb_docs(self) -> None: def __insert_adb_docs(self) -> None: raise NotImplementedError # pragma: no cover + def __build_tensor_from_dataframe(self) -> None: + raise NotImplementedError # pragma: no cover + + def __build_dataframe_from_tensor(self) -> None: + raise NotImplementedError # pragma: no cover + @property def DEFAULT_CANONICAL_ETYPE(self) -> List[DGLCanonicalEType]: return [("_N", "_E", "_N")] class Abstract_ADBDGL_Controller(ABC): - def _adb_attribute_to_dgl_feature(self, key: str, col: str, val: Any) -> Any: + def _prepare_pyg_node(self, dgl_node: Json, node_type: str) -> Json: raise NotImplementedError # pragma: no cover - def _dgl_feature_to_adb_attribute(self, key: str, col: str, val: Tensor) -> Any: + def _prepare_pyg_edge(self, dgl_edge: Json, edge_type: DGLCanonicalEType) -> Json: raise NotImplementedError # pragma: no cover diff --git a/adbdgl_adapter/controller.py b/adbdgl_adapter/controller.py index cd1c0f5..77e9cc3 100644 --- a/adbdgl_adapter/controller.py +++ b/adbdgl_adapter/controller.py @@ -1,74 +1,52 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -from typing import Any, Union - -from torch import Tensor - -from adbdgl_adapter.typings import DGLCanonicalEType - from .abc import Abstract_ADBDGL_Controller +from .typings import DGLCanonicalEType, Json class ADBDGL_Controller(Abstract_ADBDGL_Controller): """ArangoDB-DGL controller. - Responsible for controlling how ArangoDB attributes - are converted into DGL features, and vice-versa. + Responsible for controlling how nodes & edges are handled when + transitioning from DGL to ArangoDB. - You can derive your own custom ADBDGL_Controller if you want to maintain - consistency between your ArangoDB attributes & your DGL features. + You can derive your own custom ADBDGL_Controller. """ - def _adb_attribute_to_dgl_feature( - self, key: str, col: Union[str, DGLCanonicalEType], val: Any - ) -> Any: - """ - Given an ArangoDB attribute key, its assigned value (for an arbitrary document), - and the collection it belongs to, convert it to a valid - DGL feature: https://docs.dgl.ai/en/0.6.x/guide/graph-feature.html. - - NOTE: You must override this function if you want to transfer non-numerical - ArangoDB attributes to DGL (DGL only accepts 'attributes' (a.k.a features) - of numerical types). Read more about DGL features here: - https://docs.dgl.ai/en/0.6.x/new-tutorial/2_dglgraph.html#assigning-node-and-edge-features-to-graph. - - :param key: The ArangoDB attribute key name - :type key: str - :param col: The ArangoDB collection of the ArangoDB document. - :type col: str - :param val: The assigned attribute value of the ArangoDB document. - :type val: Any - :return: The attribute's representation as a DGL Feature - :rtype: Any + def _prepare_dgl_node(self, dgl_node: Json, node_type: str) -> Json: + """Prepare a DGL node object before it gets inserted into its + designated ArangoDB collection. + + Given a JSON representation of a DGL node, you can modify it + before it gets inserted into its ArangoDB collection, + and/or derive a custom vertex id by updating the "_key" attribute + of the vertex (otherwise the vertex's current "_key" value will be used). + + :param dgl_node: The DGL node object to (optionally) modify. + :type dgl_node: adbnx_adapter.typings.Json + :param node_type: The DGL Node Type of the node + :type node_type: str + :return: The DGL Node object + :rtype: Dict[str, Any] """ - if type(val) in [int, float, bool]: - return val - - try: - return float(val) - except (ValueError, TypeError, SyntaxError): - return 0 - - def _dgl_feature_to_adb_attribute(self, key: str, col: str, val: Tensor) -> Any: - """ - Given a DGL feature key, its assigned value (for an arbitrary node or edge), - and the collection it belongs to, convert it to a valid ArangoDB attribute - (e.g string, list, number, ...). - - NOTE: No action is needed here if you want to keep the numerical-based values - of your DGL features. - - :param key: The DGL attribute key name - :type key: str - :param col: The ArangoDB collection of the (soon-to-be) ArangoDB document. - :type col: str - :param val: The assigned attribute value of the DGL node. - :type val: Tensor - :return: The feature's representation as an ArangoDB Attribute - :rtype: Any + return dgl_node # pragma: no cover + + def _prepare_dgl_edge(self, dgl_edge: Json, edge_type: DGLCanonicalEType) -> Json: + """Prepare a DGL edge object before it gets inserted into its + designated ArangoDB collection. + + Given a JSON representation of a DGL edge, you can modify it + before it gets inserted into its ArangoDB edge collection, + and/or derive a custom edge id by setting the "_key" attribute + of the edge (otherwise the "_key" will be randomly generated by ArangoDB). + + :param dgl_edge: The DGL edge object to (optionally) modify. + :type dgl_edge: adbnx_adapter.typings.Json + :param edge_type: The Edge Type of The DGL edge. Formatted + as (from_collection, edge_collection, to_collection) + :type edge_type: Tuple[str, str, str] + :return: The DGL Edge object + :rtype: Dict[str, Any] """ - try: - return val.item() - except ValueError: - return val.tolist() + return dgl_edge # pragma: no cover diff --git a/adbdgl_adapter/encoders.py b/adbdgl_adapter/encoders.py new file mode 100644 index 0000000..fca7574 --- /dev/null +++ b/adbdgl_adapter/encoders.py @@ -0,0 +1,37 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# See https://pytorch-geometric.readthedocs.io/en/latest/notes/load_csv.html +# for an example on encoders. + +from typing import Any, Dict, Optional + +from pandas import DataFrame +from torch import Tensor, from_numpy, zeros + + +class IdentityEncoder(object): + """Converts a list of floating-point values into a PyTorch tensor""" + + def __init__(self, dtype: Any = None) -> None: + self.dtype = dtype + + def __call__(self, df: DataFrame) -> Tensor: + return from_numpy(df.values).view(-1, 1).to(self.dtype) + + +class CategoricalEncoder(object): + """Converts a list of values into a PyTorch tensor through a mapping""" + + def __init__(self, mapping: Optional[Dict[Any, Any]] = None) -> None: + self.mapping = mapping + + def __call__(self, df: DataFrame) -> Tensor: + if self.mapping is None: + unique_vals = df.unique() + self.mapping = {u_v: i for i, u_v in enumerate(unique_vals)} + + x = zeros(len(df), 1) + for i, col in enumerate(df.values): + x[i, 0] = self.mapping[col] + + return x diff --git a/adbdgl_adapter/exceptions.py b/adbdgl_adapter/exceptions.py new file mode 100644 index 0000000..7fcc916 --- /dev/null +++ b/adbdgl_adapter/exceptions.py @@ -0,0 +1,19 @@ +class ADBDGLError(Exception): + """Base class for all exceptions in adbdgl-adapter.""" + + +class ADBDGLValidationError(ADBDGLError, TypeError): + """Base class for errors originating from adbdgl-adapter user input validation.""" + + +################## +# Metagraphs # +################## + + +class ADBMetagraphError(ADBDGLValidationError): + """Invalid ArangoDB Metagraph value""" + + +class DGLMetagraphError(ADBDGLValidationError): + """Invalid DGL Metagraph value""" diff --git a/adbdgl_adapter/typings.py b/adbdgl_adapter/typings.py index 22e86f7..868ba10 100644 --- a/adbdgl_adapter/typings.py +++ b/adbdgl_adapter/typings.py @@ -1,12 +1,31 @@ -__all__ = ["Json", "ArangoMetagraph", "DGLCanonicalEType"] +__all__ = [ + "Json", + "ADBMetagraph", + "ADBMetagraphValues", + "DGLMetagraph", + "DGLMetagraphValues", + "DGLCanonicalEType", + "DGLDataDict", +] -from typing import Any, Dict, Set, Tuple +from typing import Any, Callable, Dict, List, Tuple, Union +from pandas import DataFrame from torch import Tensor Json = Dict[str, Any] -ArangoMetagraph = Dict[str, Dict[str, Set[str]]] + +DataFrameToTensor = Callable[[DataFrame], Tensor] +TensorToDataFrame = Callable[[Tensor], DataFrame] + +ADBEncoders = Dict[str, DataFrameToTensor] +ADBMetagraphValues = Union[str, DataFrameToTensor, ADBEncoders] +ADBMetagraph = Dict[str, Dict[str, Dict[str, ADBMetagraphValues]]] DGLCanonicalEType = Tuple[str, str, str] DGLDataDict = Dict[DGLCanonicalEType, Tuple[Tensor, Tensor]] + +DGLDataTypes = Union[str, DGLCanonicalEType] +DGLMetagraphValues = Union[str, List[str], TensorToDataFrame] +DGLMetagraph = Dict[str, Dict[DGLDataTypes, Dict[Any, DGLMetagraphValues]]] diff --git a/adbdgl_adapter/utils.py b/adbdgl_adapter/utils.py index 3f3f894..8bef589 100644 --- a/adbdgl_adapter/utils.py +++ b/adbdgl_adapter/utils.py @@ -1,5 +1,10 @@ import logging import os +from typing import Any, Dict + +from rich.progress import Progress, SpinnerColumn, TextColumn, TimeElapsedColumn + +from .exceptions import ADBMetagraphError, DGLMetagraphError logger = logging.getLogger(__package__) handler = logging.StreamHandler() @@ -9,3 +14,95 @@ ) handler.setFormatter(formatter) logger.addHandler(handler) + + +def progress( + text: str, + text_style: str = "none", + spinner_name: str = "aesthetic", + spinner_style: str = "#5BC0DE", + transient: bool = False, +) -> Progress: + return Progress( + TextColumn(text, style=text_style), + SpinnerColumn(spinner_name, spinner_style), + TimeElapsedColumn(), + transient=transient, + ) + + +def validate_adb_metagraph(metagraph: Dict[Any, Dict[Any, Any]]) -> None: + meta: Dict[Any, Any] + + if "edgeCollections" in metagraph and "vertexCollections" not in metagraph: + msg = """ + Metagraph must have 'vertexCollections' if + 'edgeCollections' is specified. + """ + raise ADBMetagraphError(msg) + + for parent_key in ["vertexCollections", "edgeCollections"]: + for col, meta in metagraph.get(parent_key, {}).items(): + if type(col) != str: + msg = f"Invalid {parent_key} sub-key type: {col} must be str" + raise ADBMetagraphError(msg) + + for meta_val in meta.values(): + if type(meta_val) not in [str, dict] and not callable(meta_val): + msg = f""" + Invalid mapped value type in {meta}: + {meta_val} must be str | Dict[str, None | Callable] | Callable + """ + raise ADBMetagraphError(msg) + + if type(meta_val) == dict: + for k, v in meta_val.items(): + if type(k) != str: + msg = f""" + Invalid ArangoDB attribute key type: {v} must be str + """ + raise ADBMetagraphError(msg) + + if v is not None and not callable(v): + msg = f""" + Invalid DGL Encoder type: {v} must be None | Callable + """ + raise ADBMetagraphError(msg) + + +def validate_pyg_metagraph(metagraph: Dict[Any, Dict[Any, Any]]) -> None: + meta: Dict[Any, Any] + + for node_type in metagraph.get("nodeTypes", {}).keys(): + if type(node_type) != str: + msg = f"Invalid nodeTypes sub-key: {node_type} is not str" + raise DGLMetagraphError(msg) + + for edge_type in metagraph.get("edgeTypes", {}).keys(): + if type(edge_type) != tuple: + msg = f"Invalid edgeTypes sub-key: {edge_type} must be Tuple[str, str, str]" + raise DGLMetagraphError(msg) + else: + for elem in edge_type: + if type(elem) != str: + msg = f"{elem} in {edge_type} must be str" + raise DGLMetagraphError(msg) + + for parent_key in ["nodeTypes", "edgeTypes"]: + for meta in metagraph.get(parent_key, {}).values(): + for meta_val in meta.values(): + if type(meta_val) not in [str, list] and not callable(meta_val): + msg = f""" + Invalid mapped value type in {meta}: + {meta_val} must be str | List[str] | Callable + """ + raise DGLMetagraphError(msg) + + if type(meta_val) == list: + for v in meta_val: + if type(v) != str: + msg = f""" + Invalid ArangoDB attribute key type: + {v} must be str + """ + raise DGLMetagraphError(msg) diff --git a/tests/conftest.py b/tests/conftest.py index f31c304..7d6980a 100755 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -71,14 +71,13 @@ def arango_restore(con: Json, path_to_data: str) -> None: restore_prefix = "./assets/" if os.getenv("GITHUB_ACTIONS") else "" protocol = "http+ssl://" if "https://" in con["url"] else "tcp://" url = protocol + con["url"].partition("://")[-1] - # A small hack to work around empty passwords - password = f"--server.password {con['password']}" if con["password"] else "" subprocess.check_call( f'chmod -R 755 ./assets/arangorestore && {restore_prefix}arangorestore \ -c none --server.endpoint {url} --server.database {con["dbName"]} \ - --server.username {con["username"]} {password} \ - --input-directory "{PROJECT_DIR}/{path_to_data}"', + --server.username {con["username"]} \ + --server.password "{con["password"]}" \ + --input-directory "{PROJECT_DIR}/{path_to_data}"', cwd=f"{PROJECT_DIR}/tests", shell=True, ) From b008fcc6ef6140adc539ee7b1a519584010587da Mon Sep 17 00:00:00 2001 From: aMahanna Date: Mon, 1 Aug 2022 00:34:00 -0400 Subject: [PATCH 02/37] checkpoint --- adbdgl_adapter/abc.py | 16 +- adbdgl_adapter/adapter.py | 608 ++++++++++++++++++++++---------------- adbdgl_adapter/utils.py | 13 +- setup.cfg | 2 +- 4 files changed, 369 insertions(+), 270 deletions(-) diff --git a/adbdgl_adapter/abc.py b/adbdgl_adapter/abc.py index ad2a1fc..87401bd 100644 --- a/adbdgl_adapter/abc.py +++ b/adbdgl_adapter/abc.py @@ -16,17 +16,15 @@ def __init__(self) -> None: def arangodb_to_dgl( self, name: str, metagraph: ADBMetagraph, **query_options: Any - ) -> Union[DGLGraph, DGLHeteroGraph]: + ) -> DGLHeteroGraph: raise NotImplementedError # pragma: no cover def arangodb_collections_to_dgl( self, name: str, v_cols: Set[str], e_cols: Set[str], **query_options: Any - ) -> Union[DGLGraph, DGLHeteroGraph]: + ) -> DGLHeteroGraph: raise NotImplementedError # pragma: no cover - def arangodb_graph_to_dgl( - self, name: str, **query_options: Any - ) -> Union[DGLGraph, DGLHeteroGraph]: + def arangodb_graph_to_dgl(self, name: str, **query_options: Any) -> DGLHeteroGraph: raise NotImplementedError # pragma: no cover def dgl_to_arangodb( @@ -75,14 +73,10 @@ def __build_tensor_from_dataframe(self) -> None: def __build_dataframe_from_tensor(self) -> None: raise NotImplementedError # pragma: no cover - @property - def DEFAULT_CANONICAL_ETYPE(self) -> List[DGLCanonicalEType]: - return [("_N", "_E", "_N")] - class Abstract_ADBDGL_Controller(ABC): - def _prepare_pyg_node(self, dgl_node: Json, node_type: str) -> Json: + def _prepare_dgl_node(self, dgl_node: Json, node_type: str) -> Json: raise NotImplementedError # pragma: no cover - def _prepare_pyg_edge(self, dgl_edge: Json, edge_type: DGLCanonicalEType) -> Json: + def _prepare_dgl_edge(self, dgl_edge: Json, edge_type: DGLCanonicalEType) -> Json: raise NotImplementedError # pragma: no cover diff --git a/adbdgl_adapter/adapter.py b/adbdgl_adapter/adapter.py index 2e3dfb8..3d3e304 100644 --- a/adbdgl_adapter/adapter.py +++ b/adbdgl_adapter/adapter.py @@ -2,20 +2,28 @@ # -*- coding: utf-8 -*- import logging from collections import defaultdict -from typing import Any, DefaultDict, Dict, List, Optional, Set, Union +from typing import Any, DefaultDict, Dict, List, Set, Union -from arango.cursor import Cursor from arango.database import Database from arango.graph import Graph as ADBGraph -from arango.result import Result -from dgl import DGLGraph, DGLHeteroGraph, heterograph +from dgl import DGLGraph, DGLHeteroGraph, graph, heterograph from dgl.view import HeteroEdgeDataView, HeteroNodeDataView -from torch import Tensor, tensor +from pandas import DataFrame +from torch import Tensor, cat, tensor from .abc import Abstract_ADBDGL_Adapter from .controller import ADBDGL_Controller -from .typings import ArangoMetagraph, DGLCanonicalEType, DGLDataDict, Json -from .utils import logger +from .exceptions import ADBMetagraphError, DGLMetagraphError +from .typings import ( + ADBMetagraph, + ADBMetagraphValues, + DGLCanonicalEType, + DGLDataDict, + DGLMetagraph, + DGLMetagraphValues, + Json, +) +from .utils import logger, progress, validate_adb_metagraph, validate_dgl_metagraph class ADBDGL_Adapter(Abstract_ADBDGL_Adapter): @@ -51,7 +59,7 @@ def __init__( raise TypeError(msg) self.__db = db - self.__cntrl: ADBDGL_Controller = controller + self.__cntrl = controller logger.info(f"Instantiated ADBDGL_Adapter with database '{db.name}'") @@ -67,98 +75,107 @@ def set_logging(self, level: Union[int, str]) -> None: logger.setLevel(level) def arangodb_to_dgl( - self, name: str, metagraph: ArangoMetagraph, **query_options: Any - ) -> DGLHeteroGraph: - """Create a DGLHeteroGraph from the user-defined metagraph. + self, name: str, metagraph: ADBMetagraph, **query_options: Any + ) -> Union[DGLGraph, DGLHeteroGraph]: + """Create a DGL graph from ArangoDB data. DOES carry + over node/edge features/labels, via the **metagraph**. :param name: The DGL graph name. :type name: str :param metagraph: An object defining vertex & edge collections to import - to DGL, along with their associated attributes to keep. - :type metagraph: adbdgl_adapter.typings.ArangoMetagraph + to DGL, along with collection-level specifications to indicate + which ArangoDB attributes will become DGL features/labels. + See below for examples of **metagraph**. + :type metagraph: adbdgl_adapter.typings.ADBMetagraph :param query_options: Keyword arguments to specify AQL query options when fetching documents from the ArangoDB instance. Full parameter list: https://docs.python-arango.com/en/main/specs.html#arango.aql.AQL.execute :type query_options: Any - :return: A DGL Heterograph - :rtype: dgl.heterograph.DGLHeteroGraph - :raise ValueError: If missing required keys in metagraph + :return: A DGL Homogeneous or Heterogeneous graph object + :rtype: dgl.DGLGraph | dgl.DGLHeteroGraph + :raise adbdgl_adapter.exceptions.ADBMetagraphError: If invalid metagraph. - Here is an example entry for parameter **metagraph**: - - .. code-block:: python - { - "vertexCollections": { - "account": {"Balance", "account_type", "customer_id", "rank"}, - "bank": {"Country", "Id", "bank_id", "bank_name"}, - "customer": {"Name", "Sex", "Ssn", "rank"}, - }, - "edgeCollections": { - "accountHolder": {}, - "transaction": { - "transaction_amt", "receiver_bank_id", "sender_bank_id" - }, - }, - } + #TODO: Metagraph examples """ logger.debug(f"--arangodb_to_dgl('{name}')--") + validate_adb_metagraph(metagraph) + + is_homogeneous = ( + len(metagraph["vertexCollections"]) == 1 + and len(metagraph["edgeCollections"]) == 1 + ) + # Maps ArangoDB vertex IDs to DGL node IDs adb_map: Dict[str, Json] = dict() - # Dictionaries for constructing a heterogeneous graph. + # The data for constructing a graph, + # which takes the form of (U, V). + # (U[i], V[i]) forms the edge with ID i in the graph. data_dict: DGLDataDict = dict() - ndata: DefaultDict[str, DefaultDict[str, List[Any]]] - ndata = defaultdict(lambda: defaultdict(list)) + # The node data view for storing node features + ndata: DefaultDict[str, DefaultDict[str, Tensor]] + ndata = defaultdict(lambda: defaultdict()) - edata: DefaultDict[str, DefaultDict[str, List[Any]]] - edata = defaultdict(lambda: defaultdict(list)) + # The edge data view for storing edge features + edata: DefaultDict[str, DefaultDict[DGLCanonicalEType, Tensor]] + edata = defaultdict(lambda: defaultdict()) - adb_v: Json - for v_col, atribs in metagraph["vertexCollections"].items(): + for v_col, meta in metagraph["vertexCollections"].items(): logger.debug(f"Preparing '{v_col}' vertices") - for i, adb_v in enumerate(self.__fetch_adb_docs(v_col, query_options)): - adb_id = adb_v["_id"] - logger.debug(f"V{i}: {adb_id}") - - adb_map[adb_id] = {"id": i, "col": v_col} - self.__prepare_dgl_features(ndata, atribs, adb_v, v_col) - - adb_e: Json - edge_dict: DefaultDict[DGLCanonicalEType, DefaultDict[str, List[Any]]] - for e_col, atribs in metagraph["edgeCollections"].items(): - logger.debug(f"Preparing '{e_col}' edges") - edge_dict = defaultdict(lambda: defaultdict(list)) + df = self.__fetch_adb_docs(v_col, query_options) + adb_map.update({adb_id: dgl_id for dgl_id, adb_id in enumerate(df["_id"])}) - for i, adb_e in enumerate(self.__fetch_adb_docs(e_col, query_options)): - logger.debug(f'E{i}: {adb_e["_id"]}') + for k, v in meta.items(): + ndata[k][v_col] = self.__build_tensor_from_dataframe(df, k, v) - from_node = adb_map[adb_e["_from"]] - to_node = adb_map[adb_e["_to"]] - edge_type = (from_node["col"], e_col, to_node["col"]) - - edge_data = edge_dict[edge_type] - edge_data["from_nodes"].append(from_node["id"]) - edge_data["to_nodes"].append(to_node["id"]) - - self.__prepare_dgl_features(edata, atribs, adb_e, edge_type) + v_cols: List[str] = list(metagraph["vertexCollections"].keys()) + for e_col, meta in metagraph["edgeCollections"].items(): + logger.debug(f"Preparing '{e_col}' edges") - for edge_type, edges in edge_dict.items(): - logger.debug(f"Inserting {edge_type} edges") - data_dict[edge_type] = ( - tensor(edges["from_nodes"]), - tensor(edges["to_nodes"]), - ) + df = self.__fetch_adb_docs(e_col, query_options) + df["from_col"] = df["_from"].str.split("/").str[0] + df["to_col"] = df["_to"].str.split("/").str[0] + + for (from_col, to_col), count in ( + df[["from_col", "to_col"]].value_counts().items() + ): + edge_type: DGLCanonicalEType = (from_col, e_col, to_col) + if from_col not in v_cols or to_col not in v_cols: + msg = f""" + Skipping {edge_type}, as its vertex collections + were not specified in the metagraph. + """ + logger.debug(msg) + continue + + logger.debug(f"Preparing {count} '{edge_type}' edges") + + # Get the edge data corresponding to the current edge type + et_df = df[(df["from_col"] == from_col) & (df["to_col"] == to_col)] + from_nodes = [adb_map[_id] for _id in et_df["_from"]] + to_nodes = [adb_map[_id] for _id in et_df["_to"]] + + data_dict[edge_type] = (tensor(from_nodes), tensor(to_nodes)) + for k, v in meta.items(): + edata[k][edge_type] = self.__build_tensor_from_dataframe( + et_df, k, v + ) + + dgl_g: Union[DGLGraph, DGLHeteroGraph] + if is_homogeneous: + data = list(data_dict.values())[0] + dgl_g = graph(data) + else: + dgl_g = heterograph(data_dict) - dgl_g: DGLHeteroGraph = heterograph(data_dict) has_one_ntype = len(dgl_g.ntypes) == 1 - has_one_etype = len(dgl_g.etypes) == 1 - logger.debug(f"Is graph '{name}' homogenous? {has_one_ntype and has_one_etype}") + has_one_etype = len(dgl_g.canonical_etypes) == 1 - self.__insert_dgl_features(ndata, dgl_g.ndata, has_one_ntype) - self.__insert_dgl_features(edata, dgl_g.edata, has_one_etype) + self.__set_dgl_data(dgl_g.ndata, ndata, has_one_ntype) + self.__set_dgl_data(dgl_g.edata, edata, has_one_etype) logger.info(f"Created DGL '{name}' Graph") return dgl_g @@ -169,31 +186,34 @@ def arangodb_collections_to_dgl( v_cols: Set[str], e_cols: Set[str], **query_options: Any, - ) -> DGLHeteroGraph: - """Create a DGL graph from ArangoDB collections. + ) -> Union[DGLGraph, DGLHeteroGraph]: + """Create a DGL graph from ArangoDB collections. Due to risk of + ambiguity, this method DOES NOT transfer ArangoDB attributes to DGL. :param name: The DGL graph name. :type name: str - :param v_cols: A set of ArangoDB vertex collections to - import to DGL. + :param v_cols: The set of ArangoDB vertex collections to import to DGL. :type v_cols: Set[str] - :param e_cols: A set of ArangoDB edge collections to import to DGL. + :param e_cols: The set of ArangoDB edge collections to import to DGL. :type e_cols: Set[str] :param query_options: Keyword arguments to specify AQL query options when fetching documents from the ArangoDB instance. Full parameter list: https://docs.python-arango.com/en/main/specs.html#arango.aql.AQL.execute :type query_options: Any - :return: A DGL Heterograph - :rtype: dgl.heterograph.DGLHeteroGraph + :return: A DGL Homogeneous or Heterogeneous graph object + :rtype: dgl.DGLGraph | dgl.DGLHeteroGraph + :raise adbdgl_adapter.exceptions.ADBMetagraphError: If invalid metagraph. """ - metagraph: ArangoMetagraph = { - "vertexCollections": {col: set() for col in v_cols}, - "edgeCollections": {col: set() for col in e_cols}, + metagraph: ADBMetagraph = { + "vertexCollections": {col: dict() for col in v_cols}, + "edgeCollections": {col: dict() for col in e_cols}, } return self.arangodb_to_dgl(name, metagraph, **query_options) - def arangodb_graph_to_dgl(self, name: str, **query_options: Any) -> DGLHeteroGraph: + def arangodb_graph_to_dgl( + self, name: str, **query_options: Any + ) -> Union[DGLGraph, DGLHeteroGraph]: """Create a DGL graph from an ArangoDB graph. :param name: The ArangoDB graph name. @@ -202,8 +222,9 @@ def arangodb_graph_to_dgl(self, name: str, **query_options: Any) -> DGLHeteroGra fetching documents from the ArangoDB instance. Full parameter list: https://docs.python-arango.com/en/main/specs.html#arango.aql.AQL.execute :type query_options: Any - :return: A DGL Heterograph - :rtype: dgl.heterograph.DGLHeteroGraph + :return: A DGL Homogeneous or Heterogeneous graph object + :rtype: dgl.DGLGraph | dgl.DGLHeteroGraph + :raise adbdgl_adapter.exceptions.ADBMetagraphError: If invalid metagraph. """ graph = self.__db.graph(name) v_cols = graph.vertex_collections() @@ -215,6 +236,8 @@ def dgl_to_arangodb( self, name: str, dgl_g: Union[DGLGraph, DGLHeteroGraph], + metagraph: DGLMetagraph = {}, + explicit_metagraph: bool = True, overwrite_graph: bool = False, **import_options: Any, ) -> ADBGraph: @@ -224,8 +247,17 @@ def dgl_to_arangodb( :type name: str :param dgl_g: The existing DGL graph. :type dgl_g: Union[dgl.DGLGraph, dgl.heterograph.DGLHeteroGraph] + :param metagraph: An optional object mapping the DGL keys of + the node & edge data to strings, list of strings, or user-defined + functions. NOTE: Unlike the metagraph for ArangoDB to DGL, this + one is optional. See below for an example of **metagraph**. + :type metagraph: adbdgl_adapter.typings.DGLMetagraph + :param explicit_metagraph: Whether to take the metagraph at face value or not. + If False, node & edge types OMITTED from the metagraph will be + brought over into ArangoDB. Defaults to True. + :type explicit_metagraph: bool :param overwrite_graph: Overwrites the graph if it already exists. - Does not drop associated collections. + Does not drop associated collections. Defaults to False. :type overwrite_graph: bool :param import_options: Keyword arguments to specify additional parameters for ArangoDB document insertion. Full parameter list: @@ -233,17 +265,32 @@ def dgl_to_arangodb( :type import_options: Any :return: The ArangoDB Graph API wrapper. :rtype: arango.graph.Graph + :raise adbdgl_adapter.exceptions.DGLMetagraphError: If invalid metagraph. + + #TODO: Metagraph examples """ logger.debug(f"--dgl_to_arangodb('{name}')--") - is_default = dgl_g.canonical_etypes == self.DEFAULT_CANONICAL_ETYPE - logger.debug(f"Is graph '{name}' using default canonical_etypes? {is_default}") + validate_dgl_metagraph(metagraph) - edge_definitions = self.etypes_to_edefinitions( - [(name + "_N", name + "_E", name + "_N")] - if is_default - else dgl_g.canonical_etypes - ) + has_one_ntype = len(dgl_g.ntypes) == 1 + has_one_etype = len(dgl_g.canonical_etypes) == 1 + has_default_canonical_etypes = dgl_g.canonical_etypes == ["_N", "_E", "_N"] + + node_types: List[str] + edge_types: List[DGLCanonicalEType] + if metagraph and explicit_metagraph: + node_types = metagraph.get("nodeTypes", {}).keys() # type: ignore + edge_types = metagraph.get("edgeTypes", {}).keys() # type: ignore + + elif has_default_canonical_etypes: + n_type = name + "_N" + node_types = [n_type] + edge_types = [(n_type, name + "_E", n_type)] + + else: + node_types = dgl_g.ntypes + edge_types = dgl_g.canonical_etypes if overwrite_graph: logger.debug("Overwrite graph flag is True. Deleting old graph.") @@ -252,89 +299,64 @@ def dgl_to_arangodb( if self.__db.has_graph(name): adb_graph = self.__db.graph(name) else: - adb_graph = self.__db.create_graph(name, edge_definitions) - - adb_v_cols = adb_graph.vertex_collections() - adb_e_cols = [e_d["edge_collection"] for e_d in adb_graph.edge_definitions()] - - has_one_vcol = len(adb_v_cols) == 1 - has_one_ecol = len(adb_e_cols) == 1 - logger.debug(f"Is graph '{name}' homogenous? {has_one_vcol and has_one_ecol}") - - node: Tensor - v_col_docs: List[Json] = [] # to-be-inserted ArangoDB vertices - for ntype in dgl_g.ntypes: - v_col = adb_v_cols[0] if is_default else ntype - logger.debug(f"Preparing {dgl_g.number_of_nodes(ntype)} '{v_col}' nodes") - - features = dgl_g.node_attr_schemes(ntype).keys() - - for i, node in enumerate(dgl_g.nodes(ntype)): - dgl_node_id = node.item() - logger.debug(f"N{i}: {dgl_node_id}") - - adb_vertex = {"_key": str(dgl_node_id)} - self.__prepare_adb_attributes( - dgl_g.ndata, - features, - dgl_node_id, - adb_vertex, - v_col, - has_one_vcol, - ) + edge_definitions = self.etypes_to_edefinitions(edge_types) + orphan_collections = self.ntypes_to_ocollections(node_types, edge_types) + adb_graph = self.__db.create_graph( + name, edge_definitions, orphan_collections + ) - v_col_docs.append(adb_vertex) + n_meta = metagraph.get("nodeTypes", {}) + for n_type in node_types: + n_key = None if has_one_ntype else n_type - self.__insert_adb_docs(v_col, v_col_docs, import_options) - v_col_docs.clear() + num_nodes = dgl_g.num_nodes(n_key) + df = DataFrame([{"_key": str(i)} for i in range(num_nodes)]) - from_n: Tensor - to_n: Tensor - e_col_docs: List[Json] = [] # to-be-inserted ArangoDB edges - for c_etype in dgl_g.canonical_etypes: - logger.debug(f"Preparing {dgl_g.number_of_edges(c_etype)} {c_etype} edges") + meta = n_meta.get(n_type, {}) + for k, t in dgl_g.nodes[n_key].data.items(): + if type(t) is Tensor and len(t) == num_nodes: + v = meta.get(k, k) + df = df.join(self.__build_dataframe_from_tensor(t, k, v)) - features = dgl_g.edge_attr_schemes(c_etype).keys() + if type(self.__cntrl) is not ADBDGL_Controller: + f = lambda n: self.__cntrl._prepare_dgl_node(n, n_type) + df = df.apply(f, axis=1) - if is_default: - e_col = adb_e_cols[0] - from_col = to_col = adb_v_cols[0] - else: - from_col, e_col, to_col = c_etype + self.__insert_adb_docs(n_type, df.to_dict("records"), import_options) - for i, (from_n, to_n) in enumerate(zip(*dgl_g.edges(etype=c_etype))): - logger.debug(f"E{i}: ({from_n}, {to_n})") + e_meta = metagraph.get("edgeTypes", {}) + for e_type in edge_types: + e_key = None if has_one_etype else e_type + from_col, _, to_col = e_type - adb_edge = { - "_from": f"{from_col}/{str(from_n.item())}", - "_to": f"{to_col}/{str(to_n.item())}", - } - self.__prepare_adb_attributes( - dgl_g.edata, - features, - i, - adb_edge, - e_col, - has_one_ecol, - c_etype, - ) + from_nodes, to_nodes = dgl_g.edges(etype=e_key) + df = DataFrame( + zip(*(from_nodes.tolist(), to_nodes.tolist())), columns=["_from", "_to"] + ) + df["_from"] = from_col + "/" + df["_from"].astype(str) + df["_to"] = to_col + "/" + df["_to"].astype(str) - e_col_docs.append(adb_edge) + meta = e_meta.get(e_type, {}) + for k, t in dgl_g.edges[e_key].data.items(): + if type(t) is Tensor and len(t) == dgl_g.num_edges(e_key): + v = meta.get(k, k) + df = df.join(self.__build_dataframe_from_tensor(t, k, v)) - self.__insert_adb_docs(e_col, e_col_docs, import_options) - e_col_docs.clear() + if type(self.__cntrl) is not ADBDGL_Controller: + f = lambda e: self.__cntrl._prepare_dgl_edge(e, e_type) + df = df.apply(f, axis=1) + + self.__insert_adb_docs(e_type, df.to_dict("records"), import_options) logger.info(f"Created ArangoDB '{name}' Graph") return adb_graph - def etypes_to_edefinitions( - self, canonical_etypes: List[DGLCanonicalEType] - ) -> List[Json]: + def etypes_to_edefinitions(self, edge_types: List[DGLCanonicalEType]) -> List[Json]: """Converts a DGL graph's canonical_etypes property to ArangoDB graph edge definitions - :param canonical_etypes: A list of string triplets (str, str, str) for + :param edge_types: A list of string triplets (str, str, str) for source node type, edge type and destination node type. - :type canonical_etypes: List[adbdgl_adapter.typings.DGLCanonicalEType] + :type edge_types: List[adbdgl_adapter.typings.DGLCanonicalEType] :return: ArangoDB Edge Definitions :rtype: List[adbdgl_adapter.typings.Json] @@ -350,9 +372,13 @@ def etypes_to_edefinitions( ] """ + if not edge_types: + return [] + edge_type_map: DefaultDict[str, DefaultDict[str, Set[str]]] edge_type_map = defaultdict(lambda: defaultdict(set)) - for edge_type in canonical_etypes: + + for edge_type in edge_types: from_col, e_col, to_col = edge_type edge_type_map[e_col]["from"].add(from_col) edge_type_map[e_col]["to"].add(to_col) @@ -369,120 +395,200 @@ def etypes_to_edefinitions( return edge_definitions - def __prepare_dgl_features( - self, - features_data: DefaultDict[Any, Any], - attributes: Set[str], - doc: Json, - col: Union[str, DGLCanonicalEType], - ) -> None: - """Convert a set of ArangoDB attributes into valid DGL features - - :param features_data: A dictionary storing the DGL features formatted as lists. - :type features_data: Defaultdict[Any, Any] - :param attributes: A set of ArangoDB attribute keys to convert into DGL features - :type attributes: Set[str] - :param doc: The current ArangoDB document - :type doc: adbdgl_adapter.typings.Json - :param col: The collection the current document belongs to. For edge - collections, the entire DGL Canonical eType is specified (src, e, dst) - :type col: str | Tuple[str, str, str] + def ntypes_to_ocollections( + self, node_types: List[str], edge_types: List[DGLCanonicalEType] + ) -> List[str]: + """Converts DGL node_types to ArangoDB orphan collections, if any. + + :param node_types: A list of strings representing the DGL node types. + :type node_types: List[str] + :param edge_types: A list of string triplets (str, str, str) for + source node type, edge type and destination node type. + :type edge_types: List[adbdgl_adapter.typings.DGLCanonicalEType] + :return: ArangoDB Orphan Collections + :rtype: List[str] """ - key: str - for key in attributes: - arr: List[Any] = features_data[key][col] - arr.append( - self.__cntrl._adb_attribute_to_dgl_feature(key, col, doc.get(key, None)) - ) - def __insert_dgl_features( + non_orphan_collections = set() + for from_col, _, to_col in edge_types: + non_orphan_collections.add(from_col) + non_orphan_collections.add(to_col) + + orphan_collections = set(node_types) ^ non_orphan_collections + return list(orphan_collections) + + def __set_dgl_data( self, - features_data: DefaultDict[Any, Any], - data: Union[HeteroNodeDataView, HeteroEdgeDataView], + dgl_data: Union[HeteroNodeDataView, HeteroEdgeDataView], + dgl_data_temp: Union[ + DefaultDict[str, DefaultDict[str, Tensor]], + DefaultDict[str, DefaultDict[DGLCanonicalEType, Tensor]], + ], has_one_type: bool, ) -> None: - """Insert valid DGL features into a DGL graph. - - :param features_data: A dictionary storing the DGL features formatted as lists. - :type features_data: Defaultdict[Any, Any] - :param data: The (empty) ndata or edata instance attribute of a dgl graph, - which is about to receive **features_data**. - :type data: Union[dgl.view.HeteroNodeDataView, dgl.view.HeteroEdgeDataView] - :param has_one_type: Set to True if the DGL graph only has one ntype, - or one etype. + """Copies **dgl_data_temp** into **dgl_data**. This method is (unfortunately) + required, since a dgl graph's `ndata` and `edata` properties can't be + manually set (i.e `g.ndata = ndata` is not possible). + + :param dgl_data: The (empty) ndata or edata instance attribute of a dgl graph, + which is about to receive **dgl_data_temp**. + :type dgl_data: Union[dgl.view.HeteroNodeDataView, dgl.view.HeteroEdgeDataView] + :param dgl_data_temp: A temporary place to store the ndata or edata features. + :type dgl_data_temp: DefaultDict[str, DefaultDict[str, Tensor]] + :param has_one_type: Set to True if the DGL graph only has one + node type or edge type. :type has_one_type: bool """ - col_dict: Dict[str, List[Any]] - for key, col_dict in features_data.items(): - for col, array in col_dict.items(): - logger.debug(f"Inserting {len(array)} '{key}' features into '{col}'") - data[key] = tensor(array) if has_one_type else {col: tensor(array)} - - def __prepare_adb_attributes( - self, - data: Union[HeteroNodeDataView, HeteroEdgeDataView], - features: Set[Any], - id: Union[int, float, bool], - doc: Json, - col: str, - has_one_col: bool, - canonical_etype: Optional[DGLCanonicalEType] = None, - ) -> None: - """Convert DGL features into a set of ArangoDB attributes for a given document - - :param data: The ndata or edata instance attribute of a dgl graph, filled with - node or edge feature data. - :type data: Union[dgl.view.HeteroNodeDataView, dgl.view.HeteroEdgeDataView] - :param features: A set of DGL feature keys to convert into ArangoDB attributes - :type features: Set[Any] - :param id: The ID of the current DGL node / edge - :type id: Union[int, float, bool] - :param doc: The current ArangoDB document - :type doc: adbdgl_adapter.typings.Json - :param col: The collection the current document belongs to - :type col: str - :param has_one_col: Set to True if the ArangoDB graph has one - vertex collection or one edge collection only. - :type has_one_col: bool - :param canonical_etype: The DGL canonical edge type belonging to the current - **col**, provided that **col** is an edge collection (ignored otherwise). - :type canonical_etype: adbdgl_adapter.typings.DGLCanonicalEType - """ - for key in features: - tensor = data[key] if has_one_col else data[key][canonical_etype or col] - doc[key] = self.__cntrl._dgl_feature_to_adb_attribute(key, col, tensor[id]) + for feature_name, feature_map in dgl_data_temp.items(): + for data_type, dgl_tensor in feature_map.items(): + dgl_data[feature_name] = ( + dgl_tensor if has_one_type else {data_type: dgl_tensor} + ) - def __fetch_adb_docs(self, col: str, query_options: Any) -> Result[Cursor]: - """Fetches ArangoDB documents within a collection. + def __fetch_adb_docs(self, col: str, query_options: Any) -> DataFrame: + """Fetches ArangoDB documents within a collection. Returns the + documents in a Pandas DataFrame. :param col: The ArangoDB collection. :type col: str :param query_options: Keyword arguments to specify AQL query options when fetching documents from the ArangoDB instance. :type query_options: Any - :return: Result cursor. - :rtype: arango.cursor.Cursor + :return: A Pandas DataFrame representing the ArangoDB documents. + :rtype: pandas.DataFrame """ - aql = f""" - FOR doc IN {col} + aql = """ + FOR doc IN @@col RETURN doc """ - return self.__db.aql.execute(aql, **query_options) + with progress( + f"Export: {col}", + text_style="#97C423", + spinner_style="#7D3B04", + ) as p: + p.add_task("__fetch_adb_docs") + + return DataFrame( + self.__db.aql.execute( + aql, count=True, bind_vars={"@col": col}, **query_options + ) + ) def __insert_adb_docs( - self, col: str, docs: List[Json], import_options: Any + self, doc_type: Union[str, DGLCanonicalEType], docs: List[Json], kwargs: Any ) -> None: """Insert ArangoDB documents into their ArangoDB collection. - :param col: The ArangoDB collection name - :type col: str + :param doc_type: The node or edge type of the soon-to-be ArangoDB documents + :type doc_type: str | tuple[str, str, str] :param docs: To-be-inserted ArangoDB documents :type docs: List[Json] - :param import_options: Keyword arguments to specify additional + :param kwargs: Keyword arguments to specify additional parameters for ArangoDB document insertion. Full parameter list: https://docs.python-arango.com/en/main/specs.html#arango.collection.Collection.import_bulk """ - logger.debug(f"Inserting {len(docs)} documents into '{col}'") - result = self.__db.collection(col).import_bulk(docs, **import_options) - logger.debug(result) + col = doc_type if type(doc_type) is str else doc_type[1] + + with progress( + f"Import: {doc_type} ({len(docs)})", + text_style="#349AEF", + spinner_style="#FBFEFE", + ) as p: + p.add_task("__insert_adb_docs") + + result = self.__db.collection(col).import_bulk(docs, **kwargs) + logger.debug(result) + + def __build_tensor_from_dataframe( + self, + adb_df: DataFrame, + meta_key: str, + meta_val: ADBMetagraphValues, + ) -> Tensor: + """Constructs a DGL-ready Tensor from a Pandas Dataframe, based on + the nature of the user-defined metagraph. + + :param adb_df: The Pandas Dataframe representing ArangoDB data. + :type adb_df: pandas.DataFrame + :param meta_key: The current ArangoDB-DGL metagraph key + :type meta_key: str + :param meta_val: The value mapped to **meta_key** to + help convert **df** into a DGL-ready Tensor. + e.g the value of `metagraph['vertexCollections']['users']['x']`. + :type meta_val: adbdgl_adapter.typings.ADBMetagraphValues + :return: A DGL-ready tensor equivalent to the dataframe + :rtype: torch.Tensor + :raise adbdgl_adapter.exceptions.ADBMetagraphError: If invalid **meta_val**. + """ + logger.debug(f"__build_tensor_from_dataframe(df, '{meta_key}', {meta_val})") + + if type(meta_val) is str: + return tensor(adb_df[meta_val].to_list()) + + if type(meta_val) is dict: + data = [] + for attr, encoder in meta_val.items(): + if encoder is None: + data.append(tensor(adb_df[attr].to_list())) + elif callable(encoder): + data.append(encoder(adb_df[attr])) + else: # pragma: no cover + msg = f"Invalid encoder for ArangoDB attribute '{attr}': {encoder}" + raise ADBMetagraphError(msg) + + return cat(data, dim=-1) + + if callable(meta_val): + # **meta_val** is a user-defined that returns a tensor + user_defined_result = meta_val(adb_df) + + if type(user_defined_result) is not Tensor: # pragma: no cover + msg = f"Invalid return type for function {meta_val} ('{meta_key}')" + raise ADBMetagraphError(msg) + + return user_defined_result + + raise ADBMetagraphError(f"Invalid {meta_val} type") # pragma: no cover + + def __build_dataframe_from_tensor( + self, + dgl_tensor: Tensor, + meta_key: str, + meta_val: DGLMetagraphValues, + ) -> DataFrame: + """Builds a Pandas DataFrame from DGL Tensor, based on + the nature of the user-defined metagraph. + + :param dgl_tensor: The Tensor representing DGL data. + :type dgl_tensor: torch.Tensor + :param meta_key: The current DGL-ArangoDB metagraph key + :type meta_key + :param meta_val: The value mapped to the DGL-ArangoDB metagraph key to + help convert **tensor** into a Pandas Dataframe. + e.g the value of `metagraph['nodeTypes']['users']['x']`. + :type meta_val: adbdgl_adapter.typings.DGLMetagraphValues + :return: A Pandas DataFrame equivalent to the Tensor + :rtype: pandas.DataFrame + :raise adbdgl_adapter.exceptions.DGLMetagraphError: If invalid **meta_val**. + """ + logger.debug(f"__build_dataframe_from_tensor(df, '{meta_key}', {meta_val})") + + if type(meta_val) in [str, list]: + columns = [meta_val] if type(meta_val) is str else meta_val + + df = DataFrame(columns=columns) + df[meta_val] = dgl_tensor.tolist() + return df + + if callable(meta_val): + # **meta_val** is a user-defined function that returns a dataframe + user_defined_result = meta_val(dgl_tensor) + + if type(user_defined_result) is not DataFrame: # pragma: no cover + msg = f"Invalid return type for function {meta_val} ('{meta_key}')" + raise DGLMetagraphError(msg) + + return user_defined_result + + raise DGLMetagraphError(f"Invalid {meta_val} type") # pragma: no cover diff --git a/adbdgl_adapter/utils.py b/adbdgl_adapter/utils.py index 8bef589..c0122c7 100644 --- a/adbdgl_adapter/utils.py +++ b/adbdgl_adapter/utils.py @@ -34,12 +34,11 @@ def progress( def validate_adb_metagraph(metagraph: Dict[Any, Dict[Any, Any]]) -> None: meta: Dict[Any, Any] - if "edgeCollections" in metagraph and "vertexCollections" not in metagraph: - msg = """ - Metagraph must have 'vertexCollections' if - 'edgeCollections' is specified. - """ - raise ADBMetagraphError(msg) + if "vertexCollections" not in metagraph: + raise ADBMetagraphError("Missing 'vertexCollections' key in metagraph") + + if "edgeCollections" not in metagraph: + raise ADBMetagraphError("Missing 'edgeCollections' key in metagraph") for parent_key in ["vertexCollections", "edgeCollections"]: for col, meta in metagraph.get(parent_key, {}).items(): @@ -70,7 +69,7 @@ def validate_adb_metagraph(metagraph: Dict[Any, Dict[Any, Any]]) -> None: raise ADBMetagraphError(msg) -def validate_pyg_metagraph(metagraph: Dict[Any, Dict[Any, Any]]) -> None: +def validate_dgl_metagraph(metagraph: Dict[Any, Dict[Any, Any]]) -> None: meta: Dict[Any, Any] for node_type in metagraph.get("nodeTypes", {}).keys(): diff --git a/setup.cfg b/setup.cfg index 475af62..a91261b 100644 --- a/setup.cfg +++ b/setup.cfg @@ -3,7 +3,7 @@ profile = black [flake8] max-line-length = 88 -extend-ignore = E203, E741, W503 +extend-ignore = E203, E741, W503, E731 exclude =.git .idea .*_cache dist venv [mypy] From 399dc47ef61745fc28b72cc775a0051d7ecab148 Mon Sep 17 00:00:00 2001 From: aMahanna Date: Mon, 1 Aug 2022 20:52:25 -0400 Subject: [PATCH 03/37] Update adapter.py --- adbdgl_adapter/adapter.py | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/adbdgl_adapter/adapter.py b/adbdgl_adapter/adapter.py index 3d3e304..b0fe61b 100644 --- a/adbdgl_adapter/adapter.py +++ b/adbdgl_adapter/adapter.py @@ -125,7 +125,7 @@ def arangodb_to_dgl( for v_col, meta in metagraph["vertexCollections"].items(): logger.debug(f"Preparing '{v_col}' vertices") - df = self.__fetch_adb_docs(v_col, query_options) + df = self.__fetch_adb_docs(v_col, meta, query_options) adb_map.update({adb_id: dgl_id for dgl_id, adb_id in enumerate(df["_id"])}) for k, v in meta.items(): @@ -135,7 +135,7 @@ def arangodb_to_dgl( for e_col, meta in metagraph["edgeCollections"].items(): logger.debug(f"Preparing '{e_col}' edges") - df = self.__fetch_adb_docs(e_col, query_options) + df = self.__fetch_adb_docs(e_col, meta, query_options) df["from_col"] = df["_from"].str.split("/").str[0] df["to_col"] = df["_to"].str.split("/").str[0] @@ -144,12 +144,8 @@ def arangodb_to_dgl( ): edge_type: DGLCanonicalEType = (from_col, e_col, to_col) if from_col not in v_cols or to_col not in v_cols: - msg = f""" - Skipping {edge_type}, as its vertex collections - were not specified in the metagraph. - """ - logger.debug(msg) - continue + logger.debug(f"Skipping {edge_type}") + continue # partial edge collection import to dgl logger.debug(f"Preparing {count} '{edge_type}' edges") @@ -336,7 +332,7 @@ def dgl_to_arangodb( df["_from"] = from_col + "/" + df["_from"].astype(str) df["_to"] = to_col + "/" + df["_to"].astype(str) - meta = e_meta.get(e_type, {}) + meta = e_meta.get(e_type, {}) for k, t in dgl_g.edges[e_key].data.items(): if type(t) is Tensor and len(t) == dgl_g.num_edges(e_key): v = meta.get(k, k) @@ -445,21 +441,27 @@ def __set_dgl_data( dgl_tensor if has_one_type else {data_type: dgl_tensor} ) - def __fetch_adb_docs(self, col: str, query_options: Any) -> DataFrame: + def __fetch_adb_docs( + self, col: str, meta: Dict[str, ADBMetagraphValues], query_options: Any + ) -> DataFrame: """Fetches ArangoDB documents within a collection. Returns the documents in a Pandas DataFrame. :param col: The ArangoDB collection. :type col: str + :param meta: The metagraph specification for **col**. + :type meta: Dict[str, ADBMetagraphValues] :param query_options: Keyword arguments to specify AQL query options when fetching documents from the ArangoDB instance. :type query_options: Any :return: A Pandas DataFrame representing the ArangoDB documents. :rtype: pandas.DataFrame """ - aql = """ + # Only return the entire document if **meta** is not empty + data = "doc" if meta else "{_id: doc._id, _from: doc._from, _to: doc._to}" + aql = f""" FOR doc IN @@col - RETURN doc + RETURN {data} """ with progress( From 80566392d6698133c4bd3b9b388c47a2ed36770d Mon Sep 17 00:00:00 2001 From: aMahanna Date: Mon, 1 Aug 2022 23:59:59 -0400 Subject: [PATCH 04/37] checkpoint 2 --- README.md | 183 +++++++++++++++--- ...81329febf6efe22788e03ddeaf0af.data.json.gz | Bin 196 -> 0 bytes ...329febf6efe22788e03ddeaf0af.structure.json | 1 - ...97786af4bf30dc5b07809a950792c.data.json.gz | Bin 275 -> 0 bytes ...786af4bf30dc5b07809a950792c.structure.json | 1 - .../data/fraud_dump/Text_Search.view.json | 1 - ...c888a45b895a4783b6dbd338f0155.data.json.gz | Bin 20 -> 0 bytes ...88a45b895a4783b6dbd338f0155.structure.json | 1 - ...ca6a6a72935fd370f79f3a3e62b0e.data.json.gz | Bin 20 -> 0 bytes ...6a6a72935fd370f79f3a3e62b0e.structure.json | 1 - ...2c8489196d21e33f194f4bafb3f05.data.json.gz | Bin 20 -> 0 bytes ...8489196d21e33f194f4bafb3f05.structure.json | 1 - ...3af7a2caabc3098bc21db7ce2759d.data.json.gz | Bin 20 -> 0 bytes ...f7a2caabc3098bc21db7ce2759d.structure.json | 1 - ...7636f2b54efb49f1f02feeeacfb01.data.json.gz | Bin 292 -> 0 bytes ...36f2b54efb49f1f02feeeacfb01.structure.json | 1 - ...c8ba0d331b61fccfd1e88cfedce00.data.json.gz | Bin 20 -> 0 bytes ...ba0d331b61fccfd1e88cfedce00.structure.json | 1 - ...1953e2b3a86325411a027c406e65a.data.json.gz | Bin 1076 -> 0 bytes ...53e2b3a86325411a027c406e65a.structure.json | 1 - ...8443e43d93dab7ebef303bbe9642f.data.json.gz | Bin 1696 -> 0 bytes ...43e43d93dab7ebef303bbe9642f.structure.json | 1 - ...af1f610a12434c9128e4a399cef8a.data.json.gz | Bin 183 -> 0 bytes ...1f610a12434c9128e4a399cef8a.structure.json | 1 - ...3a224b40d7b67210b78f2e390d00f.data.json.gz | Bin 465 -> 0 bytes ...224b40d7b67210b78f2e390d00f.structure.json | 1 - ...c1f9324753048c0096d036a694f86.data.json.gz | Bin 794 -> 0 bytes ...f9324753048c0096d036a694f86.structure.json | 1 - examples/data/fraud_dump/dump.json | 1 - ...5b76a2418eba4baeabc1ed9142b54.data.json.gz | Bin 2292 -> 0 bytes ...76a2418eba4baeabc1ed9142b54.structure.json | 1 - tests/conftest.py | 111 +++++++---- tests/data/adb/imdb_dump/ENCRYPTION | 1 + .../data/adb/imdb_dump/Movies.structure.json | 1 + ...62e1f485e79d07ef4973f6b1b9f88.data.json.gz | Bin 0 -> 68107 bytes .../data/adb/imdb_dump/Ratings.structure.json | 1 + ...cd33ae274522f351c266f028eed7b.data.json.gz | Bin 0 -> 1407601 bytes tests/data/adb/imdb_dump/Users.structure.json | 1 + ...ae5fda8d810a29f12d1e61b4ab25f.data.json.gz | Bin 0 -> 16717 bytes tests/data/adb/imdb_dump/dump.json | 1 + tests/{assets => tools}/arangorestore | Bin 41 files changed, 241 insertions(+), 74 deletions(-) delete mode 100644 examples/data/fraud_dump/Class_9bd81329febf6efe22788e03ddeaf0af.data.json.gz delete mode 100644 examples/data/fraud_dump/Class_9bd81329febf6efe22788e03ddeaf0af.structure.json delete mode 100644 examples/data/fraud_dump/Relationship_fbc97786af4bf30dc5b07809a950792c.data.json.gz delete mode 100644 examples/data/fraud_dump/Relationship_fbc97786af4bf30dc5b07809a950792c.structure.json delete mode 100644 examples/data/fraud_dump/Text_Search.view.json delete mode 100644 examples/data/fraud_dump/_analyzers_839c888a45b895a4783b6dbd338f0155.data.json.gz delete mode 100644 examples/data/fraud_dump/_analyzers_839c888a45b895a4783b6dbd338f0155.structure.json delete mode 100644 examples/data/fraud_dump/_appbundles_105ca6a6a72935fd370f79f3a3e62b0e.data.json.gz delete mode 100644 examples/data/fraud_dump/_appbundles_105ca6a6a72935fd370f79f3a3e62b0e.structure.json delete mode 100644 examples/data/fraud_dump/_apps_c3f2c8489196d21e33f194f4bafb3f05.data.json.gz delete mode 100644 examples/data/fraud_dump/_apps_c3f2c8489196d21e33f194f4bafb3f05.structure.json delete mode 100644 examples/data/fraud_dump/_aqlfunctions_8293af7a2caabc3098bc21db7ce2759d.data.json.gz delete mode 100644 examples/data/fraud_dump/_aqlfunctions_8293af7a2caabc3098bc21db7ce2759d.structure.json delete mode 100644 examples/data/fraud_dump/_graphs_c827636f2b54efb49f1f02feeeacfb01.data.json.gz delete mode 100644 examples/data/fraud_dump/_graphs_c827636f2b54efb49f1f02feeeacfb01.structure.json delete mode 100644 examples/data/fraud_dump/_modules_5a8c8ba0d331b61fccfd1e88cfedce00.data.json.gz delete mode 100644 examples/data/fraud_dump/_modules_5a8c8ba0d331b61fccfd1e88cfedce00.structure.json delete mode 100644 examples/data/fraud_dump/accountHolder_2e31953e2b3a86325411a027c406e65a.data.json.gz delete mode 100644 examples/data/fraud_dump/accountHolder_2e31953e2b3a86325411a027c406e65a.structure.json delete mode 100644 examples/data/fraud_dump/account_e268443e43d93dab7ebef303bbe9642f.data.json.gz delete mode 100644 examples/data/fraud_dump/account_e268443e43d93dab7ebef303bbe9642f.structure.json delete mode 100644 examples/data/fraud_dump/bank_bd5af1f610a12434c9128e4a399cef8a.data.json.gz delete mode 100644 examples/data/fraud_dump/bank_bd5af1f610a12434c9128e4a399cef8a.structure.json delete mode 100644 examples/data/fraud_dump/branch_9603a224b40d7b67210b78f2e390d00f.data.json.gz delete mode 100644 examples/data/fraud_dump/branch_9603a224b40d7b67210b78f2e390d00f.structure.json delete mode 100644 examples/data/fraud_dump/customer_91ec1f9324753048c0096d036a694f86.data.json.gz delete mode 100644 examples/data/fraud_dump/customer_91ec1f9324753048c0096d036a694f86.structure.json delete mode 100644 examples/data/fraud_dump/dump.json delete mode 100644 examples/data/fraud_dump/transaction_f4d5b76a2418eba4baeabc1ed9142b54.data.json.gz delete mode 100644 examples/data/fraud_dump/transaction_f4d5b76a2418eba4baeabc1ed9142b54.structure.json create mode 100644 tests/data/adb/imdb_dump/ENCRYPTION create mode 100644 tests/data/adb/imdb_dump/Movies.structure.json create mode 100644 tests/data/adb/imdb_dump/Movies_80662e1f485e79d07ef4973f6b1b9f88.data.json.gz create mode 100644 tests/data/adb/imdb_dump/Ratings.structure.json create mode 100644 tests/data/adb/imdb_dump/Ratings_e8dcd33ae274522f351c266f028eed7b.data.json.gz create mode 100644 tests/data/adb/imdb_dump/Users.structure.json create mode 100644 tests/data/adb/imdb_dump/Users_f9aae5fda8d810a29f12d1e61b4ab25f.data.json.gz create mode 100644 tests/data/adb/imdb_dump/dump.json rename tests/{assets => tools}/arangorestore (100%) diff --git a/README.md b/README.md index 3c782ce..0fb788d 100644 --- a/README.md +++ b/README.md @@ -45,44 +45,181 @@ pip install git+https://github.com/arangoml/dgl-adapter.git Also available as an ArangoDB Lunch & Learn session: [Graph & Beyond Course #2.8](https://www.arangodb.com/resources/lunch-sessions/graph-beyond-lunch-break-2-8-dgl-adapter/) ```py +import pandas +import torch +from dgl import heterograph + from arango import ArangoClient # Python-Arango driver -from dgl.data import KarateClubDataset # Sample graph from DGL -from adbdgl_adapter import ADBDGL_Adapter +from adbdgl_adapter import ADBDGL_Adapter, ADBDGL_Controller +from adbdgl_adapter.encoders import IdentityEncoder, CategoricalEncoder -# Let's assume that the ArangoDB "fraud detection" dataset is imported to this endpoint +# Let's assume that the ArangoDB "IMDB" dataset is imported to this endpoint db = ArangoClient(hosts="http://localhost:8529").db("_system", username="root", password="") +hetero_graph = dgl.heterograph({ + ("user", "follows", "user"): (torch.tensor([0, 1]), torch.tensor([1, 2])), + ("user", "follows", "topic"): (torch.tensor([1, 1]), torch.tensor([1, 2])), + ("user", "plays", "game"): (torch.tensor([0, 3]), torch.tensor([3, 4])), +}) +hetero_graph.nodes["user"].data["features"] = torch.tensor([21, 44, 16, 25]) +hetero_graph.nodes["user"].data["label"] = torch.tensor([1, 2, 0, 1]) +hetero_graph.nodes["game"].data["features"] = torch.tensor([[0, 0], [0, 1], [1, 0], [1, 1]]) +hetero_graph.edges[("user", "plays", "game")].data["features"] = torch.tensor([[6, 1], [1000, 0]]) + adbdgl_adapter = ADBDGL_Adapter(db) +``` + +### DGL to ArangoDB +```py +# 1.1: DGL to ArangoDB +adb_g = adbdgl_adapter.dgl_to_arangodb("HeteroGraph", hetero_graph) -# Use Case 1.1: ArangoDB to DGL via Graph name -dgl_fraud_graph = adbdgl_adapter.arangodb_graph_to_dgl("fraud-detection") +# 1.2: DGL to ArangoDB with a (completely optional) metagraph for customized adapter behaviour +def label_tensor_to_2_column_dataframe(dgl_tensor): + """ + A user-defined function to create two + ArangoDB attributes out of the 'user' label tensor + + NOTE: user-defined functions must return a Pandas Dataframe + """ + label_map = {0: "Class A", 1: "Class B", 2: "Class C"} + + df = pandas.DataFrame(columns=["label_num", "label_str"]) + df["label_num"] = pyg_tensor.tolist() + df["label_str"] = df["label_num"].map(label_map) + + return df -# Use Case 1.2: ArangoDB to DGL via Collection names -dgl_fraud_graph_2 = adbdgl_adapter.arangodb_collections_to_dgl( - "fraud-detection", - {"account", "Class", "customer"}, # Vertex collections - {"accountHolder", "Relationship", "transaction"}, # Edge collections -) -# Use Case 1.3: ArangoDB to DGL via Metagraph metagraph = { + "nodeTypes": { + "user": { + "features": "user_age", # 1) you can specify a string value for attribute renaming + "label": label_tensor_to_2_column_dataframe, # 2) you can specify a function for user-defined handling, as long as the function returns a Pandas DataFrame + }, + "game": { + # 3) you can specify a list of strings for tensor dissasembly (if you know the number of node/edge features in advance) + "features": ["is_multiplayer", "is_free_to_play"] + }, + }, + "edgeTypes": { + ("user", "plays", "game"): { + # 3) you can specify a list of strings for tensor dissasembly (if you know the number of node/edge features in advance) + "features": ["hours_played", "is_satisfied_with_game"] + }, + }, +} + + +adb_g = adbdgl_adapter.dgl_to_arangodb("HeteroGraph", hetero_graph, metagraph, explicit_metagraph=False) + +# 1.3: DGL to ArangoDB with the same (optional) metagraph, but with `explicit_metagraph=True` +# With `explicit_metagraph=True`, the node & edge types omitted from the metagraph will NOT be converted to ArangoDB. +# Only 'user', 'game', and ('user', 'plays', 'game') will be brought over (i.e 'topic', ('user', 'follows', 'user'), ... are ignored) +adb_g = adbdgl_adapter.dgl_to_arangodb("HeteroGraph", hetero_graph, metagraph, explicit_metagraph=True) + +# 1.4: DGL to ArangoDB with a Custom Controller (more user-defined behavior) +class Custom_ADBDGL_Controller(ADBDGL_Controller): + def _prepare_dgl_node(self, dgl_node: dict, node_type: str) -> dict: + """Optionally modify a DGL node object before it gets inserted into its designated ArangoDB collection. + + :param pyg_node: The DGL node object to (optionally) modify. + :param node_type: The DGL Node Type of the node. + :return: The DGL Node object + """ + dgl_node["foo"] = "bar" + return dgl_node + + def _prepare_dgl_edge(self, dgl_edge: dict, edge_type: tuple) -> dict: + """Optionally modify a DGL edge object before it gets inserted into its designated ArangoDB collection. + + :param dgl_edge: The DGL edge object to (optionally) modify. + :param edge_type: The Edge Type of the DGL edge. Formatted + as (from_collection, edge_collection, to_collection) + :return: The DGL Edge object + """ + dgl_edge["bar"] = "foo" + return dgl_edge + + +adb_g = ADBDGL_Adapter(db, Custom_ADBDGL_Controller()).dgl_to_arangodb("HeteroGraph", hetero_graph) +``` + +### ArangoDB to DGL +```py +# Start from scratch! +db.delete_graph("HeteroGraph", drop_collections=True, ignore_missing=True) +adbdgl_adapter.dgl_to_arangodb("HeteroGraph", hetero_graph) + +# 2.1: ArangoDB to DGL via Graph name (does not transfer attributes) +dgl_g = adbdgl_adapter.arangodb_graph_to_dgl("HeteroGraph") + +# 2.2: ArangoDB to DGL via Collection names (does not transfer attributes) +dgl_g = adbdgl_adapter.arangodb_collections_to_dgl("HeteroGraph", v_cols={"user", "game"}, e_cols={"plays"}) + +# 2.3: ArangoDB to DGL via Metagraph v1 (transfer attributes "as is", meaning they are already formatted to DGL data standards) +metagraph_v1 = { "vertexCollections": { - "account": {"Balance", "rank"}, - "customer": {"rank"}, - "Class": {}, + # we instruct the adapter to create the "features" and "label" tensor data from the "features" and "label" ArangoDB attributes + "user": {"features": "features", "label": "label"}, + "game": {"features": "features"}, + "topic": {}, }, - "edgeCollections": { - "transaction": {"transaction_amt", "sender_bank_id", "receiver_bank_id"}, - "accountHolder": {}, - "Relationship": {}, + "edgeCollections": {"plays": {"features": "features"}, "follows": {}}, +} +dgl_g = adbdgl_adapter.arangodb_to_dgl("HeteroGraph", metagraph_v1) + +# 2.4: ArangoDB to DGL via Metagraph v2 (transfer attributes via user-defined encoders) +# For more info on user-defined encoders, see https://pytorch-geometric.readthedocs.io/en/latest/notes/load_csv.html +metagraph_v2 = { + "vertexCollections": { + "Movies": { + "x": { # Build a feature matrix from the "Action" & "Drama" document attributes + "Action": IdentityEncoder(dtype=torch.long), + "Drama": IdentityEncoder(dtype=torch.long), + }, + "y": "Comedy", + }, + "Users": { + "x": { + "Gender": CategoricalEncoder(mapping={"M": 0, "F": 1}), + "Age": IdentityEncoder(dtype=torch.long), + } + }, }, + "edgeCollections": {"Ratings": {"edge_weight": "Rating"}}, } -dgl_fraud_graph_3 = adbdgl_adapter.arangodb_to_dgl("fraud-detection", metagraph) +dgl_g = adbdgl_adapter.arangodb_to_dgl("IMDB", metagraph_v2) -# Use Case 2: DGL to ArangoDB -dgl_karate_graph = KarateClubDataset()[0] -adb_karate_graph = adbdgl_adapter.dgl_to_arangodb("Karate", dgl_karate_graph) +# 2.5: ArangoDB to DGL via Metagraph v3 (transfer attributes via user-defined functions) +def udf_user_features(user_df): + # process the user_df Pandas DataFrame to return a feature matrix in a tensor + # user_df["features"] = ... + return torch.tensor(user_df["features"].to_list()) + + +def udf_game_features(game_df): + # process the game_df Pandas DataFrame to return a feature matrix in a tensor + # game_df["features"] = ... + return torch.tensor(game_df["features"].to_list()) + + +metagraph_v3 = { + "vertexCollections": { + "user": { + "features": udf_user_features, # supports named functions + "label": lambda df: torch.tensor( + df["label"].to_list() + ), # also supports lambda functions + }, + "game": {"features": udf_game_features}, + }, + "edgeCollections": { + "plays": {"features": (lambda df: torch.tensor(df["features"].to_list()))}, + }, +} +dgl_g = adbdgl_adapter.arangodb_to_dgl("HeteroGraph", metagraph_v3) ``` ## Development & Testing diff --git a/examples/data/fraud_dump/Class_9bd81329febf6efe22788e03ddeaf0af.data.json.gz b/examples/data/fraud_dump/Class_9bd81329febf6efe22788e03ddeaf0af.data.json.gz deleted file mode 100644 index 3b56137674c4d7903f354d8cc4596a43b5911c98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 196 zcmV;#06YI5iwFP!000006OE3s4uUWgMR&i#ycr_VjZHh6=*ZYSN)r)iwJjKykg@Rp{ZVzX>Bn64v-N^etVEtDHGA4Ur y799Z%LfG{f4cYsZD{d`M zE(DW*ui~b$CKhqFcdo~Cj9c)VT0(w#HJeSKM30cSP^{$!a_|<(q41RpdHV!)s8FM1#^3d*$THm}d<6w0H`D`kRko=LXn~o`Kw37TBX`L4GIn(uw*tT!> ZGJ0tE&&gJftNQvu^b34lvdDD<007oIiCzEz diff --git a/examples/data/fraud_dump/Relationship_fbc97786af4bf30dc5b07809a950792c.structure.json b/examples/data/fraud_dump/Relationship_fbc97786af4bf30dc5b07809a950792c.structure.json deleted file mode 100644 index e4d2d9a..0000000 --- a/examples/data/fraud_dump/Relationship_fbc97786af4bf30dc5b07809a950792c.structure.json +++ /dev/null @@ -1 +0,0 @@ -{"indexes":[],"parameters":{"allowUserKeys":true,"cacheEnabled":false,"cid":"63926","deleted":false,"globallyUniqueId":"c6251114/","id":"63926","isSmart":false,"isSystem":false,"keyOptions":{"allowUserKeys":true,"type":"traditional","lastValue":0},"minReplicationFactor":1,"name":"Relationship","numberOfShards":1,"planId":"6251114","replicationFactor":3,"shardKeys":["_key"],"shards":{"s6251115":["PRMR-drkxnewt","PRMR-mefeyznw","PRMR-9tthmtzr"]},"status":3,"type":3,"version":8,"waitForSync":false,"writeConcern":1}} \ No newline at end of file diff --git a/examples/data/fraud_dump/Text_Search.view.json b/examples/data/fraud_dump/Text_Search.view.json deleted file mode 100644 index 432adb3..0000000 --- a/examples/data/fraud_dump/Text_Search.view.json +++ /dev/null @@ -1 +0,0 @@ -{"globallyUniqueId":"h7CC8359662CF/1626628","id":"1626628","name":"Text_Search","type":"arangosearch","cleanupIntervalStep":10,"commitIntervalMsec":1000,"consolidationIntervalMsec":60000,"consolidationPolicy":{"type":"bytes_accum","threshold":0.10000000149011612},"primarySort":[],"writebufferActive":0,"writebufferIdle":64,"writebufferSizeMax":33554432,"links":{}} \ No newline at end of file diff --git a/examples/data/fraud_dump/_analyzers_839c888a45b895a4783b6dbd338f0155.data.json.gz b/examples/data/fraud_dump/_analyzers_839c888a45b895a4783b6dbd338f0155.data.json.gz deleted file mode 100644 index d2106716739672d33134b942ffcde44cddddd1ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20 Rcmb2|=3oE=VP*&oBmoXk0LcIV diff --git a/examples/data/fraud_dump/_analyzers_839c888a45b895a4783b6dbd338f0155.structure.json b/examples/data/fraud_dump/_analyzers_839c888a45b895a4783b6dbd338f0155.structure.json deleted file mode 100644 index 74877aa..0000000 --- a/examples/data/fraud_dump/_analyzers_839c888a45b895a4783b6dbd338f0155.structure.json +++ /dev/null @@ -1 +0,0 @@ -{"indexes":[],"parameters":{"allowUserKeys":true,"cacheEnabled":false,"cid":"63866","deleted":false,"globallyUniqueId":"_analyzers","id":"63866","isSmart":false,"isSystem":true,"keyOptions":{"allowUserKeys":true,"type":"traditional","lastValue":0},"minReplicationFactor":1,"name":"_analyzers","numberOfShards":1,"planId":"63866","replicationFactor":1,"shardKeys":["_key"],"shards":{},"status":3,"type":2,"version":8,"waitForSync":false,"writeConcern":1}} \ No newline at end of file diff --git a/examples/data/fraud_dump/_appbundles_105ca6a6a72935fd370f79f3a3e62b0e.data.json.gz b/examples/data/fraud_dump/_appbundles_105ca6a6a72935fd370f79f3a3e62b0e.data.json.gz deleted file mode 100644 index d2106716739672d33134b942ffcde44cddddd1ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20 Rcmb2|=3oE=VP*&oBmoXk0LcIV diff --git a/examples/data/fraud_dump/_appbundles_105ca6a6a72935fd370f79f3a3e62b0e.structure.json b/examples/data/fraud_dump/_appbundles_105ca6a6a72935fd370f79f3a3e62b0e.structure.json deleted file mode 100644 index f3bdfc8..0000000 --- a/examples/data/fraud_dump/_appbundles_105ca6a6a72935fd370f79f3a3e62b0e.structure.json +++ /dev/null @@ -1 +0,0 @@ -{"indexes":[],"parameters":{"allowUserKeys":true,"cacheEnabled":false,"cid":"63881","deleted":false,"globallyUniqueId":"_appbundles","id":"63881","isSmart":false,"isSystem":true,"keyOptions":{"allowUserKeys":true,"type":"traditional","lastValue":0},"minReplicationFactor":1,"name":"_appbundles","numberOfShards":1,"planId":"63881","replicationFactor":1,"shardKeys":["_key"],"shards":{},"status":3,"type":2,"version":8,"waitForSync":false,"writeConcern":1}} \ No newline at end of file diff --git a/examples/data/fraud_dump/_apps_c3f2c8489196d21e33f194f4bafb3f05.data.json.gz b/examples/data/fraud_dump/_apps_c3f2c8489196d21e33f194f4bafb3f05.data.json.gz deleted file mode 100644 index d2106716739672d33134b942ffcde44cddddd1ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20 Rcmb2|=3oE=VP*&oBmoXk0LcIV diff --git a/examples/data/fraud_dump/_apps_c3f2c8489196d21e33f194f4bafb3f05.structure.json b/examples/data/fraud_dump/_apps_c3f2c8489196d21e33f194f4bafb3f05.structure.json deleted file mode 100644 index fce1a9d..0000000 --- a/examples/data/fraud_dump/_apps_c3f2c8489196d21e33f194f4bafb3f05.structure.json +++ /dev/null @@ -1 +0,0 @@ -{"indexes":[{"id":"63893","type":"hash","name":"idx_1654880607689244672","fields":["mount"],"unique":true,"sparse":true,"deduplicate":true}],"parameters":{"allowUserKeys":true,"cacheEnabled":false,"cid":"63878","deleted":false,"globallyUniqueId":"_apps","id":"63878","isSmart":false,"isSystem":true,"keyOptions":{"allowUserKeys":true,"type":"traditional","lastValue":0},"minReplicationFactor":1,"name":"_apps","numberOfShards":1,"planId":"63878","replicationFactor":1,"shardKeys":["_key"],"shards":{},"status":3,"type":2,"version":8,"waitForSync":false,"writeConcern":1}} \ No newline at end of file diff --git a/examples/data/fraud_dump/_aqlfunctions_8293af7a2caabc3098bc21db7ce2759d.data.json.gz b/examples/data/fraud_dump/_aqlfunctions_8293af7a2caabc3098bc21db7ce2759d.data.json.gz deleted file mode 100644 index d2106716739672d33134b942ffcde44cddddd1ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20 Rcmb2|=3oE=VP*&oBmoXk0LcIV diff --git a/examples/data/fraud_dump/_aqlfunctions_8293af7a2caabc3098bc21db7ce2759d.structure.json b/examples/data/fraud_dump/_aqlfunctions_8293af7a2caabc3098bc21db7ce2759d.structure.json deleted file mode 100644 index 9b42e3d..0000000 --- a/examples/data/fraud_dump/_aqlfunctions_8293af7a2caabc3098bc21db7ce2759d.structure.json +++ /dev/null @@ -1 +0,0 @@ -{"indexes":[],"parameters":{"allowUserKeys":true,"cacheEnabled":false,"cid":"63869","deleted":false,"globallyUniqueId":"_aqlfunctions","id":"63869","isSmart":false,"isSystem":true,"keyOptions":{"allowUserKeys":true,"type":"traditional","lastValue":0},"minReplicationFactor":1,"name":"_aqlfunctions","numberOfShards":1,"planId":"63869","replicationFactor":1,"shardKeys":["_key"],"shards":{},"status":3,"type":2,"version":8,"waitForSync":false,"writeConcern":1}} \ No newline at end of file diff --git a/examples/data/fraud_dump/_graphs_c827636f2b54efb49f1f02feeeacfb01.data.json.gz b/examples/data/fraud_dump/_graphs_c827636f2b54efb49f1f02feeeacfb01.data.json.gz deleted file mode 100644 index fe7a64b6d18388ce62c3efbf5a557be5619d1170..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 292 zcmV+<0o(o`iwFP!000006U~uNPs1<_#qWF!pBu3aap`pkaYNc}ps6y6yJjSD<)omg z>USrt_6MzMLvl_>)XVi&hqTYtp)xx*fL`x2u zBuv1@wMR)%*61P?KxRu%RNG+3&iu!F51O4j3|0ba&0R<@>kP%DUU|61P#?dyzaM$0;-FGfo<=K!^Q`9QzhCE&z q;Fj=wi5>42|K}1ba+7InZ2K$5rNbD{As(K$BK!fx4mlsY0ssJe6pn-d diff --git a/examples/data/fraud_dump/_graphs_c827636f2b54efb49f1f02feeeacfb01.structure.json b/examples/data/fraud_dump/_graphs_c827636f2b54efb49f1f02feeeacfb01.structure.json deleted file mode 100644 index 3823e26..0000000 --- a/examples/data/fraud_dump/_graphs_c827636f2b54efb49f1f02feeeacfb01.structure.json +++ /dev/null @@ -1 +0,0 @@ -{"indexes":[],"parameters":{"allowUserKeys":true,"cacheEnabled":false,"cid":"63863","deleted":false,"globallyUniqueId":"_graphs","id":"63863","isSmart":false,"isSystem":true,"keyOptions":{"allowUserKeys":true,"type":"traditional","lastValue":0},"minReplicationFactor":1,"name":"_graphs","numberOfShards":1,"planId":"63863","replicationFactor":1,"shardKeys":["_key"],"shards":{},"status":3,"type":2,"version":8,"waitForSync":false,"writeConcern":1}} \ No newline at end of file diff --git a/examples/data/fraud_dump/_modules_5a8c8ba0d331b61fccfd1e88cfedce00.data.json.gz b/examples/data/fraud_dump/_modules_5a8c8ba0d331b61fccfd1e88cfedce00.data.json.gz deleted file mode 100644 index d2106716739672d33134b942ffcde44cddddd1ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20 Rcmb2|=3oE=VP*&oBmoXk0LcIV diff --git a/examples/data/fraud_dump/_modules_5a8c8ba0d331b61fccfd1e88cfedce00.structure.json b/examples/data/fraud_dump/_modules_5a8c8ba0d331b61fccfd1e88cfedce00.structure.json deleted file mode 100644 index 2d03476..0000000 --- a/examples/data/fraud_dump/_modules_5a8c8ba0d331b61fccfd1e88cfedce00.structure.json +++ /dev/null @@ -1 +0,0 @@ -{"indexes":[],"parameters":{"allowUserKeys":true,"cacheEnabled":false,"cid":"63887","deleted":false,"globallyUniqueId":"_modules","id":"63887","isSmart":false,"isSystem":true,"keyOptions":{"allowUserKeys":true,"type":"traditional","lastValue":0},"minReplicationFactor":1,"name":"_modules","numberOfShards":1,"planId":"63887","replicationFactor":1,"shardKeys":["_key"],"shards":{},"status":3,"type":2,"version":8,"waitForSync":false,"writeConcern":1}} \ No newline at end of file diff --git a/examples/data/fraud_dump/accountHolder_2e31953e2b3a86325411a027c406e65a.data.json.gz b/examples/data/fraud_dump/accountHolder_2e31953e2b3a86325411a027c406e65a.data.json.gz deleted file mode 100644 index 2d431e125c39e0f6b1193eb9addd119cdc49eba3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1076 zcmV-41k3v$iwFP!000006O~zAPuoBceDBZjGZAaDHV5;?qI!C$KUaTlmz!e*`?;xB|AEK-qq=Gi7Ejx{TJ`?;?PRn3+Z>fQ z<#cs%wHl4Cqu19DF9L=W_i6nM2@Eo9k08SdVt6NHXyf)XNxcjy3^Htw5JMXe7_LX7 zGbuyszTcl^3d0Q9EL)2hew1d}1t-q^Stc-ChdG<&VGNrre^N4Rt2xN9h2c6J>llut zSx#M!{4u03oMkqKHbq&!2r?Yow8$r%KzgSKeA*Kz+(z(yF84Q=>Gn<@t*)gRziKHA z=aW?}?tGV0hMBAAK<6VctO>sJWr*Qa%FvaPN&E~64975G84fG1VR)|0vXy1o@>#aZ zEMG}g>mHpJe$^5fVwkZ>wn?AhEVt+NP9c=IUn=3om+?u?6pim%!7z9Kr|~l+Fq~w= zGR#qum)Z;1FBA&Ht(g@HzJR6I+rGX6mj{8tG88(5S#F-cEfu$0_vAnb2@HlXR{RmItK+QjQr>8Px1*tPtiW|hOPbR6H$hyhg)81^f?D&Qz7 z9zD8^l+4)2d>@XL#$Id(x_wVzd?PR%L%t4SmZfVUQ@Bj{M-K|aby%EgFZ-#=~EX&VtmY?6?HtVZ0$w^?*L10)Yywie7UPzOixbF|lZv=)JvN5FV ztWGG>8183{K(iq*EEK-k3=O}=9v1zk8oZVbZx0P`58<_3X^lg`+7K943U6&7!>w!x z&bYg-cZ!DK6!yNs5IjpV#Spwtl+0!szT%A1X05fF2n=uphBd)j1gr`1+NE>J0fq#I z`wGtxzGD@?X~_C^GH3)1Z&eL%RiP1-y?qTlLDz?e6-ppW`+T zThY}!edN{u>$-CB_Raq0ukLPmZ#Zl8zU$`Pd~OT^pmi3+TF*`_y?_7NLjfQ*2Z&7p z@?;2zvt()k0n>uiB7ze{B#j6U5g|Yn4#5UzFi0o^#83v1dM*PMB#;rF4Km zR6(qF0^}r+Xy&+5KyoQV$&~pjDk0W~>Xgw4v8N+~X+$JK1PR5HCClJ~m%xpFAgCx7dZ_x)}OBfJ68plc{N<~jj7Mo){3QN_YI(N#nUR9GaHm1Y3pWX-yYQpQ6y$)_19Q>p?_4rU*|YXsV=F-#vd<$2;^EWBwOykk<(>tJt8op$&^|nao1(>VvP$b zudRhrvmA3g8k0O4q7q`gt>)3Nh!>jiitG{-$XwDuGHEDM78t6{&@f}(HtD*3D6FLZ z^|y0?Bzc)cfCyKQWU;L_6N}vt7xx&lnlqxgL*RpyvXETLm}JVhAs&vTvdeho?FSov z9a*$ZSF+R-)fqgsn1#f|T`Z$Dp}*Zo2!)1ahPX?L zw{JGFVX2u(UV?_BKGI<+6U@zkF*O6;L{o7J^-ORXYFr{Fg{?=$LiFt|Tlg3rR#mF_P_@^J&B&>?T`gpU?VtZA$U~TBx5Q8n2mXH%tkP=dxXd=w6{tN{yGVseB z8Hkh=Gb#8OOmOH-u(mLNa#|acIU7xcJ@Aa0zJR;BA_=0L0Z+-Gj3&b3X+}vujNVr{ zWV65o(O?b_OyUs_fL(3Rcdc77KH?6?qMgP;-}AviX}>W!l5A2WdGkERgJ+yMT3|kt z36Btamqx2-VDuvF9F^uvuK&`s<8wTF)S zin>6Aq~|lSYH*+*jJ1XYR(b}d1TB{^I8B&tbVv`BdDffTOL(~%Jn(dmtVB1LF;gd| z8=cbA22-snWlguAPj~w{rz&}>D!bz$y#YxM7(y`CfoP`Mk51VSWY|x8+F*VBz|kSN zPkyF}b0U+cBC{KvQS%lnjjF?$y#?l*Y4aZJp{Xm=jgF)_ zs4XZxBU#a=itv!$B=N*Ppa4+enH|nCG){)|^Ef`Z+S&E(dga8PUQQ@C8lvfFs2d%6 qBVS8MdV*Fh@Jc-@pp)pxp{DV)+YHvnXuMdn*8K;Tv46f6Gynh(iYZk9 diff --git a/examples/data/fraud_dump/account_e268443e43d93dab7ebef303bbe9642f.structure.json b/examples/data/fraud_dump/account_e268443e43d93dab7ebef303bbe9642f.structure.json deleted file mode 100644 index 845b982..0000000 --- a/examples/data/fraud_dump/account_e268443e43d93dab7ebef303bbe9642f.structure.json +++ /dev/null @@ -1 +0,0 @@ -{"indexes":[{"id":"62842606","type":"persistent","name":"idx_1661656393880436736","fields":["branch_id"],"unique":false,"sparse":false,"deduplicate":false}],"parameters":{"allowUserKeys":true,"cacheEnabled":false,"cid":"63906","deleted":false,"globallyUniqueId":"c6251100/","id":"63906","isSmart":false,"isSystem":false,"keyOptions":{"allowUserKeys":true,"type":"traditional","lastValue":10000044},"minReplicationFactor":1,"name":"account","numberOfShards":1,"planId":"6251100","replicationFactor":3,"shardKeys":["_key"],"shards":{"s6251101":["PRMR-drkxnewt","PRMR-mefeyznw","PRMR-9tthmtzr"]},"status":3,"type":2,"version":8,"waitForSync":false,"writeConcern":1}} \ No newline at end of file diff --git a/examples/data/fraud_dump/bank_bd5af1f610a12434c9128e4a399cef8a.data.json.gz b/examples/data/fraud_dump/bank_bd5af1f610a12434c9128e4a399cef8a.data.json.gz deleted file mode 100644 index ba4383e81ad3d6b1fae594fb30bd21b9abfe9e3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 183 zcmV;o07(BIiwFP!000006RTD#sVqoUvNAF@Fwjv-Ni0cJvZ_{!&rYpWvQjcMHL)-< zGEve|iqA{|@{Fw_BS0&B+<%}dM$ zTCL;+WGndRr2=(3=a=S{6oKpx4OXhH<*Fv^JTq+0GsAG6x2~=uhVzWEI?ou3^FlI; lQpt3nDK-b1Vsjv7_!(h!pb<6)mgi$}9su6=l91m4004TxP)Gm( diff --git a/examples/data/fraud_dump/bank_bd5af1f610a12434c9128e4a399cef8a.structure.json b/examples/data/fraud_dump/bank_bd5af1f610a12434c9128e4a399cef8a.structure.json deleted file mode 100644 index 7096615..0000000 --- a/examples/data/fraud_dump/bank_bd5af1f610a12434c9128e4a399cef8a.structure.json +++ /dev/null @@ -1 +0,0 @@ -{"indexes":[],"parameters":{"allowUserKeys":true,"cacheEnabled":false,"cid":"63909","deleted":false,"globallyUniqueId":"c6251102/","id":"63909","isSmart":false,"isSystem":false,"keyOptions":{"allowUserKeys":true,"type":"traditional","lastValue":1548226},"minReplicationFactor":1,"name":"bank","numberOfShards":1,"planId":"6251102","replicationFactor":3,"shardKeys":["_key"],"shards":{"s6251103":["PRMR-drkxnewt","PRMR-mefeyznw","PRMR-9tthmtzr"]},"status":3,"type":2,"version":8,"waitForSync":false,"writeConcern":1}} \ No newline at end of file diff --git a/examples/data/fraud_dump/branch_9603a224b40d7b67210b78f2e390d00f.data.json.gz b/examples/data/fraud_dump/branch_9603a224b40d7b67210b78f2e390d00f.data.json.gz deleted file mode 100644 index 601e87bd0e651f29b8c702daca025df5b5c54732..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 465 zcmV;?0WSU@iwFP!000006Rnj^Z-PJ&hVT6qWY3uH@*&_2t!<5MY-5|ICxf!7M%--y zwZ{10yQo1dgPkUDn_-8^^S(3emZY0cPFjXZsZPQm4M=NCMsvO)Ey8TeH5es28O=f! zkK;g0rq_jZ%vUNudS|2CZ~oS3JgQ`8mS)BNGD&A5i{(Tkv$RWnILK!RyQ*;=zgdK_;3nK6u2FYHY8F?Hvuo{K>ov zOI_$(p7DDbMVqyhq1KL8A<}dkHr<9K==@Ux6DL7=*3HUUuU`NU7Qll9=;No}!A*VH ze&>Syb#1x}GrJIT@1LeOai*8oy;-^L^_%X%0yvNWclZm<#$9M-cDs@td7=FPqdGIn HvIzhHp(5d! diff --git a/examples/data/fraud_dump/branch_9603a224b40d7b67210b78f2e390d00f.structure.json b/examples/data/fraud_dump/branch_9603a224b40d7b67210b78f2e390d00f.structure.json deleted file mode 100644 index e843f8a..0000000 --- a/examples/data/fraud_dump/branch_9603a224b40d7b67210b78f2e390d00f.structure.json +++ /dev/null @@ -1 +0,0 @@ -{"indexes":[],"parameters":{"allowUserKeys":true,"cacheEnabled":false,"cid":"63912","deleted":false,"globallyUniqueId":"c6251104/","id":"63912","isSmart":false,"isSystem":false,"keyOptions":{"allowUserKeys":true,"type":"traditional","lastValue":1548212},"minReplicationFactor":1,"name":"branch","numberOfShards":1,"planId":"6251104","replicationFactor":3,"shardKeys":["_key"],"shards":{"s6251105":["PRMR-drkxnewt","PRMR-mefeyznw","PRMR-9tthmtzr"]},"status":3,"type":2,"version":8,"waitForSync":false,"writeConcern":1}} \ No newline at end of file diff --git a/examples/data/fraud_dump/customer_91ec1f9324753048c0096d036a694f86.data.json.gz b/examples/data/fraud_dump/customer_91ec1f9324753048c0096d036a694f86.data.json.gz deleted file mode 100644 index 29c9e9c73e3a6de0753eae65c881ae754fb02a6a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 794 zcmV+#1Lgc5iwFP!000006OGneZ__Xo0N{6iMU>|ij_-Eg=wO-#Ez=4U;-&H$i-xAj zl)8*E?Z0y}gxV52b6!%#QtB_~;`5mM{k_Y_lmVROh4nTcKjw?I+vnq)!1E>ZvwTq& z_+Yu)`ex(WH^(cj`-w{nJAL@@MYz%E79Y;+249*_?W!n$mf5Un*0!>^uxwpX`o+?= z#iHJA?p&LX|Gn%ipKt5#Zz&sbF_KDm@1MJ0`0N6IwYFa8V|WdO2~H_j09=DKMm#;e zdVCo|SPb%a<$uW61LWHIwy9lJ*=*95xQ!tRVSNdNCBThT)G!4Uq%b^HBBBxzl6*Uo z*j?3R6I&OqwcBBb7;;Qc9Fj6liJ?X*DWw*P5Kz(FQX$CQ0dix1WH)wWmn*d3MuwA1 z^(iVwksP=X9YP4hQbPjKkU&pTjz)`v?4ZLsQv7>`)u8Cq=NW}zAtZ))Fkf7n?>Cw@he@(Gn?}zImz=)n4 z#26}=!ad`S(!@~cXee}uF*`73O>48uovptQheG!aIx>&o&N&sJ86Fo@f=)EhsDXwI z*T;iZyU(U}I0``f0vbssO|Y36$|**Gr;Z^&q5u*C+#H{Is~Q2Vf3Y)>K7vG2i5bvb z0QMxxnNB_{q6!jJd_EZqvBhFVJPeN?B!Gz3gFpqLT`6b`1W%qnqRB*p$#i>K*V&}0 zeDi`LkWVoM?wfK$7}rJ<=~KPmG`sCdc0ccx5d4@7uan`3 Y8lhA--+{uhwfn?>0QyOq6bTIg0MB)H8~^|S diff --git a/examples/data/fraud_dump/customer_91ec1f9324753048c0096d036a694f86.structure.json b/examples/data/fraud_dump/customer_91ec1f9324753048c0096d036a694f86.structure.json deleted file mode 100644 index a9750ca..0000000 --- a/examples/data/fraud_dump/customer_91ec1f9324753048c0096d036a694f86.structure.json +++ /dev/null @@ -1 +0,0 @@ -{"indexes":[{"id":"48122621","type":"persistent","name":"idx_1653203216113860608","fields":["Ssn"],"unique":false,"sparse":false,"deduplicate":false}],"parameters":{"allowUserKeys":true,"cacheEnabled":false,"cid":"63918","deleted":false,"globallyUniqueId":"c6251108/","id":"63918","isSmart":false,"isSystem":false,"keyOptions":{"allowUserKeys":true,"type":"traditional","lastValue":10000016},"minReplicationFactor":1,"name":"customer","numberOfShards":1,"planId":"6251108","replicationFactor":3,"shardKeys":["_key"],"shards":{"s6251109":["PRMR-drkxnewt","PRMR-mefeyznw","PRMR-9tthmtzr"]},"status":3,"type":2,"version":8,"waitForSync":false,"writeConcern":1}} \ No newline at end of file diff --git a/examples/data/fraud_dump/dump.json b/examples/data/fraud_dump/dump.json deleted file mode 100644 index 34d27a7..0000000 --- a/examples/data/fraud_dump/dump.json +++ /dev/null @@ -1 +0,0 @@ -{"database":"fraud-detection","lastTickAtDumpStart":"63082802","properties":{"id":"63861","name":"fraud-detection","isSystem":true}} \ No newline at end of file diff --git a/examples/data/fraud_dump/transaction_f4d5b76a2418eba4baeabc1ed9142b54.data.json.gz b/examples/data/fraud_dump/transaction_f4d5b76a2418eba4baeabc1ed9142b54.data.json.gz deleted file mode 100644 index e2c2d28be0700b981858aa489d9d3ce5d2b13a4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2292 zcmV@x4sDQdMxshoO$zRxZf7ro4?kJRw^MLEk3Tct3~^5vHZNg zS+olf;YT(7r&dxxQ`yP_w8}0XEtcmW{a#zRF@;xk{{`={1RXy{+e0%$)%YFunCr{t{2b=ZT`uyv9v;1v! z`MDcl|F635d9=7*Uw$MXb~9OS&o9Ei8-_fZ-g0%ZU9^n|P>p}>VG9<+WEbDR|M2ZF zt{~!!v*f^Md{tRPY+=&4gvK?p>e^8=g-&I%~H1u5Oyoj_yR z-I{pVIOG&qNwU~}vYE)LxcQXZlYQMvHa(y%@brM%ugWF3+N!GN@vm{nlcfiNDRn<} zw<6v*`-9tR$L(0g1mCebpKa|r+#UZCWRsy|a!(S|+-WY)#Do%UGbe zYAO`qO3}~r;2MWKK`034#x!^^9X&(O6v0Le+&xp<=l{Gp`AmssNZ-4usR{rbzx135 zo(xbbp+H5Kqu0KSUO8gz4e3w&x#qc3jeDihGj!>RQ)1NJrN4f?e0I7!9Sae4CrbJQ z!Ky->3GPnIw2R;8;wiW)Bx^<$k~wQ1iNYXDx*<0={yTv~mNUV*HK}B#+}a1K=W{t! zz%y(*XXz)Kn_)+ogp21<1|QDJZHxt;V^g>a6xV4=8pw{t)i$k3X5G!TG!?v!=Au;` zv0^L=Q^C{`$P?t@vh5m&JYA(|(9Iww=f;N}4H=3MVo@duNmLU0d#>2p4LMC#Ea_mo zxn{-I8Wb5@<1?IsQn5(iOIEgjZhj@BD-@n6J(fz?2tZpDo~Tr`k~3y15-+$s(1}t* zCAClJpeLWijyPhY#ee*S{ze-g#yyzhD>e0|J(u2LR;XtQn_`X z9Ny0XXWFrjpezrzV>u z6hf6EyPGXLR74|&YYfY{a?4qJ#&3tv*R%#N!yGaw%n(xDRnFC&8Am)_^)*H!sACbt zMnpEf)~`(2Vn`P%b!EFHbHPsPQT3OUvqDhRE5J$=b-# z+D+Agoj*%tPZ#s<4kx@~y&!dR4bk>VYB)A+2kcMRt);22g|P}hb!&e6mu z;`0=HpkBb3;H3KiOPlqpB7QRuI^TX(iV_#+l&AQc4_BXy5 zu0O4VsMg(Q;Cpiz6Py+pif^Gh-1R&@76`S-I;Qnm<@;DQG=(NT5s(-!!SC7Vba zOp~9l-aV-&5b<1t7}})*OuzxlnczE?@&$ml=T6i5jIja~S*00ZRsMA-Wrql}-+$05 zw(Ln;;5(Mmjdh~I1s^-pj*UZ}PA(c8W^;R2MDc}s&IFeyqlBiY{G?eXKn2<^je6kFHb<&c)|u`TnTgxU?{wGIKI}QqHTeq~w8cZT<9(R~S43dNFKE= None: print("Database: " + con["dbName"]) print("----------------------------------------") + class NoTimeoutHTTPClient(DefaultHTTPClient): # type: ignore + REQUEST_TIMEOUT = None + global db - db = ArangoClient(hosts=con["url"]).db( + db = ArangoClient(hosts=con["url"], http_client=NoTimeoutHTTPClient()).db( con["dbName"], con["username"], con["password"], verify=True ) global adbdgl_adapter adbdgl_adapter = ADBDGL_Adapter(db, logging_lvl=logging.DEBUG) - if db.has_graph("fraud-detection") is False: - arango_restore(con, "examples/data/fraud_dump") - db.create_graph( - "fraud-detection", - edge_definitions=[ - { - "edge_collection": "accountHolder", - "from_vertex_collections": ["customer"], - "to_vertex_collections": ["account"], - }, - { - "edge_collection": "transaction", - "from_vertex_collections": ["account"], - "to_vertex_collections": ["account"], - }, - ], - ) - def arango_restore(con: Json, path_to_data: str) -> None: - restore_prefix = "./assets/" if os.getenv("GITHUB_ACTIONS") else "" + restore_prefix = "./tools/" if os.getenv("GITHUB_ACTIONS") else "" protocol = "http+ssl://" if "https://" in con["url"] else "tcp://" url = protocol + con["url"].partition("://")[-1] subprocess.check_call( - f'chmod -R 755 ./assets/arangorestore && {restore_prefix}arangorestore \ + f'chmod -R 755 ./tools/arangorestore && {restore_prefix}arangorestore \ -c none --server.endpoint {url} --server.database {con["dbName"]} \ --server.username {con["username"]} \ --server.password "{con["password"]}" \ @@ -89,17 +77,17 @@ def get_karate_graph() -> DGLGraph: def get_lollipop_graph() -> DGLGraph: dgl_g = remove_self_loop(MiniGCDataset(8, 7, 8)[3][0]) - dgl_g.ndata["random_ndata"] = tensor( + dgl_g.ndata["node_features"] = tensor( [[i, i, i] for i in range(0, dgl_g.num_nodes())] ) - dgl_g.edata["random_edata"] = rand(dgl_g.num_edges()) + dgl_g.edata["edge_features"] = rand(dgl_g.num_edges()) return dgl_g def get_hypercube_graph() -> DGLGraph: dgl_g = remove_self_loop(MiniGCDataset(8, 8, 9)[4][0]) - dgl_g.ndata["random_ndata"] = rand(dgl_g.num_nodes()) - dgl_g.edata["random_edata"] = tensor( + dgl_g.ndata["node_features"] = rand(dgl_g.num_nodes()) + dgl_g.edata["edge_features"] = tensor( [[[i], [i], [i]] for i in range(0, dgl_g.num_edges())] ) return dgl_g @@ -107,12 +95,32 @@ def get_hypercube_graph() -> DGLGraph: def get_clique_graph() -> DGLGraph: dgl_g = remove_self_loop(MiniGCDataset(8, 6, 7)[6][0]) - dgl_g.ndata["random_ndata"] = ones(dgl_g.num_nodes()) - dgl_g.edata["random_edata"] = zeros(dgl_g.num_edges()) + dgl_g.ndata["node_features"] = ones(dgl_g.num_nodes()) + dgl_g.edata["edge_features"] = zeros(dgl_g.num_edges()) + return dgl_g + + +def get_fake_hetero_dataset() -> DGLHeteroGraph: + data_dict = { + ("v0", "e0", "v0"): (tensor([0, 1, 2, 3, 4, 5]), tensor([5, 4, 3, 2, 1, 0])), + ("v0", "e0", "v1"): (tensor([0, 1, 2, 3, 4, 5]), tensor([0, 5, 1, 4, 2, 3])), + ("v0", "e0", "v2"): (tensor([0, 1, 2, 3, 4, 5]), tensor([1, 1, 1, 5, 5, 5])), + ("v1", "e0", "v1"): (tensor([0, 1, 2, 3, 4, 5]), tensor([3, 3, 3, 3, 3, 3])), + ("v1", "e0", "v2"): (tensor([0, 1, 2, 3, 4, 5]), tensor([0, 1, 2, 3, 4, 5])), + ("v2", "e0", "v2"): (tensor([0, 1, 2, 3, 4, 5]), tensor([5, 4, 3, 2, 1, 0])), + } + + dgl_g: DGLHeteroGraph = heterograph(data_dict) + dgl_g.nodes["v0"].data["features"] = rand(6) + dgl_g.nodes["v0"].data["label"] = tensor([1, 3, 2, 1, 3, 2]) + dgl_g.nodes["v1"].data["features"] = rand(6, 1) + dgl_g.nodes["v2"].data["features"] = rand(6, 2) + dgl_g.edata["features"] = {("v0", "e0", "v0"): rand(6, 3)} + return dgl_g -def get_social_graph() -> DGLGraph: +def get_social_graph() -> DGLHeteroGraph: dgl_g = heterograph( { ("user", "follows", "user"): (tensor([0, 1]), tensor([1, 2])), @@ -121,7 +129,40 @@ def get_social_graph() -> DGLGraph: } ) - dgl_g.nodes["user"].data["age"] = tensor([21, 16, 38, 64]) - dgl_g.edges["plays"].data["hours_played"] = tensor([3, 5]) + dgl_g.nodes["user"].data["node_features"] = tensor( + [[21, 0], [16, 1], [38, 0], [64, 0]] + ) + dgl_g.edges["plays"].data["edge_features"] = tensor([3, 5]) return dgl_g + + +# For DGL to ArangoDB testing purposes +def udf_users_features_tensor_to_df(t: Tensor) -> DataFrame: + df = DataFrame(columns=["age", "gender"]) + df[["age", "gender"]] = t.tolist() + df["gender"] = df["gender"].map({0: "Male", 1: "Female"}) + return df + + +# For ArangoDB to DGL testing purposes +def udf_node_features_df_to_tensor(df: DataFrame) -> Tensor: + return tensor(df["node_features"].to_list()) + + +# For ArangoDB to DGL testing purposes +def udf_key_df_to_tensor(key: str) -> Callable[[DataFrame], Tensor]: + def f(df: DataFrame) -> Tensor: + return tensor(df[key].to_list()) + + return f + + +class Custom_ADBDGL_Controller(ADBDGL_Controller): + def _prepare_dgl_node(self, dgl_node: Json, node_type: str) -> Json: + dgl_node["foo"] = "bar" + return dgl_node + + def _prepare_dgl_edge(self, dgl_edge: Json, edge_type: DGLCanonicalEType) -> Json: + dgl_edge["bar"] = "foo" + return dgl_edge diff --git a/tests/data/adb/imdb_dump/ENCRYPTION b/tests/data/adb/imdb_dump/ENCRYPTION new file mode 100644 index 0000000..c86c3f3 --- /dev/null +++ b/tests/data/adb/imdb_dump/ENCRYPTION @@ -0,0 +1 @@ +none \ No newline at end of file diff --git a/tests/data/adb/imdb_dump/Movies.structure.json b/tests/data/adb/imdb_dump/Movies.structure.json new file mode 100644 index 0000000..eb9d80c --- /dev/null +++ b/tests/data/adb/imdb_dump/Movies.structure.json @@ -0,0 +1 @@ +{"allInSync":true,"indexes":[],"isReady":true,"parameters":{"cacheEnabled":false,"deleted":false,"distributeShardsLike":"_graphs","globallyUniqueId":"c2730595280/","id":"2730595280","isDisjoint":false,"isSmart":false,"isSmartChild":false,"isSystem":false,"keyOptions":{"allowUserKeys":true,"type":"traditional"},"minReplicationFactor":1,"name":"Movies","numberOfShards":1,"planId":"2730595280","replicationFactor":3,"schema":null,"shardKeys":["_key"],"shardingStrategy":"hash","shards":{"s2730595281":["PRMR-1vqwuhks","PRMR-bvgkeorm","PRMR-zpamyasv"]},"status":3,"type":2,"waitForSync":false,"writeConcern":1},"planVersion":10402} \ No newline at end of file diff --git a/tests/data/adb/imdb_dump/Movies_80662e1f485e79d07ef4973f6b1b9f88.data.json.gz b/tests/data/adb/imdb_dump/Movies_80662e1f485e79d07ef4973f6b1b9f88.data.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..b838d29e4cbc9feb64febad77857c37d758274c7 GIT binary patch literal 68107 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⪒9$wc<1+`fl_8d{ZWW~QFnV+F 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

KTepruk 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

gZrUZzE| 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

& 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�l z@`Cya-*_0uGuH7iUg^$AB2^iIfLIJ9vJ+qv%OL9DSnJ?g7w-pu{zt`b$PtE(kaq2NN!DdX-1}Kto zcqLi=!8T`*%_Q|j+C38sg9Nn|K9zQo*y0HM@kle}sq{efHI{Z^U?~@^%5-pzPBvLD z9M2BCyDgGuMNW(+SMR0NL4|%sGE(220EGf^>y><>Ej=cSfw#5+5MF6}| zrDoqf;dn{>aBM;O_6>0UGQw+%w@-`=rtYa1&Zu$p5o(yE47fo8abmFjj=jO-JG$CD zNN-mKAkE;FzzXlo$^Uq|BhXI1vkwnT_M94+a8QV1{;M#q82aRx=2Gh)YRYtxCW6s} z+rnODJTR>kH8{K)dI2Ej#28Z;JRL!|r#v$Gp3FSA^%Out@ZO#uWPQFlRiL-VvHfh6 zqfx{OD?5`3kZ`ee@o#~}%*vqqU>zC{i0puCmxIkd zknMa}h%FzHdSPq~HezM8L1kF-cNC|ul;gwdRAoEkqqhvf^FxCb6PIs(1XM%U-{k8g z3W|?m|3jC9I%`i+l!_bijmn~%DWvtM`6pqLprqkn6JL34&Spk?Oo;_1j5p6HTiwqf zl^-#sOms`8%G?NygtRK@m+bUH8^4tV4-ijB=)xhGZX#v?`uJ~4B3Fa0+IrSRvw(NVLCtg ziyYqmerVh#8rMJ1xPZ*rmn#tBKidyW+dXSk0YMxtvXC9$;QV&{xAZ}SLZ{>}H^7?! zg%MJp|f^KO`m- zzEaj;MzXDMVZh5*2`L`kN`bt&uYX|7_d=A|Cy*RQ>ks{VfBn;$M@?Gzrg@s=Y*8hS z`iFrN-RqVgWQI-ae)j9%QM{VoD%`QK5hkuIi~`T-&C8#eN-zok03wT+37ae6)m69d zEH*e35Wu8*%0~D{Kt=~DYqpC!80cjN6@6_ zf*v+=wfIYR>D_G!Azb2%I;)25!mO3LxnA<;`jm|Ei4xjs>dizTJW`6#+gzK2hLbX0_BY%-@$obAwN( z(ZFq+4ig5Pd=Laq-+4qurD@#EU$nP*UoawXq7H@D;QHkoykg_yZvjN+*X2iCe~i!-5x(70yFTvz5UyYdzVU zP!&piF9zh$hCJxFcxB>u{`DY^fu_dgVxFFJw?TcwhoAwk^!wJ%d=T%RL&W?ccre7M z#FcP94zrQR{_ZS0w7WkkmPgdz7zvozaMCt&rG$__$Mgaeg!JPT zU`u;Ov;DP?+xU~)Qv}G<4XtcG#r1c0fw9%#_XoYEdoSJ5VLwhvxYIX1Mj;GJqOl|sHC`zx%~=XZ#}+&!BrZ)ys2{q&|Xg*okU_spjg0hm!_ z;A@EcTwtz_R!!>(`2uvrvw(#9c*hL&tlhKwtKiGr%L2n;0A6vWJ$RPRq9sWOvy4L%b(#2+|U^#ceIL^ zn@Ncqdu-HSHN67m-nB4vgN3`7YVLFOp>MHvvmwFLslr_Q(`t)Nu+e`tFZD0^UEohPD zscKcm@NjQZNniVWc_5 z$0yhAkA@3 zbZ|!5q=c?X9TlICb<^um;(hk_OJ$zo2w`%g8+Mb}4Pzh>%0ZL@iTF)cgtc%9~a z%T=__M|rpaDKLcQ8||1w`i&=+Zs{%;c6tF~Ry)J3GzVW9Ls^HIVe(r{7vxw@jB?q& zn04pNbRR1#Q|ufF3!+9Qx6ZWSmpM>p^f*m&JJW>-PVlzOjT^cwQ%~F(L!c|!7SQAhOWyQj36-UAmT}W z0dHXB>)HlKqn?IoER^_+eE~)-I*_P+t*lZ+P~-^yuM*Di{kH*7=JnDDeVXus5VlkfU$ z*h%=31zrYTgy~#nB?rX*K}lIpM7to>!2Sq^U>Jxi?KFNX;eOkxV`dpAN{FrdOcDXR zr2IBKzTrt}MX_^+3dkIfU-3hU0`Q*=9WgUNSw%G=?hT8??XC1Bai}KbpcE@E^hEO+ zrDEL5Uo*`np{1XOKY(3ZaIGo+Cj0e-D^dyCYmPTPx$Jz}b#XdHw!^X+0M&TwGJN=b zN->*hKzZCmdbSZb{7o!26ne`q-G7C~VR8jZyvwe}RrT-oz-WCY8GVBEN4HBoQxQ!V zn_cLxx^td2c`^Nfa8?(gZb(J1-c_!Lcl-#hHN;1qITh`(IzQ(+agcw+e~(Rt>1U~! z4+OsnAwIA`_KPLA$<Q z?UO&(;-BL*>UlmZ^s%u>oM&HDbB**d6m&;$Qz2F7P=}8cf-ac;FMpF;)8(Xa(eN7cuvQxiyK7Yd`vjULR+*o#^ z{@W`7gD-6kbM0%F+`tyrZ~prM&o4v^JN+XrCLNo|9xDTVmrVR z!sCHE5f(-eP*z7_U_US4=)`KPsc+(lLvifOYKL19?KIz3?{WCIv*+x`K!7@+aqg3UHunjzb0gp$1>CHJNU?Ug>rk$PCz?;5$9-(An4#+_@W_8#-~7;YZCP1SlHU7r{wj~GR%L<(!Hha8SLJ@w!kbz)@5}?K8Zd5Y=xu0p))Qseh9L|MU1N<8~kz6W9=f3nO z%%%Zna+IIG{{BQMpwj}wzgDq#=dvd;T)&@;)o3Wu7i@ZPq9?1C}}ey-c4aV{_j}#h@jEAT zeVn3dcVI}}^FQ36*^p4bg5bDNX)Q>r8@_Kp6xhMf%7vm2WFOy(yimSix2!I&K(;hR zk7!&U={|7#zxw+kbwHZ=yT07h4xJ@Hl9a(6`%@_hC)1x&C7YMJpT=+W zr<@&+^OFRxP=|EKb~OEhUlX0@2zt|yW8yPkUbptea~cdm2wt(G^S;+vMby{n~ePCy!>reogdAySQ)gUwf9${L4`eazkq-ODi9M!CKO#bXu z=5KB~>5X*3S;8WqYp=i%Z@H3wM_0YD&cE&F?t+n+*@to;Thx8CblIwcK>48in5L)T zceNPg^M~<+a<&cT5VIFKxV?%+!=J9da=MqSnWjVGCQeLJQz z;TM~ihN9mRZeC*tU2`N^z7l_{rcTH=Whr5dPoaTc-Wp~ra)2uDep$geouqx}UcaE+ zyN_`e%lt_=yE|2Z1+EN3(v za;D*%U@se+!tEeNbQ8Y$xbwVzpGx-08J+rZ1lU@s)5%ztd zdP;`&DDIy#v_#feFo{wNi~lj(C4ar-$-~lI7CN^DUs%9Q z6QgH$y}qAnJ^~j83N7`PPb3qwv>Z`YqtkwC_+p>fif+JAyRQnD=1wIyv$+k|fW0XF zq~FzOlA3r%@0fPshr>G*-L^=9a`ZYDCE=G~yHQfjPSXxngsXmKg?kP(2QiHU`#0~* zwC&=J)E)m7R+J+8e;6wX&v5fJyIPI@}lVUTgIjkUs zs&|n);c~a2K=h%guQ=-@w)$n4&&TJuxiYdAW;JK%y$?-kpNOJ{+v6tNqv@OPuQkm* zm7Ke$X~lgxt4^NPT<0FEgFus(o5Qoar4_{jAoy_7m#mN~-q&~D4E%We3heEGAeDF) zXK(EOD1-AMmJf>E+x3tFyqY)EoHUH6ev zi|dZY?NAXb5}uk6^Q7fIsqa@Ux{Sd|l>pE|g|L+8ZMEgX5h7eT&>}eqSABmtVa+hG zY=&Kjb;pf09bVQkPt$D5DCnX4R@6?)!1sFXkk`d3AQ($7IBn=TbqXFT}T zpt6+Z;g+4^dH=b-9p70r;9nBsLH6I}2HEy*Nb){yd&S5q#@Y`;E)Wwy3IjZs9_>G# z-!l{Dn}gQkW6AO4N?0O-mkq^lO}ekzKwEGt6{fl68Qs1n1ge=}&`^C<>l7435L8Ct zCE|wtrv;18J4{;X0@}k653b!HVj6Vpd*C;ix2d19gK(B+SU@UnsBuCAJiQyYm_z)# zH`Dqr7TrXlhx^|)xXQ%68vDhT|4EGhK?(@M5MTH==ieMCs|GORQ$|!?jz(CH$1A2k zo>_iH-h6llpgRC~b6&;Ttn4NFO+iw{ijUPq*TuH8A@)O%hM#BS;G^(r)-pxhf^R_> zz~zqpx9zpzQYyfEhsglf?ZUn=p<#)h4dav*6Q&1AX}(RO4twY%jNj+QK>K`)^mQTc znHZ8~Vo}^e(GDx}2(swhFius{)SY-1?_+C2hoL9)_jyO$iz?gpsykqc8N-mJ$1WH? zM0p;jSmv&b)AQ87dt6uk+UPR=!$&!Xds85T(0v>32>Hk97r^s&HPzr|NSU40RWp9( zL2__SLlB~U>@+P`3EiSk^!E7Es<+&$-)*_>Ri1ij3(#uUXY zm2karrV_yfqP8`It0UEWf@9qf9$(MSh7@{r;3ra#7ed2z^Qm}W8%JMs%Z+5+wwzRu zr8TN*;CoQR8)@&mAHj=;1RuEFHNk5g6geR18Bd3oR{W~Xtw3oMfhH-Sa&}Vi@%;7* zCw+xg;?O*oM06{YogfBe`h4$K$^NUZHsEfWm<%FqzZ>8x_gLJpT&6wJujU3;jTSb? zFWGw1Tz^+?!*rJ189-h1F!X%>Lrn=q(7u`PI|aJisbb}#*k~qLvNwLtoVd5mGI#9D zow3d?lzgVvAzM1-@oHW4=wiFDi0))xPMpZFl8kN|3tqg>=VDy~9pT+l@{WK0?-xXyIR=c0F^}GwE?BZ&&Z{La|t4{z?BT z&sg1>?fDT9s`pyHZS-S*0g45@d^k2gOuYifuM#Rp@s%(lWfRHk4e*@EY zR1uN0!sj;=Yy`I1Re0fL!T-tdX%Q|nnyrxe$+5J#5`mWt&IS;ct7PSvRxh4(S}bHf zvX$eXNXYe$nR;l>pAE+W$r86&FoAA_(2NL)OzeAYL(Bpr8dJoUK)jzt@wX^XD^t8= ze`#@%XWw4d`t9nbx49}UKEmLQ_0QCY!ljx({FxgmOHnQ zJWnzF(-%VqQP?I=fO%(eK>j3Uv>E2&n((0ZOM5zi*0)7ZPq@%|3E+AG@hF-fL@W~O z@chkM73Rv4-s;-2VE5fd^VfFcyoK@Lt1kWawEhKgOVo`HRr;bXq>w;mNXDwjvg`Dr z0N&ynCBYAjs1#fBC!v|GrTAg6rvq`(>Azx{vZU{feMz_)#{qg3KLlK!a(iM>0U`8L zO3!?vzktvbw@4tj0+??jk!#d_o)z0~F`WWdxE3)|#SFz|dwc7&S!hfwsYUmPqgWI% zBBK<(6Ua4&81_Zma*%d!|mUh>m#pMa%_fi4qE4z0A zwD#4RvpXhM!v8x_>eZ4hA9-)%v1TK6wg+aqfLcJpDYuz@kARJoX^M{adsxJ^bgCtB zyd63T2TPN=--5M%+dt-qi-D&(_z;!huoS#=I2q^hEK23M81T~Uh}f2pR)}D#-|Tp@ zxax2z(x1HW^ZeXuxqk^RWh_(qr(YoV?Y{eWddEF_xA|X-@v>W7?4o!F%BqP~)1#K# z?9YA2rsU_(F;pV{)@;-ZsQFVZ_4JyOS9hHAwk(3$8D$$~C9m(j|B&}iw=LDLN)=1O z1!KSa9I@V z3OhB<#QS4&gZ&IiXAi!~Hpzd#3@dOy`hyiSs!=^=GyG{3q2Og<*#cp%QyaC;#^0ow zYHUL=R0{qthnL&Ozxu`OUupI&xiXf&KleN zs?s%=#5s4YVqEaocmwe3)g*OkQPbm1*x@s`Tvak3HUD$-!{8lKlOaq5hM|z8mpNoTbwh zpa(ig_&!FKiI3H$1yGY(i$%}lbw<=%1pjr}Dcp}Y@rxV$ILQ@2cr}ac0quR-y3pCa zrp-z!5I=+Q=8ocLifQI0a_aA{ZhcuD+SOa;cpV&4lA4??f-mvwA-1;5Y>X@&u0%_Z zTCc3scbI!u39~Wp6x!oPKw@}ol^)`5|JlCB>UAA%^f=N23HsJM1Ub<#((<;-C;cQl zEI}a7E0n*TsT9BqP>>38$UUGPSR;p1egslIc_k}rAEDXCpL~@ zVDBRiAC<>-MT~{>$Gdih^2zU$2Gq?z1vHi0=V7RxV!sG?{i=^?+_eq+kN?iMd4M0r zkD<9H*==os|E5?4jX{ABX+Y2%s_vHTC%WSsYZh!9cw{tJ=wM0sUOYaJ#hd!LD$qX7z6niP2d2s*8v*|Juz;-{E{# zZzUroy#D^=RvCCoIl5-|ue?Dm#qs0yPcn9zQh(h1*Ia>giQ7Yk%2|DSES9Ah7LDX&nfa z_jvQ;W!$L;2fflSNSx~9{RB{cG4H3oCH@uFuV@-(L;^^eIKunocSAvBXw6f43wCae z1aI8OkAjmc;a)=Sdcn2f&pTi4Vc2~9QzHv)6+vbFvNWg$?|7wmBU_efWaa&WiUOol z>ODKZ)%{1p(SXB)x{nTV{KC|_e=_y#RWWCm!U|4bP>bOq&ceR(g}t)9I`I>2S-Jfe zcw|ok^X!!Qmv^Rb`+bxK5$zEVC1C7ybVkd=SjoTi+`^=^hl64lB;*LUkhZ#9!r74r|LtR z9t5iSijyztjr=aymDV}(1*{^Pe#5*^d-mQL3^?*{;C_bdfzM2R$M^AxnPhqp66b^g zSYDFEipS|K&K>Q2Xup^A`|+;y&7Wgeqzis!V z%a8U8qB5Ode)21!@tKgGtKPE28xTI89&VHLb1TtXol{go?pQ~~{_$4W`^z6)n(WLH zh-E74v$jEhUz$ql|Kn}BXLTzzjbLKb*VJow{wy{@{=o z0zhO5$i7CC)spsr-%Dt|p_TRbnO6a%5|EVlp0ai<>)*cHIot~CR%^f&R`r-;Bxh}_ zHg@~pD(4sO$?2j0WDh|TIEY}ZkbG`h(apw@w`CgiOFMTX%S6>Z9kY;;BB*(>wV3)~4%UgWom1t)LeK zr^5@8YPgo=nFbg1u&q~-kN$!C%%tX1i7W=wz3}M3& zFevtEKKK`@;>+RPA2S^s6u+~(WtV2&T#o5IKF8f==p;{Eva+sGYu$`}0O@^>r##>9 z)d=qM)FU{MBW;?@IQUnr_tJ0 zQy0I>Z=AgtAs_`s70)`Be@VVNuQBH$1}99<@<^aL?Xk%f@0Qhrw9c^AfkSRkKf>BP zHZw=MyLtB{uZzMOR5t1tqS8%Om~)oL*M!rQqpmBa3fBbfwExtYUY@jVz@4iA=gN=a z=H7vAL%~!J0@5g;9B8bW(iU+sI`5AbjMErsCV714mv--P!|3zD;PBpsAmYCr9ytXj zG=5nXT~_wN&B{mjDYlOg+Yg7?ei=j=%DITZ=~By*-YdISP4hIEzUv-do^ffU`s0na zr&?m{syYj{Ez2;WHi*U@9BbGTR_f-Y3LYv<7q@MQB^P%q`d7Udc2|RJVO|07L&oT2 zdihz=BkTXMbk=cAKYtvjyQHNJN>Wh-VSpkcA_5{HIZ-JoX@pS{lU7=35K)j$iP7*? zl#;H&5J762#0HG!V)`l_x4gwOVoK;wmtrV*Bt z%2;+`uE~U^k{=-dse-l&HewZ-oI5=wL44yaGicdx14h0d$zX3@(lKeB?LkhxnbNsx zjZzIKH_cAPQOnuyEnadzrxxx#u_u7=b|sloCG~cNe>=#I9P^XY{=2CgAnMTg2_V=J zQmf`y_NwFv<-$L8HdUP8>)99+ z>aN+FbCkd<%2i9MMZ+oAw9U^Y3!kxXGG{~eMrGI0|uG+)2VtdJ^QVcfS?5S?4&g?4aT#*e@bg zJNM_@mhpBCF9>YvA=KBEfvmT;?cdE6m1hLmSz8c{$WL?k^#eJslLfVb;!V2*uu5B< z5j&wU5>(gi};;@Lz>wl&^}UGm9#}(G2^~@SPo%^bZgftWvOfZwe(?4>$P5F825O z=G_4SSLRUkLTqh=qUdGUv!NVsDwhPyEAfZ5EiuoT`}Xh``t7I>sKa2H7l+l18=`D2 z{D$~bpVNm)mrQ!1Wgts0X{GS9GhaXL#?~@QEenc8xa! zVGHW#glyl0n`KV!T%oe<&{f&CN#*XJF8>JQRRc^lr3%}y1N*db^{$Gc4_NvUeDiQ> z-ROWaHtq>Z{#zoZZh+jtkZ2J)mS-^R0NQI;0BNL1hHh6zD8AO2;SGGeRKF+p09?(1 z+x=y2V`WC}cZeot$(B0@Hn}*~|K@kyoTmKsiY>tRH?Ml6QNa_uAv7BH7hs zeSkvtBv7hoJn*{TnKgS_0qLLky$aD+6;7bkLhuTY%6(O+xF3+`EWgSb`W1wW35dF9 zCo$HzaD@uVmoS$^(Ki1Z4?EMo4me(6L0h(HEP&sk8&3_8%f3QV$uQ5fu6~63x^QE| zmPJ@EJr7T~**KrMj{RiUC{t6B#EdLaj2G(iD!c)R*Bcw32BM8{L7Hv{EPXZpP={IU zDs*sp<=L%v4}+fP41jk{Z3H`iEnJ6yl8HiE>;vE@rL2b3;p^aq=Lc-vflcLV0IEds zirs(((IEU5qt8_o+33qA*ewbaZeBI8w>kaY>&&@7#}VRUxAfs3e%t2jAES^^l?=TH zkttr+y3T2L_hINC;Ztj!q~Ey}mcUw3aOJL_AG?2J=%3@OcDUzuBGleDndkoIG-Kjd zj@ATjx+enH5`!_i+!@PdN^=H+%8{BBUGxbV7Yhn9u!18F7sLuuWgySlZI>ro+%v;136HRid`;TS+^ooDS(%4%Q4q7Pm_unimch?|k1ba64_cRBzXfi= zJ@e*{ab}5Pi@tAhPc69A6QuwOVI(hO8M;a|9H$2M8L}fNvx4kzl}uaAkX-8 zehY+-kY6agPbK~`1W#2fS2?G#@VX9rM2T+`Y7PwtF`r7lD^J zdd9-IqK8$1D^Rihb98;TO~mGBE*fk7Vsb{MW@84Vtu)@)gal{+&7ApfN9vZA2f^Sz zpqc_!xmvJ7?BkpSn*KGeVE*jv4MV~F!Lz!sYa`?$ zkUb!*=8LoWSf)$pYWQ+=eXcF>R7%)4Y*EXyn~;p>Hnwhz4ox416J?n>{juxkW(=}| zfAf{eRyQaO#|4^GaW9D4Y|XZ<{O0#;eC&;jXbQ?qp)F797t~)+#t4Zr)P6aloP*r1 zIHg1cEh>}FV8!)%xMj77_RPE3P16~pmbb(`1{#5*K$tlkXZb5{?6c_5xPO~O8?I?= zyz1)_--eKki(rA!LHYMOrF64yBON{tM|+JvE?uL z5Qr=6wgJTUZ(ZjRF5~+kk)dAysJFJ6o6m(n z#Sv3MkOng?@2wH&-v(pB7@)}%q#4#W`3F+qowPcm_PT1I{-!7jM3yqH1y5l8DE$^k z%G*3}>PgREE4l55a0Wpso^&p6nj#fenlbMO>ZXtMHrs5KjR82dzo+dPks&F~Fsm)E z2V5l2t4cmMZ?(CsyR0y?E1NQP1VT3WZ@~8QSI=%}YPPaJnZX>N#}kKlLaUryKRyBwLc{=k{oy~hZ1VDP{^0{8o?ji5OrU5H=0nYmxfY~ z4uYYd#keedBUf2Ikm0$MHzL^%Qq)?4B_mYa=t8L?*pJe~l3`vO{TZ|~B-;># zWGgm1J;fajZNITS+3LS^8OUN2L6mr^@3Bc7MF=iR&+kyubI@*vg-Amux?6bWF(IV* zZlU$!HhmO5WeNE~wRD!3W2@zM14}mUeO8h^y7=#DE)VNnry7RS;ucDsmvT&h-oi+V z;XiWbTkisYXH3)m40(ScUec9aWwDjrnX!gp`-|V$cDo#V$^BG>(Qf=~h|z3_e1v}{ z8Ai@srqPIuEA&@(=YsG*(TNL=gjaqrSTqDdLyNWR;z)2J3c8_)u@IkI0y=h@K&9C` zOpiWpwu^qY3qs%YxX9^E&LYhyf+MecHS@%^6!M+12`=Ez9=X?}P@$-Bu0#^nOIg3p3 z|4d}KmN=}`syxEzB_B8e={Eq0T#9(D;Uy&>&z}wYs@NicGSI^4B;6{}X5SBK=Uf>z z8mK<|1}FgugS>2($5{FF*~*u3KFh3p2fk=1yC;9SPcRoC zLOsnj(6l}q7g$$im7_G@bWL9A)vnya6MIYU4KOwA2rGj`M-`aLNGb~Y$Lmvk{&tNc zP#RMuFbZj`$%WlM_J?L{@U=xfR|q9z?M2PJ*S}<-&6}+!B`v+=A-0i?WU9Wr0M&Bq zO3MznzxZmR1A>)ATrV)my}62q&V9}B{0i$KP=`WJ#=q3PoS7Uo>(#}lU$c>oxl6VRQLoC?gPoZaTFROgJrJp)_lsbwcaHHpP~hO zX8z~fW&~7ndaD$FW5qcF&jr~3r)EcP7`C>)Kd+nlK8p-XryqB_b5GP-!>P=@Qd49f zMh3m}ar}On_zpaK$h)nd1dEBQgij@l2p$p_pJjO9KkNk*^f+K8tMJWnZ|uG=-g&F< zth^<0oj)Lx{CE1r%5|T`PPr74X-l^n)b6^eJOe=TCJkI(&^ zc&1Qd<}#5+Kr}y{ap!!})wk){-Df}j?88bf;uRm4q}d_>Bj8h-(LhPRIrLsuU!K-- z$|DLDCn&dbv7B>dD)2+M@P=WHS@;a&&c*ExxcU(Ks!2i%A!fJ+tvJFRK0W=mv4v&E zI)i1yd~EUh!4@^0hUh$F_1;A@XS;OR47s1bhz038YaVXj?GM@mQaZ>lSd4+;+6AQO z{I}J>ueEdG{Igm_8ZpttxP`Zv<2(F-D7cCJ`4}K=u}gKAon9lkZ&^}0Fx$qhD25Y; z^4wuDrXDAUA=-S-I^Hji;ZbsR)&r}CS9P-2u&LBDN=!NOYO=_`2S0g|Du-%$@dV?y z%>c%8r^L#c$JY{O{Jw3XV0DdyP}A)to2NNHT1!2QzQfIEX6PD&sfq%4P{Nu$mu5c8ndFYAD6oQWIL9$TQ0cp zjDkOW>+^lE9)CdwATF_*q0JW=-t1jkL?>M>&9z5|#aIE!0t&2>!4=Q-Rc?)p1aF)D zrJs*q;z2{6(T7_P`a}8t6n<_Zo&cwj;~5U9%gC#RW#aLO9Be!1dXN_>QpW;ZUJJm+ zOF6(ub*-jO+={&?qM+uAq&lzR78tQ#Q5jcf@p8o)pnLb_B2gQ67#VVc+edZoD+C7r z7H@v!ax4l^Fh;PEh(pG9okonRNuJ%AQLju{;;Nx}VMaxnR$JKs3jdhYU` z?3C<`m$&>fGHWef{V6{FQDX=6SRT}jE&C)6M`#{A+MGzgFoHnVbOS+JRD^~eT@(J! z58WYX`FYLUhi}OhcNPvZzC(D!RP)}Zhf7=5S@}&3(mo`7V1BIi5OP4B_oZCWzXu>) ztSEZv<#sCgM%}m|2T6hP6ApNkvN15P!4e(AAIf5kxpQxZaxBYTB!QYKg4T%eS?9r{ zv?Jw_l#_>fk3WsjW)84{-2Pa0g=@}R%Wj3|7~7#fLnDPYs(1N8PrOlui96v#!^S6> z1I7BWYMLp%Cxkx}cS~7d(TRusB6n=qq)FFYREippuBKW-a+vcIdEXg|I%&y{Pkw~cE1qwCL_Za^bgF6z6osBgGB zT9W8Jx@o-EZ~qEVjQZg&7lnKOsfk_Pr{Y8G~Oe z{6skT^{vZ;T~4|*re%{{SoNUXi`Qn;(6db7eO2nWYo;LEQUvJofpsvQ+NorT{XTtPjJ0@)1y7dD+?n(z6qH;WZ^#l067NK8IK0K{-rKDrIJOt< zIF5p**{H4>X*<2e3!+Wtj*JSuKLJCmq)1R$G^YSDdBm9D+@ovqwR@PUxERuq>04{> z$|t#@@~#`eCq;}*WYu*J)8?jsQ5{olffAMJEEcQx2 z4N?RI@D%rSjx-g^?9^0+{lB+mYLNzQ`x9?vSa^c{lBNo~XGPC$;)i#P zzrcHG`4pXp(tL3hcX8hn2)uyHw!gK0^26t$yu{j!I_n36C}<&ACH|v7TWxk33(Zle z{(de^YPx2#DhC*t0a}LI!OH^gv5=7&^cH(IhCDq&UX4|E@uQG!kNkRT{Cz&(CCxU$ zUPX-yCrc}`-Y%&7JI_!m1Q zd8~7U;{v1U1@Oqka2es(YU_Ox31E=QuWOA$Y$b?8qM5zT^Y_%e)Xyn8gQctDKJS(} z+pw68vczm(oU(V~P-`a1a2xw7IpKEGY~Aw9=1SlCf(6x35(chu4?@Zs=ddu*_1pfyyv)aNMnU=j@e) z0Lb@9(k5w~QM^OgvYv}32H)|dn7K(RTd!STmnv@#l|7kIY zx@h*q<%YzRihwEEPbHTUw|xDm>y>V?m&i)!4-3r@cVVt?%Env~1OV?aHeO!d+gT z&_8HwKN#P7bG1-7H1>m|UI(hXj#)Il-E(0_MAywu+(=UYy2N4*EAWI#q(4nmj;r?S+4mkeUisn`}r!%hV=5*Z6;zcF;G?gS}m5 zGosXWRf6v+$LCS>86HZrJ#0SuQSOd=*Uu{jCSDNlBW$f%5-{s@zlosU7eRfAVCJ!hGrR1LHB!d1=2$q`n0I`p#ao$V)=HKOUw>n`Jn=krU)DZnKbsBw`YK-KVVWzOCMCSm-kMV7*ssE^jIyKQ zZ`xYyAgI6$pfv1+m_!kQdp#}Z?>BCTyPc8E81wzWw&SbdXv*q}i_*9I`T@gbgby4o zmas_;_S}n9$SO$u_$^RRIWmu7oI#<`iukRmmHuqlmr@zkkOSlEY5!h{^y@gMZ@9?zx_475PL<&%|9P(S#3 zlmmQ7Hxq1?dJq8Ak1X%elhK@#mO60uk)J;wp1GG2FhOEtE(J|d(0$s8llkarER$^~ zuQt6KOm%2m`C%Ji<5BC*yQ~|Dr!{38JgyULuPU+)KMYmfaJD{b4@~75i9XKzfs|ZC zJMZ1>cNv*hM(T@}M>%q*kco#aOikCj7gs)iC@A%X=qFxPbR}p|hMX9`Q@dKK_#Hd( z@yDDM^G?-QG6!@9N6C8RH8E=R(>K_|luc6`w3Y!${p=1eF(de$KlM2T@3Xgn_8o@S ziMtgc@-?okc%(7NUEIBZlv2f4&MHq37TMRfJ~Pf!OCM37CkTe$9Y7BHGz{}c&f--LkzfeO zg3i5V!)OH~4$)z_DDXzER9=KV>)i(tE`L7yThIO*{~wmrnm2WC2i)0k>&ucQmx*3W zq!s>T-njnaOPy|PyFK_M3TFT2`@(4wx4zEcvC^ED()O(z3WIteQ zii`!-V~hYp!yx&gnONrXQ-ydd8wEmxKjWZRaE@V4hPMxSleFjZ$h4o9biHN zdpJdqr46u7U0N-+6HyA2ThW>>jdQ(`MOYVroJ1fq*DxT-4tF)66WZH5d#Ay1M2 z$W~&>XUeAjeUPf&_^)wbfSN@OiDBB-(bd_-HZz~!aIRM*B$kXt&7){ciL#ycwwDX4 zeAuK2bX^$nM;~syV$;^HtaycC65D60f1d9|dZR~45a{Y$Dhz2}@}WtiH?1zxck*9j z3-TtWZ#t??Gd;x>wgN5oV?gjfeIDkt|7?2gv!vh)lOgQ$2?-1r(7afGyVr>KtLTU* zb#%riz5`1F73O-MR=z&w_n&H2XhhC+E)Tq^ShCV}rGtibPRiB$Xu0qGHWcv~PvTDW>T$r(^25SjzPb>iX1;U< z-sJxCd7c*er*KQgk0GrGruYjWr089KY{DY&Ju6;G9lq(fA8_Z*X>&%7tWFX_sh(Hr zSL+uYJOcjiS(6R`<|u?MvX|>Jc8_?h3bfw;K8M{u#p>N7fuUuDK|bWwf!o#J!h%<2FPBt{Q-!2XtX)a3N1cmXpH9#D7|Q}CDZ zNt=f|Pe|Rl@c`6W@}s&Vg$3|W1p}sK-gfV}09XzcOUS4JjIwyS(fgE!G}o$ecUa35 z3j*XAjjp_SM1yq|O`n%+(q_^lcXKFTlJ=*7hdXP?*rof;%hF&u;fKi~KGdc+db8%f zpL`bZ-#u3C-o9Z~FYz~dbp6`{?^ zfb%u_g&H5ybhC>;xN@jM2lCuXSjdnx!sEY!6}5%htp{N1+-s&O67V20wO{(Z zxfGZ)MT4LSR|pj3-V0wC-18UzVl$A9J&Yg^bhFMdo6q1q%8=hH3ETgDa;1S%bQ%uN zM%fKDdLP?BdPlzrtET-}1oswoQIdAWf67cuT4kpbw5x&q78QraR!Yz2!A3$d>f2P8 zXpzAZP+}@?huMDj|*k)_zK~gLiG4R8>6JeM9?k1RjVo zj_$dwZ6R`GFtNV;RzwKcqin-^;5$?=QwMI86gK&r2`ja-8oP2p!ROTaX}=L(L|zb0 zbKIHWXf-*2FS{XxkiQblEdr8avFc@KBI<<916CrZgb*C?%Aci71L+ILyw_)Gd%4+q zUD=>v-Ef|(MzbOQYBX7YQ%+AA@(|M^Whv&}_r%#Fd=x_2;0?R6>Z4-Dejq7UnM=+b=bHbQ$PXUxb}u zfleZS8e;}uU~GM)aon4r4HVs?mI$78JCLdp&cp+c=U#|C1KJR|#Aj0-(Y1N>Md$f3 z$A(v-Qf}iEH-aK6&v%HO8?^x17G>O0ln2tNs5n94OQQaDI9?QPtQO;}=n zgs*$Y5^IMJ$#|4u@69F(6zoVg;i7v-?B3rHcP=OKy!&yHHhJVK#msMWfk!KcTQ23A zIq_QCQsl3cMkYg9*ot-d z5iBNEyhY&`isv$iE7f33p+HnmL2Id7k?}g- zOTK->E;-n;tKc*160;WmOW8A(=S>`HYtItSF8u(9GBGZ z$BFWi4a&2G+5&$9Bn>Nlnu@A{Few#3LWJ`Cma%7Ar@{?N91IS8VoaiR-&whY?J)yk zFW8xfUyanf$o9tj0wADq|f|V-);~pKAC?_HL zqNC?cul?KTZ_0&vj{zcxg@H)_HlVrDPR6&T;K&%adt+D2QLu9;3}gVl7=JWXe8AIN zZZ^^t7(4BNQBuS!D&5>cZ&@2Z7)#>i?7Uzk(+7&&afI87n=KaUda|Y2#&#&T_rr*PxG&iwD2|IM8L`TWgZ9v=#kzM@o?Ak6jGWz zr~df08=dC4h)Nlb%_E_aB%W`BJjJ@RveVHRB`ti_Qv@Z?*r2%1!%Ldt>a=g%STwn! z**ECUu(^Q$JK{I;UIEV{F9o(Xj3}_6lDqF`p?96F?7l-*&(KYj%n&?jSX#uo;w`EIfsl_qsK`&m^X zh)`mb)%lX%pZBxchk$~GLiPISK04G_9_8e`Cyb0*78GnB0*At;`Z6}I#)LtRm4)F; z8w|QN;DepAW74JUCj8NC7j%|)yWUi;*F#9KV+cT1zQ0VrH_aP3T3%EC`WB#b0{j3W zX?^MdBC|?3f}X6KLxs6!nG7tGG)ci|VG7qu4qvmkgBbHRT=rzWuzT%Oay?v`ABJ{n zFiF|9UUef$0Z~147$pk49#mCS=MaRjF1N0x&N>)?B?n00!I;E+>e>tlTnhKBPu)yF zl1>zq9YdDJMeDJv%2-3;6WA{vspt&2LsrL-)*>}BV^mc50@e9 zHF5;=e$}D-`qqM1K(PegHlwSQ4ul|`{8nAHVUBY&{r9{9iAVPR4H#q_Jkuc#-Tj|3 zERPZ~S!FPCW!h~iG{ApBP|J#Re2Mlg__X6mZ1Y}nZQDxiUWx#PVQ4OfE6$2; zS@=Bn`=&=sJRr1qH<%6}>L_%)p+Ne`?{2G8V_*Mm;Gv-oVLvCpc>iY}?3UMjtZuA1 z5)2bHNpa9}!rp3aqU*P@`ExQPsRy~CZ)|Sg7TLKx}lDxY>hD^=rWaQ5Z9O$G$d z+&`9Wj#n-22aMcrm_E9@c|11Kz}6M=_srKzGq0HWpJufUbu4siNBVvPLGj7f>=%au za=wBps&I)gTp}%Z3Vt-!OLpQ*~64c1D2^kl?tW{;; z!~a$PxS&^Z!*ySSI_RXjVr5QHmunt!Yj%gMl;W6=ret_$+4(4IO^>_cNa6?gpoJ?@ zgDaF>@G&iWU1Pr!ZH6f-2KdYzQRuw@;^C^#9>}R*7@>BDM@;REA_Y3%YmDKg#dYqw}13`?d}yf zAt!}b;7j6&7lqcd6n?_s_}SSJf4}RQ`SfqJ5*F7S!Jd$xH}~lSgd38?DgPZ%?dXWM zTEkp9$Rurp(!K2D)Kes7_A>;;xd9B*zZ4Nz_h!VsDCc>ZpDK zDQp-ldfJl@^3{kx-=^He;za!9fFmosy<}b%zL3)B=DLuj@wehRoRp@=fj99l6ZlY) zdv{4>HBCjskqdts;8Gh^&$k&I;575%V(*+^yd=aM`U+fW(unRGXeq3%3hMM)J6Qic z2R3#Is`d>}KDmQx10Th&3l8OOk-~Kei;h|t&3(SSe&dlI&4xVG9j1x0M9Bl?h`g9i z`fx~jWSzloLs8{>`{Q=tvUK$N-c_^8GBP>3uV@7i8T2%dWrH=s2LP-#j(xd2ajJYcHRb;jFAI-JI zAy@5|%HTpuwI&uXs|V&Q;IOe|#F>eM6$-jqRVS+&C1cP_MyytSrA!rTh{?sw1pcUp z`x=vIt{v!ljlnRVMaR$$y=`Y9JH`$munXLu_f_xVr9-?2cji)Zm#WwP6=tf^MK3xw zzMoPszZYQHFtr;@d6?^yxyLyRLIzs>-oy_2tCM&Xq3q2cV@!A*uOBYZU0Dt?jAdQq zqrf=3Nr{lk>>JcI5N57K1V?D4DewKhZd59F=!gYFk~A-XF83g{??u6TO>FgL&@pI> z3(6r-iuTDX$=?!J`eO@c+-1LHJ2UKNlDa*kWj%WYqoT`6q$ZijSt}wB*B^ECK$vPey{E< zaPcgE_kG%R%>V?Q0`qQOqUZ9{%xlcGHoxsK-P;U&eaB1`_`rtN8=3f(TLukdb6s-r zz#k2^;rqLho*4?;8tc&WknWk9UOEie6${H$c%Ek|5S8P3q$+M-B;>kLv;*JHwOBo| ztH)jy-+;H&US4T=sUd-cL;hKiWy)~_=GhNvgxkh=;8B2{LB&FZ*I>$3HV3}Q1_`fx zHu8%)wUjhMMkOEKzpE7o`yy>?zUtFT>ly?9=sB#Ep-b;wNOvGfn@> zFxz2V`>7(g)4iBA)9TZN8!Q_2KmY4$e=hrd!zy0khOF{S;ERDLjETmrRT{vmG<%^9 ze!DPaB2K zl9zh+rOXYLWNJ}9WM$IU4I%+4LMtJ8S~6P$UoMpOymvrWD1f8C8AbcaaD=9B>3cc`QJ{D-}fu~!hHl>n)Ih6=h<<(wb0kiYujW>D+(M_hQI zyqnbdb0=;hAzy)bBR=i=_jB8M0Eh}Su#GrG9R0s}bB)`*%m;r46hw2R#PB{!p(J@J@(;2^BR?D({*347)pz}A0XC8Q)+APt7xy^Je=zeK`UIBRp(TRYb z?&E6DHaG4r>^lqc6Z+81i@3#{z1&r|CDB=3ds>bSakww?-+E&gA30dl_$p8hVTLLX z0*v;X$c_7F^Opy@PKJnVjbeIwOCtpGdUN!?Qcx>bbnr%MAi+*`wd#&fHTH-K-?nCu z!BaCzZ~n^bL&$9=eI#kw0OH~?pS1e^F6tY*3+k)isiPzSNn;Hei%Nr831Xk>pm_0< z=;EC?U@wd4abJ^8EF?Qh%9qyBejl4#VSwbzN7pX!-4TdocRX{)X3JHsBF2);z^+W8 zoO*=-nUy=~D^n*o@b~ISOKjVqz6^^sB->ZYl>VchFbI(*gXzODl$s#0#PFM|oNXfD zno(ieoD%w33d`9YPv04*ykHffx|s!dhZHdOgVaTBf((c$&uFKb#*-+-HMqkwe}jlF z{XJ=h?}cuu#Qj*{dxS2)Q_QEqYgvj*Pm4m50vH^MaJ0igYjH&nes^2I@29I=b1D->tv1S40wfZ=spv)K@l{> zsr~e^S4FSJtt16t)+8c1eGJ6t=R;lxG^)b6$A9Qw2PNm}FNr*^Hyj8Yf}~Y-*a9uR z8yJYJFg)?srE0ZFlo|aimt=16AR6Sx6-Gu&(}A8pbE?VSZ|$xm{2Td)PiT%2aA@$} z#O&skNr>$n_{yZ(3?6;AST*jGwN}w+aq_dH2+?x4=K3 zpI%V=XIuqHx?Ijw!4Z*)Z_UVL%)C7l?o4YdiEF04p7EBb+VlUo)8};=Q|tzAI=1~t zFZzr%82ShHtNNq5vEtqys;)#+_2)%#2^iU3IUc~0uN(7KIa*t9-fi}37s{Qf01F&t zyJUgHbGanPNUix;H8U2RWhtP{q0na_QGc<^Z^ev?4NpVvLCneUIQ{YCppaNizhmx5 zsZT#JepAn=@jMi;aC@WIzch0hsd#=rRlOh3X;4oB;vt>}%XPtsMR6S8pUg9#v(7CC zE6S;k$@fpkUkog>cCH8M{o#19Ge4c%OWrZ0T3Jo*(q<%YX5|@#BDqhrt!L z$gz46bTh=JQnj1A>%m}aqVPq)q&K(4`p4y~}rU7d{ z^Bn&v@WFfo!=5QP+KE~|ea=Yfux4^9dOnX#l)GMRo-eV#7Te;Qwr~zkuUyKyWFCgG z`(yvk38gs$vh(}zQ~;cZ0g1L|cUSapx~}N?DU(AR6gv=EqF8cdeFBp$X;Q{Qg}AI# zEt%rn%>}zE0X*uGy3e@CkQgQRmZj)Y)+}JqD&j4vU$52mE8Wg_WS#Kk?Mwehm9xux z`Z8)L$uV*9+JCC)Ph!xTpZ>j^i6!kHn3AotfgwhKXrqd% zoIFD%|95SmWz+4IDnOt!gwWD}kgC^f{Y91AUf-=9AM(`$CZaf%s86(tq|_i><+qtX zY1IjbhIjBCgTU)wMFXee%>qwj>%QG00lO_48Qoaac$86LE?$v>0iSROvW(Bw#6jrM~|2(Vv zaOyJ|%9tl{XBUqDwPE4WeyLlo9;j9V(x8nx-NCG+`H$vFGb`B0qk0ml7P9DE6|wp? z&0u=E%x@JRtsi+11gZ_w=jnoviN4SXi|h(13m zy#(^*$`JGDXm^ppKcsH+4=SGI67OCUxm%Tcub3On$nZn$`OJn8NRCXd<=s+$MiTe< zC6uvqvM80xo5Qdodyn?Qwr3@f;vn_Y-sHmO#lUNPkUjoKBI2@^w*OFpIvys`(h-vF zYZghP&su+gYb-FHMq_vhTE~N3k`Ly0hlK8kcv(uQ)V9f$On|_dxl=e za`a1(Siz$D5<@%k0om=-5{YR{b-ueK43-~Cnr$` zIE67?lM%6^*#q@4=)st6NYW_}Q^3cgWodV=m#7)~6p+|TT=?=b~mZ}47g zmfldz;Dw5qxRI<|!GM{zDu`H(`t;0qpe(iOmPb8la%j}ug}cAi0Au&9wyx+Nqb~5X zlNw}W`ZTX7%gavOB-5~rJm(CnsQA50O}?0j4>^BsQ4X1%vIVcbO;EY>b>C0cD;ppb z2JKs>903KHPlAF^sd5Lqq$k}yY^I+?`m&Ug7ZlA8!hD37_pwO_}X&P9~VU z=N$qi1V34=B^MiCDOb(BfxZhH`rfK*m>egP?GUWTsyLk9K|ncEs_T`0o-3p#JjPf# zJpo#04fB6D&)KHbpCK@DX!y`yk}V4aQTBSR74U;E|HiJIKDR?nv*qz@#>!uRMYewi z-Hc{*UVr(}#{miaZ$SKRw z-^dTr(|oD4>Ipb~1KfYwTc4_9ScO2uO%Fk=We)jKdo`sr38jvqjHo-G0+WF2m9!oW z<==mZ)%V$L@V9Lyh7eR{6KNS>ZH%#FpYuTbTkI`e2=~A@BiOsb8kl$Q=FO{4Uj&+q z8tiV=cpgev&f6O?zowBdn>gD8Bd4+dHoxOsE|xdyE&3d|puzHJ4-#~?1F5Z(Zj|NN z?xc?U-G*5h|MyG&RG!SB(EUcS{U;T>mjQr%h>9X)BI3LlEp~G<-W+d~6reUr-nxw5 z6mK8bLN71yOmmxMlmlNtc>78I*3cKFg<0DX{3XrPW@R72Zpzrvu3VKL4BruUmr_GW z6p*3MA`E(*RY87beS9}+_CCe{VFAHKTor%1pRs0MS>NTNkuIHVhhh;H(rZ8$!# zzG61s>@`g(1mwVESusH)-6|3K9NWA-bK>JpfZjk88t8im$YL6bS9mqDZ z<{)_7bhWb`x^b+FK^z@CufN0m#2Xc;njrBBR|OFs6vzk(JxYnAgU?^eWoBjGZ2+KK zb2=Rc@=feI|NhqJ=3vPBrN48R{EP(w)|fK5l6^PQF5AO##H}qpFjYjtE{hd;H4GiD z5lJ9s$$Sa6p!JP($^F-g=I7Rr-u#LiV*9mXCN6t%416q82C`c*ILU7I!s+*UUve*G z%)1^UP6Y#~_#PaOiu>UDzBF=0;~l6I_+Nk2c38adoUBOPqeoQBy>)jtxu1Qm};+%?Cg z#?31)_eFX*MJ_ri2Oue0;a~lSeO`EC!*iH^af;ZukP9&L>?N9dG=bfbd2eJ^*~PY2CUa;mEcK|nqm3^dCC z)24R-*6MnYWdqzI9au`jVo(m}um(Isuq~fQO9(sqnLNhV6F7tO8UyPanjbe}%AJaE ztbiH5&#d?+!&~&WLGtFl7MRPOM|6u2*B-I>ot0bXoQi9efGg)$F!kS%3(Ty@)wSaI zne9@y*=F??_GaitiE@Bq5grmVu8I&FMShJNw$U zDh{R4jvmz-GyAo1S@EB^92@D&^k35ocIc8Hms!m>@FBb~c{wUnJoe8X%Lqm_|R^*eL zJ#9{A)SARRqgtE+_q@NPlrSYpqFIYVg`BJxO~aFn29H)$Sgsh=yT+rp-#LmtZKp>A zdoO>35l8R*-uW7SG?VZgR7rILVe{8}p zf_w|)@8p^GTWO$ct!Vp)Lh2MNqsc66zROp}(NE?5XG0qV6^#pBTk26SJs)0rX;0%E zhP~Vh3tlm{ZVyz!l8!`m4_U?nt}MS+f*PT(|!OZireOc;3Lw>Ta+;E(9-EAfaET3;CaIi0j`)9{DyN^G= zYj^ReCT@b)_iP5rUb<+#(1Ois;l;u0=lgMy6Q!NpOv%(0R*hZf9f{=2GYSw4ze|AK zLhznszrlwFG}oBE>%~$U*G9e0bJMhRj$stuX;Wfv^nlDbWnvve@7P#7=6tx1@qc~e zVkM5B7^d}ws3?#c2R}w?cUTptU%2I;7mAnx*yUs=IbP;(?ySs|jn+^wyQFiesXp`N zmdS3^!05!EV4_W~5zCy-({(@6<@-PHb7Z&x|3x)KZoPWJv-xkDb#TGJw{HzFqh(%t zjy<}RwS1ffh@0AB>wRDTqtnzp`CS)PKK)eQdp5L=1@+fu&<*Z8MR@H; zuW7sMqQ;URA@%lr;0`Z9wligtDA#aZ~9sJ^B$NLGew70$)$~7gr z#aBmXDNXb?KtL!nXQOKz=z?7&iOx179In_8)=m5jj=hfM+pE;Ud-qiC`?yk{r!ksG z)kW6a=LxIV!D|b`|F|Th)A}oNjw1$}1kCLofJ7>@gPP#BqbDC<*8Jzvs*p}4Nrtn@ zz!=dHcVWFx6NAA-t6ZH7IfYGPc=n!lrCz1}d8wb>Xm;_Y@vkhO#QNG>j)|&YRcFmV z#Jb5kuF3n(K3!{C?$T27{D4!I+)=LYlnZOnMfqo=89q7%{R+W+Q@!%rFwJ&N-e;De zUZ2eP-uL#9=T|=(NQnBkGpEDziM$aSJv4*NAfGGAVZmmb34z|cXgiR8?K9nk;{p`M z+kZc6agPS|8Lj*Pn{HGLArPlL8?Af(WI*PN`MBF=^I|Uy#r~aVs@fH=aNIi~veehP zT7v>V4EMuOgZ#Yz92Z&|PV2O&6I}e+8!(}$jnN;RfOu>^TZP1G@Wr;$}al+O$YBGneJBB z-IY)uhw^Vl=Om}(oJ#@a-h>g~d|3->8LjMzt)R->D}LOvDqI%Fm~v?YESi@M1-@br zfBf)kZ5pq9{B+3A7TI>JH>a}wN7y0f)1>pLeDgEq#_f(9wl@^>Lb*@2o#-9g6V*UsK6A?YN z$>EF6*B;KI!B+ONG4c>kTr7iGsodK5WT)}ycSo50d4Jzx=gdQ&g<#Fv-FvRi@1A=m z{%;f7Y{%ZOyH+96^XoVN+6xc<++DEui>Ou5`N;QB1^u6^iP_Q{Fba&;&pybMn$4W| z6eR8GQC&^IoDLpjDR9{{6@j9BoZnz5UWAnYKeWs7iu^Ivz%!qVsiMv(Z+~|Ol{qknt&%lgYR{)8A`$gMkr$AQl>2&3p{vZvkln;Bk|Ykac1w}Tq>`Jm+&c9TOD94N?k zZS2g6F7ablinccX`gkx7-Ij9 zveL%dHik z7l9=5&1k}at6V#VLWX99AhJfuUSE+*4V*B@4zm32>B$adOxuJs9c(`jM9v>mZ#S(n z4SafzN5>wgruUumC=T4lH+?R?C%lKsL^YR^B?hFnE@PB;u$DIwF+G?srF|MVLn3lu(sH?y zZ~+Sk71g-@d{4BbksRLwoaoVQuKg`n*VKLZV|VC)aPFHEh!g7( ztCkMG3cRn#^6hD+X;8sEBn6(DShdsstH7;(CiDi6Q;$9U%=i!p?9aJIRONmY zot8?jpYa8?`mz9;Fzx=5{?M@4tWl91+R~N0h2eEM%jTu;<3H-!gHN)i+{e3&oY~tk zkolzB{Vy?xL-2vT{zOCYXGS>LC2qn>s>Pm#FXh%R|6J<0U==2~WIN7OFjug;mbghB z7>^7CwIhfkX!x(wkJ6f@KF&8T!{Tt2zvlhtwrdR4?8&y)5?%8l6nSt|_qMVfj#%gR zkRG1iUrW@Sit>qHMhB*I-X;8uW(GZZ$0=k>p!9&S9-uN^0Jc`4Y=P(*=>n#_Of#L| zMyOH?PtDiNEaQx$LT%Mp_ePCx0(Nqu7#a$A_(Cb@_51mO?S)bIJRIkPpm&23LOU9L zEAOx)+JOJ08WN+Aqpx==Xb)~nHN;QWp6gQ0ZeSXj|NC%Wzz5lL&VG(jTZnD;Ongp0 zpZtx#M!Ms;@SKGj(6Km?Xoq%{Js)s8(ksjX7{Z7mN& zqZp*V8*2;E8=7M&Ly>@7&gjG@+B|N1ww5VbI2jw1|5vfxi(xeN)cY4P<^CJ;@v{Uy zEOD%Y4-Dv#-A%bkzRZj0uH_x&Z5%g8pRni4uB%>OJZ(eXm{>+jI<5W3E1k?h;gM++ zZ6)`>QKeg|5ao8Y1=Kr#NBxQ9m!wzu`@&R4)!%?gGy1z3_Uf91EV5h05EW>3<4wg& zJhhr?X&UCiqWcOP@=`b2^7^bBPYcmonyP!8oxGEE-^+gE9quL2cut+uUqj6@tzOP~ zdKY{ffBM0y{v4ZY9rYdhRhqxF-`zbKW@NgdqiK|Cf9;UyZBSF`jh7OJ$}DwHj{`3I zzmB*d(i9$i8j!8Bv&FgEIl2%L_m@U(SHtYBvY4(j+NNJT)MPQNsN=~lnbcwZ!iXJ5 z#i7x3p!JzyE>ppOIy09#{%9+we)H@LO1sG^{}u}QuAi&@=z+(xQ(A0q)U*0U@r*1- z$UDjO%Y+sAbxi2G#{1BAjRrt585V$NOpkE>vU@NCRhZ&5%Uv@k-Nsq?OA9nF3m)^v z4^e-hKcm-ekq+%C2)sYWha^zIU@($THP6}?a!>c4S4g1+R@;oW%&y7i9#Hvb>r@l=x4^a{1D9_9UHq zEfsqYcjzJ!2`N8%nZ|Rx_G4cZ0Q*%#;>wQ)vh!y9NzfagXX{^HS`pbY z7VGx3;|eW20bjGbgIa8M-S8Al?gjM8wAxe&$YEHjBYl5!s_t8vh`qNYANe_!m^*a7 zBOpyprSi~45gTAmk#LtLqk|hD+i!JI|K|QB>4v%0#WtgK{er*}v1ZuGax!YMqF^~O z$qjCPl$k*(24j_dvdOxtvWR{EXWV1Ix#gpvkj{a0MgFyf5e@Ol_g$ z_%l`VUen3?L)ozs-2|W43QYe!EvzuY`3(SXU0y4w^%ssjN8Hm8?$r3}y>J?pA1Yxh zf9Mt*HSaP-xFWxjs-&OQl8bT8=TkmyntGCb>` zXVd8ZH}SyJ~mpl)~>Lk5bwiaYuJf-=XIGZY`4B^|i;y%X1}``3WS z_KEdJ_933-K?ri`bcd$jQ_%8cJJUZeXT=9rA+w1#Qj;|FU4#48>+Ls zxv;dStLH?Qs&a?Cq|NkYad8bpE3@hfK7=8Vm-&$>rz>8lrD67(nRYj4Ej}(?g`7elwtii=I-RU;l+t)=Oz_rG+AD=XLt9esp9v4z z*LLR|KU`Dy6}7pX*}~mAyCPxZ-GOW4h@4rk>Jo33_ko1ah9WeIzSwwbJ(vj zkdJ#T4g1Yzbc|_^+ipy3r1XMO)}={ zlHAevB|6>}nJ9mwWMUv;q|rzxGaf}5aGU5hk0vq_(u

cr~i&G=zrw7kzL4&Ds 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 U}2Wnk!}LW5J7eSQb54#M4MeCNqgAG**+#5m{`r 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 z zv$esM*mb?Tr-RTP{5xQ&g_fd^2QHmR;gpwBJv<)u`WvRB`E?d$&_W{wibXw;rR`jM z!ZCc1CH6>FOJ)3->8}fC6iGv#yF=IA6it+bNB$kTyPA=)!qy#A^|s==rfE@(5z0daM)105Q4uumJi2%

-q!` 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

LIFtkHgjtB~Rn+e&KGKPIhs2a>`6 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%0A(^$3{*r8&G?%?#Sr1&}_z#(1Xi!2oyI1~d zzuf57n!{Vji$mV(L9zGB8#XXIsX<0xx`OSj13yMaxml!!JIMhRhHg?B73@p>0c8i2 z)<>tdM>3#}F=Czv6<8zI=(s~ebme*t@W*vIZJO_WUMu9wLSJN7 zF@E%!@i6wc$UImKd`A|T?d#TSu9rgHZLyU_D-li{nNZQEADmjY&+Z#Yczaf>a~;#i zAQc=NBVG%)F4XhtleI?f3xI8o?7CbSikz=*UB@h9?n-KB;98Hb^NuY=1`4`T`Rb28 z>UUCJAo5ll>b@3F#iDQB!Hx4Y_w!qj)WJ0|Fa}pOUt(>6k(B*fI?KCK^E3-}8;pKLzERJ2O#oN?Y zk@P;Nwly(lQu3Lp13kTK=G}9usgAe~AeM+w9~xU`9^0M|8i*(6`7xu*uzEL~-V8}j zz=HedAUe<1BIu;W?Mg;%15WRZe0zHRr^^EK!28KaZ=-OepH)j8d7=RK{Jj<{7-YKE z-jyq&Q6M`tYE7&SI51AF#dhh`Ny=IgVEg%lkUMg zCdM49P573asys->RVmQF)vw5h=X56Id( zc^1E9*(7gAIbPfGO$w)UOBssKZmN;;P0)(gy63aMtGmeooZ-N=Ny57^b1@ikz-uB!$D&e^4De;|23#O=mvz{(nZ@NA!yb zoDYvf=lMr&^nEwmYnzpZj(VdArDa@RHFrtSG4}=IyRtQ_6T#_mkOohemco6LtUp@D z|3=a1t8>BWDUi;)9ph)V3122)tykF!R&aVjWXz02Zte~^^;z&_#c$5v2dgmteP+&X zt$Somon>!7*%=IGh}3MOv)r+L(A7c>piwryLq;=FITu#I%|NIO{Se5lM#UU$e#=Zs zguh}8%wL#X6e_#OsLLs5iy8AzhI5=Im>Q5HuYLGnIo!d2RHTppu>EcFezbxToSp?~ zpz)}k)-&l&q^HoIlGL|nG>pAY{;PieHr?9P{1Uxhw3yQbST9Ax^cq5t=2|>dLqq8q;B48b9U!U zG`+`3c9p9kl@Z_XP2abogH>kFpQfV$C_>=FPGFqXeZ**`{^T%uJY$qG;A@1Tz;PFS)iROTXkHj6|TIm z6-Bxx<_|Y}&1C~O$-*Tz;q;hOR~H2h60{n41?yLs;xNR;p^y2r&oZAUjJ);5x4cx~ z_d9ElhnK3TPbP#&@Ry8R@b4wkY#IR}Er_qfs;?n_`KRVD#ON&&=f|QoOC% zogBxoxmuIs?$n4?2-DZfxZnD~x%kQVA*Ls1LuuHdYP#CMqB|>iH|SYemI&R2_-snM*YUnDE*Ym>NwT5d ztR_zmIY6|ght4X=(mwEhQMX`)9nR=(HmMtX&P~?rIJ@k5F5Lr}8f#)-;cMOS&-Z;z zvaS*DQJpVCaJFAS@gJCO=M;%(PfRx z#G|By(tDlSR!8eT9Ay3HJpI+<2w2204c{k>d*}BqMT!4-?c7V0o}c9B1^=EQ3bGG3 zvrNoKGtC96cH=M(l`5RinkwyY$Dp+*W;VOtsZD2CMS*Z}fAk+e^G%z+p4L>zqtVp;b1)7M!sFjBl)wjGO6*U;E%Mcn-~PE-5s|LpMbo#(eeCX-Np;!Tzup$ ze_tdqhi4-RD)5M@lEAy$dn<{aVSXa539aGHfgZyy zC_)e-U-B5F8@j*YqD^b$6HMpuVC+8dUkS{$3uZ-C@%>q7Oj^wF{U_YG-b$jMy|$%o zXfu{xI}46L_)(fq-iymXQZrplM z!47i0vs6tiY61JCKtUq=@v%oR*NRW+dk3qzlH45;DA8SJuiiVB+1;fhJ-f~1adYaF zZrBP@j$T(nSqWFUCe<^41JI2Ix3;79sE;$5+!S^-3TG{*6E-MP5h&~OV?){fyC4{= z%*80(TkN(;_mR{hLd&sU_^a4ZZNX5Y{huu;Ew%!t-zbNaOs9xdD@L&DR>`7ZPqV~St*U8D>^sV|1@f>cz!*qLZ!1A7d~1z{5w^* zx^D+B9Yru&qyFT=KB^7RaNN~ys$m~wOk4wT1N^cpqmLw}tm& zBo0?XlEuqx=jU6jH|w-iKm|4Aq4!4OW6uH3s?y|!{8W}{lv&tsTyG+idJy!q z>M0A)={M3~sr8Y_<9O+GZ&{KGp_5=@1(y;;#s+?5JnIwUxh=S#nt7;v*`2i8XB9i01lGoThQD(G=&`i0%QcQW|~w{T$ik; zHCOh%Fe0#SX~?2uxFE&D$|?-5KYjR(fUyBTT5|%?yojnoOPT&o%(;4&i|IXIZ&h-+ z&UKW)x%RH`pwQgxYY;(|tmmTDwlq zxu+oPBLOH|&P?-&wus%kA76k?Uj6`Ob9n*ys(BweFy!um?OLuoPJs?fWjW0%B1sR!7g8IrS_;t|xq26O z+-NEq`{nKRQHU1E%_o(YVJPm&U!BmJXTST3rwE2n1qNbrBs0~> zwevG`us8$8!n-c+QALlikIgm?)<)OSGc4)72W_iL<(=0IwlN>cEVC4Bf$-zVdKXwOP?kHXZ|7wu(9DLI;F=BvsG5J_<-_F8_i?aVXF$HK1Abr& zDgld+*U!pweyG?ttxRt;IFvV%u6g>ybC=$IROu|ES2myN^~AmcP&I5wOT|CdZ^c$i z&t{yM5W%HzkiUhv@OIC3zB^JN6@A2a^eRAX9}yEwS#$QzYqi5tU=CDCd#1#P_Jx%m zBhtNmZMt<4+7dg_M-;2KQ!f<$c%w+AWzwE;lddHdI8Ng#Ek%8f!ww1UB(pwzQ$^Le zKW|Lv4bK`Bu=BqP93jnH5!2ZqTyrUA3-H~z-A-?bv{rYIUk`QGN*(`YHUf-${7znuk|<*|BU=2A8HyhFga^8_HRXwInT4V;xj^|pX+|SvIMpu9OSESc*YyO z86m+8O%Qk!7(`t6On*w>?^`ZHlb==ATUKE#9#7<3soFiia%!%N+qZ=Mr(1XQ1Ut>Q zR+A9b9gey%5IQdLH89FHYOH#)z*%jIj+5KIgqp5Q<+5@1BVKSPv3VJsy5OhUZlt}zg-{F?Umm^<7OxVpk-k08$jE01EC-r&Y zYa`-pZY)fM*GK8jYYhTJDy}p%F))_!_3)NB8Ku>S*=^_JI~cO&5#sA!!qRb*e8lO@ zeQ#G&!dr|z%phU;ESzxgoNF}OuJ~F7Y26+3O<6P!3&ee^IC{wWj?;26hh|;+9M~Y? zipwxuN-`b!rPwU&?9zr@u@A_*uA(IJt?sG5LX%+J=YBOr9YW zrVawN$-lO<_Xk19F21v`MDX`lZ_u_;Zzk3Y238N=OJaDUL_TkR<@&Ukbe*k9yPBgD&pPaz)^a`-+ptuy34*r?l+9r+pMAwP?1qj02 zwP^DWyjK-;BljZ@C40GpqT=JK6`IJJfocCyLE*B?45pOJTRfCnkvyGqDFv=+Tz2SZ zUvlKVmXx@u8lqbcjZ>3Zafm==-$lhmxAS*w(pgDqb4j*xTt`GPh(-Pc?+%B^H)kh~ znvQ<4SyhNYecw=ffM?tdYDp_OUB>z$m#w__h#Ir>Tp!L%1mwQ1b6Oh4ekW1i>SN^M z#L8=3aZ(fc_5A|_t0SUvgh3;O#u@hRzbZ<_BJPXJn;)@&TFRa>oLBGuE1C4bIcVi_ z#yA*%9N`}};Yc^9bWCa4ZJkMDGD@Qb98&MK5tQZWx-1X|ONjy}1^~zsZE z(`{xcEu^v9rFn2KIyD?kHPNIm=RxHCPhtFw<(M+>F`-k?4Uv++c+o2bq^o2&@VGP{ zQkhEwz*DOahn~K{YB%$G_-88pvURW8GxtjSxfYKdc{I*FX8#a8;?WtGQ*Pf|=QoAD zoiszR*wiIQ3jUyZ$9|cecL8(%xUs+n5&C3qZ6NLaOLK}idIUY75c&5e*?bYgd3NZL z_WlNBg3h94MF&hJg2=avFJw>QZ}OfQ6Kag@oji2o^dpZWYf@0=^plE`DU! z3`1iDC*XF);Dn1k#hVJoWz{pT9-C@t98SouDXV_LRcO;^c_E|14gk)?O65K|>m0t( zgn-CjmpHFr)%16IL)FFP|8X^u zmlVsWm17b~CV|b}@&D=b+FULKP9%$THX`>Hc%z{8w`TP<%=(|~H;b4xo~o1S24 zQ#Nsw#mWo)xSKEEKEd<`1_z_inEUh3;imb>^vo$Y;sWfRL9;!k)M9;nFp%Lt{wxo& z;sk(7IPA>v9KWK*vuo^b?c{o#L9krh4HlU7gJI?9xgh%@#}@Q(77F*7Oji>v%J8Pc zc9f?kR22cz3-Q0B*nLR2yXK>gHM2fOvt4|0`9JEHs(m4xRXts5POO1Z^dnZgaL=_* z!w1gOeds#MctPwFfCn2N|HLyq7IQ^6WPPAZxe@}dzpuXKKDbqfbt`|5&$-v7*Z=mF zyWRK0i5D>2!=;UPQgYZnVae{ldl1tBAY(Z9O}C%=o4pguucD>ha_(mPb8&+OsWN}P zx9;##JdK)izj7#lzZ9eegJng8u#I4e@1%m% zN^H4$J-b)haA?|KIEAZPS9-NHV07Vp&Mb5b@%O3mH2TuWw}(pHk>i3Bkt10`tx=DR zMyEtw`DKAY|Lgfag>&s0wAToMP}BfBT*WABd?F+xG)@3DM% z1j77r=YlG^xNfWdyY5c5JOI0uE&uc z(vgT*kmNXR^p2`2jh9zG?gwu`Q2V0{1F+i%m^JaApS?EcL~l(-xs0`J{-eano#8K>pMhySMec9R>;&Q;wM^@Q zYy1Lo=e4e4;aIvP2={m3ql`hZtCv#{)HSF6`twrzWkm3mr*3K=AcQ?_H^*)Hd2x$= z;6#Gx>_0S!sJpHP<$mbT#Lu~~H)4NZ$n8wj>L2IM&~2q7Qz-eeM4?HELpub{C5wc6 zrLeAV&i%>VAFBB}Z3; zRh70CoJ$Z1r-1ypJVuHmgKqv9o>NAHob>C;z(n|A_1GQ{X#`JBz4+y{EsG{#$s~T+ za4*B5>`(dw*Y5D|$A~yDUjws^v%{T9$`^8WaVx+p!qc|W;X~}OW}i<~lG$K+rZWb% z_t&MNAE$(1VSdAaLDO!bxu5#A;21&aq!#y#`|z)-hutxoQhg&b2;A4b0D+2#XWlj_`6S(WxjX#dqPr|9@Dx{ zPHzGiK`PMihOmW(4-Lyxitw|NX~r3ce?YhBwT@3qjX%mj+S6&B%%<@yX@WKvoa;7{ zLWOrW>(lO6hb#Swvt>RlAOu{l8}%gha%m1Kwvkx~9l3w1^p+6U!^KKU@_W=+#+>d0 z%;O;SB9{W+SU=r?-7l4g@a!h^A8JnLS^3fd%6*@^()-6d#t@(V0yZRNj4yG*^?FA? zMxXGVjp29B3+L)U!DUzTSrX)&Rh&gPGT7pq6B!Qp&>(s1x~z=+vApF##qRT&V!j3^ z&VMMvrN!s%O2@tozQ5aZH9awT1^^CN;nqfxw%5Kv%3`d9|BoZUOpr+(e{MA@;J)){ zB5LHa1*`)E?98*uM6(AOPRh?G4rb@JD*iu2_FW~7)ia{whIXoS`ikW1$a=siQ;}~? za|S!thXcxIma5_H7_VBezb~GbLhzn`)+XPM^0Qg;$$vGqcfE%=uU@e~J-3>lVSwE+ z$Lc8L>DIFk$2L_VRayJ$bypT6n8S#Hqnq{p@m=1cN!vch$7}zFbDAdG_m?R)cgu(J zFQZQLF~CA!@k@o_(Eog7nl$`s8Vd#su)@$Nb#m4}QTT>SBh5G9L|Xqyh)NPvIiz!H z9e-q$_TD!xC;&Vn!K$jdN-~0~M5L&MJIrya4_i_6RqpQIJ9dNEzs;s1vh~O_zEtyr za%Gw%g^Kz{x_DiV@71>C!3q{yS12EHuL_Jb~4vkfaujeKM0@MD{i z9}2oNYIu%9zzv;Wk8txSpAp(`Z0|Zum6qtc1a*;s3r#h_t(#-}M!(>iB!1|wbfoVy z6I<-JAUlcA#sURqjn4Bg7FZqYXyZx3@7z@MWNlZhS zx-k-s7dlX;7Yw!b%}7M9Xwr9Q`mf~Uk8fm!%`@dylI`2kW>TCJ|`ET^Q; z7t#Ed=di#gA1BZkFjsC%&S@zmoUdiQu_NU8^$u}&vL%g&g9_u>_s*WisB&g zKjI#-LMLfX6Sd!cC2+!yix?{!lQU3Ip{v69MY!hKG-l<2;P01Sv#JYo)Dr3&S0e_> zoyhX}YOb@fW~AVOOugY7Y$;Q{rw^K7nisNV#ku@v%%{VmF%aCIA;IKAEATAoe(T$f zkvG1I)0~(&T_O5?V(D9y!?M!_cT`3qQ7B>c4sBn9v0r1d+O<2pS)T?UHHbMK@bO)-8$(}>Ni2#clpLdFaVqko0faSif^y>wF?mf~YMc&D47 z6~28Z`Sc_@wz(fuYXdrD`h|13R|1r*B@)3aI@BBKzja3^h0XVD{Q7F8!g1$`{q%(B z=bzE;?`{N4lKHK>3Lthy<_N&QRDpj9d+RoxtrSulHb|5AXs)`n;4s(%j+n@FJdeH0 zsYH_AxY6~4hSA*U%_Q`iw=dr`N!Bu%AMPdmvO%7QqmOh3n3&7>f)Gm~5Df{R4DMgC z0zCG00O4l+m+Gkp#P{=1g$`@B`C;G9nIfE+tCp%2>9|7GD#&24=43j{UO=6F6EzN; zt?yH9z{@GuKP`Vn&^H~*@T6PW`Ka?#V`t2 z5sS#o);>v-S{T$4wVpD&pl&-lDOco|B)(Xpd9*RVCzEZV4k}zi{s{~MC49OW`LgYX zVB?OaxgMgerGDCs> zm}+UH6b4tbAW;e_65XS?ls{o;w>XKSx|?)kWOeHeKSE+{tJfR)%Nao^^H&RgYJ7vT z^(nnb{T$mvq@V%j6|_-5BWkjTL`P;GnRYYvT<7BDjP$$Q`j`}{wrWp#m1MEJPqunr zAejvNZZdYFh8Blx?c-Sn?-H&55SAf(1~@LP2tLy;x9hH^2joY52TmX%#K~hl~P$sbv6Q+pA(b`jk%!|PPz@f&3cQc0{rj< zo(S}Jxc`e8^pdLY{@Sr{_&&ds{lW*4)^%c$NSL~t5_fmhn-$NfJ!71o6OngM)cw*_ zGsyb~*?uhx2-`1!8xzA~Y-`dSvhf>D<(0LiZG^Bt>(0Q}^)tV#;9V(xOO(E}-9M?O z7W1Y?MRuL9O&;~*YHKn-&}%dxviMhk;6}db-`Nxr9wrha>n0l6qnb3vP*Vqzxq;)0 z@=l&^&T!CFv;U1X*o@H*YQokVW~PO^A@Va-@>;%(tEj(r8T4IA-MH?5>xC^h>@0LFT_c)b%GkMTEPy*+Tm=H)}0~bnH;e?Y>q+FNBt@||CwlO|z z%qm~6@Tw9sZp0xcc{NtZt?@?_`Ssc5o10^mKTdgNm*q_B9yebe8=t*Ub+9v-vO&Y+8JVLDJXI=%6QiN9X-M3n7wD{-OCr(@B8M_) z&6e&fmG_sMki;Oq*5yC$bjad5l6bu^0~WitpaS~};U!ywyZKG-P^Iwqxezl-hY64` zaDVy3?5^n105sg_b{*r0&?Wemp?^mR#~41vW~R(z8G))17fewWXkkhc!MC-1)tCd? zN4BIskhl(@vZLL@q<1S5Gxw*F$sB8RnavL+FuGY4->8oBA0pFJM5b?~!{_=qq}BSltBr?7=dB>3SCJa*_fI=aKaY73>j_t1->cKDR9bGakd)|&XzZDR0X zd6$^1z0A*k;fY}DM-8bMH^`jXkW61Ab&k2r4)aVMc|@7gOT;4|qm3QoUL92Vm;0Em zy5IWM%H_?Y?)l}B?Bg}eaKQ=HEXJ?C4s8q`BH3~7v^(Ss1?u*)AuNzVY0;HzD~ago zKN0B@(igj$o)sfZUIr?Tv$8W~_VP>i~LQbR<_M3kMN6Ez3@-%Mug_tLGJM24mS&IM4HYZBK& z6Z54w_T6_FTo%Axd!VVqtH8DD)G~Ep8DHD=Cu%!KwXsu+=G*T&d&U{F6lb~&zsNen zvC~kV?@goZY9DVn$F1=eK_x0SQ;*4gkXxXCmi`KFXUlj+7jMFnfuk|OamuU-WN5k2 zkgL17Jr|&)fAo@47&}M4!%fMd_Y#o&Z~u~5b$`igJP6aR--dr(EhTNLo$i-TzY9MS z7&+w&TDC)b`-ea!lj?17wZpglc)^r|cVC7;QoG32f%2-@MJ|o)(MxXZq;VGe;YLC% zm*1zcYyMHkq?{3$o^g7Y3ssA4OJ~tY1Cm#64=Ql4YgJ9LT0d3*_J6+ zq3bk}4lEHA%+pX7-;>qxIspe5T>_T@X89EN{T{-hoRw)T5vcm8xEr4s+b755?%%!~ za-#(-$#W`9#8~BAHTnFX0iTKfu^Ts&-oyGOmSBwP57a zRv+nT4Li;e%(F8i^WIAU%`2+d<#A~Vew~B3{>)dlSoi6t5qnqr_*vEK(G?u2U7BFW zZ)=w6GqSPZ5aC)ne#M^*_ysf(| zQ&V@NdzMp1~;k%UebyFJZ4xuY6BMjfyYsT2$f#61Fo^?4$5{<@rsU3*$?Q9PstsefBpw1y zkAVr>Jb^CPKlMGRobpy<>Q_hseCZJK>|vc#bL^4Nh@F5o=pzi0JIDsw2o z%iX;!;s}?>S`K;rtFOMU`s<&^4gX{5tiz&ex&TghcZYNdiY#3sC?KGqG%O)qA`Qy| zFVX@A2+|;kN_X$lC>_$>Ahk;_u;O=j{r=l$p4quGXJ*dad*U|?75+INvvIYGecn@U z3WXm>H9k1Koz&kO-{YEi@%mrc>SL$yhdD>&pD1 z;CKkC;(n<3P~yKLeR>b{YDsSg6;$5_cq{S@NXyXMKD^eXog?Nx3r#bRpm_Y;=B-aQ zp#IaTR=zsHWHB|Mce&v|nA$H}Se9Y>) zO8)71Ob=X>cl5iIbGgHn zy+!ZTamWJpBRfj3)(S{>ZqAWbXGP3bbZvt|D7z$nMjz9wT^7iA%S#~cfqD<`D~&c( z=c5Upz>>P0ZT?7M|^Fom`R`bGD5*tq;Zz9e(W`F9L_T1x|l)c4@nr za*H3Tt=xU{5;zAjQj!e5D?^!W-qvU*Dm_`POA8b)13BC@)vR0H))1N0D)u(yQZ82R z`9@S449+?!FW5{BlhH^wQiXySv+Z*uhg-MbU(ZR(8z)HqcGMKL3>v zf8W9j!9G8m&f=b441@5>oPc+i+2n}>e22}c?0w>usyZG>rDY-vC@F@hpjYu>Bahq`8{cGUETFkstopXIv7R7$U#@s#`-7n8(+f34*^7 zm4U9JK8x`pJ=6&Yrs4g>&!?$Q5Rx~Qmq`ph=>Dp2=m*cBU z$$4_gA9=Re*;+RS2u;DXEV}OE|3bG;ze9BCRPkeRyDH}ozTn(2KpN%T^nIcZ1txcL zsO>O|g9!+`{g_KKFr7wq?+JLp_GBRYL~U;bX!hwPjn{{ZlhbEc3gSiGxXi!~B-xB? zR^j{zmyha!E%+#Qk_Z1&9=mIv3KhX;GDDKG0g!urz(m+y=D8Jn^-TLPa-EAG=?&PD z1H0mxig=R1)bB}&u4KVB4&ZHAR24V1B7vrpdQ4GVjDCRnK@BJ+7q~f-e4G6aTxN_< z+CNjNZ;v08nj7BFoai_j1U+*aDoGjd{7>>HcHm~kQ2XDe$TQ1G6Z&fhx6tU38of=S zykpw;J;ePa~ZZL+8P)Q0V5QlevIbK@b|`rN|76iwNxSRE z2%lr^cVSQp0GZgv>#xb84}32fGNM7n>;$YiATw;mATA23%)C1JcE(*K$_KCN8w4P9 z@Po%2Rt{EVUJyx0<(@fG=_eXk<0cc9WhyUK|x3~^T;)XVX9t3mUw>kJRpRKQ+Au-$+pSTI+o#7cR%w4xN4H#U@ZFzI7 z*4SxW0w;;b4ln*+r9r9C1%VsZxkoUX_Z2=x*)B*8{kWArd`dD!Ydi-ubcCC$Z&q6m-ZOm(|;6rLQ6ieB1zu5IyY6nupWIqj~9G5e%a z0<`38rkmgaIwGy^FGv90FcV^KD|vZ6dq<=57BxRUC`l4XCXGp_q7ezY$V7#u)se@@ z0v*EH5W=~e$9#HtwIwm0 zlh54JGZ+ANFwU{dCX<@YQF$1b!%+s+-roeu4Ztt5+_a)BpAnE-#O{)?-m6!e4U}nK zAhrGfET+B5EJ|TYX7IQL4*yX+d3U8?dE~Zv#Yb)XDbzb)c4#h_KX^D1e|4)ly8U>1 zyXy8)pxKz#F>s5FRi<9$*3KWQ#{nB?wWxV)8D|`$lEl*5$As^0EYIjOe=y%VR=jtE zFgm?L`R!||ql{|fAiTH07o}|csH1Ham9o3~t95gB^p|)KRB8hVO`8M4|~umSSW^I*Bn+K zLHsHuwp}PZDcHR-r@q`(IA9C)=NLjLP*<5jaGAh;)TGh-OIBr#Fqw-vTGfGi3tlF0 zj) z#kEfE07dZ#C|)vrZLdLmlq)RYPP6wNDRFUeP@Lq0HQBOPM8QPd0o|{3^h8>PblmB{ z;oZ}$y3umy>pA=oRYOy{C+;+0obKtl!OG*)^{l0mNhO!^CyF=VJoI#o z7zx}YXNu_}1Qab9zB(~V19x;1+v8$Wn4^WibZ@xNqOzYuJaVxrx@qY@(h!K>)r$cB ztXxph@{apPXR2?;sfrhZOOhKeS67f|jr>y(!a@DgoeUh_X>cW@L2|xY@j^MC!@ElP zUp0igGk$2Jn3-hY`5Q&2%uWF3@Ig@j8|S6B{=wPrR=z(&<9M7sDr+2>W5qC|=->%&$WM;{a(2h4dxunTe-le<)5a~`XE|KF3O3e)LM z^;8$oPy>-+6x+ipc?d3*YGkKS-G3^>tT0zqNofI__mU_o9dhvwYGk$qbZiD0l%I*W|K0ge`q%C~b zl|2rY4N#uL&n*DHkN_4$1>W7`RY}L}vOzZDNbE8&XwKEDX5>Chxp9pAm`0|^%-#bK zSNw#hY^JCBf^`0Zd}e|8Ds{E0rx08Q_zr8JIoGu}*MtfCz}1vFbyxx@L9%_#?MqSD z{v@V)z45r~?T6@LY;|r0^$(wW95VxV3ACxweB2qpI6Xo{;t}_M#+0P`M6|DEwAt05 z?u)Cqd{y(g=mHNlYm&Q}it4+wfN^?b7^#CsOU{jJ4jHM>VqMY@-kL2e>W=_Ict96zW|(UBct&)gS>>8-APQ-9CdA~%B zFIM=lvNEc5o|w#j!2mkjdw-*k(o}hjuO3UhadBer9l=?jAPRmd0k_Og8^F8ztTkXa z+l!Q5L6Ophg2tX(q*>)B<}yyyy#Qc*3AZ6$A-b9YOq|PHDZqC(elm4k&*xR6)9*ia zAHDB%Q3qUV6iO;QthH5F(@pUZT_ujsoOC${L)c!%P`*yIN-)t}Vka4(RT%@yNc*M@ zsx*W!bstA=iHMh_dvK@%i7z%cEZ|xr&836?rn=130bx+cLC2?WJ(+_;s?K1MhfG6d z)q3kr1<13H-4wgak|w(j<*K2DsBHUn6zfYg0Sk*W8~RnrkI(zfi897E;}ajsG=Ptukh%N!t~qci=I;=t6Z-2wrC2en+Addk@TJhw2Ot@ z1X;b?!hQChk=JXoXS~K%>NlJ5Wf!SigTxCpiEB=3NZY*k&;Eurv1?waIefBxB|Fa# zC8Fb|6@=Au=BFK)^~X99fZ}rFx?_Z$*6h*M)Tei=$|)2$hUdhgL`;7}EJj!b+lvEd z47_iL1t}fhnJX9QUHg!;C>d6?Ls(7bWz!Fe&&BPD`AL`l_|N7*8F!k8GxEYc1Ter8 z-eVTLax(A?{Z&1_jdH091sofACv7kC_)hNjFRimsH+V3p;>R1Dt>Z^KgQ~4K#;KX=&fSQMe>F${6Lb5*f!l*Gw*dby>q`hiycUW$vCMcLVfy=9PeMEh z!=EKi93c=ZP_gn(Tom?d>(Q%K2JZ9GaQhlgc2O)=ap%H3hwX6FiT%e2&IbNh<$R*Q zLAQs#Q^u{oB_>+{z0W26Io)7apj~AU(0egXqhp);-d+0gQ#wSs?x{is${oJ@=gt@V z*Iu0L7zAlpf_%257Uwo(X*Mc|B2J9l30o}GmZmiJ{igw3W&V7K-a7WZ2ZqiGKJDh* z$G`TK0U5idHpBs+CKq@QZZ7n%d@S^eFLMv?4qD|}sRt}Pm~Z2GSFt4hxEPvKQWI=- z_T^_6G2l0q#<|R6ReRnt;^SxRN0y|JER~w>!J|t5w&DWjp!P;J6xvX0*oV=2RyaS1 zMUm~2V`9T9^-$S)3@($~u_>bC@-zn0@Liqq#C3KH10mH0VgNp=jP#iKc}e20H*5SW z)hoGr8yaTp$XM=gmc^_x2zrx?+xxeCJzJ(5L8}lV_0a4mn2K855xbq;@{$--R7Z-; z{1)AT8zoYL>dnv;;xLr~j!1d*p-TVr&K(zQk;)@k#6GhE;Yi%t z?+^#Yt~U1Cxt=V*jAnw%!EL@#W^;dq;v$Lv;0Ln45UX5l<6AV4s1wUilh?mob8H(0 zfH4tqaobf=>D1(UI{5cdOZ18P1J)h@0jtgF3?0cK2+(aCk~+xwCm~(`Z0V17Vex74 zixdNFFR-(pRvIb|P8bRrX{$&PQ0mV1xTQ+}t|H2kFawplJy*&GGheERiD-7GzhsSt z%)txAYI3*xOU-}7G%waD#WFEuQ2HKU9Ntr40f~|h{mJE49R#{OZ{vW9rKvV z-29>m&=L6J&m{>u*xKkzVMqH*)=J1?M0uX$#dXqMpTo_F!C%qG(rTA;s%eE*176^3 z@1WNl%jemEZ3v){+RzHBKJY3xi9ThWqWpn=aYNRWG6 zw2>~X#lCHCdFIb|6efh?*0JVMVWdmqasWtfDiswKK=%T>rs`ayKD0sh(#+YMmZB|0m4am5s1Lh#?^QgOak zH$S_!lr>)UKj4dbZdgN!fh@`+_l`>-6v?T`Z(r; zKE|PFJ-`dpjv~FMgV064;#ymn7(;5)W%i7;uQ`Q^Kt~RiGj^UQNnWkkswvJ3Lx~u2 zV~zYJ!agQN$XUH}2ed^UPF#gs4t;&mUlo(2=Z1CnKk%=z_Yonb!%-SFES0mX7fmlq zVcp|~mKx&o98f_jZUrbhW3dy-;nQsa1^faLUBnv<_#^>7pGz}gwWw@oMW%LyEk~XG z;eLguWtBFmiFbVBDsv}-UbyIeRQZ#31<`@R%BU~)B5JEbZ4w_{tHImVRjdYrJenI>Z|=a@!~5`8gA82%34<`yHe$|tDj!?$ zb~DmLcz!z4vdV7e!9*299s3(DwxXwjgr^k1b28jnH6mtUI37YyU-K75o!7ZzLZ z#7hQ_nP-ik2bX_Acq&)G`5<|~fN)+Xe@_k+QOM|I9_#zmRs64?m1D`xEMU)FRQ1>q z?q6U)0z|751@9_+4$}G8xPr#&-Ec|Z;Zq9koM?sVB){J#I#fQf|N6pX5=;A9+7}&A z)kzmN1XLt~??{zKupCY|`IhG7KN?v5&#DUBLvc1-36!J>Wx+J8j;yP17Awk1i)#CG zw9_UE^rSRoL(bChpO7TkxMMniH`$HAz2|RUp0&+jP=cy^1;sDV_kXCD5;ykz?#eG6 z!r%yPe+l?042SvX#E1NH*a(zzlSUD;KxiQDEQ7&(eat`mIJg#WgCfD<9n5q;e=@`d zz3L2|`o%502}mB71T5Xds)f^I^{AoxV-p?vrH&2e@95GGM)3_j-11A+W7N;~-HG5h zk>I=+#4GO`d)CVYm9FuH<^V&|%ANsjigq_+=}aWs`*pyQiy+5EWx$25v;2I;-Yy=0 zUA^x8azs9QVW!$~=PXtDP@(x<$Ok5_31JWfj020w7sMsgu&j$${`ISugxfI_CaJc} zT-KtOpx;x$G2L`K9&x+QZsLM)CuHY&M{Gf(VP{Byy|Sy^`?}q0yi?_rJ)-dSR}Xa> zYvnu1kd&g>rR`NSRW8Iw_URbJnm8*<}ZW zj39Q`9H|c^vT~Wv<)Oxa^OyqWEU`*(;(ZD73c( z<>_jmMdOjElt$CB7%{+oA%h9!TE89u_1ae=8Lj(_u&XckyB4REmv`D2=N@$~ z0CB`F-oF+-y9<@$vH?DuJdW=r?$gTxzEQPR4MpenQaiicTw^CxzwG;U*VN!;(!;I#PS`6}Q-^qKh4V!gUiLBS{kZN%B?NDbiW%dFe>l!td zI4C!m)B|f~{Sm-Vv5hCEa+exapscr=t<`tA2-rKLUP3rEU%b`!fF}A|DO^U-3T5_5 zcCYWDmQftv**e#P1ZX>@Fonf`@%h%i!5j)u z+ZWt!VvlAhPhQ@E%{_(^3W6nb^J-qP9kqqN9=}cQ)p`CYr-<$?^?=a5*-PrM%K`As zR*}S|FtX{rEB+;8I3#<+Ny4j50v({wQE&1txzgzy=q(uc$KNFbsB~YMO1H;4Jit=d z49Ll5rhmr%v*Pu}o?FQGiB<_T_3%@XkY7qbKrePM6$3PR!9X$bwlcT&7KPa1^Gpm~ zP{VFghPPG^oqVpb09-$~>iy^6b0z)=H#;{-pbe71W^v0u=qP!Lh05*>^lEuHD-Y1fV5zoTW$;pU=RckP#v)9 z-yPf4IEsk$KSdbTenRU!RuLZlT|NmKvv3m|DCwI%e#VZW#mSC#KVRLiA010$3(*W9 z`}|?j@mNgivR#1c`Riq-n_B9D$3C@my{|DduXcQvHdBW)RX@6WAFR^NdPw{nI~EO+ zJHD-dy3*1_l{XvZ9@JsP0sSvZR$=aDRr-ENXb>qi`!lSlyX1Jp!#_#hHR-_&Ay@-AJK6iw%&XS-_8OOrd5|`;9z^Kh4W*t>*Ee7w zny7{*h1w;dSFs^33HD3CV& zAN9-N7hpOqT7BxPyVYUcdwQT0Fm8Vzt`KBm*nA%5xgfG?8|jMaCi>p#yYfJvzq66X z$bD-=&fbpiiJKwzi^vJlp8$STb9*VhN#W*4*xv%LUZ z(u|D|)0pvm-qVR}nPriV{_wS~jht#kUR%J$xHSc=uQC z_C0Xw>O_`zexfV3g*o6txSLN~C6q~fmE9L}#_SjnpqpOHJ*3fTty)qup%L(+`UOKR zT**~$fM%kS&yBMBqPf-yg)%XW#Jyjl%&m>t+9yMIhET3>S1ipB_bhCOsZYDQe))NNyCogr4?5kue%f+FP(b%R;@u;bL1BF;lol82H_YZ4t_tJAC^-C zan`Tr(0cfN2m^dPvzYqP1sa`KN#Dy75wCvgAr8m;Sivle18tT#?H!zEzbzxaWA1?g z8&-(en~K&*_!^=;Y!7ThV_l^$8PfqTRgIk}B%XUX1v2IDG<7)th>txU7dLX6%YnXx2oL-LhyOtl6P6GH+`eTfDP44 zUQ4Tb{aJC}Ot*De#jYI4t(*5;1Ph>>l0OBK-C#%yxDN9i7{#K}B%c2K0~3-$?r+g? zF|J0Jj9<|O4SxD%K5crwUj`rQ0H;-}%X|Y)>fbiS-;nLRxTW-<5A`|rD9!n2Pytc6 z#@v0T;QKs((oZ4+=dpVvCgZC9=Y>a;$Gmd z>w!|i5&Z^iD2?egaUPDn=3NQ#r-RoD}&iM-^?P~fX+V% z7%SvBi}=R;PxZg~@STb=ceuws>donTtS*lUP~5$4;I~PU&KdlQndV$&<1H7A(F4n- zJ+)>XLyd#R=tZ?J(`62?fnyjixx!@LIMy4}g@oVMNyR7-2B=GXZ%0wLQD$sR#0)u< zV@D2N_*eW@x&wjypvnhwo3#_gM*1j0$F0!c$7Vd%RObZsXWh6u`y2mhMZzzcHaI|l zrjqgQu4R}%r12+KS>hROWh5>N-k2#F%c<*KM%<3T4o{OgIVLZ`KdP|g5ro{R4vV)< zH$4@M2O5?)@D`{Qdr95mj2)ecu}i8X?t387YDE?VHVn5;4v%hy^gmiX&M=d;0<%rUMnyk|#^o`gz?e>Xg4q~`}>%qm6VE> z-Ra=Cak*-1^iN`(8VVa1bVLQ9=Kl)MZtW2K`R)WSoN+bdek#{prHv-yS1H8*Wfgoh-Cm-tF4po>p5Lq z9ASG+}Yr`i3Xxhgrf2z(5K!dS&4zQ&g&@3 zmyoh2c$)8>z^Fj-6b@Tu6lPX!AqO|U=ji=CuC!DI1JV{I_8zbBHK8^^oxG;&ePf1; z^552gejZwrwL#`H@=G0F?n@W@aVVE>O#pL(n~+=AthJgj@1Wn8#aHS)>dpekeM61! z9vyj8Q}~F_-7nfplfBmqXMHa)#71Yu{Y$1xi9`>%JTOauvvF6ftvomr<)GS?aQd8l zuk~JLx0l+Qn*f`ge(ngNW}DH0DO7+%WR3@lPs42!bIVi^sS~eQ_IowTVTcIH9)T)w zi-(9X&38-8^HaZ&0L3oTbjOG&zTwG=`=v)a$i*b#4wT_^k0@Mx_)jpH@7n<1qxcY2 z_HHknHRjN~Z*|uYC+Wp^g}v0ZdTX+`kTN$EeBVY6?V1zbyHSmtfq?EjSaW-e!=^qG zpk?Tm#+uCIP6Nk{r8dN!YiADNshc*QCgzkK^%rkn?fM;*ZPb=U-lq_dBOMbHoT;}e zn}_hbjq~j!q2$HrLy60X`kJ8?Sv!OuGCQML@({QV8MYg1L^b4yV3$IPlsr+4l=?Z) z^s2NVMnfmw=>inF9NsZfX-6R8OV-!&;C&Lx&siEp$pWEt++!4;Zx_0zJ!J9T#6v!G zZeid-5N-u^?6qYL^y+jMmmAzE9hh{-gX2a>Hm`|5cva>FlRm!@Mc#z#t;q5qTsWyq zMdm@l!BKao;EY~hW=Wv<1mM~?R^!*~4RK5Tz>UcX-689s|CVt&rpG9qOW{DfqTVXa zzbYHeYDm#U1TfDf`dH*z35z>z3)_mSIJB@mP+|B)_c#cKl3ABeE>oumqNv5g zSMblX!t+ABiJwZ&_{2B(c@V&H|D#qQq9=L^MyvmNHji(o_fOmfV*GI_6xL|%U$qT~ z(U-N3Sjo;<38*o`v-WyxTU@&{#sAH~vz`vwgEs|9j9%MJQ$y}RVQk0rWB1>Ih1tzW z&refK2Bm;S12<9igIE5+3HgnB!*!-?qQc%gt-ucBnmcGB7HC8d)svy1w$FFx zb;5YAfif)?l}9Sjqn)O@F*Ak6s9>W6gBT!OAD>EfPf#o7_kKx*bY{bpq0(@bJer6D zcBnI6yS>*WS7LwY+a2&umc7d>e094}j~_off9aDk4QP$_HRY;oI3j{uXlZMb@l#u= zU#ypi8@BJvoSW?#6CP_H0*vRX9u9U1&cULDAzvRnyEn%Adr?ELDMn!G--gl*xQo#D zz2|tLztUzY@1A#H2G~JEGo-%|?gNi;Mlvjon_uV*DCw3X!tD#4~RHM0azd_1@_9(Tn9r?^2= zlk?`rwdMQ+lW_QST_xTpAmC1_q~Fipmvrwbh#l?~zRcVf&hcbo+Q-V6a89iM(3UsW zbK-(?=bFNA7Qc|kdc@D{$>P$0VkamAT7(}~QRR-S+;3uHdwxr3vNQXm=lTUF;<})r z@-U95dh7$qOzIcbsmeW2*m4|vT65%f;JO@Hjo2L5cxR;T;?|KO;v(+j>{<}=ceU6@ zJpoIgX81B~`!tEVCSX50Eq8nB7`CFBnN!3UPQ88AA(m;nV{!m&r$aVG{esfd0gfFwiaG=??NqI0|t|?Ph)(08~|5 z=?W^R8GtqUjO|ta_+iUfi0v(8OllxN;BxALiQ(t6)2e6<4)%_t*DHI)s71+U8RW=% z!RJX$g|L&T`)Bkqzs~ zEHpL>3@@7}fD+?@sYU(2PPG9HE0<7piBi`o4;(mtICaYw{lORLiELAHt&?^qvL2Y3 zTZkHcq&oP|kQEZtkk{MHirt1Jkj-56w!;Ixm2COyjk9cIbUY^L%H_%_0Pd#)f@eM3|5RZF1tX|KO*7TbM)MFk~$aNus z`{|GWZFm=~i1GewF&bc1;kL(EMG_M2FQEmz(i|dJsnoGUg&tOlP%qcYvM*-*pq-l7 z!PYER_I(l+c;fU~AbHLl-8us!q=BGVT%ZRBmXYu_rafafGFkKH#FYRwM1Gw`z8+#r zGU&sUR{Zh;puZzJVhDxtTHs5=GJ$Q(pZ5=Du_=2LP_8QrrM$yS|MHGKm-me0(fJde z8YoU4NcywKq<<3lCKSzqV7g=`!0m+pS~B?Bq1?Hki5r;eYK zYj4m9Iqe2kG!@`KXrW+{3R6s5d4A%%-^Y^Fg#9t$KD7E&<}W!ADoF*G3?Hf8}1xS(ay_zk>z z0dX@{zWlg<{cm@RttP{qlGg!+OK1xDX|B(bAP{zPk9kVElI(sXyvQ8b(`AvHSpSp|E8k2g6^L5Qs`Oor>#e}ehAOc zsO%>Y2_bZ-G!VQO8dt}?8|yTNeLOP{DODcl(&DWPYd$^+@t_3{44yH!?tYw_?D`^e zlJ!l{ufQ$9iVUC!*@hx0g^zCTDu}G_*m8XaoZZB1s(!JzPU}$6+dg}o*_XnrZLy16 z7!YuQ6YfMq7jROvWVcXC^YY@;lf`)b@h;}ilp6s6Z*8eE z)kb&wy6IQwHG_p&oG*}sg@2hH4q*ZHDfY2~mPL6EVq<8rPZD}Ynep`~p!;(JmjPsD zm&&&U*B^H95?^lSaS!sysz-(8~YO!XAq?A zC|b|AHd!(o&DYviHIIcUD-F;n4JW~RufqG0YTtfp9V_x&@{B&uJGoem=T81y@sNAC zBzkCr+U_`k%F#~?v1+V*L04)2+O4lk@R*q9^2yojvk^FYvEL#_0`|yb27~oeby4~F z+A!?0C3QZ&AtarK4WL-y{3u>v;4Y8_;?_(JS%g_Y$*SRflA7d?_VzE+S}cO(KhE** zUqvUbQ@0~=QIR>zl3@+i8}e%&A8jX4_|6cCp{$H^2pmH7SgT)N3997I5{C1Jx+Imp z@B)5VZhU()f_m&!4B%a68wr@E+zf2C`~R#dExF~MziUjif?_Qc$*;Q}I7mK<23x$d z1DvB+;-y=|N+QZB{VQ9G3@2UE%jltX>J_AIKjc0LF+fRw-QWL^>Y-fM7Lpi&l1s%` z>X0;vDKq)R7ttqLJoU^1Qz&NKo}@vOr~Ol+)1$oilZp0OpaYBEQ)E$(FDPV1~f}`ly>2%U=9Zim7P`eUq9cxy&|v z>>(Hi+~p(&ytnP23^zKZ^4p$8*#bDcPY^w+{1|9}_`U<+{PzU%P=WhsXaC}!%;z4~ zZr|=mV;ITz;18pDZ_v_i^KxfmlF8b(yYv8;9dKwqRvFu1v^s^)^f_?!4S()(i2!zq z&9To^#@Sno(5v5_Vp$&Eeue)Yb0)Fo;$0YZF*q=`R^CH&OpJS}AePs$ZeU^&=%p*E zxdtTk5Qan2VWMgip;y&JAy>aiF7*Gcu^O)D;-h?jPm7}Vsyb&8OeO!sNnp3ivWd<- z$tgblTn}U@y5aJG?o}xYwHAN&sAdJv?{`C_sx(eN{8PpTn8$mx1;~< zvdpFDMC&=ZurD3WCiBj#r@wlU#DK|?2ZG-944G%R{Ib|}KC2I$`rn$p$TklQOvY^5 zHf}#uvad2jtBb?F?AXX6idzmm9BgYUl$2ca6W6GL*jnG=uMO8hIp@#J-5;tZ1y=Mp zVko7R+9?c9VYz!bI=;LW!s1+!v*I^6Oxz#07-xh|<|{(1>)$9LzIZg?NkKiE4~TW^ zp+H^NO+9w$+fVQQ+v>r%_r9X$57xZe!eQ3_0OF#GCb6O`rZoHH$Y;?=Ci1+$wQ{Gk z(iV*?1?B4R9;8NAB*l3|9wOtIGkdt(*MtttAC0dxEcbey+)ZHv0qK`OSlZ~{@FH3G zBJdfzr`LA}Zd-%GH-&Jn@uyc^AM`h!pHWOVuq5%gGlT(2_-;Y4>H4LN9q+@CJ0r1a z${uuKKpuzL^T^a)_=tl+5l`FQ+(z@^%BN^tVHnrIC6h`^9U?4Xxn{62w!adKk7eAa z%VqM)p0k|&L+e#P!+*m=$9*2yUR}Ms-CQiXu`ea01XFg$w43Wk3d{FGPJOF04<15J z0Ffa$$hxil6$51Mfm7gE)`4wZmaPwlXiLINfcU<=T`lyQCb{;GJ5?A?OfJ=8#eesQ zk9=m01W+w{TufmcpcqvkY2Jfk#|{nS+s>F!kX+pu=|vFRpaQe}qW@l7p1xjhP0$10 za{(3y3`Vb*<4EkCyBDtz92heR1Wu?kz;3Ve&)A;LGx{u6v+2D;mCi8S;E-{%T##;F zEW^_G#0OOSPDI(exWiW?(-#9Ye@{K2e&w~d9!uUyjV*Nw^$PGGu^#jB-}P>5!*(96 zGnmgg4 zcczyHkZKQy1d+t=Q0Af>h1_A+ej|M;oiUUc=&voSX%yAvk+XZxElb=D_P zeGNO;u;?^r@}9H=6OTZbqfG$)q6o}jLV3*Cul+QO46DDp<3>t74eDrI9@t|}F{*4j z$R$5?R&>FZaoqL;3jY!0Q7-w83bd(iHe0oU*m2MUgCwr7Fixq1H1XdoTNoov#{dDm zMb#=MQ=H177v(~2x`($A#4k~`KR&nD4@+`)FI)Y`RPg~TJGk@m{gWJ^m-}VGTMO~= zwjG_oV*pTbS?n)c*PQ`}(sScayhwsMEev3}(#WIp*XVQ;sAR5Kz9L+aV{1nE28V(B zvHKIxt5*p%%=AXB3okI61zp-8^g?(pG~2DlT+C^E6nM*3WVS(`85@7sfHW1&o{7}U zcZMv+V3k8YkMY>Ge9`PDfuAI*T`nI`^p7Cz3AT4S(#TB{pBW`izxtxLX263aG~QOv z-`E4f;pw*yX1cCy>GhWH0=HReTE*i#R=^gXTUd8p$7+AC2s2^ zyVsj0rW!mZ2HB9yggVeAQ1c;(;Z6-8i-9|xQa81>Xi`8g1#gP5?j(LbTqKprqIryM zaL=OUrSYc3tU33Q_iK7M5WYkI1d_fxi;xu0#I~kgInkP%KC<4j{FV4XG7LO|!2pT7j-z2&4FUATF_ZBw~`=3n{M~jb% zPhVql`SVZ+2ErHCu;HTF`BKs1Ti%O1|9UzW{CC-c!AtM-d%Q;o9C12XYlhYqhfeN~ zM+jZjI_}kzRpDjd>q;GQ=|X+5fmqe>Nn})-Fl_l>PcLp@P@=MRq#kyaVU~y$xh6jVgt=TjHf;MO_-S zuYv;zwMwXfkV_<{`b1e!o*$AySST|<@v5XfUd>-g&^0JFJBgn<$LnCgy8<|UKE$`1 z#EJ3N@8&VaMjO-s;<|;*pL`Xbm7PVtP?@@7>ZJgD(V64)Nb-nK7~Xqz`(-3#E4~@{ z_$`kzg_vfAOU}KsY}`OeD1B4?xAbxd`5*OgD#J!csQC#2H51V-GX6xvlBg8H0zGeZ%s^WIXtnCw|s2!5sPC-%3*J`7+ z`C-OSXh*-K_{3RA&>gf$u!qIhyYVvoooXlB^X#^&kU1u!w=nJZoa4VCpyOWaKH^xN z>Xy8y96X~~kLmH3AXwj<-N8k?ZzQh|R=iT`tTvp8MhXG>6GZ%C#PVNoX2-PZTdg6SoNuG1!Hv~+oyFUff+2|Tz%0?sO0>I0j8L%XD z+X+4n%LdeSReN*DcGaA0U}-#H0F#$>rB0yx_g|SSM_pv;v-jkNuT9jOlJL$o-7RTdj(4;ObQ#6& zOBLalT~ZHP_{g7z{I(qq{io)<0>Xc;``;e?PKKURPI4;7uEA+tB?bQCgJCKuc~>g0 zjZfG@gJ!W$d1K>;jE)XXA5m$5>qQM&W6i9)CorEaVDnJK`~QnoHPY8Ng7CwTN!Mab zQJ)XwA0AVUR9IK0;a=O^Kd9vF$bDYyZVm@a72dr-V0Gn~5_lF=>pJ*@C1KtbF} zq!x8@UW3a?UOh78P7eYi6iM%?>`YEPaPTRqv8aGbj#FhihcM?M^Ji~`*WELr3Xruh z*IruKUAMa0m#{X$DkqgfLdvbd`6dN&2UMG%3gBh64DX$e>dEn) zEYD7;X+BDGgtTT^l#il`lb_eC3Wr!=S9k#lKrfOldgS`VMm!hS z87G1Ch*0uX6k8ErUS88lU)%6_a-iN|FNT|0Yba<>^~Wg)v}nw9A(}$`7^sOrHLs

x5?Knh!0y>25K7qKbFoqE~+O8;IvYL z(v6~olpxYAh=Pa+0#XMkEg;f$pwg{KNF5<1-F+Y_Al)t9apVC9{PvFDzx#P_ci-;p z?7o@V?^J9>R*WebF(s~&Y)CCGx+|Gmh-_xkPDuP~kIS;8n@#NY7p$>$i zaOSZ-#af$`N_Uq6lx7o-!POEjQex1gsR#-eY%%;P^{P%4*lvKzei<{M_qNi{o7y~@ zvRgfZ9!6gJ21N+2Roz$J@tL6(FCYI=^Zw6$zyQ+0YVG|9IrL^&B|171)YVxsy;34i zZXaBq1o3&kv>T8&#|lO1S~sH5tT6sDcCK2R^vbNf^1E|>z>d*X2yl_cOh$!}<^`0w z{n63L_C^oDSf-i=F6k7=Oo#s7h?aC02M%SmBe(7H*hBfxS*8wU6+!=W99d+niQXry z^3JH*;Cla7u^%_az$&-th)h;>FUFz44(H>g3ikqHm}0D}FC2FiH++rsR(WRX>&(9z z$phM*BtTv!xREZs(UdMCb!;=cO#Y{Y_+{#cX?bC_%xI^g@8)K`kt1(B8P7wW_K)Xl z?9jfid3;>96iH3*XA@rP68ejF-RLR@A3^gzq~}*f(9GB-QH4s_i>2?)KheN3M;A7! za+@@caXl+rF8cSeSEcE(-wf+&RUMDM8?0uq)wH}FH%9YgQ|qS3;jr9-#nqd| zHfdR76566?KKl>t0Z?znPF>~3y&hGvGrh!TTHk4s8ggAW3E+Ung;Y$_je-l@JD{R?eP)le2%E0#jd2T8xj|J+7ofB4v%wiqBip^h} zz~I2zUV5;%|0%YFJqtHc1;`k_S9RU- zaCQ5)ssEOaPiufN>7JL&cDDSV;`Rg#mP5z$kR(Ct-wd^TbGu$&O3MyIR4ZCqf5+y% zO=Pik^H2<4;{>t(Xttg0D;(a_!e|!YQ&+BebL77cum()vyw+DR@Jeh_-u%eb4wgN~ z{9Ca3h}&mAHt-3uqL15-#e+y%oT>hA(KJyCa<)?{%bMZ-u8h8V;16ZhbpIU%3UqrB zp-KM|y{j13gz5C$H9y#)g~9~!smMw^?tJbSGbF8u(Pj>V&g7By6-{|rqKYbotKNPQ zzD|mUXUYq~q5iHqlKl(r2d3(x1P{?;u)^hfc$-}{$(Fc&zT&T=Z-U&?19ea?@*{`u ze#wpl^?*SPLH8}V{d4Ne)4}e)dD~JhDDwLCqd1Shtf<@ZV5T`Bm1*)@$oA@*d@7ol z+R)K()mz|M()7$PHenWa6qh`9vrT~m6Hoht#=-RI__V0$+Gc}wJE>sKVgQM-XGSc% z|Arnq-P(1<6<_r+{>helMk{==Ir8?q=tV+8x^~OgVtTI*=`z9o%6;AHXSmL=qFk9oirJf8T2isW1TdfKU2p#cEe%x+dK%vMJZ*ME|}+ z*ZI9tPMc`Zys*yTG&z&xjQWa^D$PCn>O=t?%^1Q|Z}}krdesh_7Q*Vi>@%4lX-FU( zwCxN)ujpX<{Ka2OQk9Vp!v056=(NI zHtjYV0f@KI%&s1XgRX+5Mc%VHjS*z`Ada{EsaKxGCFTTv> z!a&gZY+YGK9_JmR1t1iofT#MCced_#e$Zu)n%>WrYoyO|JFvZ;(n!io@LtH?7_HO}!(WUdW_$Hu3sat≈#_+TJqIquraqx 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

#$352+ZA6tKN>55z;` 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

qHpJnIo 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

wlvjD7IW>J*>$N7pAR;xP`cE^_jpRY-dhS?a$c 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 eQkxe6Arqi)ceqK|hYc&<%HAm7ZU$cl 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%0Aq(BG@Kw^kD47Cv%Ko#BZI9{JB!Pa8 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 DWNLBm literal 0 HcmV?d00001 diff --git a/tests/data/adb/imdb_dump/Users.structure.json b/tests/data/adb/imdb_dump/Users.structure.json new file mode 100644 index 0000000..e5420b3 --- /dev/null +++ b/tests/data/adb/imdb_dump/Users.structure.json @@ -0,0 +1 @@ +{"allInSync":true,"indexes":[],"isReady":true,"parameters":{"cacheEnabled":false,"deleted":false,"distributeShardsLike":"_graphs","globallyUniqueId":"c2728580582/","id":"2728580582","isDisjoint":false,"isSmart":false,"isSmartChild":false,"isSystem":false,"keyOptions":{"allowUserKeys":true,"type":"traditional"},"minReplicationFactor":1,"name":"Users","numberOfShards":1,"planId":"2728580582","replicationFactor":3,"schema":null,"shardKeys":["_key"],"shardingStrategy":"hash","shards":{"s2728580583":["PRMR-1vqwuhks","PRMR-bvgkeorm","PRMR-zpamyasv"]},"status":3,"type":2,"waitForSync":false,"writeConcern":1},"planVersion":10405} \ No newline at end of file diff --git a/tests/data/adb/imdb_dump/Users_f9aae5fda8d810a29f12d1e61b4ab25f.data.json.gz b/tests/data/adb/imdb_dump/Users_f9aae5fda8d810a29f12d1e61b4ab25f.data.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..4eb3a4cde9d4c48946048a9bfd2409201e42d2a0 GIT binary patch literal 16717 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 IBOu`a06f>3@Bjb+ literal 0 HcmV?d00001 diff --git a/tests/data/adb/imdb_dump/dump.json b/tests/data/adb/imdb_dump/dump.json new file mode 100644 index 0000000..b2a69d9 --- /dev/null +++ b/tests/data/adb/imdb_dump/dump.json @@ -0,0 +1 @@ +{"database":"TUTdit9ohpgz1ntnbetsjstwi","lastTickAtDumpStart":"2732644865","properties":{"id":"2728554641","name":"TUTdit9ohpgz1ntnbetsjstwi","isSystem":false,"sharding":"","replicationFactor":1,"writeConcern":1,"path":""}} \ No newline at end of file diff --git a/tests/assets/arangorestore b/tests/tools/arangorestore similarity index 100% rename from tests/assets/arangorestore rename to tests/tools/arangorestore From 51b883cee5a6c5824e4e4286f87a1eea22ebef15 Mon Sep 17 00:00:00 2001 From: aMahanna Date: Tue, 2 Aug 2022 00:34:26 -0400 Subject: [PATCH 05/37] cleanup --- README.md | 6 +++--- adbdgl_adapter/adapter.py | 10 ++++++++++ adbdgl_adapter/utils.py | 6 +++--- tests/conftest.py | 2 +- 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 0fb788d..c5a2401 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ Also available as an ArangoDB Lunch & Learn session: [Graph & Beyond Course #2.8 ```py import pandas import torch -from dgl import heterograph +import dgl from arango import ArangoClient # Python-Arango driver @@ -64,7 +64,7 @@ hetero_graph = dgl.heterograph({ }) hetero_graph.nodes["user"].data["features"] = torch.tensor([21, 44, 16, 25]) hetero_graph.nodes["user"].data["label"] = torch.tensor([1, 2, 0, 1]) -hetero_graph.nodes["game"].data["features"] = torch.tensor([[0, 0], [0, 1], [1, 0], [1, 1]]) +hetero_graph.nodes["game"].data["features"] = torch.tensor([[0, 0], [0, 1], [1, 0], [1, 1], [1, 1]]) hetero_graph.edges[("user", "plays", "game")].data["features"] = torch.tensor([[6, 1], [1000, 0]]) adbdgl_adapter = ADBDGL_Adapter(db) @@ -86,7 +86,7 @@ def label_tensor_to_2_column_dataframe(dgl_tensor): label_map = {0: "Class A", 1: "Class B", 2: "Class C"} df = pandas.DataFrame(columns=["label_num", "label_str"]) - df["label_num"] = pyg_tensor.tolist() + df["label_num"] = dgl_tensor.tolist() df["label_str"] = df["label_num"].map(label_map) return df diff --git a/adbdgl_adapter/adapter.py b/adbdgl_adapter/adapter.py index b0fe61b..7917bdc 100644 --- a/adbdgl_adapter/adapter.py +++ b/adbdgl_adapter/adapter.py @@ -131,6 +131,7 @@ def arangodb_to_dgl( for k, v in meta.items(): ndata[k][v_col] = self.__build_tensor_from_dataframe(df, k, v) + et_blacklist: List[DGLCanonicalEType] = [] # A list of skipped edge types v_cols: List[str] = list(metagraph["vertexCollections"].keys()) for e_col, meta in metagraph["edgeCollections"].items(): logger.debug(f"Preparing '{e_col}' edges") @@ -145,6 +146,7 @@ def arangodb_to_dgl( edge_type: DGLCanonicalEType = (from_col, e_col, to_col) if from_col not in v_cols or to_col not in v_cols: logger.debug(f"Skipping {edge_type}") + et_blacklist.append(edge_type) continue # partial edge collection import to dgl logger.debug(f"Preparing {count} '{edge_type}' edges") @@ -160,6 +162,14 @@ def arangodb_to_dgl( et_df, k, v ) + if not data_dict: + msg = f""" + Can't create DGL graph: no complete edge types found. + The following edge types were skipped due to missing + vertex collection specifications: {et_blacklist} + """ + raise ValueError(msg) + dgl_g: Union[DGLGraph, DGLHeteroGraph] if is_homogeneous: data = list(data_dict.values())[0] diff --git a/adbdgl_adapter/utils.py b/adbdgl_adapter/utils.py index c0122c7..82bd62b 100644 --- a/adbdgl_adapter/utils.py +++ b/adbdgl_adapter/utils.py @@ -34,14 +34,14 @@ def progress( def validate_adb_metagraph(metagraph: Dict[Any, Dict[Any, Any]]) -> None: meta: Dict[Any, Any] - if "vertexCollections" not in metagraph: + if not metagraph.get("vertexCollections"): raise ADBMetagraphError("Missing 'vertexCollections' key in metagraph") - if "edgeCollections" not in metagraph: + if not metagraph.get("edgeCollections"): raise ADBMetagraphError("Missing 'edgeCollections' key in metagraph") for parent_key in ["vertexCollections", "edgeCollections"]: - for col, meta in metagraph.get(parent_key, {}).items(): + for col, meta in metagraph[parent_key].items(): if type(col) != str: msg = f"Invalid {parent_key} sub-key type: {col} must be str" raise ADBMetagraphError(msg) diff --git a/tests/conftest.py b/tests/conftest.py index dfe1477..17de132 100755 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -5,8 +5,8 @@ from typing import Any, Callable from arango import ArangoClient -from arango.http import DefaultHTTPClient from arango.database import StandardDatabase +from arango.http import DefaultHTTPClient from dgl import DGLGraph, DGLHeteroGraph, heterograph, remove_self_loop from dgl.data import KarateClubDataset, MiniGCDataset from pandas import DataFrame From 857810f250e3d7bdb6e94a92052deb5ebf7c4cfb Mon Sep 17 00:00:00 2001 From: aMahanna Date: Thu, 4 Aug 2022 15:06:10 -0400 Subject: [PATCH 06/37] checkpoint --- adbdgl_adapter/adapter.py | 216 ++++++++++++++++++++++++-------------- adbdgl_adapter/typings.py | 7 +- adbdgl_adapter/utils.py | 10 +- 3 files changed, 149 insertions(+), 84 deletions(-) diff --git a/adbdgl_adapter/adapter.py b/adbdgl_adapter/adapter.py index 7917bdc..272b6a8 100644 --- a/adbdgl_adapter/adapter.py +++ b/adbdgl_adapter/adapter.py @@ -7,7 +7,7 @@ from arango.database import Database from arango.graph import Graph as ADBGraph from dgl import DGLGraph, DGLHeteroGraph, graph, heterograph -from dgl.view import HeteroEdgeDataView, HeteroNodeDataView +from dgl.view import EdgeSpace, HeteroEdgeDataView, HeteroNodeDataView, NodeSpace from pandas import DataFrame from torch import Tensor, cat, tensor @@ -15,12 +15,15 @@ from .controller import ADBDGL_Controller from .exceptions import ADBMetagraphError, DGLMetagraphError from .typings import ( + ADBMap, ADBMetagraph, ADBMetagraphValues, DGLCanonicalEType, DGLDataDict, + DGLEData, DGLMetagraph, DGLMetagraphValues, + DGLNData, Json, ) from .utils import logger, progress, validate_adb_metagraph, validate_dgl_metagraph @@ -106,8 +109,8 @@ def arangodb_to_dgl( and len(metagraph["edgeCollections"]) == 1 ) - # Maps ArangoDB vertex IDs to DGL node IDs - adb_map: Dict[str, Json] = dict() + # Maps ArangoDB Vertex _keys to PyG Node ids + adb_map: ADBMap = defaultdict(dict) # The data for constructing a graph, # which takes the form of (U, V). @@ -115,30 +118,31 @@ def arangodb_to_dgl( data_dict: DGLDataDict = dict() # The node data view for storing node features - ndata: DefaultDict[str, DefaultDict[str, Tensor]] - ndata = defaultdict(lambda: defaultdict()) + ndata: DGLNData = defaultdict(lambda: defaultdict()) # The edge data view for storing edge features - edata: DefaultDict[str, DefaultDict[DGLCanonicalEType, Tensor]] - edata = defaultdict(lambda: defaultdict()) + edata: DGLEData = defaultdict(lambda: defaultdict()) for v_col, meta in metagraph["vertexCollections"].items(): logger.debug(f"Preparing '{v_col}' vertices") - df = self.__fetch_adb_docs(v_col, meta, query_options) - adb_map.update({adb_id: dgl_id for dgl_id, adb_id in enumerate(df["_id"])}) + df = self.__fetch_adb_docs(v_col, meta == {}, query_options) + adb_map[v_col] = { + adb_id: dgl_id for dgl_id, adb_id in enumerate(df["_key"]) + } for k, v in meta.items(): ndata[k][v_col] = self.__build_tensor_from_dataframe(df, k, v) + et_df: DataFrame et_blacklist: List[DGLCanonicalEType] = [] # A list of skipped edge types v_cols: List[str] = list(metagraph["vertexCollections"].keys()) for e_col, meta in metagraph["edgeCollections"].items(): logger.debug(f"Preparing '{e_col}' edges") - df = self.__fetch_adb_docs(e_col, meta, query_options) - df["from_col"] = df["_from"].str.split("/").str[0] - df["to_col"] = df["_to"].str.split("/").str[0] + df = self.__fetch_adb_docs(e_col, meta == {}, query_options) + df[["from_col", "from_key"]] = df["_from"].str.split("/", 1, True) + df[["to_col", "to_key"]] = df["_to"].str.split("/", 1, True) for (from_col, to_col), count in ( df[["from_col", "to_col"]].value_counts().items() @@ -153,8 +157,8 @@ def arangodb_to_dgl( # Get the edge data corresponding to the current edge type et_df = df[(df["from_col"] == from_col) & (df["to_col"] == to_col)] - from_nodes = [adb_map[_id] for _id in et_df["_from"]] - to_nodes = [adb_map[_id] for _id in et_df["_to"]] + from_nodes = et_df["from_key"].map(adb_map[from_col]).tolist() + to_nodes = et_df["to_key"].map(adb_map[to_col]).tolist() data_dict[edge_type] = (tensor(from_nodes), tensor(to_nodes)) for k, v in meta.items(): @@ -172,10 +176,12 @@ def arangodb_to_dgl( dgl_g: Union[DGLGraph, DGLHeteroGraph] if is_homogeneous: + num_nodes = len(adb_map[v_col]) data = list(data_dict.values())[0] - dgl_g = graph(data) + dgl_g = graph(data, num_nodes=num_nodes) else: - dgl_g = heterograph(data_dict) + num_nodes_dict = {v_col: len(adb_map[v_col]) for v_col in adb_map} + dgl_g = heterograph(data_dict, num_nodes_dict) has_one_ntype = len(dgl_g.ntypes) == 1 has_one_etype = len(dgl_g.canonical_etypes) == 1 @@ -285,7 +291,8 @@ def dgl_to_arangodb( node_types: List[str] edge_types: List[DGLCanonicalEType] - if metagraph and explicit_metagraph: + explicit_metagraph = metagraph != {} and explicit_metagraph + if explicit_metagraph: node_types = metagraph.get("nodeTypes", {}).keys() # type: ignore edge_types = metagraph.get("edgeTypes", {}).keys() # type: ignore @@ -315,20 +322,17 @@ def dgl_to_arangodb( for n_type in node_types: n_key = None if has_one_ntype else n_type - num_nodes = dgl_g.num_nodes(n_key) - df = DataFrame([{"_key": str(i)} for i in range(num_nodes)]) - meta = n_meta.get(n_type, {}) - for k, t in dgl_g.nodes[n_key].data.items(): - if type(t) is Tensor and len(t) == num_nodes: - v = meta.get(k, k) - df = df.join(self.__build_dataframe_from_tensor(t, k, v)) + df = DataFrame([{"_key": str(i)} for i in range(dgl_g.num_nodes(n_key))]) + df = self.__set_adb_data( + df, meta, dgl_g.nodes[n_key].data, explicit_metagraph + ) if type(self.__cntrl) is not ADBDGL_Controller: f = lambda n: self.__cntrl._prepare_dgl_node(n, n_type) df = df.apply(f, axis=1) - self.__insert_adb_docs(n_type, df.to_dict("records"), import_options) + self.__insert_adb_docs(n_type, df, import_options) e_meta = metagraph.get("edgeTypes", {}) for e_type in edge_types: @@ -336,23 +340,22 @@ def dgl_to_arangodb( from_col, _, to_col = e_type from_nodes, to_nodes = dgl_g.edges(etype=e_key) - df = DataFrame( - zip(*(from_nodes.tolist(), to_nodes.tolist())), columns=["_from", "_to"] + data = zip(*(from_nodes.tolist(), to_nodes.tolist())) + df = DataFrame(data, columns=["_from", "_to"]) + + meta = e_meta.get(e_type, {}) + df = self.__set_adb_data( + df, meta, dgl_g.edges[e_key].data, explicit_metagraph ) + df["_from"] = from_col + "/" + df["_from"].astype(str) df["_to"] = to_col + "/" + df["_to"].astype(str) - meta = e_meta.get(e_type, {}) - for k, t in dgl_g.edges[e_key].data.items(): - if type(t) is Tensor and len(t) == dgl_g.num_edges(e_key): - v = meta.get(k, k) - df = df.join(self.__build_dataframe_from_tensor(t, k, v)) - if type(self.__cntrl) is not ADBDGL_Controller: f = lambda e: self.__cntrl._prepare_dgl_edge(e, e_type) df = df.apply(f, axis=1) - self.__insert_adb_docs(e_type, df.to_dict("records"), import_options) + self.__insert_adb_docs(e_type, df, import_options) logger.info(f"Created ArangoDB '{name}' Graph") return adb_graph @@ -423,55 +426,31 @@ def ntypes_to_ocollections( orphan_collections = set(node_types) ^ non_orphan_collections return list(orphan_collections) - def __set_dgl_data( - self, - dgl_data: Union[HeteroNodeDataView, HeteroEdgeDataView], - dgl_data_temp: Union[ - DefaultDict[str, DefaultDict[str, Tensor]], - DefaultDict[str, DefaultDict[DGLCanonicalEType, Tensor]], - ], - has_one_type: bool, - ) -> None: - """Copies **dgl_data_temp** into **dgl_data**. This method is (unfortunately) - required, since a dgl graph's `ndata` and `edata` properties can't be - manually set (i.e `g.ndata = ndata` is not possible). - - :param dgl_data: The (empty) ndata or edata instance attribute of a dgl graph, - which is about to receive **dgl_data_temp**. - :type dgl_data: Union[dgl.view.HeteroNodeDataView, dgl.view.HeteroEdgeDataView] - :param dgl_data_temp: A temporary place to store the ndata or edata features. - :type dgl_data_temp: DefaultDict[str, DefaultDict[str, Tensor]] - :param has_one_type: Set to True if the DGL graph only has one - node type or edge type. - :type has_one_type: bool - """ - for feature_name, feature_map in dgl_data_temp.items(): - for data_type, dgl_tensor in feature_map.items(): - dgl_data[feature_name] = ( - dgl_tensor if has_one_type else {data_type: dgl_tensor} - ) - def __fetch_adb_docs( - self, col: str, meta: Dict[str, ADBMetagraphValues], query_options: Any + self, col: str, empty_meta: bool, query_options: Any ) -> DataFrame: """Fetches ArangoDB documents within a collection. Returns the - documents in a Pandas DataFrame. + documents in a DataFrame. :param col: The ArangoDB collection. :type col: str - :param meta: The metagraph specification for **col**. - :type meta: Dict[str, ADBMetagraphValues] + :param empty_meta: Set to True if the metagraph specification + for **col** is empty. + :type empty_meta: bool :param query_options: Keyword arguments to specify AQL query options when fetching documents from the ArangoDB instance. :type query_options: Any - :return: A Pandas DataFrame representing the ArangoDB documents. + :return: A DataFrame representing the ArangoDB documents. :rtype: pandas.DataFrame """ - # Only return the entire document if **meta** is not empty - data = "doc" if meta else "{_id: doc._id, _from: doc._from, _to: doc._to}" + # Only return the entire document if **empty_meta** is False aql = f""" FOR doc IN @@col - RETURN {data} + RETURN { + "{ _key: doc._key, _from: doc._from, _to: doc._to }" + if empty_meta + else "doc" + } """ with progress( @@ -488,14 +467,14 @@ def __fetch_adb_docs( ) def __insert_adb_docs( - self, doc_type: Union[str, DGLCanonicalEType], docs: List[Json], kwargs: Any + self, doc_type: Union[str, DGLCanonicalEType], df: DataFrame, kwargs: Any ) -> None: """Insert ArangoDB documents into their ArangoDB collection. :param doc_type: The node or edge type of the soon-to-be ArangoDB documents :type doc_type: str | tuple[str, str, str] - :param docs: To-be-inserted ArangoDB documents - :type docs: List[Json] + :param df: To-be-inserted ArangoDB documents, formatted as a DataFrame + :type df: pandas.DataFrame :param kwargs: Keyword arguments to specify additional parameters for ArangoDB document insertion. Full parameter list: https://docs.python-arango.com/en/main/specs.html#arango.collection.Collection.import_bulk @@ -503,15 +482,88 @@ def __insert_adb_docs( col = doc_type if type(doc_type) is str else doc_type[1] with progress( - f"Import: {doc_type} ({len(docs)})", - text_style="#349AEF", - spinner_style="#FBFEFE", + f"Import: {doc_type} ({len(df)})", + text_style="#825FE1", + spinner_style="#3AA7F4", ) as p: p.add_task("__insert_adb_docs") + docs = df.to_dict("records") result = self.__db.collection(col).import_bulk(docs, **kwargs) logger.debug(result) + def __set_dgl_data( + self, + dgl_data: Union[HeteroNodeDataView, HeteroEdgeDataView], + dgl_data_temp: Union[DGLNData, DGLEData], + has_one_type: bool, + ) -> None: + """Copies **dgl_data_temp** into **dgl_data**. This method is (unfortunately) + required, since a dgl graph's `ndata` and `edata` properties can't be + manually set (i.e `g.ndata = ndata` is not possible). + + :param dgl_data: The (empty) ndata or edata instance attribute of a dgl graph, + which is about to receive **dgl_data_temp**. + :type dgl_data: Union[dgl.view.HeteroNodeDataView, dgl.view.HeteroEdgeDataView] + :param dgl_data_temp: A temporary place to store the ndata or edata features. + :type dgl_data_temp: adbdgl_adapter.typings.(DGLNData | DGLEData) + :param has_one_type: Set to True if the DGL graph only has one + node type or edge type. + :type has_one_type: bool + """ + for feature_name, feature_map in dgl_data_temp.items(): + for data_type, dgl_tensor in feature_map.items(): + dgl_data[feature_name] = ( + dgl_tensor if has_one_type else {data_type: dgl_tensor} + ) + + def __set_adb_data( + self, + df: DataFrame, + meta: Dict[Any, DGLMetagraphValues], + dgl_data: Union[NodeSpace, EdgeSpace], + explicit_metagraph: bool, + ) -> DataFrame: + """A helper method to build the ArangoDB Dataframe for the given + collection. Is responsible for creating "sub-DataFrames" from DGL tensors, + and appending them to the main dataframe **df**. If the data + does not adhere to the supported types, or is not of specific length, + then it is silently skipped. + + :param df: The main ArangoDB DataFrame containing (at minimum) + the vertex/edge _id or _key attribute. + :type df: pandas.DataFrame + :param meta: The metagraph associated to the + current PyG node or edge type. e.g metagraph['nodeTypes']['v0'] + :type meta: Dict[Any, adbdgl_adapter.typings.DGLMetagraphValues] + :param dgl_data: The NodeSpace or EdgeSpace of the current + DGL node or edge type. + :type pyg_data: dgl.view.(NodeSpace | EdgeSpace) + :param explicit_metagraph: The value of **explicit_metagraph** + in **pyg_to_arangodb**. + :type explicit_metagraph: bool + :return: The completed DataFrame for the (soon-to-be) ArangoDB collection. + :rtype: pandas.DataFrame + :raise ValueError: If an unsupported PyG data value is found. + """ + logger.debug( + f"__set_adb_data(df, {meta}, {type(dgl_data)}, {explicit_metagraph}" + ) + + if explicit_metagraph: + dgl_keys = set(meta.keys()) + else: + dgl_keys = dgl_data.keys() + + for k in dgl_keys: + data = dgl_data[k] + meta_val = meta.get(k, str(k)) + + if type(data) is Tensor and len(data) == len(df): + df = df.join(self.__build_dataframe_from_tensor(data, k, meta_val)) + + return df + def __build_tensor_from_dataframe( self, adb_df: DataFrame, @@ -533,7 +585,9 @@ def __build_tensor_from_dataframe( :rtype: torch.Tensor :raise adbdgl_adapter.exceptions.ADBMetagraphError: If invalid **meta_val**. """ - logger.debug(f"__build_tensor_from_dataframe(df, '{meta_key}', {meta_val})") + logger.debug( + f"__build_tensor_from_dataframe(df, '{meta_key}', {type(meta_val)})" + ) if type(meta_val) is str: return tensor(adb_df[meta_val].to_list()) @@ -566,7 +620,7 @@ def __build_tensor_from_dataframe( def __build_dataframe_from_tensor( self, dgl_tensor: Tensor, - meta_key: str, + meta_key: Any, meta_val: DGLMetagraphValues, ) -> DataFrame: """Builds a Pandas DataFrame from DGL Tensor, based on @@ -575,7 +629,7 @@ def __build_dataframe_from_tensor( :param dgl_tensor: The Tensor representing DGL data. :type dgl_tensor: torch.Tensor :param meta_key: The current DGL-ArangoDB metagraph key - :type meta_key + :type meta_key: Any :param meta_val: The value mapped to the DGL-ArangoDB metagraph key to help convert **tensor** into a Pandas Dataframe. e.g the value of `metagraph['nodeTypes']['users']['x']`. @@ -584,7 +638,9 @@ def __build_dataframe_from_tensor( :rtype: pandas.DataFrame :raise adbdgl_adapter.exceptions.DGLMetagraphError: If invalid **meta_val**. """ - logger.debug(f"__build_dataframe_from_tensor(df, '{meta_key}', {meta_val})") + logger.debug( + f"__build_dataframe_from_tensor(df, '{meta_key}', {type(meta_val)})" + ) if type(meta_val) in [str, list]: columns = [meta_val] if type(meta_val) is str else meta_val diff --git a/adbdgl_adapter/typings.py b/adbdgl_adapter/typings.py index 868ba10..156a8dc 100644 --- a/adbdgl_adapter/typings.py +++ b/adbdgl_adapter/typings.py @@ -8,7 +8,7 @@ "DGLDataDict", ] -from typing import Any, Callable, Dict, List, Tuple, Union +from typing import Any, Callable, DefaultDict, Dict, List, Tuple, Union from pandas import DataFrame from torch import Tensor @@ -25,7 +25,12 @@ DGLCanonicalEType = Tuple[str, str, str] DGLDataDict = Dict[DGLCanonicalEType, Tuple[Tensor, Tensor]] +DGLNData = DefaultDict[str, DefaultDict[str, Tensor]] +DGLEData = DefaultDict[str, DefaultDict[DGLCanonicalEType, Tensor]] DGLDataTypes = Union[str, DGLCanonicalEType] DGLMetagraphValues = Union[str, List[str], TensorToDataFrame] DGLMetagraph = Dict[str, Dict[DGLDataTypes, Dict[Any, DGLMetagraphValues]]] + +ADBMap = DefaultDict[DGLDataTypes, Dict[str, int]] +DGLMap = DefaultDict[DGLDataTypes, Dict[int, str]] diff --git a/adbdgl_adapter/utils.py b/adbdgl_adapter/utils.py index 82bd62b..42f98ef 100644 --- a/adbdgl_adapter/utils.py +++ b/adbdgl_adapter/utils.py @@ -34,14 +34,18 @@ def progress( def validate_adb_metagraph(metagraph: Dict[Any, Dict[Any, Any]]) -> None: meta: Dict[Any, Any] - if not metagraph.get("vertexCollections"): + if "vertexCollections" not in metagraph: raise ADBMetagraphError("Missing 'vertexCollections' key in metagraph") - if not metagraph.get("edgeCollections"): + if "edgeCollections" not in metagraph: raise ADBMetagraphError("Missing 'edgeCollections' key in metagraph") for parent_key in ["vertexCollections", "edgeCollections"]: - for col, meta in metagraph[parent_key].items(): + sub_metagraph = metagraph[parent_key] + if not sub_metagraph or type(sub_metagraph) != dict: + raise ADBMetagraphError(f"{parent_key} must map to non-empty dictionary") + + for col, meta in sub_metagraph.items(): if type(col) != str: msg = f"Invalid {parent_key} sub-key type: {col} must be str" raise ADBMetagraphError(msg) From 13889060bf589df798b07556071ce103f71b5bcc Mon Sep 17 00:00:00 2001 From: aMahanna Date: Thu, 4 Aug 2022 21:00:32 -0400 Subject: [PATCH 07/37] checkpoint --- README.md | 4 +- adbdgl_adapter/adapter.py | 94 +++- adbdgl_adapter/typings.py | 11 +- adbdgl_adapter/utils.py | 129 ++++-- tests/conftest.py | 70 +-- tests/test_adapter.py | 874 +++++++++++++++++++++++++++++++------- 6 files changed, 927 insertions(+), 255 deletions(-) diff --git a/README.md b/README.md index c5a2401..1793905 100644 --- a/README.md +++ b/README.md @@ -209,9 +209,7 @@ metagraph_v3 = { "vertexCollections": { "user": { "features": udf_user_features, # supports named functions - "label": lambda df: torch.tensor( - df["label"].to_list() - ), # also supports lambda functions + "label": lambda df: torch.tensor(df["label"].to_list()), # also supports lambda functions }, "game": {"features": udf_game_features}, }, diff --git a/adbdgl_adapter/adapter.py b/adbdgl_adapter/adapter.py index 272b6a8..2902309 100644 --- a/adbdgl_adapter/adapter.py +++ b/adbdgl_adapter/adapter.py @@ -19,11 +19,11 @@ ADBMetagraph, ADBMetagraphValues, DGLCanonicalEType, + DGLData, DGLDataDict, - DGLEData, + DGLDataTypes, DGLMetagraph, DGLMetagraphValues, - DGLNData, Json, ) from .utils import logger, progress, validate_adb_metagraph, validate_dgl_metagraph @@ -118,10 +118,10 @@ def arangodb_to_dgl( data_dict: DGLDataDict = dict() # The node data view for storing node features - ndata: DGLNData = defaultdict(lambda: defaultdict()) + ndata: DGLData = defaultdict(lambda: defaultdict()) # The edge data view for storing edge features - edata: DGLEData = defaultdict(lambda: defaultdict()) + edata: DGLData = defaultdict(lambda: defaultdict()) for v_col, meta in metagraph["vertexCollections"].items(): logger.debug(f"Preparing '{v_col}' vertices") @@ -131,8 +131,7 @@ def arangodb_to_dgl( adb_id: dgl_id for dgl_id, adb_id in enumerate(df["_key"]) } - for k, v in meta.items(): - ndata[k][v_col] = self.__build_tensor_from_dataframe(df, k, v) + self.__set_dgl_data(v_col, meta, ndata, df) et_df: DataFrame et_blacklist: List[DGLCanonicalEType] = [] # A list of skipped edge types @@ -161,10 +160,7 @@ def arangodb_to_dgl( to_nodes = et_df["to_key"].map(adb_map[to_col]).tolist() data_dict[edge_type] = (tensor(from_nodes), tensor(to_nodes)) - for k, v in meta.items(): - edata[k][edge_type] = self.__build_tensor_from_dataframe( - et_df, k, v - ) + self.__set_dgl_data(edge_type, meta, edata, df) if not data_dict: msg = f""" @@ -186,8 +182,8 @@ def arangodb_to_dgl( has_one_ntype = len(dgl_g.ntypes) == 1 has_one_etype = len(dgl_g.canonical_etypes) == 1 - self.__set_dgl_data(dgl_g.ndata, ndata, has_one_ntype) - self.__set_dgl_data(dgl_g.edata, edata, has_one_etype) + self.__copy_dgl_data(dgl_g.ndata, ndata, has_one_ntype) + self.__copy_dgl_data(dgl_g.edata, edata, has_one_etype) logger.info(f"Created DGL '{name}' Graph") return dgl_g @@ -287,7 +283,7 @@ def dgl_to_arangodb( has_one_ntype = len(dgl_g.ntypes) == 1 has_one_etype = len(dgl_g.canonical_etypes) == 1 - has_default_canonical_etypes = dgl_g.canonical_etypes == ["_N", "_E", "_N"] + has_default_canonical_etypes = dgl_g.canonical_etypes == [("_N", "_E", "_N")] node_types: List[str] edge_types: List[DGLCanonicalEType] @@ -493,9 +489,43 @@ def __insert_adb_docs( logger.debug(result) def __set_dgl_data( + self, + data_type: DGLDataTypes, + meta: Union[Set[str], Dict[str, ADBMetagraphValues]], + dgl_data: DGLData, + df: DataFrame, + ) -> None: + """A helper method to build the DGL NodeStorage or EdgeStorage object + for the DGL graph. Is responsible for preparing the input **meta** such + that it becomes a dictionary, and building DGL-ready tensors from the + ArangoDB DataFrame **df**. + + :param data_type: The current node or edge type of the soon-to-be DGL graph. + :type data_type: str | tuple[str, str, str] + :param meta: The metagraph associated to the current ArangoDB vertex or + edge collection. e.g metagraph['vertexCollections']['Users'] + :type meta: Set[str] | Dict[str, adbdgl_adapter.typings.ADBMetagraphValues] + :param dgl_data: The (currently empty) DefaultDict object storing the node or + edge features of the soon-to-be DGL graph. + :type dgl_data: adbdgl_adapter.typings.DGLData + :param df: The DataFrame representing the ArangoDB collection data + :type df: pandas.DataFrame + """ + valid_meta: Dict[str, ADBMetagraphValues] + + if type(meta) is dict: + valid_meta = meta + + if type(meta) is set: + valid_meta = {m: m for m in meta} + + for k, v in valid_meta.items(): + dgl_data[k][data_type] = self.__build_tensor_from_dataframe(df, k, v) + + def __copy_dgl_data( self, dgl_data: Union[HeteroNodeDataView, HeteroEdgeDataView], - dgl_data_temp: Union[DGLNData, DGLEData], + dgl_data_temp: DGLData, has_one_type: bool, ) -> None: """Copies **dgl_data_temp** into **dgl_data**. This method is (unfortunately) @@ -506,7 +536,7 @@ def __set_dgl_data( which is about to receive **dgl_data_temp**. :type dgl_data: Union[dgl.view.HeteroNodeDataView, dgl.view.HeteroEdgeDataView] :param dgl_data_temp: A temporary place to store the ndata or edata features. - :type dgl_data_temp: adbdgl_adapter.typings.(DGLNData | DGLEData) + :type dgl_data_temp: adbdgl_adapter.typings.DGLData :param has_one_type: Set to True if the DGL graph only has one node type or edge type. :type has_one_type: bool @@ -520,7 +550,7 @@ def __set_dgl_data( def __set_adb_data( self, df: DataFrame, - meta: Dict[Any, DGLMetagraphValues], + meta: Union[Set[str], Dict[Any, DGLMetagraphValues]], dgl_data: Union[NodeSpace, EdgeSpace], explicit_metagraph: bool, ) -> DataFrame: @@ -535,7 +565,7 @@ def __set_adb_data( :type df: pandas.DataFrame :param meta: The metagraph associated to the current PyG node or edge type. e.g metagraph['nodeTypes']['v0'] - :type meta: Dict[Any, adbdgl_adapter.typings.DGLMetagraphValues] + :type meta: Set[str] | Dict[Any, adbdgl_adapter.typings.DGLMetagraphValues] :param dgl_data: The NodeSpace or EdgeSpace of the current DGL node or edge type. :type pyg_data: dgl.view.(NodeSpace | EdgeSpace) @@ -550,14 +580,22 @@ def __set_adb_data( f"__set_adb_data(df, {meta}, {type(dgl_data)}, {explicit_metagraph}" ) + valid_meta: Dict[Any, DGLMetagraphValues] + + if type(meta) is dict: + valid_meta = meta + + if type(meta) is set: + valid_meta = {m: m for m in meta} + if explicit_metagraph: - dgl_keys = set(meta.keys()) + dgl_keys = set(valid_meta.keys()) else: dgl_keys = dgl_data.keys() for k in dgl_keys: data = dgl_data[k] - meta_val = meta.get(k, str(k)) + meta_val = valid_meta.get(k, str(k)) if type(data) is Tensor and len(data) == len(df): df = df.join(self.__build_dataframe_from_tensor(data, k, meta_val)) @@ -642,10 +680,22 @@ def __build_dataframe_from_tensor( f"__build_dataframe_from_tensor(df, '{meta_key}', {type(meta_val)})" ) - if type(meta_val) in [str, list]: - columns = [meta_val] if type(meta_val) is str else meta_val + if type(meta_val) is str: + df = DataFrame(columns=[meta_val]) + df[meta_val] = dgl_tensor.tolist() + return df + + if type(meta_val) is list: + num_features = dgl_tensor.size()[-1] + if len(meta_val) != num_features: # pragma: no cover + msg = f""" + Invalid list length for **meta_val** ('{meta_key}'): + List length must match the number of + features found in the tensor ({num_features}). + """ + raise DGLMetagraphError(msg) - df = DataFrame(columns=columns) + df = DataFrame(columns=meta_val) df[meta_val] = dgl_tensor.tolist() return df diff --git a/adbdgl_adapter/typings.py b/adbdgl_adapter/typings.py index 156a8dc..989ded8 100644 --- a/adbdgl_adapter/typings.py +++ b/adbdgl_adapter/typings.py @@ -8,7 +8,7 @@ "DGLDataDict", ] -from typing import Any, Callable, DefaultDict, Dict, List, Tuple, Union +from typing import Any, Callable, DefaultDict, Dict, List, Set, Tuple, Union from pandas import DataFrame from torch import Tensor @@ -20,17 +20,18 @@ ADBEncoders = Dict[str, DataFrameToTensor] ADBMetagraphValues = Union[str, DataFrameToTensor, ADBEncoders] -ADBMetagraph = Dict[str, Dict[str, Dict[str, ADBMetagraphValues]]] +ADBMetagraph = Dict[str, Dict[str, Union[Set[str], Dict[str, ADBMetagraphValues]]]] DGLCanonicalEType = Tuple[str, str, str] +DGLData = DefaultDict[str, DefaultDict[Union[str, DGLCanonicalEType], Tensor]] DGLDataDict = Dict[DGLCanonicalEType, Tuple[Tensor, Tensor]] -DGLNData = DefaultDict[str, DefaultDict[str, Tensor]] -DGLEData = DefaultDict[str, DefaultDict[DGLCanonicalEType, Tensor]] DGLDataTypes = Union[str, DGLCanonicalEType] DGLMetagraphValues = Union[str, List[str], TensorToDataFrame] -DGLMetagraph = Dict[str, Dict[DGLDataTypes, Dict[Any, DGLMetagraphValues]]] +DGLMetagraph = Dict[ + str, Dict[DGLDataTypes, Union[Set[str], Dict[Any, DGLMetagraphValues]]] +] ADBMap = DefaultDict[DGLDataTypes, Dict[str, int]] DGLMap = DefaultDict[DGLDataTypes, Dict[int, str]] diff --git a/adbdgl_adapter/utils.py b/adbdgl_adapter/utils.py index 42f98ef..cd5e4b3 100644 --- a/adbdgl_adapter/utils.py +++ b/adbdgl_adapter/utils.py @@ -1,6 +1,6 @@ import logging import os -from typing import Any, Dict +from typing import Any, Dict, Set, Union from rich.progress import Progress, SpinnerColumn, TextColumn, TimeElapsedColumn @@ -32,7 +32,7 @@ def progress( def validate_adb_metagraph(metagraph: Dict[Any, Dict[Any, Any]]) -> None: - meta: Dict[Any, Any] + meta: Union[Set[Any], Dict[Any, Any]] if "vertexCollections" not in metagraph: raise ADBMetagraphError("Missing 'vertexCollections' key in metagraph") @@ -47,34 +47,63 @@ def validate_adb_metagraph(metagraph: Dict[Any, Dict[Any, Any]]) -> None: for col, meta in sub_metagraph.items(): if type(col) != str: - msg = f"Invalid {parent_key} sub-key type: {col} must be str" + msg = f""" + Invalid {parent_key} sub-key type: + {col} must be str + """ raise ADBMetagraphError(msg) - for meta_val in meta.values(): - if type(meta_val) not in [str, dict] and not callable(meta_val): - msg = f""" - Invalid mapped value type in {meta}: - {meta_val} must be str | Dict[str, None | Callable] | Callable - """ - raise ADBMetagraphError(msg) - - if type(meta_val) == dict: - for k, v in meta_val.items(): - if type(k) != str: - msg = f""" - Invalid ArangoDB attribute key type: {v} must be str - """ - raise ADBMetagraphError(msg) - - if v is not None and not callable(v): - msg = f""" - Invalid DGL Encoder type: {v} must be None | Callable - """ - raise ADBMetagraphError(msg) + if type(meta) == set: + for m in meta: + if type(m) != str: + msg = f""" + Invalid set value type for {meta}: + {m} must be str + """ + raise ADBMetagraphError(msg) + + elif type(meta) == dict: + for meta_key, meta_val in meta.items(): + if type(meta_key) != str: + msg = f""" + Invalid key type in {meta}: + {meta_key} must be str + """ + raise ADBMetagraphError(msg) + + if type(meta_val) not in [str, dict] and not callable(meta_val): + msg = f""" + Invalid mapped value type in {meta}: + {meta_val} must be + str | Dict[str, None | Callable] | Callable + """ + raise ADBMetagraphError(msg) + + if type(meta_val) == dict: + for k, v in meta_val.items(): + if type(k) != str: + msg = f""" + Invalid ArangoDB attribute key type: + {v} must be str + """ + raise ADBMetagraphError(msg) + + if v is not None and not callable(v): + msg = f""" + Invalid DGL Encoder type: + {v} must be None | Callable + """ + raise ADBMetagraphError(msg) + else: + msg = f""" + Invalid mapped value type for {col}: + {meta} must be dict | set + """ + raise ADBMetagraphError(msg) def validate_dgl_metagraph(metagraph: Dict[Any, Dict[Any, Any]]) -> None: - meta: Dict[Any, Any] + meta: Union[Set[Any], Dict[Any, Any]] for node_type in metagraph.get("nodeTypes", {}).keys(): if type(node_type) != str: @@ -92,20 +121,36 @@ def validate_dgl_metagraph(metagraph: Dict[Any, Dict[Any, Any]]) -> None: raise DGLMetagraphError(msg) for parent_key in ["nodeTypes", "edgeTypes"]: - for meta in metagraph.get(parent_key, {}).values(): - for meta_val in meta.values(): - if type(meta_val) not in [str, list] and not callable(meta_val): - msg = f""" - Invalid mapped value type in {meta}: - {meta_val} must be str | List[str] | Callable - """ - raise DGLMetagraphError(msg) - - if type(meta_val) == list: - for v in meta_val: - if type(v) != str: - msg = f""" - Invalid ArangoDB attribute key type: - {v} must be str - """ - raise DGLMetagraphError(msg) + for k, meta in metagraph.get(parent_key, {}).items(): + if type(meta) == set: + for m in meta: + if type(m) != str: + msg = f""" + Invalid set value type for {meta}: + {m} must be str + """ + raise DGLMetagraphError(msg) + + elif type(meta) == dict: + for meta_val in meta.values(): + if type(meta_val) not in [str, list] and not callable(meta_val): + msg = f""" + Invalid mapped value type in {meta}: + {meta_val} must be str | List[str] | Callable + """ + raise DGLMetagraphError(msg) + + if type(meta_val) == list: + for v in meta_val: + if type(v) != str: + msg = f""" + Invalid ArangoDB attribute key type: + {v} must be str + """ + raise DGLMetagraphError(msg) + else: + msg = f""" + Invalid mapped value type for {k}: + {meta} must be dict | set + """ + raise DGLMetagraphError(msg) diff --git a/tests/conftest.py b/tests/conftest.py index 17de132..97740e1 100755 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -2,7 +2,7 @@ import os import subprocess from pathlib import Path -from typing import Any, Callable +from typing import Any, Callable, Dict from arango import ArangoClient from arango.database import StandardDatabase @@ -15,7 +15,7 @@ from adbdgl_adapter import ADBDGL_Adapter, ADBDGL_Controller from adbdgl_adapter.typings import DGLCanonicalEType, Json -con: Json +con: Json = {} db: StandardDatabase adbdgl_adapter: ADBDGL_Adapter PROJECT_DIR = Path(__file__).parent.parent @@ -55,7 +55,23 @@ class NoTimeoutHTTPClient(DefaultHTTPClient): # type: ignore adbdgl_adapter = ADBDGL_Adapter(db, logging_lvl=logging.DEBUG) -def arango_restore(con: Json, path_to_data: str) -> None: +def pytest_exception_interact(node: Any, call: Any, report: Any) -> None: + try: + if report.failed: + params: Dict[str, Any] = node.callspec.params + + graph_name = params.get("name") + adapter = params.get("adapter") + if graph_name and adapter: + db: StandardDatabase = adapter.db + db.delete_graph(graph_name, drop_collections=True, ignore_missing=True) + except AttributeError: + print(node) + print(dir(node)) + print("Could not delete graph") + + +def arango_restore(path_to_data: str) -> None: restore_prefix = "./tools/" if os.getenv("GITHUB_ACTIONS") else "" protocol = "http+ssl://" if "https://" in con["url"] else "tcp://" url = protocol + con["url"].partition("://")[-1] @@ -71,20 +87,11 @@ def arango_restore(con: Json, path_to_data: str) -> None: ) -def get_karate_graph() -> DGLGraph: +def get_karate_graph() -> DGLHeteroGraph: return KarateClubDataset()[0] -def get_lollipop_graph() -> DGLGraph: - dgl_g = remove_self_loop(MiniGCDataset(8, 7, 8)[3][0]) - dgl_g.ndata["node_features"] = tensor( - [[i, i, i] for i in range(0, dgl_g.num_nodes())] - ) - dgl_g.edata["edge_features"] = rand(dgl_g.num_edges()) - return dgl_g - - -def get_hypercube_graph() -> DGLGraph: +def get_hypercube_graph() -> DGLHeteroGraph: dgl_g = remove_self_loop(MiniGCDataset(8, 8, 9)[4][0]) dgl_g.ndata["node_features"] = rand(dgl_g.num_nodes()) dgl_g.edata["edge_features"] = tensor( @@ -93,13 +100,6 @@ def get_hypercube_graph() -> DGLGraph: return dgl_g -def get_clique_graph() -> DGLGraph: - dgl_g = remove_self_loop(MiniGCDataset(8, 6, 7)[6][0]) - dgl_g.ndata["node_features"] = ones(dgl_g.num_nodes()) - dgl_g.edata["edge_features"] = zeros(dgl_g.num_edges()) - return dgl_g - - def get_fake_hetero_dataset() -> DGLHeteroGraph: data_dict = { ("v0", "e0", "v0"): (tensor([0, 1, 2, 3, 4, 5]), tensor([5, 4, 3, 2, 1, 0])), @@ -124,15 +124,19 @@ def get_social_graph() -> DGLHeteroGraph: dgl_g = heterograph( { ("user", "follows", "user"): (tensor([0, 1]), tensor([1, 2])), - ("user", "follows", "game"): (tensor([0, 1, 2]), tensor([0, 1, 2])), - ("user", "plays", "game"): (tensor([3, 3]), tensor([1, 2])), + ("user", "follows", "topic"): (tensor([1, 1]), tensor([1, 2])), + ("user", "plays", "game"): (tensor([0, 3]), tensor([3, 4])), } ) - dgl_g.nodes["user"].data["node_features"] = tensor( - [[21, 0], [16, 1], [38, 0], [64, 0]] + dgl_g.nodes["user"].data["features"] = tensor([21, 44, 16, 25]) + dgl_g.nodes["user"].data["label"] = tensor([1, 2, 0, 1]) + dgl_g.nodes["game"].data["features"] = tensor( + [[0, 0], [0, 1], [1, 0], [1, 1], [1, 1]] + ) + dgl_g.edges[("user", "plays", "game")].data["features"] = tensor( + [[6, 1], [1000, 0]] ) - dgl_g.edges["plays"].data["edge_features"] = tensor([3, 5]) return dgl_g @@ -146,8 +150,8 @@ def udf_users_features_tensor_to_df(t: Tensor) -> DataFrame: # For ArangoDB to DGL testing purposes -def udf_node_features_df_to_tensor(df: DataFrame) -> Tensor: - return tensor(df["node_features"].to_list()) +def udf_features_df_to_tensor(df: DataFrame) -> Tensor: + return tensor(df["features"].to_list()) # For ArangoDB to DGL testing purposes @@ -158,6 +162,16 @@ def f(df: DataFrame) -> Tensor: return f +def label_tensor_to_2_column_dataframe(dgl_tensor: Tensor): + label_map = {0: "Class A", 1: "Class B", 2: "Class C"} + + df = DataFrame(columns=["label_num", "label_str"]) + df["label_num"] = dgl_tensor.tolist() + df["label_str"] = df["label_num"].map(label_map) + + return df + + class Custom_ADBDGL_Controller(ADBDGL_Controller): def _prepare_dgl_node(self, dgl_node: Json, node_type: str) -> Json: dgl_node["foo"] = "bar" diff --git a/tests/test_adapter.py b/tests/test_adapter.py index 84cbd9f..9cfb795 100644 --- a/tests/test_adapter.py +++ b/tests/test_adapter.py @@ -1,23 +1,32 @@ -from typing import Any, Dict, Set, Union +from typing import Any, Dict, List, Optional, Set, Union +from pandas import DataFrame import pytest from arango.database import StandardDatabase from arango.graph import Graph as ArangoGraph -from dgl import DGLGraph +from dgl import DGLGraph, DGLHeteroGraph +from dgl.view import NodeSpace, EdgeSpace from dgl.heterograph import DGLHeteroGraph -from torch import Tensor +from torch import Tensor, tensor from adbdgl_adapter import ADBDGL_Adapter -from adbdgl_adapter.typings import ArangoMetagraph +from adbdgl_adapter.encoders import IdentityEncoder +from adbdgl_adapter.exceptions import ADBMetagraphError, DGLMetagraphError +from adbdgl_adapter.typings import * +from adbdgl_adapter.utils import validate_adb_metagraph, validate_dgl_metagraph from .conftest import ( adbdgl_adapter, db, - get_clique_graph, + # con, + arango_restore, + get_fake_hetero_dataset, get_hypercube_graph, get_karate_graph, - get_lollipop_graph, get_social_graph, + label_tensor_to_2_column_dataframe, + udf_features_df_to_tensor, + udf_key_df_to_tensor, ) @@ -35,118 +44,300 @@ class Bad_ADBDGL_Controller: @pytest.mark.parametrize( - "adapter, name, metagraph", - [ + "bad_metagraph", + [ # empty metagraph + ({}), + # missing required parent key + ({"vertexCollections": {}}), + # empty sub-metagraph + ({"vertexCollections": {}, "edgeCollections": {}}), + # bad collection name ( - adbdgl_adapter, - "fraud-detection", { "vertexCollections": { - "account": {"Balance", "rank"}, - "customer": {"rank"}, - "Class": {}, + 1: {}, + # other examples include: + # True: {}, + # ('a'): {} }, - "edgeCollections": { - "transaction": { - "transaction_amt", - "sender_bank_id", - "receiver_bank_id", - }, - "accountHolder": {}, - "Relationship": {}, + "edgeCollections": {}, + } + ), + # bad collection metagraph + ( + { + "vertexCollections": { + "vcol_a": None, + # other examples include: + # "vcol_a": 1, + # "vcol_a": 'foo', }, - }, + "edgeCollections": {}, + } + ), + # bad collection metagraph 2 + ( + { + "vertexCollections": { + "vcol_a": {"a", "b", 3}, + # other examples include: + # "vcol_a": 1, + # "vcol_a": 'foo', + }, + "edgeCollections": {}, + } + ), + # bad meta_key + ( + { + "vertexCollections": { + "vcol_a": { + 1: {}, + # other example include: + # True: {}, + # ("x"): {}, + } + }, + "edgeCollections": {}, + } + ), + # bad meta_val + ( + { + "vertexCollections": { + "vcol_a": { + "x": True, + # other example include: + # 'x': ('a'), + # 'x': ['a'], + # 'x': 5 + } + }, + "edgeCollections": {}, + } + ), + # bad meta_val encoder key + ( + { + "vertexCollections": {"vcol_a": {"x": {1: IdentityEncoder()}}}, + "edgeCollections": {}, + } + ), + # bad meta_val encoder value + ( + { + "vertexCollections": { + "vcol_a": { + "x": { + "Action": True, + # other examples include: + # 'Action': {} + # 'Action': (lambda : 1)() + } + } + }, + "edgeCollections": {}, + } ), ], ) -def test_adb_to_dgl( - adapter: ADBDGL_Adapter, name: str, metagraph: ArangoMetagraph -) -> None: - dgl_g = adapter.arangodb_to_dgl(name, metagraph) - assert_dgl_data(db, dgl_g, metagraph) +def test_validate_adb_metagraph(bad_metagraph: Dict[Any, Any]) -> None: + with pytest.raises(ADBMetagraphError): + validate_adb_metagraph(bad_metagraph) @pytest.mark.parametrize( - "adapter, name, v_cols, e_cols", + "bad_metagraph", [ + # bad node type ( - adbdgl_adapter, - "fraud-detection", - {"account", "Class", "customer"}, - {"accountHolder", "Relationship", "transaction"}, - ) + { + "nodeTypes": { + ("a", "b", "c"): {}, + # other examples include: + # 1: {}, + # True: {} + } + } + ), + # bad edge type + ( + { + "edgeTypes": { + "b": {}, + # other examples include: + # 1: {}, + # True: {} + } + } + ), + # bad edge type 2 + ( + { + "edgeTypes": { + ("a", "b", 3): {}, + # other examples include: + # 1: {}, + # True: {} + } + } + ), + # bad data type metagraph + ( + { + "nodeTypes": { + "ntype_a": None, + # other examples include: + # "ntype_a": 1, + # "ntype_a": 'foo', + } + } + ), + # bad data type metagraph 2 + ( + { + "nodeTypes": { + "ntype_a": {"a", "b", 3} + } + } + ), + # bad meta_val + ( + { + "nodeTypes": { + "ntype_a'": { + "x": True, + # other example include: + # 'x': ('a'), + # 'x': (lambda: 1)(), + } + } + } + ), + # bad meta_val list + ( + { + "nodeTypes": { + "ntype_a'": { + "x": ["a", 3], + # other example include: + # 'x': ('a'), + # 'x': (lambda: 1)(), + } + } + } + ), ], ) -def test_adb_collections_to_dgl( - adapter: ADBDGL_Adapter, name: str, v_cols: Set[str], e_cols: Set[str] -) -> None: - dgl_g = adapter.arangodb_collections_to_dgl( - name, - v_cols, - e_cols, - ) - assert_dgl_data( - db, - dgl_g, - metagraph={ - "vertexCollections": {col: set() for col in v_cols}, - "edgeCollections": {col: set() for col in e_cols}, - }, - ) - - -@pytest.mark.parametrize( - "adapter, name", - [(adbdgl_adapter, "fraud-detection")], -) -def test_adb_graph_to_dgl(adapter: ADBDGL_Adapter, name: str) -> None: - arango_graph = db.graph(name) - v_cols = arango_graph.vertex_collections() - e_cols = {col["edge_collection"] for col in arango_graph.edge_definitions()} - - dgl_g: DGLGraph = adapter.arangodb_graph_to_dgl(name) - assert_dgl_data( - db, - dgl_g, - metagraph={ - "vertexCollections": {col: set() for col in v_cols}, - "edgeCollections": {col: set() for col in e_cols}, - }, - ) +def test_validate_dgl_metagraph(bad_metagraph: Dict[Any, Any]) -> None: + with pytest.raises(DGLMetagraphError): + validate_dgl_metagraph(bad_metagraph) @pytest.mark.parametrize( - "adapter, name, dgl_g, overwrite_graph, import_options", + "adapter, name, dgl_g, metagraph, \ + explicit_metagraph, overwrite_graph, import_options", [ ( adbdgl_adapter, - "Clique", - get_clique_graph(), + "Karate_2", + get_karate_graph(), + {"nodeTypes": {"Karate_1_N": {"label": "node_label"}}}, + False, False, - {"batch_size": 3, "on_duplicate": "replace"}, + {}, ), - (adbdgl_adapter, "Lollipop", get_lollipop_graph(), False, {"overwrite": True}), ( adbdgl_adapter, - "Hypercube", - get_hypercube_graph(), + "Karate_2", + get_karate_graph(), + {"nodeTypes": {"Karate_2_N": {}}}, + True, False, - {"batch_size": 1000, "on_duplicate": "replace"}, + {}, ), ( adbdgl_adapter, - "Hypercube", - get_hypercube_graph(), + "Social_1", + get_social_graph(), + { + "nodeTypes": { + "user": { + "features": "user_age", + "label": label_tensor_to_2_column_dataframe, + }, + "game": {"features": ["is_multiplayer", "is_free_to_play"]}, + }, + "edgeTypes": { + ("user", "plays", "game"): { + "features": ["hours_played", "is_satisfied_with_game"] + }, + }, + }, + True, False, - {"overwrite": True}, + {}, ), - (adbdgl_adapter, "Karate", get_karate_graph(), False, {"overwrite": True}), ( adbdgl_adapter, - "Social", + "Social_2", + get_social_graph(), + { + "edgeTypes": { + ("user", "plays", "game"): { + "features": ["hours_played", "is_satisfied_with_game"] + }, + }, + }, + True, + False, + {}, + ), + ( + adbdgl_adapter, + "Social_3", get_social_graph(), + {}, + False, + False, + {}, + ), + ( + adbdgl_adapter, + "FakeHeterogeneous_1", + get_fake_hetero_dataset(), + { + "nodeTypes": { + "v0": {"features": "adb_node_features", "label": "adb_node_label"} + }, + "edgeTypes": {("v0", "e0", "v0"): {"features": "adb_edge_features"}}, + }, True, - {"on_duplicate": "replace"}, + False, + {}, + ), + ( + adbdgl_adapter, + "FakeHeterogeneous_2", + get_fake_hetero_dataset(), + {}, + False, + False, + {}, + ), + ( + adbdgl_adapter, + "FakeHeterogeneous_3", + get_fake_hetero_dataset(), + { + "nodeTypes": { + "v0": {"features", "label"} + }, + "edgeTypes": {("v0", "e0", "v0"): {"features"}}, + }, + True, + False, + {}, ), ], ) @@ -154,84 +345,457 @@ def test_dgl_to_adb( adapter: ADBDGL_Adapter, name: str, dgl_g: Union[DGLGraph, DGLHeteroGraph], + metagraph: DGLMetagraph, + explicit_metagraph: bool, overwrite_graph: bool, import_options: Any, ) -> None: - adb_g = adapter.dgl_to_arangodb(name, dgl_g, overwrite_graph, **import_options) - assert_arangodb_data(name, dgl_g, adb_g) + db.delete_graph(name, drop_collections=True, ignore_missing=True) + adapter.dgl_to_arangodb( + name, dgl_g, metagraph, explicit_metagraph, overwrite_graph, **import_options + ) + assert_dgl_to_adb(name, dgl_g, metagraph, explicit_metagraph) + db.delete_graph(name, drop_collections=True) -def assert_dgl_data( - db: StandardDatabase, dgl_g: DGLGraph, metagraph: ArangoMetagraph +@pytest.mark.parametrize( + "adapter, name, metagraph, dgl_g_old", + [ + ( + adbdgl_adapter, + "Karate", + { + "vertexCollections": { + "Karate_N": {"node_features": "node_features", "label": "label"}, + }, + "edgeCollections": { + "Karate_E": {}, + }, + }, + get_karate_graph(), + ), + ( + adbdgl_adapter, + "Hypercube", + { + "vertexCollections": { + "Hypercube_N": {"node_features": "node_features"}, + }, + "edgeCollections": { + "Hypercube_E": {"edge_features": "edge_features"}, + }, + }, + get_hypercube_graph(), + ), + ( + adbdgl_adapter, + "Social", + { + "vertexCollections": { + "user": {"features": "node_features", "label": "label"}, + "game": {"features": "node_features"}, + "topic": {}, + }, + "edgeCollections": { + "plays": {"features": "edge_features"}, + "follows": {}, + }, + }, + get_social_graph(), + ), + ( + adbdgl_adapter, + "Heterogeneous", + { + "vertexCollections": { + "v0": {"features": "features", "label": "label"}, + "v1": {"features": "features"}, + "v2": {"features": "features"}, + }, + "edgeCollections": { + "e0": {}, + }, + }, + get_fake_hetero_dataset(), + ), + ( + adbdgl_adapter, + "HeterogeneousOverComplicatedMetagraph", + { + "vertexCollections": { + "v0": {"features": {"features": None}, "label": {"label": None}}, + "v1": {"features": "features"}, + "v2": {"features": {"features": None}}, + }, + "edgeCollections": { + "e0": {}, + }, + }, + get_fake_hetero_dataset(), + ), + ( + adbdgl_adapter, + "HeterogeneousUserDefinedFunctions", + { + "vertexCollections": { + "v0": { + "features": (lambda df: tensor(df["features"].to_list())), + "label": (lambda df: tensor(df["label"].to_list())), + }, + "v1": {"features": udf_features_df_to_tensor}, + "v2": {"features": udf_key_df_to_tensor("features")}, + }, + "edgeCollections": { + "e0": {}, + }, + }, + get_fake_hetero_dataset(), + ), + ], +) +def test_adb_to_pyg( + adapter: ADBDGL_Adapter, + name: str, + metagraph: ADBMetagraph, + dgl_g_old: Optional[Union[DGLGraph, DGLHeteroGraph]], ) -> None: - has_one_ntype = len(metagraph["vertexCollections"]) == 1 - has_one_etype = len(metagraph["edgeCollections"]) == 1 - - for col, atribs in metagraph["vertexCollections"].items(): - num_nodes = dgl_g.num_nodes(col) - assert num_nodes == db.collection(col).count() - - for atrib in atribs: - assert atrib in dgl_g.ndata - if has_one_ntype: - assert len(dgl_g.ndata[atrib]) == num_nodes - else: - assert col in dgl_g.ndata[atrib] - assert len(dgl_g.ndata[atrib][col]) == num_nodes - - for col, atribs in metagraph["edgeCollections"].items(): - num_edges = dgl_g.num_edges(col) - assert num_edges == db.collection(col).count() - - canon_etype = dgl_g.to_canonical_etype(col) - for atrib in atribs: - assert atrib in dgl_g.edata - if has_one_etype: - assert len(dgl_g.edata[atrib]) == num_edges - else: - assert canon_etype in dgl_g.edata[atrib] - assert len(dgl_g.edata[atrib][canon_etype]) == num_edges - - -def assert_arangodb_data( + if dgl_g_old: + db.delete_graph(name, drop_collections=True, ignore_missing=True) + adapter.dgl_to_arangodb(name, dgl_g_old) + + dgl_g_new = adapter.arangodb_to_dgl(name, metagraph) + assert_adb_to_dgl(dgl_g_new, metagraph) + + if dgl_g_old: + db.delete_graph(name, drop_collections=True) + + +def test_adb_partial_to_pyg() -> None: + dgl_g = get_social_graph() + + name = "Social" + db.delete_graph(name, drop_collections=True, ignore_missing=True) + adbdgl_adapter.dgl_to_arangodb(name, dgl_g) + + metagraph: ADBMetagraph + + # Case 1: Partial edge collection import turns the graph homogeneous + metagraph = { + "vertexCollections": { + "user": {"features": "features", "label": "label"}, + }, + "edgeCollections": { + "follows": {}, + }, + } + + dgl_g_new = adbdgl_adapter.arangodb_to_dgl( + "HeterogeneousTurnedHomogeneous", metagraph + ) + + assert type(dgl_g_new) is DGLGraph + assert ( + dgl_g.ndata["features"]["user"].tolist() == dgl_g_new.ndata["features"].tolist() + ) + assert dgl_g.ndata["label"]["user"].tolist() == dgl_g_new["label"].tolist() + + from_nodes, to_nodes = dgl_g.edges( + etype=("user", "follows", "user") + ) # Heterogeneous + from_nodes_new, to_nodes_new = dgl_g_new.edges(etype=None) # Homogeneous + assert from_nodes.tolist() == from_nodes_new.tolist() + assert to_nodes.tolist() == to_nodes.new.tolist() + + # Case 2: Partial edge collection import keeps the graph heterogeneous + metagraph = { + "vertexCollections": { + "user": {"features": "features", "label": "label"}, + "game": {"features": "features"}, + }, + "edgeCollections": {"follows": {}, "plays": {"features": "features"}}, + } + + dgl_g_new = adbdgl_adapter.arangodb_to_dgl( + "HeterogeneousWithOneLessNodeType", metagraph + ) + + assert type(dgl_g_new) is DGLHeteroGraph + assert set(dgl_g_new.ntypes) == {"user", "game"} + for n_type in dgl_g_new.ntypes: + for k, v in dgl_g_new.nodes[n_type].items(): + assert v.tolist() == dgl_g.nodes[n_type][k].tolist() + + for e_type in dgl_g_new.canonical_etypes: + for k, v in dgl_g_new.edges[e_type].items(): + assert v.tolist() == dgl_g.edges[e_type][k].tolist() + + db.delete_graph(name, drop_collections=True) + + +# @pytest.mark.parametrize( +# "adapter, name, v_cols, e_cols", +# [ +# ( +# adbdgl_adapter, +# "fraud-detection", +# {"account", "Class", "customer"}, +# {"accountHolder", "Relationship", "transaction"}, +# ) +# ], +# ) +# def test_adb_collections_to_dgl( +# adapter: ADBDGL_Adapter, name: str, v_cols: Set[str], e_cols: Set[str] +# ) -> None: +# dgl_g = adapter.arangodb_collections_to_dgl( +# name, +# v_cols, +# e_cols, +# ) +# assert_dgl_data( +# db, +# dgl_g, +# metagraph={ +# "vertexCollections": {col: set() for col in v_cols}, +# "edgeCollections": {col: set() for col in e_cols}, +# }, +# ) + + +# @pytest.mark.parametrize( +# "adapter, name", +# [(adbdgl_adapter, "fraud-detection")], +# ) +# def test_adb_graph_to_dgl(adapter: ADBDGL_Adapter, name: str) -> None: +# arango_graph = db.graph(name) +# v_cols = arango_graph.vertex_collections() +# e_cols = {col["edge_collection"] for col in arango_graph.edge_definitions()} + +# dgl_g: DGLGraph = adapter.arangodb_graph_to_dgl(name) +# assert_dgl_data( +# db, +# dgl_g, +# metagraph={ +# "vertexCollections": {col: set() for col in v_cols}, +# "edgeCollections": {col: set() for col in e_cols}, +# }, +# ) + + +@pytest.mark.parametrize( + "adapter, name, v_cols, e_cols, dgl_g_old", + [(adbdgl_adapter, "Social", {"user", "game"}, {"plays"}, get_social_graph())], +) +def test_adb_collections_to_pyg( + adapter: ADBDGL_Adapter, name: str, - dgl_g: Union[DGLGraph, DGLHeteroGraph], - adb_g: ArangoGraph, + v_cols: Set[str], + e_cols: Set[str], + dgl_g_old: Union[DGLGraph, DGLHeteroGraph], ) -> None: - is_default_type = dgl_g.canonical_etypes == adbdgl_adapter.DEFAULT_CANONICAL_ETYPE - - node: Tensor - for ntype in dgl_g.ntypes: - adb_v_col = f"{name}_N" if is_default_type else ntype - attributes = dgl_g.node_attr_schemes(ntype).keys() - col = adb_g.vertex_collection(adb_v_col) - - for node in dgl_g.nodes(ntype): - vertex = col.get(str(node.item())) - assert vertex - for atrib in attributes: - assert atrib in vertex - - from_node: Tensor - to_node: Tensor - for c_etype in dgl_g.canonical_etypes: - dgl_from_col, dgl_e_col, dgl_to_col = c_etype - attributes = dgl_g.edge_attr_schemes(c_etype).keys() - - adb_e_col = f"{name}_E" if is_default_type else dgl_e_col - adb_from_col = f"{name}_N" if is_default_type else dgl_from_col - adb_to_col = f"{name}_N" if is_default_type else dgl_to_col - - col = adb_g.edge_collection(adb_e_col) - - from_nodes, to_nodes = dgl_g.edges(etype=c_etype) - for from_node, to_node in zip(from_nodes, to_nodes): - edge = col.find( - { - "_from": f"{adb_from_col}/{str(from_node.item())}", - "_to": f"{adb_to_col}/{str(to_node.item())}", + if dgl_g_old: + db.delete_graph(name, drop_collections=True, ignore_missing=True) + adapter.pyg_to_arangodb(name, dgl_g_old) + + dgl_g_new = adapter.arangodb_collections_to_dgl( + name, + v_cols, + e_cols, + ) + + assert_adb_to_dgl( + dgl_g_new, + metagraph={ + "vertexCollections": {col: {} for col in v_cols}, + "edgeCollections": {col: {} for col in e_cols}, + }, + ) + + if dgl_g_old: + db.delete_graph(name, drop_collections=True) + + +@pytest.mark.parametrize( + "adapter, name, dgl_g_old", + [ + (adbdgl_adapter, "Heterogeneous", get_fake_hetero_dataset()), + ], +) +def test_adb_graph_to_pyg( + adapter: ADBDGL_Adapter, name: str, dgl_g_old: Union[DGLGraph, DGLHeteroGraph] +) -> None: + if dgl_g_old: + db.delete_graph(name, drop_collections=True, ignore_missing=True) + adapter.dgl_to_arangodb(name, dgl_g_old) + + dgl_g_new = adapter.arangodb_graph_to_dgl(name) + + arango_graph = db.graph(name) + v_cols = arango_graph.vertex_collections() + e_cols = {col["edge_collection"] for col in arango_graph.edge_definitions()} + + assert_adb_to_dgl( + dgl_g_new, + metagraph={ + "vertexCollections": {col: {} for col in v_cols}, + "edgeCollections": {col: {} for col in e_cols}, + }, + ) + + if dgl_g_old: + db.delete_graph(name, drop_collections=True) + + +def test_full_cycle_imdb_without_preserve_adb_keys() -> None: + name = "imdb" + db.delete_graph(name, drop_collections=True, ignore_missing=True) + arango_restore(con, "tests/data/adb/imdb_dump") + db.create_graph( + name, + edge_definitions=[ + { + "edge_collection": "Ratings", + "from_vertex_collections": ["Users"], + "to_vertex_collections": ["Movies"], + }, + ], + ) + + adb_to_pyg_metagraph: ADBMetagraph = { + "vertexCollections": { + "Movies": { + "y": "Comedy", + "x": { + "Action": IdentityEncoder(dtype=long), + "Drama": IdentityEncoder(dtype=long), + # etc.... + }, + }, + "Users": { + "x": { + "Age": IdentityEncoder(dtype=long), + "Gender": CategoricalEncoder(), } - ).next() - assert edge - for atrib in attributes: - assert atrib in edge + }, + }, + "edgeCollections": {"Ratings": {"edge_weight": "Rating"}}, + } + + pyg_g = adbpyg_adapter.arangodb_to_pyg(name, adb_to_pyg_metagraph) + assert_adb_to_pyg(pyg_g, adb_to_pyg_metagraph) + + pyg_to_adb_metagraph: PyGMetagraph = { + "nodeTypes": { + "Movies": { + "y": "comedy", + "x": ["action", "drama"], + }, + "Users": {"x": udf_users_x_tensor_to_df}, + }, + "edgeTypes": {("Users", "Ratings", "Movies"): {"edge_weight": "rating"}}, + } + adbpyg_adapter.pyg_to_arangodb(name, pyg_g, pyg_to_adb_metagraph, overwrite=True) + assert_pyg_to_adb(name, pyg_g, pyg_to_adb_metagraph) + + db.delete_graph(name, drop_collections=True) + + +def assert_dgl_to_adb( + name: str, + dgl_g: Union[DGLGraph, DGLHeteroGraph], + metagraph: DGLMetagraph, + explicit_metagraph: bool = False, +) -> None: + + has_one_ntype = len(dgl_g.ntypes) == 1 + has_one_etype = len(dgl_g.canonical_etypes) == 1 + has_default_canonical_etypes = dgl_g.canonical_etypes == [("_N", "_E", "_N")] + + node_types: List[str] + edge_types: List[DGLCanonicalEType] + explicit_metagraph = metagraph != {} and explicit_metagraph + if explicit_metagraph: + node_types = metagraph.get("nodeTypes", {}).keys() # type: ignore + edge_types = metagraph.get("edgeTypes", {}).keys() # type: ignore + + elif has_default_canonical_etypes: + n_type = name + "_N" + node_types = [n_type] + edge_types = [(n_type, name + "_E", n_type)] + + else: + node_types = dgl_g.ntypes + edge_types = dgl_g.canonical_etypes + + n_meta = metagraph.get("nodeTypes", {}) + for n_type in node_types: + n_key = None if has_one_ntype else n_type + collection = db.collection(n_type) + assert collection.count() == dgl_g.num_nodes(n_key) + + df = DataFrame(collection.all()) + meta = n_meta.get(n_type, {}) + assert_dgl_to_adb_meta(df, meta, dgl_g.nodes[n_key].data, explicit_metagraph) + + e_meta = metagraph.get("edgeTypes", {}) + for e_type in edge_types: + e_key = None if has_one_etype else e_type + from_col, e_col, to_col = e_type + collection = db.collection(e_col) + + df = DataFrame(collection.all()) + df[["from_col", "from_key"]] = df["_from"].str.split("/", 1, True) + df[["to_col", "to_key"]] = df["_to"].str.split("/", 1, True) + et_df = df[(df["from_col"] == from_col) & (df["to_col"] == to_col)] + + aql = f""" + FOR edge IN {e_col} + FILTER IS_SAME_COLLECTION({from_col}, edge._from) + AND IS_SAME_COLLECTION({to_col}, edge._to) + RETURN 1 + """ + + assert db.aql.execute(aql, count=True).count() == dgl_g.num_edges(e_key) + + meta = e_meta.get(e_type, {}) + assert_dgl_to_adb_meta(et_df, meta, dgl_g.edges[e_key].data, explicit_metagraph) + + +def assert_dgl_to_adb_meta( + df: DataFrame, + meta: Union[str, Dict[Any, DGLMetagraphValues]], + dgl_data: Union[NodeSpace, EdgeSpace], + explicit_metagraph: bool, +) -> None: + valid_meta: Dict[Any, DGLMetagraphValues] + + if type(meta) is dict: + valid_meta = meta + + if type(meta) is set: + valid_meta = {m : m for m in meta} + + if explicit_metagraph: + dgl_keys = set(valid_meta.keys()) + else: + dgl_keys = dgl_data.keys() + + for k in dgl_keys: + data = dgl_data[k] + meta_val = valid_meta.get(k, str(k)) + + assert len(data) == len(df) + + if type(data) is Tensor: + if type(meta_val) is str: + assert meta_val in df + assert df[meta_val].tolist() == data.tolist() + + if type(meta_val) is list: + assert all([e in df for e in meta_val]) + assert df[meta_val].values.tolist() == data.tolist() + + if callable(meta_val): + udf_df = meta_val(data) + assert all([column in df for column in udf_df.columns]) + for column in udf_df.columns: + assert df[column].tolist() == udf_df[column].tolist() From 6ed9fc0fe173d2922d8820cf6f7dc43bedf456c2 Mon Sep 17 00:00:00 2001 From: aMahanna Date: Thu, 4 Aug 2022 22:07:21 -0400 Subject: [PATCH 08/37] cleanup: `valid_meta` --- adbdgl_adapter/adapter.py | 16 +++------------- tests/test_adapter.py | 7 +------ 2 files changed, 4 insertions(+), 19 deletions(-) diff --git a/adbdgl_adapter/adapter.py b/adbdgl_adapter/adapter.py index 2902309..3682d4c 100644 --- a/adbdgl_adapter/adapter.py +++ b/adbdgl_adapter/adapter.py @@ -495,7 +495,7 @@ def __set_dgl_data( dgl_data: DGLData, df: DataFrame, ) -> None: - """A helper method to build the DGL NodeStorage or EdgeStorage object + """A helper method to build the DGL NodeSpace or EdgeSpace object for the DGL graph. Is responsible for preparing the input **meta** such that it becomes a dictionary, and building DGL-ready tensors from the ArangoDB DataFrame **df**. @@ -512,12 +512,7 @@ def __set_dgl_data( :type df: pandas.DataFrame """ valid_meta: Dict[str, ADBMetagraphValues] - - if type(meta) is dict: - valid_meta = meta - - if type(meta) is set: - valid_meta = {m: m for m in meta} + valid_meta = meta if type(meta) is dict else {m: m for m in meta} for k, v in valid_meta.items(): dgl_data[k][data_type] = self.__build_tensor_from_dataframe(df, k, v) @@ -581,12 +576,7 @@ def __set_adb_data( ) valid_meta: Dict[Any, DGLMetagraphValues] - - if type(meta) is dict: - valid_meta = meta - - if type(meta) is set: - valid_meta = {m: m for m in meta} + valid_meta = meta if type(meta) is dict else {m: m for m in meta} if explicit_metagraph: dgl_keys = set(valid_meta.keys()) diff --git a/tests/test_adapter.py b/tests/test_adapter.py index 9cfb795..59328c1 100644 --- a/tests/test_adapter.py +++ b/tests/test_adapter.py @@ -767,12 +767,7 @@ def assert_dgl_to_adb_meta( explicit_metagraph: bool, ) -> None: valid_meta: Dict[Any, DGLMetagraphValues] - - if type(meta) is dict: - valid_meta = meta - - if type(meta) is set: - valid_meta = {m : m for m in meta} + valid_meta = meta if type(meta) is dict else {m: m for m in meta} if explicit_metagraph: dgl_keys = set(valid_meta.keys()) From ac86cb2d02dbcc53d0f4ae05eb839699edeb8ef5 Mon Sep 17 00:00:00 2001 From: aMahanna Date: Thu, 4 Aug 2022 23:48:58 -0400 Subject: [PATCH 09/37] mvp: #29 todo: update jupyter notebook to reflect new functionality --- README.md | 2 +- adbdgl_adapter/adapter.py | 19 +-- tests/conftest.py | 13 +- tests/test_adapter.py | 304 ++++++++++++++++++++++++-------------- 4 files changed, 208 insertions(+), 130 deletions(-) diff --git a/README.md b/README.md index 1793905..6f1d8cf 100644 --- a/README.md +++ b/README.md @@ -124,7 +124,7 @@ class Custom_ADBDGL_Controller(ADBDGL_Controller): def _prepare_dgl_node(self, dgl_node: dict, node_type: str) -> dict: """Optionally modify a DGL node object before it gets inserted into its designated ArangoDB collection. - :param pyg_node: The DGL node object to (optionally) modify. + :param dgl_node: The DGL node object to (optionally) modify. :param node_type: The DGL Node Type of the node. :return: The DGL Node object """ diff --git a/adbdgl_adapter/adapter.py b/adbdgl_adapter/adapter.py index 3682d4c..2096d4e 100644 --- a/adbdgl_adapter/adapter.py +++ b/adbdgl_adapter/adapter.py @@ -109,7 +109,7 @@ def arangodb_to_dgl( and len(metagraph["edgeCollections"]) == 1 ) - # Maps ArangoDB Vertex _keys to PyG Node ids + # Maps ArangoDB Vertex _keys to DGL Node ids adb_map: ADBMap = defaultdict(dict) # The data for constructing a graph, @@ -162,7 +162,7 @@ def arangodb_to_dgl( data_dict[edge_type] = (tensor(from_nodes), tensor(to_nodes)) self.__set_dgl_data(edge_type, meta, edata, df) - if not data_dict: + if not data_dict: # pragma: no cover msg = f""" Can't create DGL graph: no complete edge types found. The following edge types were skipped due to missing @@ -262,7 +262,8 @@ def dgl_to_arangodb( :type metagraph: adbdgl_adapter.typings.DGLMetagraph :param explicit_metagraph: Whether to take the metagraph at face value or not. If False, node & edge types OMITTED from the metagraph will be - brought over into ArangoDB. Defaults to True. + brought over into ArangoDB. Also applies to node & edge attributes. + Defaults to True. :type explicit_metagraph: bool :param overwrite_graph: Overwrites the graph if it already exists. Does not drop associated collections. Defaults to False. @@ -512,7 +513,7 @@ def __set_dgl_data( :type df: pandas.DataFrame """ valid_meta: Dict[str, ADBMetagraphValues] - valid_meta = meta if type(meta) is dict else {m: m for m in meta} + valid_meta = meta if type(meta) is dict else {m: m for m in meta} for k, v in valid_meta.items(): dgl_data[k][data_type] = self.__build_tensor_from_dataframe(df, k, v) @@ -559,24 +560,24 @@ def __set_adb_data( the vertex/edge _id or _key attribute. :type df: pandas.DataFrame :param meta: The metagraph associated to the - current PyG node or edge type. e.g metagraph['nodeTypes']['v0'] + current DGL node or edge type. e.g metagraph['nodeTypes']['v0'] :type meta: Set[str] | Dict[Any, adbdgl_adapter.typings.DGLMetagraphValues] :param dgl_data: The NodeSpace or EdgeSpace of the current DGL node or edge type. - :type pyg_data: dgl.view.(NodeSpace | EdgeSpace) + :type dgl_data: dgl.view.(NodeSpace | EdgeSpace) :param explicit_metagraph: The value of **explicit_metagraph** - in **pyg_to_arangodb**. + in **dgl_to_arangodb**. :type explicit_metagraph: bool :return: The completed DataFrame for the (soon-to-be) ArangoDB collection. :rtype: pandas.DataFrame - :raise ValueError: If an unsupported PyG data value is found. + :raise ValueError: If an unsupported DGL data value is found. """ logger.debug( f"__set_adb_data(df, {meta}, {type(dgl_data)}, {explicit_metagraph}" ) valid_meta: Dict[Any, DGLMetagraphValues] - valid_meta = meta if type(meta) is dict else {m: m for m in meta} + valid_meta = meta if type(meta) is dict else {m: m for m in meta} if explicit_metagraph: dgl_keys = set(valid_meta.keys()) diff --git a/tests/conftest.py b/tests/conftest.py index 97740e1..15e3f73 100755 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -10,12 +10,12 @@ from dgl import DGLGraph, DGLHeteroGraph, heterograph, remove_self_loop from dgl.data import KarateClubDataset, MiniGCDataset from pandas import DataFrame -from torch import Tensor, ones, rand, tensor, zeros +from torch import Tensor, rand, tensor from adbdgl_adapter import ADBDGL_Adapter, ADBDGL_Controller from adbdgl_adapter.typings import DGLCanonicalEType, Json -con: Json = {} +con: Json db: StandardDatabase adbdgl_adapter: ADBDGL_Adapter PROJECT_DIR = Path(__file__).parent.parent @@ -29,6 +29,7 @@ def pytest_addoption(parser: Any) -> None: def pytest_configure(config: Any) -> None: + global con con = { "url": config.getoption("url"), "username": config.getoption("username"), @@ -71,7 +72,7 @@ def pytest_exception_interact(node: Any, call: Any, report: Any) -> None: print("Could not delete graph") -def arango_restore(path_to_data: str) -> None: +def arango_restore(con: Json, path_to_data: str) -> None: restore_prefix = "./tools/" if os.getenv("GITHUB_ACTIONS") else "" protocol = "http+ssl://" if "https://" in con["url"] else "tcp://" url = protocol + con["url"].partition("://")[-1] @@ -87,11 +88,11 @@ def arango_restore(path_to_data: str) -> None: ) -def get_karate_graph() -> DGLHeteroGraph: +def get_karate_graph() -> DGLGraph: return KarateClubDataset()[0] -def get_hypercube_graph() -> DGLHeteroGraph: +def get_hypercube_graph() -> DGLGraph: dgl_g = remove_self_loop(MiniGCDataset(8, 8, 9)[4][0]) dgl_g.ndata["node_features"] = rand(dgl_g.num_nodes()) dgl_g.edata["edge_features"] = tensor( @@ -162,7 +163,7 @@ def f(df: DataFrame) -> Tensor: return f -def label_tensor_to_2_column_dataframe(dgl_tensor: Tensor): +def label_tensor_to_2_column_dataframe(dgl_tensor: Tensor) -> DataFrame: label_map = {0: "Class A", 1: "Class B", 2: "Class C"} df = DataFrame(columns=["label_num", "label_str"]) diff --git a/tests/test_adapter.py b/tests/test_adapter.py index 59328c1..22be05d 100644 --- a/tests/test_adapter.py +++ b/tests/test_adapter.py @@ -1,25 +1,31 @@ +from collections import defaultdict from typing import Any, Dict, List, Optional, Set, Union -from pandas import DataFrame import pytest -from arango.database import StandardDatabase -from arango.graph import Graph as ArangoGraph from dgl import DGLGraph, DGLHeteroGraph -from dgl.view import NodeSpace, EdgeSpace -from dgl.heterograph import DGLHeteroGraph -from torch import Tensor, tensor +from dgl.view import EdgeSpace, NodeSpace +from pandas import DataFrame +from torch import Tensor, cat, long, tensor from adbdgl_adapter import ADBDGL_Adapter -from adbdgl_adapter.encoders import IdentityEncoder +from adbdgl_adapter.encoders import CategoricalEncoder, IdentityEncoder from adbdgl_adapter.exceptions import ADBMetagraphError, DGLMetagraphError -from adbdgl_adapter.typings import * +from adbdgl_adapter.typings import ( + ADBMap, + ADBMetagraph, + ADBMetagraphValues, + DGLCanonicalEType, + DGLMetagraph, + DGLMetagraphValues, +) from adbdgl_adapter.utils import validate_adb_metagraph, validate_dgl_metagraph from .conftest import ( + Custom_ADBDGL_Controller, adbdgl_adapter, - db, - # con, arango_restore, + con, + db, get_fake_hetero_dataset, get_hypercube_graph, get_karate_graph, @@ -27,6 +33,7 @@ label_tensor_to_2_column_dataframe, udf_features_df_to_tensor, udf_key_df_to_tensor, + udf_users_features_tensor_to_df, ) @@ -194,13 +201,7 @@ def test_validate_adb_metagraph(bad_metagraph: Dict[Any, Any]) -> None: } ), # bad data type metagraph 2 - ( - { - "nodeTypes": { - "ntype_a": {"a", "b", 3} - } - } - ), + ({"nodeTypes": {"ntype_a": {"a", "b", 3}}}), # bad meta_val ( { @@ -330,13 +331,11 @@ def test_validate_dgl_metagraph(bad_metagraph: Dict[Any, Any]) -> None: "FakeHeterogeneous_3", get_fake_hetero_dataset(), { - "nodeTypes": { - "v0": {"features", "label"} - }, + "nodeTypes": {"v0": {"features", "label"}}, "edgeTypes": {("v0", "e0", "v0"): {"features"}}, }, True, - False, + True, {}, ), ], @@ -358,6 +357,24 @@ def test_dgl_to_adb( db.delete_graph(name, drop_collections=True) +def test_dgl_to_arangodb_with_controller() -> None: + name = "Karate_3" + data = get_karate_graph() + db.delete_graph(name, drop_collections=True, ignore_missing=True) + + ADBDGL_Adapter(db, Custom_ADBDGL_Controller()).dgl_to_arangodb(name, data) + + for doc in db.collection(name + "_N"): + assert "foo" in doc + assert doc["foo"] == "bar" + + for edge in db.collection(name + "_E"): + assert "bar" in edge + assert edge["bar"] == "foo" + + db.delete_graph(name, drop_collections=True) + + @pytest.mark.parametrize( "adapter, name, metagraph, dgl_g_old", [ @@ -366,7 +383,7 @@ def test_dgl_to_adb( "Karate", { "vertexCollections": { - "Karate_N": {"node_features": "node_features", "label": "label"}, + "Karate_N": {"karate_label": "label"}, }, "edgeCollections": { "Karate_E": {}, @@ -392,12 +409,12 @@ def test_dgl_to_adb( "Social", { "vertexCollections": { - "user": {"features": "node_features", "label": "label"}, - "game": {"features": "node_features"}, + "user": {"node_features": "features", "label": "label"}, + "game": {"node_features": "features"}, "topic": {}, }, "edgeCollections": { - "plays": {"features": "edge_features"}, + "plays": {"edge_features": "features"}, "follows": {}, }, }, @@ -418,6 +435,21 @@ def test_dgl_to_adb( }, get_fake_hetero_dataset(), ), + ( + adbdgl_adapter, + "HeterogeneousSimpleMetagraph", + { + "vertexCollections": { + "v0": {"features", "label"}, + "v1": {"features"}, + "v2": {"features"}, + }, + "edgeCollections": { + "e0": {}, + }, + }, + get_fake_hetero_dataset(), + ), ( adbdgl_adapter, "HeterogeneousOverComplicatedMetagraph", @@ -453,7 +485,7 @@ def test_dgl_to_adb( ), ], ) -def test_adb_to_pyg( +def test_adb_to_dgl( adapter: ADBDGL_Adapter, name: str, metagraph: ADBMetagraph, @@ -470,7 +502,7 @@ def test_adb_to_pyg( db.delete_graph(name, drop_collections=True) -def test_adb_partial_to_pyg() -> None: +def test_adb_partial_to_dgl() -> None: dgl_g = get_social_graph() name = "Social" @@ -493,18 +525,19 @@ def test_adb_partial_to_pyg() -> None: "HeterogeneousTurnedHomogeneous", metagraph ) - assert type(dgl_g_new) is DGLGraph + assert dgl_g_new.is_homogeneous assert ( dgl_g.ndata["features"]["user"].tolist() == dgl_g_new.ndata["features"].tolist() ) - assert dgl_g.ndata["label"]["user"].tolist() == dgl_g_new["label"].tolist() + assert dgl_g.ndata["label"]["user"].tolist() == dgl_g_new.ndata["label"].tolist() + + # Grab the nodes from the Heterogeneous graph + from_nodes, to_nodes = dgl_g.edges(etype=("user", "follows", "user")) + # Grab the same nodes from the Homogeneous graph + from_nodes_new, to_nodes_new = dgl_g_new.edges(etype=None) - from_nodes, to_nodes = dgl_g.edges( - etype=("user", "follows", "user") - ) # Heterogeneous - from_nodes_new, to_nodes_new = dgl_g_new.edges(etype=None) # Homogeneous assert from_nodes.tolist() == from_nodes_new.tolist() - assert to_nodes.tolist() == to_nodes.new.tolist() + assert to_nodes.tolist() == to_nodes_new.tolist() # Case 2: Partial edge collection import keeps the graph heterogeneous metagraph = { @@ -522,70 +555,29 @@ def test_adb_partial_to_pyg() -> None: assert type(dgl_g_new) is DGLHeteroGraph assert set(dgl_g_new.ntypes) == {"user", "game"} for n_type in dgl_g_new.ntypes: - for k, v in dgl_g_new.nodes[n_type].items(): - assert v.tolist() == dgl_g.nodes[n_type][k].tolist() + for k, v in dgl_g_new.nodes[n_type].data.items(): + assert v.tolist() == dgl_g.nodes[n_type].data[k].tolist() for e_type in dgl_g_new.canonical_etypes: - for k, v in dgl_g_new.edges[e_type].items(): - assert v.tolist() == dgl_g.edges[e_type][k].tolist() + for k, v in dgl_g_new.edges[e_type].data.items(): + assert v.tolist() == dgl_g.edges[e_type].data[k].tolist() db.delete_graph(name, drop_collections=True) -# @pytest.mark.parametrize( -# "adapter, name, v_cols, e_cols", -# [ -# ( -# adbdgl_adapter, -# "fraud-detection", -# {"account", "Class", "customer"}, -# {"accountHolder", "Relationship", "transaction"}, -# ) -# ], -# ) -# def test_adb_collections_to_dgl( -# adapter: ADBDGL_Adapter, name: str, v_cols: Set[str], e_cols: Set[str] -# ) -> None: -# dgl_g = adapter.arangodb_collections_to_dgl( -# name, -# v_cols, -# e_cols, -# ) -# assert_dgl_data( -# db, -# dgl_g, -# metagraph={ -# "vertexCollections": {col: set() for col in v_cols}, -# "edgeCollections": {col: set() for col in e_cols}, -# }, -# ) - - -# @pytest.mark.parametrize( -# "adapter, name", -# [(adbdgl_adapter, "fraud-detection")], -# ) -# def test_adb_graph_to_dgl(adapter: ADBDGL_Adapter, name: str) -> None: -# arango_graph = db.graph(name) -# v_cols = arango_graph.vertex_collections() -# e_cols = {col["edge_collection"] for col in arango_graph.edge_definitions()} - -# dgl_g: DGLGraph = adapter.arangodb_graph_to_dgl(name) -# assert_dgl_data( -# db, -# dgl_g, -# metagraph={ -# "vertexCollections": {col: set() for col in v_cols}, -# "edgeCollections": {col: set() for col in e_cols}, -# }, -# ) - - @pytest.mark.parametrize( "adapter, name, v_cols, e_cols, dgl_g_old", - [(adbdgl_adapter, "Social", {"user", "game"}, {"plays"}, get_social_graph())], + [ + ( + adbdgl_adapter, + "SocialGraph", + {"user", "game"}, + {"plays", "follows"}, + get_social_graph(), + ) + ], ) -def test_adb_collections_to_pyg( +def test_adb_collections_to_dgl( adapter: ADBDGL_Adapter, name: str, v_cols: Set[str], @@ -594,7 +586,7 @@ def test_adb_collections_to_pyg( ) -> None: if dgl_g_old: db.delete_graph(name, drop_collections=True, ignore_missing=True) - adapter.pyg_to_arangodb(name, dgl_g_old) + adapter.dgl_to_arangodb(name, dgl_g_old) dgl_g_new = adapter.arangodb_collections_to_dgl( name, @@ -620,7 +612,7 @@ def test_adb_collections_to_pyg( (adbdgl_adapter, "Heterogeneous", get_fake_hetero_dataset()), ], ) -def test_adb_graph_to_pyg( +def test_adb_graph_to_dgl( adapter: ADBDGL_Adapter, name: str, dgl_g_old: Union[DGLGraph, DGLHeteroGraph] ) -> None: if dgl_g_old: @@ -660,45 +652,130 @@ def test_full_cycle_imdb_without_preserve_adb_keys() -> None: ], ) - adb_to_pyg_metagraph: ADBMetagraph = { + adb_to_dgl_metagraph: ADBMetagraph = { "vertexCollections": { "Movies": { - "y": "Comedy", - "x": { + "label": "Comedy", + "features": { "Action": IdentityEncoder(dtype=long), "Drama": IdentityEncoder(dtype=long), # etc.... }, }, "Users": { - "x": { + "features": { "Age": IdentityEncoder(dtype=long), "Gender": CategoricalEncoder(), } }, }, - "edgeCollections": {"Ratings": {"edge_weight": "Rating"}}, + "edgeCollections": {"Ratings": {"weight": "Rating"}}, } - pyg_g = adbpyg_adapter.arangodb_to_pyg(name, adb_to_pyg_metagraph) - assert_adb_to_pyg(pyg_g, adb_to_pyg_metagraph) + dgl_g = adbdgl_adapter.arangodb_to_dgl(name, adb_to_dgl_metagraph) + assert_adb_to_dgl(dgl_g, adb_to_dgl_metagraph) - pyg_to_adb_metagraph: PyGMetagraph = { + dgl_to_adb_metagraph: DGLMetagraph = { "nodeTypes": { "Movies": { - "y": "comedy", - "x": ["action", "drama"], + "label": "comedy", + "features": ["action", "drama"], }, - "Users": {"x": udf_users_x_tensor_to_df}, + "Users": {"features": udf_users_features_tensor_to_df}, }, - "edgeTypes": {("Users", "Ratings", "Movies"): {"edge_weight": "rating"}}, + "edgeTypes": {("Users", "Ratings", "Movies"): {"weight": "rating"}}, } - adbpyg_adapter.pyg_to_arangodb(name, pyg_g, pyg_to_adb_metagraph, overwrite=True) - assert_pyg_to_adb(name, pyg_g, pyg_to_adb_metagraph) + adbdgl_adapter.dgl_to_arangodb(name, dgl_g, dgl_to_adb_metagraph, overwrite=True) + assert_dgl_to_adb(name, dgl_g, dgl_to_adb_metagraph) db.delete_graph(name, drop_collections=True) +def assert_adb_to_dgl( + dgl_g: Union[DGLGraph, DGLHeteroGraph], metagraph: ADBMetagraph +) -> None: + has_one_ntype = len(dgl_g.ntypes) == 1 + has_one_etype = len(dgl_g.canonical_etypes) == 1 + + # Maps ArangoDB Vertex _keys to DGL Node ids + adb_map: ADBMap = defaultdict(dict) + + for v_col, meta in metagraph["vertexCollections"].items(): + n_key = None if has_one_ntype else v_col + collection = db.collection(v_col) + assert collection.count() == dgl_g.num_nodes(n_key) + + df = DataFrame(collection.all()) + adb_map[v_col] = {adb_id: dgl_id for dgl_id, adb_id in enumerate(df["_key"])} + + assert_adb_to_dgl_meta(meta, df, dgl_g.nodes[n_key].data) + + et_df: DataFrame + v_cols: List[str] = list(metagraph["vertexCollections"].keys()) + for e_col, meta in metagraph["edgeCollections"].items(): + collection = db.collection(e_col) + assert collection.count() <= dgl_g.num_edges(None) + + df = DataFrame(collection.all()) + df[["from_col", "from_key"]] = df["_from"].str.split("/", 1, True) + df[["to_col", "to_key"]] = df["_to"].str.split("/", 1, True) + + for (from_col, to_col), count in ( + df[["from_col", "to_col"]].value_counts().items() + ): + edge_type = (from_col, e_col, to_col) + if from_col not in v_cols or to_col not in v_cols: + continue + + e_key = None if has_one_etype else edge_type + assert count == dgl_g.num_edges(e_key) + + et_df = df[(df["from_col"] == from_col) & (df["to_col"] == to_col)] + from_nodes = et_df["from_key"].map(adb_map[from_col]).tolist() + to_nodes = et_df["to_key"].map(adb_map[to_col]).tolist() + + assert from_nodes == dgl_g.edges(etype=e_key)[0].tolist() + assert to_nodes == dgl_g.edges(etype=e_key)[1].tolist() + + assert_adb_to_dgl_meta(meta, et_df, dgl_g.edges[e_key].data) + + +def assert_adb_to_dgl_meta( + meta: Union[Set[str], Dict[str, ADBMetagraphValues]], + df: DataFrame, + dgl_data: Union[NodeSpace, EdgeSpace], +) -> None: + valid_meta: Dict[str, ADBMetagraphValues] + valid_meta = meta if type(meta) is dict else {m: m for m in meta} + + for k, v in valid_meta.items(): + assert k in dgl_data + assert type(dgl_data[k]) is Tensor + + t = dgl_data[k].tolist() + if type(v) is str: + data = df[v].tolist() + assert len(data) == len(t) + assert data == t + + if type(v) is dict: + data = [] + for attr, encoder in v.items(): + if encoder is None: + data.append(tensor(df[attr].to_list())) + if callable(encoder): + data.append(encoder(df[attr])) + + cat_data = cat(data, dim=-1).tolist() + assert len(cat_data) == len(t) + assert cat_data == t + + if callable(v): + data = v(df).tolist() + assert len(data) == len(t) + assert data == t + + def assert_dgl_to_adb( name: str, dgl_g: Union[DGLGraph, DGLHeteroGraph], @@ -745,16 +822,15 @@ def assert_dgl_to_adb( df = DataFrame(collection.all()) df[["from_col", "from_key"]] = df["_from"].str.split("/", 1, True) df[["to_col", "to_key"]] = df["_to"].str.split("/", 1, True) + et_df = df[(df["from_col"] == from_col) & (df["to_col"] == to_col)] + assert len(et_df) == dgl_g.num_edges(e_key) - aql = f""" - FOR edge IN {e_col} - FILTER IS_SAME_COLLECTION({from_col}, edge._from) - AND IS_SAME_COLLECTION({to_col}, edge._to) - RETURN 1 - """ + from_nodes = dgl_g.edges(etype=e_key)[0].tolist() + to_nodes = dgl_g.edges(etype=e_key)[1].tolist() - assert db.aql.execute(aql, count=True).count() == dgl_g.num_edges(e_key) + assert from_nodes == et_df["from_key"].astype(int).tolist() + assert to_nodes == et_df["to_key"].astype(int).tolist() meta = e_meta.get(e_type, {}) assert_dgl_to_adb_meta(et_df, meta, dgl_g.edges[e_key].data, explicit_metagraph) @@ -762,12 +838,12 @@ def assert_dgl_to_adb( def assert_dgl_to_adb_meta( df: DataFrame, - meta: Union[str, Dict[Any, DGLMetagraphValues]], + meta: Union[Set[str], Dict[Any, DGLMetagraphValues]], dgl_data: Union[NodeSpace, EdgeSpace], explicit_metagraph: bool, ) -> None: valid_meta: Dict[Any, DGLMetagraphValues] - valid_meta = meta if type(meta) is dict else {m: m for m in meta} + valid_meta = meta if type(meta) is dict else {m: m for m in meta} if explicit_metagraph: dgl_keys = set(valid_meta.keys()) From 21d7dedaa84e3f99a6357a6b3df756b9af36b727 Mon Sep 17 00:00:00 2001 From: aMahanna Date: Thu, 4 Aug 2022 23:51:50 -0400 Subject: [PATCH 10/37] fix: black --- adbdgl_adapter/adapter.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/adbdgl_adapter/adapter.py b/adbdgl_adapter/adapter.py index 2096d4e..e502449 100644 --- a/adbdgl_adapter/adapter.py +++ b/adbdgl_adapter/adapter.py @@ -162,7 +162,7 @@ def arangodb_to_dgl( data_dict[edge_type] = (tensor(from_nodes), tensor(to_nodes)) self.__set_dgl_data(edge_type, meta, edata, df) - if not data_dict: # pragma: no cover + if not data_dict: # pragma: no cover msg = f""" Can't create DGL graph: no complete edge types found. The following edge types were skipped due to missing From 7d252a23c29c2dde319e2d83946be0215a39e6cd Mon Sep 17 00:00:00 2001 From: aMahanna Date: Thu, 4 Aug 2022 23:56:45 -0400 Subject: [PATCH 11/37] fix: flake8 --- adbdgl_adapter/adapter.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/adbdgl_adapter/adapter.py b/adbdgl_adapter/adapter.py index e502449..d5082eb 100644 --- a/adbdgl_adapter/adapter.py +++ b/adbdgl_adapter/adapter.py @@ -358,7 +358,7 @@ def dgl_to_arangodb( return adb_graph def etypes_to_edefinitions(self, edge_types: List[DGLCanonicalEType]) -> List[Json]: - """Converts a DGL graph's canonical_etypes property to ArangoDB graph edge definitions + """Converts DGL canonical_etypes to ArangoDB edge_definitions :param edge_types: A list of string triplets (str, str, str) for source node type, edge type and destination node type. From e6476be150281592d9f0c081d97223ef40c16091 Mon Sep 17 00:00:00 2001 From: aMahanna Date: Fri, 5 Aug 2022 00:02:09 -0400 Subject: [PATCH 12/37] Update setup.py --- setup.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 037c9c1..6a395e2 100644 --- a/setup.py +++ b/setup.py @@ -18,8 +18,10 @@ license="Apache Software License", install_requires=[ "requests>=2.27.1", + "rich>=12.5.1", + "pandas>=1.3.5", "dgl>=0.6.1", - "torch>=1.10.2", + "torch>=1.12.0", "python-arango>=7.4.1", "setuptools>=45", ], From 1c2af5049043b69c5ff76174b8e9ca1681f5e895 Mon Sep 17 00:00:00 2001 From: aMahanna Date: Fri, 5 Aug 2022 00:06:11 -0400 Subject: [PATCH 13/37] temp: try for 3.10 --- .github/workflows/build.yml | 2 +- .github/workflows/release.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 64c7ee5..39f4c43 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python: ["3.7", "3.8", "3.9"] + python: ["3.7", "3.8", "3.9", "3.10"] name: Python ${{ matrix.python }} steps: - uses: actions/checkout@v2 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index eb8b8a2..e102f0e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python: ["3.7", "3.8", "3.9"] + python: ["3.7", "3.8", "3.9", "3.10"] name: Python ${{ matrix.python }} steps: - uses: actions/checkout@v2 From 6e36e2f9c977615c9a0e2292522f2d8f5a27bec5 Mon Sep 17 00:00:00 2001 From: aMahanna Date: Fri, 5 Aug 2022 00:19:20 -0400 Subject: [PATCH 14/37] new: 3.10 support --- setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.py b/setup.py index 6a395e2..570fbc9 100644 --- a/setup.py +++ b/setup.py @@ -46,6 +46,7 @@ "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", "Topic :: Utilities", "Typing :: Typed", ], From 720c6c29bccd9cae460cb2c0605b814ea11bb24c Mon Sep 17 00:00:00 2001 From: aMahanna Date: Fri, 5 Aug 2022 00:19:54 -0400 Subject: [PATCH 15/37] cleanup: progress bars --- adbdgl_adapter/adapter.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/adbdgl_adapter/adapter.py b/adbdgl_adapter/adapter.py index d5082eb..71af138 100644 --- a/adbdgl_adapter/adapter.py +++ b/adbdgl_adapter/adapter.py @@ -451,9 +451,9 @@ def __fetch_adb_docs( """ with progress( - f"Export: {col}", - text_style="#97C423", - spinner_style="#7D3B04", + f"(ADB → DGL): {col}", + text_style="#319BF5", + spinner_style="#FCFDFC", ) as p: p.add_task("__fetch_adb_docs") @@ -479,9 +479,9 @@ def __insert_adb_docs( col = doc_type if type(doc_type) is str else doc_type[1] with progress( - f"Import: {doc_type} ({len(df)})", - text_style="#825FE1", - spinner_style="#3AA7F4", + f"(DGL → ADB): {doc_type} ({len(df)})", + text_style="#97C423", + spinner_style="#994602", ) as p: p.add_task("__insert_adb_docs") From ded2c8be41e70393d431d175ad7ebd12c0bbfad8 Mon Sep 17 00:00:00 2001 From: aMahanna Date: Fri, 5 Aug 2022 00:57:53 -0400 Subject: [PATCH 16/37] update: documentation --- README.md | 7 +- adbdgl_adapter/adapter.py | 180 +++++++++++++++++++++++++++++++++++++- 2 files changed, 180 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 6f1d8cf..ea27cc8 100644 --- a/README.md +++ b/README.md @@ -98,14 +98,13 @@ metagraph = { "features": "user_age", # 1) you can specify a string value for attribute renaming "label": label_tensor_to_2_column_dataframe, # 2) you can specify a function for user-defined handling, as long as the function returns a Pandas DataFrame }, - "game": { - # 3) you can specify a list of strings for tensor dissasembly (if you know the number of node/edge features in advance) - "features": ["is_multiplayer", "is_free_to_play"] + # 3) You can specify set of strings if you want to preserve the same PyG attribute names for the node/edge type + "game": {"features"} # this is equivalent to {"features": "features"} }, }, "edgeTypes": { ("user", "plays", "game"): { - # 3) you can specify a list of strings for tensor dissasembly (if you know the number of node/edge features in advance) + # 4) you can specify a list of strings for tensor dissasembly (if you know the number of node/edge features in advance) "features": ["hours_played", "is_satisfied_with_game"] }, }, diff --git a/adbdgl_adapter/adapter.py b/adbdgl_adapter/adapter.py index 71af138..cfb2912 100644 --- a/adbdgl_adapter/adapter.py +++ b/adbdgl_adapter/adapter.py @@ -88,6 +88,27 @@ def arangodb_to_dgl( :param metagraph: An object defining vertex & edge collections to import to DGL, along with collection-level specifications to indicate which ArangoDB attributes will become DGL features/labels. + + The current supported **metagraph** values are: + 1) Set[str]: The set of DGL-ready ArangoDB attributes to store + in your DGL graph. + + 2) Dict[str, str]: The DGL property name mapped to the ArangoDB + attribute name that stores your DGL ready data. + + 3) Dict[str, Dict[str, None | Callable]]: + The DGL property name mapped to a dictionary, which maps your + ArangoDB attribute names to a callable Python Class + (i.e has a `__call__` function defined), or to None + (if the ArangoDB attribute is already a list of numerics). + NOTE: The `__call__` function must take as input a Pandas DataFrame, + and must return a PyTorch Tensor. + + 4) Dict[str, Callable[[pandas.DataFrame], torch.Tensor]]: + The DGL property name mapped to a user-defined function + for custom behaviour. NOTE: The function must take as input + a Pandas DataFrame, and must return a PyTorch Tensor. + See below for examples of **metagraph**. :type metagraph: adbdgl_adapter.typings.ADBMetagraph :param query_options: Keyword arguments to specify AQL query options when @@ -98,7 +119,107 @@ def arangodb_to_dgl( :rtype: dgl.DGLGraph | dgl.DGLHeteroGraph :raise adbdgl_adapter.exceptions.ADBMetagraphError: If invalid metagraph. - #TODO: Metagraph examples + **metagraph** examples + + 1) + .. code-block:: python + { + "vertexCollections": { + "v0": {'x', 'y'}, # equivalent to {'x': 'x', 'y': 'y'} + "v1": {'x'}, + "v2": {'x'}, + }, + "edgeCollections": { + "e0": {'edge_attr'}, + "e1": {'edge_weight'}, + }, + } + + The metagraph above specifies that each document + within the "v0" ArangoDB collection has a "pre-built" feature matrix + named "x", and also has a node label named "y". + We map these keys to the "x" and "y" properties of the DGL graph. + + 2) + .. code-block:: python + { + "vertexCollections": { + "v0": {'x': 'v0_features', 'y': 'label'}, + "v1": {'x': 'v1_features'}, + "v2": {'x': 'v2_features'}, + }, + "edgeCollections": { + "e0": {'edge_attr': 'e0_features'}, + "e1": {'edge_weight': 'edge_weight'}, + }, + } + + The metagraph above specifies that each document + within the "v0" ArangoDB collection has a "pre-built" feature matrix + named "v0_features", and also has a node label named "label". + We map these keys to the "x" and "y" properties of the DGL graph. + + 3) + .. code-block:: python + from adbdgl_adapter.encoders import IdentityEncoder, CategoricalEncoder + + { + "vertexCollections": { + "Movies": { + "x": { + "Action": IdentityEncoder(dtype=torch.long), + "Drama": IdentityEncoder(dtype=torch.long), + 'Misc': None + }, + "y": "Comedy", + }, + "Users": { + "x": { + "Gender": CategoricalEncoder(), + "Age": IdentityEncoder(dtype=torch.long), + } + }, + }, + "edgeCollections": { + "Ratings": { "edge_weight": "Rating" } + }, + } + + The metagraph above will build the "Movies" feature matrix 'x' + using the ArangoDB 'Action', 'Drama' & 'misc' attributes, by relying on + the user-specified Encoders (see adbdgl_adapter.encoders for examples). + NOTE: If the mapped value is `None`, then it assumes that the ArangoDB attribute + value is a list containing numerical values only. + + 4) + .. code-block:: python + def udf_v0_x(v0_df): + # process v0_df here to return v0 "x" feature matrix + # ... + return torch.tensor(v0_df["x"].to_list()) + + def udf_v1_x(v1_df): + # process v1_df here to return v1 "x" feature matrix + # ... + return torch.tensor(v1_df["x"].to_list()) + + { + "vertexCollections": { + "v0": { + "x": udf_v0_x, # named functions + "y": (lambda df: tensor(df["y"].to_list())), # lambda functions + }, + "v1": {"x": udf_v1_x}, + "v2": {"x": (lambda df: tensor(df["x"].to_list()))}, + }, + "edgeCollections": { + "e0": {"edge_attr": (lambda df: tensor(df["edge_attr"].to_list()))}, + }, + } + + The metagraph above provides an interface for a user-defined function to + build a DGL-ready Tensor from a DataFrame equivalent to the + associated ArangoDB collection. """ logger.debug(f"--arangodb_to_dgl('{name}')--") @@ -258,7 +379,26 @@ def dgl_to_arangodb( :param metagraph: An optional object mapping the DGL keys of the node & edge data to strings, list of strings, or user-defined functions. NOTE: Unlike the metagraph for ArangoDB to DGL, this - one is optional. See below for an example of **metagraph**. + one is optional. + + The current supported **metagraph** values are: + 1) Set[str]: The set of DGL data properties to store + in your ArangoDB database. + + 2) Dict[str, str]: The DGL property name mapped to the ArangoDB + attribute name that will be used to store your DGL data in ArangoDB. + + 3) List[str]: A list of ArangoDB attribute names that will break down + your tensor data, resulting in one ArangoDB attribute per feature. + Must know the number of node/edge features in advance to take + advantage of this metagraph value type. + + 4) Dict[str, Callable[[pandas.DataFrame], torch.Tensor]]: + The DGL property name mapped to a user-defined function + for custom behaviour. NOTE: The function must take as input + a PyTorch Tensor, and must return a Pandas DataFrame. + + See below for an example of **metagraph**. :type metagraph: adbdgl_adapter.typings.DGLMetagraph :param explicit_metagraph: Whether to take the metagraph at face value or not. If False, node & edge types OMITTED from the metagraph will be @@ -276,7 +416,41 @@ def dgl_to_arangodb( :rtype: arango.graph.Graph :raise adbdgl_adapter.exceptions.DGLMetagraphError: If invalid metagraph. - #TODO: Metagraph examples + **metagraph** example + + .. code-block:: python + def y_tensor_to_2_column_dataframe(dgl_tensor): + # A user-defined function to create two ArangoDB attributes + # out of the 'y' label tensor + label_map = {0: "Kiwi", 1: "Blueberry", 2: "Avocado"} + + df = pandas.DataFrame(columns=["label_num", "label_str"]) + df["label_num"] = dgl_tensor.tolist() + df["label_str"] = df["label_num"].map(label_map) + + return df + + metagraph = { + "nodeTypes": { + "v0": { + "x": "features", # 1) + "y": y_tensor_to_2_column_dataframe, # 2) + }, + "v1": {"x"} # 3) + }, + "edgeTypes": { + ("v0", "e0", "v0"): {"edge_attr": [ "a", "b"]}, # 4) + }, + } + + The metagraph above accomplishes the following: + 1) Renames the DGL 'v0' 'x' feature matrix to 'features' + when stored in ArangoDB. + 2) Builds a 2-column Pandas DataFrame from the 'v0' 'y' labels + through a user-defined function for custom behaviour handling. + 3) Transfers the DGL 'v1' 'x' feature matrix under the same name. + 4) Dissasembles the 2-feature Tensor into two ArangoDB attributes, + where each attribute holds one feature value. """ logger.debug(f"--dgl_to_arangodb('{name}')--") From b125b69e4d58ebaeb2ac284ee4e418e00029536b Mon Sep 17 00:00:00 2001 From: aMahanna Date: Fri, 5 Aug 2022 16:33:50 -0400 Subject: [PATCH 17/37] Update README.md --- README.md | 52 +++++++++++++++++++++++++++------------------------- 1 file changed, 27 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index ea27cc8..0ce4847 100644 --- a/README.md +++ b/README.md @@ -57,15 +57,15 @@ from adbdgl_adapter.encoders import IdentityEncoder, CategoricalEncoder # Let's assume that the ArangoDB "IMDB" dataset is imported to this endpoint db = ArangoClient(hosts="http://localhost:8529").db("_system", username="root", password="") -hetero_graph = dgl.heterograph({ +fake_hetero = dgl.heterograph({ ("user", "follows", "user"): (torch.tensor([0, 1]), torch.tensor([1, 2])), ("user", "follows", "topic"): (torch.tensor([1, 1]), torch.tensor([1, 2])), ("user", "plays", "game"): (torch.tensor([0, 3]), torch.tensor([3, 4])), }) -hetero_graph.nodes["user"].data["features"] = torch.tensor([21, 44, 16, 25]) -hetero_graph.nodes["user"].data["label"] = torch.tensor([1, 2, 0, 1]) -hetero_graph.nodes["game"].data["features"] = torch.tensor([[0, 0], [0, 1], [1, 0], [1, 1], [1, 1]]) -hetero_graph.edges[("user", "plays", "game")].data["features"] = torch.tensor([[6, 1], [1000, 0]]) +fake_hetero.nodes["user"].data["features"] = torch.tensor([21, 44, 16, 25]) +fake_hetero.nodes["user"].data["label"] = torch.tensor([1, 2, 0, 1]) +fake_hetero.nodes["game"].data["features"] = torch.tensor([[0, 0], [0, 1], [1, 0], [1, 1], [1, 1]]) +fake_hetero.edges[("user", "plays", "game")].data["features"] = torch.tensor([[6, 1], [1000, 0]]) adbdgl_adapter = ADBDGL_Adapter(db) ``` @@ -73,7 +73,7 @@ adbdgl_adapter = ADBDGL_Adapter(db) ### DGL to ArangoDB ```py # 1.1: DGL to ArangoDB -adb_g = adbdgl_adapter.dgl_to_arangodb("HeteroGraph", hetero_graph) +adb_g = adbdgl_adapter.dgl_to_arangodb("FakeHetero", fake_hetero) # 1.2: DGL to ArangoDB with a (completely optional) metagraph for customized adapter behaviour def label_tensor_to_2_column_dataframe(dgl_tensor): @@ -100,7 +100,6 @@ metagraph = { }, # 3) You can specify set of strings if you want to preserve the same PyG attribute names for the node/edge type "game": {"features"} # this is equivalent to {"features": "features"} - }, }, "edgeTypes": { ("user", "plays", "game"): { @@ -111,12 +110,12 @@ metagraph = { } -adb_g = adbdgl_adapter.dgl_to_arangodb("HeteroGraph", hetero_graph, metagraph, explicit_metagraph=False) +adb_g = adbdgl_adapter.dgl_to_arangodb("FakeHetero", fake_hetero, metagraph, explicit_metagraph=False) # 1.3: DGL to ArangoDB with the same (optional) metagraph, but with `explicit_metagraph=True` # With `explicit_metagraph=True`, the node & edge types omitted from the metagraph will NOT be converted to ArangoDB. # Only 'user', 'game', and ('user', 'plays', 'game') will be brought over (i.e 'topic', ('user', 'follows', 'user'), ... are ignored) -adb_g = adbdgl_adapter.dgl_to_arangodb("HeteroGraph", hetero_graph, metagraph, explicit_metagraph=True) +adb_g = adbdgl_adapter.dgl_to_arangodb("FakeHetero", fake_hetero, metagraph, explicit_metagraph=True) # 1.4: DGL to ArangoDB with a Custom Controller (more user-defined behavior) class Custom_ADBDGL_Controller(ADBDGL_Controller): @@ -142,52 +141,55 @@ class Custom_ADBDGL_Controller(ADBDGL_Controller): return dgl_edge -adb_g = ADBDGL_Adapter(db, Custom_ADBDGL_Controller()).dgl_to_arangodb("HeteroGraph", hetero_graph) +adb_g = ADBDGL_Adapter(db, Custom_ADBDGL_Controller()).dgl_to_arangodb("FakeHetero", fake_hetero) ``` ### ArangoDB to DGL ```py # Start from scratch! -db.delete_graph("HeteroGraph", drop_collections=True, ignore_missing=True) -adbdgl_adapter.dgl_to_arangodb("HeteroGraph", hetero_graph) +db.delete_graph("FakeHetero", drop_collections=True, ignore_missing=True) +adbdgl_adapter.dgl_to_arangodb("FakeHetero", fake_hetero) # 2.1: ArangoDB to DGL via Graph name (does not transfer attributes) -dgl_g = adbdgl_adapter.arangodb_graph_to_dgl("HeteroGraph") +dgl_g = adbdgl_adapter.arangodb_graph_to_dgl("FakeHetero") # 2.2: ArangoDB to DGL via Collection names (does not transfer attributes) -dgl_g = adbdgl_adapter.arangodb_collections_to_dgl("HeteroGraph", v_cols={"user", "game"}, e_cols={"plays"}) +dgl_g = adbdgl_adapter.arangodb_collections_to_dgl("FakeHetero", v_cols={"user", "game"}, e_cols={"plays"}) # 2.3: ArangoDB to DGL via Metagraph v1 (transfer attributes "as is", meaning they are already formatted to DGL data standards) metagraph_v1 = { "vertexCollections": { - # we instruct the adapter to create the "features" and "label" tensor data from the "features" and "label" ArangoDB attributes - "user": {"features": "features", "label": "label"}, - "game": {"features": "features"}, + # Move the "features" & "label" ArangoDB attributes to DGL as "features" & "label" Tensors + "user": {"features", "label"}, # equivalent to {"features": "features", "label": "label"} + "game": {"dgl_game_features": "features"}, "topic": {}, }, - "edgeCollections": {"plays": {"features": "features"}, "follows": {}}, + "edgeCollections": { + "plays": {"dgl_plays_features": "features"}, + "follows": {} + }, } -dgl_g = adbdgl_adapter.arangodb_to_dgl("HeteroGraph", metagraph_v1) +dgl_g = adbdgl_adapter.arangodb_to_dgl("FakeHetero", metagraph_v1) # 2.4: ArangoDB to DGL via Metagraph v2 (transfer attributes via user-defined encoders) # For more info on user-defined encoders, see https://pytorch-geometric.readthedocs.io/en/latest/notes/load_csv.html metagraph_v2 = { "vertexCollections": { "Movies": { - "x": { # Build a feature matrix from the "Action" & "Drama" document attributes + "features": { # Build a feature matrix from the "Action" & "Drama" document attributes "Action": IdentityEncoder(dtype=torch.long), "Drama": IdentityEncoder(dtype=torch.long), }, - "y": "Comedy", + "label": "Comedy", }, "Users": { - "x": { - "Gender": CategoricalEncoder(mapping={"M": 0, "F": 1}), + "features": { + "Gender": CategoricalEncoder(), # CategoricalEncoder(mapping={"M": 0, "F": 1}), "Age": IdentityEncoder(dtype=torch.long), } }, }, - "edgeCollections": {"Ratings": {"edge_weight": "Rating"}}, + "edgeCollections": {"Ratings": {"weight": "Rating"}}, } dgl_g = adbdgl_adapter.arangodb_to_dgl("IMDB", metagraph_v2) @@ -216,7 +218,7 @@ metagraph_v3 = { "plays": {"features": (lambda df: torch.tensor(df["features"].to_list()))}, }, } -dgl_g = adbdgl_adapter.arangodb_to_dgl("HeteroGraph", metagraph_v3) +dgl_g = adbdgl_adapter.arangodb_to_dgl("FakeHetero", metagraph_v3) ``` ## Development & Testing From 582da57cad8aa8352034f45fa18dbbbf872c4b13 Mon Sep 17 00:00:00 2001 From: aMahanna Date: Fri, 5 Aug 2022 16:45:12 -0400 Subject: [PATCH 18/37] new: adbdgl 3.0.0 notebook --- examples/ArangoDB_DGL_Adapter.ipynb | 1030 +++++++++++++++++---------- 1 file changed, 638 insertions(+), 392 deletions(-) diff --git a/examples/ArangoDB_DGL_Adapter.ipynb b/examples/ArangoDB_DGL_Adapter.ipynb index 918fecd..93039c4 100644 --- a/examples/ArangoDB_DGL_Adapter.ipynb +++ b/examples/ArangoDB_DGL_Adapter.ipynb @@ -15,7 +15,7 @@ "id": "U1d45V4OeG89" }, "source": [ - "\"Open" + "\"Open" ] }, { @@ -34,7 +34,7 @@ "id": "bpvZS-1aeG89" }, "source": [ - "Version: 2.1.0\n", + "Version: 3.0.0\n", "\n", "Objective: Export Graphs from [ArangoDB](https://www.arangodb.com/), a multi-model Graph Database, to [Deep Graph Library](https://www.dgl.ai/) (DGL), a python package for graph neural networks, and vice-versa." ] @@ -57,9 +57,9 @@ "outputs": [], "source": [ "%%capture\n", - "!pip install adbdgl-adapter==2.1.0\n", + "!pip install adbdgl-adapter==3.0.0\n", "!pip install adb-cloud-connector\n", - "!git clone -b 2.1.0 --single-branch https://github.com/arangoml/dgl-adapter.git\n", + "!git clone -b 3.0.0 --single-branch https://github.com/arangoml/dgl-adapter.git\n", "\n", "## For drawing purposes \n", "!pip install matplotlib\n", @@ -70,26 +70,27 @@ "cell_type": "code", "execution_count": null, "metadata": { - "id": "niijQHqBM6zp" + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "niijQHqBM6zp", + "outputId": "77df8f72-4000-44e8-9dd6-c56bbf33c07d" }, "outputs": [], "source": [ "# All imports\n", "\n", + "import pandas\n", + "import torch\n", "import dgl\n", - "from dgl import remove_self_loop\n", - "from dgl.data import MiniGCDataset\n", "from dgl.data import KarateClubDataset\n", "\n", - "import torch\n", - "from torch import Tensor\n", - "\n", - "from adbdgl_adapter import ADBDGL_Adapter, ADBDGL_Controller\n", - "from adbdgl_adapter.typings import Json, ArangoMetagraph, DGLCanonicalEType, DGLDataDict\n", - "\n", "from arango import ArangoClient\n", "from adb_cloud_connector import get_temp_credentials\n", "\n", + "from adbdgl_adapter import ADBDGL_Adapter, ADBDGL_Controller\n", + "from adbdgl_adapter.encoders import IdentityEncoder, CategoricalEncoder\n", + "\n", "import json\n", "import logging\n", "\n", @@ -130,7 +131,7 @@ "base_uri": "https://localhost:8080/" }, "id": "vf0350qvj8up", - "outputId": "fbf300df-5dcd-44e8-a746-cb554eba1dd8" + "outputId": "bb473200-893d-4d4e-ed6d-239ec497d0e3" }, "outputs": [], "source": [ @@ -163,7 +164,7 @@ "base_uri": "https://localhost:8080/" }, "id": "oOS3AVAnkQEV", - "outputId": "3a7403db-d11b-4f7a-a0b7-6e8220186273" + "outputId": "5b5feaaa-2a6f-4e0e-ef89-68b9e365a6db" }, "outputs": [], "source": [ @@ -199,7 +200,7 @@ "base_uri": "https://localhost:8080/" }, "id": "meLon-KgkU4h", - "outputId": "fa57e121-5294-45f9-b3d0-3a2cfa212da7" + "outputId": "7517b39b-adfa-426d-ccae-89254cf642b5" }, "outputs": [], "source": [ @@ -237,7 +238,7 @@ "base_uri": "https://localhost:8080/" }, "id": "zTebQ0LOlsGA", - "outputId": "f5c06fec-a3e3-41fb-b478-42e492af07de" + "outputId": "c871096b-b06e-4cd8-ad56-06758090600d" }, "outputs": [], "source": [ @@ -280,7 +281,7 @@ "base_uri": "https://localhost:8080/" }, "id": "KsxNujb0mSqZ", - "outputId": "0cf12da9-c754-41a3-9496-5aea0a0faac9" + "outputId": "0b7b4106-7385-4489-e49a-399efbef0cb8" }, "outputs": [], "source": [ @@ -323,7 +324,7 @@ "base_uri": "https://localhost:8080/" }, "id": "2ekGwnJDeG8-", - "outputId": "02cf35c6-9416-44fb-be44-5c0f517e0f78" + "outputId": "84a1c36b-3dc1-47e2-dadf-8a4ebefd98c0" }, "outputs": [], "source": [ @@ -359,7 +360,7 @@ "id": "BM0iRYPDeG8_" }, "source": [ - "For demo purposes, we will be using the [ArangoDB Fraud Detection example graph](https://colab.research.google.com/github/joerg84/Graph_Powered_ML_Workshop/blob/master/Fraud_Detection.ipynb)." + "For demo purposes, we will be using the [ArangoDB IMDB example graph](https://www.arangodb.com/docs/stable/arangosearch-example-datasets.html#imdb-movie-dataset)." ] }, { @@ -370,12 +371,38 @@ "base_uri": "https://localhost:8080/" }, "id": "7bgGJ3QkeG8_", - "outputId": "15b25959-5a2f-4d1c-852e-5019845716a4" + "outputId": "1f490370-72f3-4d1b-8950-ef1d0f690218" }, "outputs": [], "source": [ "!chmod -R 755 dgl-adapter/\n", - "!./dgl-adapter/tests/assets/arangorestore -c none --server.endpoint http+ssl://{con[\"hostname\"]}:{con[\"port\"]} --server.username {con[\"username\"]} --server.database {con[\"dbName\"]} --server.password {con[\"password\"]} --replication-factor 3 --input-directory \"dgl-adapter/examples/data/fraud_dump\" --include-system-collections true" + "!./dgl-adapter/tests/tools/arangorestore -c none --server.endpoint http+ssl://{con[\"hostname\"]}:{con[\"port\"]} --server.username {con[\"username\"]} --server.database {con[\"dbName\"]} --server.password {con[\"password\"]} --replication-factor 3 --input-directory \"dgl-adapter/tests/data/adb/imdb_dump\" --include-system-collections true" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "XLiXYJPRlVYZ", + "outputId": "2666c5b3-1f62-4bfc-c9af-53bc53f0ffd8" + }, + "outputs": [], + "source": [ + "# Create the IMDB graph\n", + "db.delete_graph(\"imdb\", ignore_missing=True)\n", + "db.create_graph(\n", + " \"imdb\",\n", + " edge_definitions=[\n", + " {\n", + " \"edge_collection\": \"Ratings\",\n", + " \"from_vertex_collections\": [\"Users\"],\n", + " \"to_vertex_collections\": [\"Movies\"],\n", + " },\n", + " ],\n", + ")" ] }, { @@ -404,7 +431,7 @@ "base_uri": "https://localhost:8080/" }, "id": "oG496kBeeG9A", - "outputId": "792a3ad2-3d04-4132-d878-a5e52c58dc17" + "outputId": "e5d8657f-a644-4493-ca16-16a300ac4a87" }, "outputs": [], "source": [ @@ -414,36 +441,35 @@ { "cell_type": "markdown", "metadata": { - "id": "uByvwf9feG9A" + "id": "bvzJXSHHTi3v" }, "source": [ - "# ArangoDB to DGL\n", - "\n" + "# DGL to ArangoDB" ] }, { "cell_type": "markdown", "metadata": { - "id": "ZrEDmtqCVD0W" + "id": "UafSB_3JZNwK" }, "source": [ - "#### Via ArangoDB Graph" + "#### Karate Graph" ] }, { "cell_type": "markdown", "metadata": { - "id": "H8nlvWCryPW0" + "id": "tx-tjPfx0U_h" }, "source": [ - "Data source\n", - "* ArangoDB Fraud-Detection Graph\n", + "Data\n", + "* [DGL Karate Graph](https://docs.dgl.ai/en/0.6.x/api/python/dgl.data.html#karate-club-dataset)\n", "\n", - "Package methods used\n", - "* [`adbdgl_adapter.adapter.arangodb_graph_to_dgl()`](https://github.com/arangoml/dgl-adapter/blob/2.0.0/adbdgl_adapter/adapter.py#L198-L213)\n", + "API\n", + "* `adbdgl_adapter.adapter.dgl_to_arangodb()`\n", "\n", - "Important notes\n", - "* The `name` parameter in this case must point to an existing ArangoDB graph in your ArangoDB instance. " + "Notes\n", + "* The `name` parameter in this case is simply for naming your ArangoDB graph." ] }, { @@ -451,54 +477,70 @@ "execution_count": null, "metadata": { "colab": { - "base_uri": "https://localhost:8080/" + "base_uri": "https://localhost:8080/", + "height": 577, + "referenced_widgets": [ + "61d2a0426c324309ab51111933276e3d", + "77c208846c1e4503bc22a5b5504f89ee", + "2d1fc41d509e481cb779603827359184", + "87d9c9de620847f48b4088e8577cd653" + ] }, - "id": "zZ-Hu3lLVHgd", - "outputId": "d1c38c22-eebb-456d-8e4c-140ddd9baed8" + "id": "eRVbiBy4ZdE4", + "outputId": "74ac6cb8-824b-443a-ad6e-9f36b23060a1" }, "outputs": [], "source": [ - "# Define graph name\n", - "graph_name = \"fraud-detection\"\n", + "# Create the DGL graph & draw it\n", + "dgl_karate_graph = KarateClubDataset()[0]\n", + "nx.draw(dgl_karate_graph.to_networkx(), with_labels=True)\n", "\n", - "# Create DGL graph from ArangoDB graph\n", - "dgl_g = adbdgl_adapter.arangodb_graph_to_dgl(graph_name)\n", + "name = \"Karate\"\n", "\n", - "# You can also provide valid Python-Arango AQL query options to the command above, like such:\n", - "# dgl_g = aadbdgl_adapter.arangodb_graph_to_dgl(graph_name, ttl=1000, stream=True)\n", - "# See the full parameter list at https://docs.python-arango.com/en/main/specs.html#arango.aql.AQL.execute\n", + "# Delete the graph if it already exists\n", + "db.delete_graph(name, drop_collections=True, ignore_missing=True)\n", + "\n", + "# Create the ArangoDB graph\n", + "adb_karate_graph = adbdgl_adapter.dgl_to_arangodb(name, dgl_karate_graph)\n", + "\n", + "# You can also provide valid Python-Arango Import Bulk options to the command above, like such:\n", + "# adb_karate_graph = adbdgl_adapter.dgl_to_arangodb(name, dgl_karate_graph, batch_size=5, on_duplicate=\"replace\")\n", + "# See the full parameter list at https://docs.python-arango.com/en/main/specs.html#arango.collection.Collection.import_bulk\n", "\n", - "# Show graph data\n", "print('\\n--------------------')\n", - "print(dgl_g)\n", - "print(dgl_g.ntypes)\n", - "print(dgl_g.etypes)" + "print(\"URL: \" + con[\"url\"])\n", + "print(\"Username: \" + con[\"username\"])\n", + "print(\"Password: \" + con[\"password\"])\n", + "print(\"Database: \" + con[\"dbName\"])\n", + "print('--------------------\\n')\n", + "print(f\"View the created graph here: {con['url']}/_db/{con['dbName']}/_admin/aardvark/index.html#graph/{name}\\n\")\n", + "print(f\"View the original graph below:\\n\")" ] }, { "cell_type": "markdown", "metadata": { - "id": "RQ4CknYfUEuz" + "id": "CNj1xKhwoJoL" }, "source": [ - "#### Via ArangoDB Collections" + "\n", + "#### FakeHeterogeneous Graph" ] }, { "cell_type": "markdown", "metadata": { - "id": "bRcCmqWGy1Kf" + "id": "CZ1UX9YX1Zzo" }, "source": [ - "Data source\n", - "* ArangoDB Fraud-Detection Collections\n", + "Data\n", + "* A fake DGL Heterogeneous graph\n", "\n", - "Package methods used\n", - "* [`adbdgl_adapter.adapter.arangodb_collections_to_dgl()`](https://github.com/arangoml/dgl-adapter/blob/2.0.0/adbdgl_adapter/adapter.py#L169-L196)\n", + "API\n", + "* `adbdgl_adapter.adapter.dgl_to_arangodb()`\n", "\n", - "Important notes\n", - "* The `name` parameter in this case is simply for naming your DGL graph.\n", - "* The `vertex_collections` & `edge_collections` parameters must point to existing ArangoDB collections within your ArangoDB instance." + "Notes\n", + "* The `name` parameter is used to name your ArangoDB graph." ] }, { @@ -506,55 +548,84 @@ "execution_count": null, "metadata": { "colab": { - "base_uri": "https://localhost:8080/" + "base_uri": "https://localhost:8080/", + "height": 408, + "referenced_widgets": [ + "3fc8b14d794a46118b328893bd216405", + "c7e222474ff445fe86e4e599848b2ae2", + "289a6e16c3d640c29d96edf09908bd0f", + "61f3832c906445a3ab7e7ba9b41c0127", + "99bbe81a24db49ff9352987fd97649cd", + "21e50aa61c3d4de19b5cc0bbe27d53c9", + "f9fdfe6ce44e4e1c8f513f82efca3e0d", + "9b2b3abbe2c04af0bc232c9b16bfd90d", + "8444e147be8f44aba06ec1f8a880104e", + "80e69b3aa98b44e295efe3940c1146c2", + "ec7b8b0b853f463fa079dda845891391", + "dd2376f84c794b4989f385a5bb147bd8" + ] }, - "id": "i4XOpdRLUNlJ", - "outputId": "4d53a3d0-316b-40c2-d841-5fb29fa1358b" + "id": "jbJsvMMaoJoT", + "outputId": "c1606984-c2ef-41c1-e8b1-78a4ae40d93c" }, "outputs": [], "source": [ - "# Define collection names\n", - "vertex_collections = {\"account\", \"Class\", \"customer\"}\n", - "edge_collections = {\"accountHolder\", \"Relationship\", \"transaction\"}\n", + "# Create the PyG graph\n", + "hetero_graph = dgl.heterograph({\n", + " (\"user\", \"follows\", \"user\"): (torch.tensor([0, 1]), torch.tensor([1, 2])),\n", + " (\"user\", \"follows\", \"topic\"): (torch.tensor([1, 1]), torch.tensor([1, 2])),\n", + " (\"user\", \"plays\", \"game\"): (torch.tensor([0, 3]), torch.tensor([3, 4])),\n", + "})\n", + "hetero_graph.nodes[\"user\"].data[\"features\"] = torch.tensor([21, 44, 16, 25])\n", + "hetero_graph.nodes[\"user\"].data[\"label\"] = torch.tensor([1, 2, 0, 1])\n", + "hetero_graph.nodes[\"game\"].data[\"features\"] = torch.tensor([[0, 0], [0, 1], [1, 0], [1, 1], [1, 1]])\n", + "hetero_graph.edges[(\"user\", \"plays\", \"game\")].data[\"features\"] = torch.tensor([[6, 1], [1000, 0]])\n", "\n", - "# Create DGL from ArangoDB collections\n", - "dgl_g = adbdgl_adapter.arangodb_collections_to_dgl(\"fraud-detection\", vertex_collections, edge_collections)\n", + "print(hetero_graph)\n", "\n", - "# You can also provide valid Python-Arango AQL query options to the command above, like such:\n", - "# dgl_g = adbdgl_adapter.arangodb_collections_to_dgl(\"fraud-detection\", vertex_collections, edge_collections, ttl=1000, stream=True)\n", - "# See the full parameter list at https://docs.python-arango.com/en/main/specs.html#arango.aql.AQL.execute\n", + "name = \"FakeHetero\"\n", + "\n", + "# Delete the graph if it already exists\n", + "db.delete_graph(name, drop_collections=True, ignore_missing=True)\n", + "\n", + "# Create the ArangoDB graphs\n", + "adb_hetero_graph = adbdgl_adapter.dgl_to_arangodb(name, hetero_graph)\n", "\n", - "# Show graph data\n", "print('\\n--------------------')\n", - "print(dgl_g)\n", - "print(dgl_g.ntypes)\n", - "print(dgl_g.etypes)" + "print(\"URL: \" + con[\"url\"])\n", + "print(\"Username: \" + con[\"username\"])\n", + "print(\"Password: \" + con[\"password\"])\n", + "print(\"Database: \" + con[\"dbName\"])\n", + "print('--------------------\\n')\n", + "print(f\"View the created graph here: {con['url']}/_db/{con['dbName']}/_admin/aardvark/index.html#graph/{name}\\n\")\n", + "print(f\"View the original graph below:\\n\")" ] }, { "cell_type": "markdown", "metadata": { - "id": "qEH6OdSB23Ya" + "id": "n08RC_GtkDrC" }, "source": [ - "#### Via ArangoDB Metagraph" + "\n", + "#### FakeHeterogeneous Graph with a DGL-ArangoDB metagraph" ] }, { "cell_type": "markdown", "metadata": { - "id": "PipFzJ0HzTMA" + "id": "rUD_y0yxkDrK" }, "source": [ - "Data source\n", - "* ArangoDB Fraud-Detection Collections\n", + "Data\n", + "* A fake DGL Heterogeneous graph\n", "\n", - "Package methods used\n", - "* [`adbdgl_adapter.adapter.arangodb_to_dgl()`](https://github.com/arangoml/dgl-adapter/blob/2.0.0/adbdgl_adapter/adapter.py#L70-L167)\n", + "API\n", + "* `adbdgl_adapter.adapter.dgl_to_arangodb()`\n", "\n", - "Important notes\n", - "* The `name` parameter in this case is simply for naming your DGL graph.\n", - "* The `metagraph` parameter should contain collections & associated document attributes names that exist within your ArangoDB instance." + "Notes\n", + "* The `name` parameter is used to name your ArangoDB graph.\n", + "* The `metagraph` parameter is an optional object mapping the PyG keys of the node & edge data to strings, list of strings, or user-defined functions." ] }, { @@ -562,69 +633,123 @@ "execution_count": null, "metadata": { "colab": { - "base_uri": "https://localhost:8080/" + "base_uri": "https://localhost:8080/", + "height": 408, + "referenced_widgets": [ + "345a5984959c4e57b7e2715fa8eeef8f", + "99e6613c4187459396eea503453934cb", + "968020b1388e4883843575d9198af1cd", + "f1a08470110e4099af2a3d4cf4d0f956", + "6744eb60dfa04a8598fca3b998ce3077", + "09d25097c75c4fa8a2c7376f1965afc5", + "cb8167f00277413eaaa2ad6e0e162fab", + "8128e6d80fcb4a8ca0a72097bb8b6521", + "575205f1a4e64c5d977e69d4939a5605", + "d20843bfa9064d56b37aaea011789a26", + "8bf075c6f7834d3fa905b7ddc37cf128", + "b080f26fe35241fb9cca48e97bc9ef0c" + ] }, - "id": "7Kz8lXXq23Yk", - "outputId": "7804e7ba-3760-4eb5-8669-f6fa20948262" + "id": "xAdjZiJ8kDrK", + "outputId": "2822ed4b-8199-48e2-a753-4b1f60d648a0" }, "outputs": [], "source": [ - "# Define Metagraph\n", - "fraud_detection_metagraph = {\n", - " \"vertexCollections\": {\n", - " \"account\": {\"rank\", \"Balance\", \"customer_id\"},\n", - " \"Class\": {\"concrete\"},\n", - " \"customer\": {\"rank\"},\n", + "# Create the PyG graph\n", + "hetero_graph = dgl.heterograph({\n", + " (\"user\", \"follows\", \"user\"): (torch.tensor([0, 1]), torch.tensor([1, 2])),\n", + " (\"user\", \"follows\", \"topic\"): (torch.tensor([1, 1]), torch.tensor([1, 2])),\n", + " (\"user\", \"plays\", \"game\"): (torch.tensor([0, 3]), torch.tensor([3, 4])),\n", + "})\n", + "hetero_graph.nodes[\"user\"].data[\"features\"] = torch.tensor([21, 44, 16, 25])\n", + "hetero_graph.nodes[\"user\"].data[\"label\"] = torch.tensor([1, 2, 0, 1])\n", + "hetero_graph.nodes[\"game\"].data[\"features\"] = torch.tensor([[0, 0], [0, 1], [1, 0], [1, 1], [1, 1]])\n", + "hetero_graph.edges[(\"user\", \"plays\", \"game\")].data[\"features\"] = torch.tensor([[6, 1], [1000, 0]])\n", + "\n", + "print(hetero_graph)\n", + "\n", + "name = \"FakeHetero\"\n", + "\n", + "# Define the metagraph\n", + "def label_tensor_to_2_column_dataframe(dgl_tensor):\n", + " \"\"\"\n", + " A user-defined function to create two\n", + " ArangoDB attributes out of the 'user' label tensor\n", + "\n", + " NOTE: user-defined functions must return a Pandas Dataframe\n", + " \"\"\"\n", + " label_map = {0: \"Class A\", 1: \"Class B\", 2: \"Class C\"}\n", + "\n", + " df = pandas.DataFrame(columns=[\"label_num\", \"label_str\"])\n", + " df[\"label_num\"] = dgl_tensor.tolist()\n", + " df[\"label_str\"] = df[\"label_num\"].map(label_map)\n", + "\n", + " return df\n", + "\n", + "\n", + "metagraph = {\n", + " \"nodeTypes\": {\n", + " \"user\": {\n", + " \"features\": \"user_age\", # 1) you can specify a string value for attribute renaming\n", + " \"label\": label_tensor_to_2_column_dataframe, # 2) you can specify a function for user-defined handling, as long as the function returns a Pandas DataFrame\n", + " },\n", + " # 3) You can specify set of strings if you want to preserve the same PyG attribute names for the node/edge type\n", + " \"game\": {\"features\"} # this is equivalent to {\"features\": \"features\"}\n", " },\n", - " \"edgeCollections\": {\n", - " \"accountHolder\": {},\n", - " \"Relationship\": {},\n", - " \"transaction\": {\"receiver_bank_id\", \"sender_bank_id\", \"transaction_amt\"},\n", + " \"edgeTypes\": {\n", + " (\"user\", \"plays\", \"game\"): {\n", + " # 4) you can specify a list of strings for tensor dissasembly (if you know the number of node/edge features in advance)\n", + " \"features\": [\"hours_played\", \"is_satisfied_with_game\"]\n", + " },\n", " },\n", "}\n", "\n", - "# Create DGL Graph from attributes\n", - "dgl_g = adbdgl_adapter.arangodb_to_dgl('FraudDetection', fraud_detection_metagraph)\n", + "# Delete the graph if it already exists\n", + "db.delete_graph(name, drop_collections=True, ignore_missing=True)\n", "\n", - "# You can also provide valid Python-Arango AQL query options to the command above, like such:\n", - "# dgl_g = adbdgl_adapter.arangodb_to_dgl(graph_name = 'FraudDetection', fraud_detection_metagraph, ttl=1000, stream=True)\n", - "# See the full parameter list at https://docs.python-arango.com/en/main/specs.html#arango.aql.AQL.execute\n", + "# Create the ArangoDB graphs\n", + "adb_hetero_graph = adbdgl_adapter.dgl_to_arangodb(name, hetero_graph, metagraph, explicit_metagraph=False)\n", "\n", - "# Show graph data\n", - "print('\\n--------------')\n", - "print(dgl_g)\n", - "print('\\n--------------')\n", - "print(dgl_g.ndata)\n", - "print('--------------\\n')\n", - "print(dgl_g.edata)" + "# Create the ArangoDB graph with `explicit_metagraph=True`\n", + "# With `explicit_metagraph=True`, the node & edge types omitted from the metagraph will NOT be converted to ArangoDB.\n", + "# Only 'user', 'game', and ('user', 'plays', 'game') will be brought over (i.e 'topic', ('user', 'follows', 'user'), ... are ignored)\n", + "## adb_hetero_graph = adbdgl_adapter.dgl_to_arangodb(name, hetero_graph, metagraph, explicit_metagraph=True)\n", + "\n", + "print('\\n--------------------')\n", + "print(\"URL: \" + con[\"url\"])\n", + "print(\"Username: \" + con[\"username\"])\n", + "print(\"Password: \" + con[\"password\"])\n", + "print(\"Database: \" + con[\"dbName\"])\n", + "print('--------------------\\n')\n", + "print(f\"View the created graph here: {con['url']}/_db/{con['dbName']}/_admin/aardvark/index.html#graph/{name}\\n\")\n", + "print(f\"View the original graph below:\\n\")" ] }, { "cell_type": "markdown", "metadata": { - "id": "DqIKT1lO4ASw" + "id": "mk6m0hBRkkkT" }, "source": [ - "#### Via ArangoDB Metagraph with a custom controller and verbose logging" + "\n", + "#### FakeHeterogeneous Graph with a user-defined ADBDGL Controller" ] }, { "cell_type": "markdown", "metadata": { - "id": "PGkGh_KjzlYM" + "id": "KG7kFoOUkkkb" }, "source": [ - "Data source\n", - "* ArangoDB Fraud-Detection Collections\n", + "Data\n", + "* A fake DGL Heterogeneous graph\n", "\n", - "Package methods used\n", - "* [`adbdgl_adapter.adapter.arangodb_to_dgl()`](https://github.com/arangoml/dgl-adapter/blob/2.0.0/adbdgl_adapter/adapter.py#L70-L167)\n", - "* [`adbdgl_adapter.controller._adb_attribute_to_dgl_feature()`](https://github.com/arangoml/dgl-adapter/blob/2.0.0/adbdgl_adapter/controller.py#L21-L47)\n", + "API\n", + "* `adbdgl_adapter.adapter.dgl_to_arangodb()`\n", "\n", - "Important notes\n", - "* The `name` parameter in this case is simply for naming your DGL graph.\n", - "* The `metagraph` parameter should contain collections & associated document attributes names that exist within your ArangoDB instance.\n", - "* We are creating a custom `ADBDGL_Controller` to specify *how* to convert our ArangoDB vertex/edge attributes into DGL node/edge features. View the default `ADBDGL_Controller` [here](https://github.com/arangoml/dgl-adapter/blob/2.0.0/adbdgl_adapter/controller.py#L11)." + "Notes\n", + "* The `name` parameter is used to name your ArangoDB graph.\n", + "* The `ADBDGL_Controller` is an optional user-defined class for controlling how nodes & edges are handled when transitioning from PyG to ArangoDB. **It is interpreted as the alternative to the `metagraph` parameter.**" ] }, { @@ -632,143 +757,158 @@ "execution_count": null, "metadata": { "colab": { - "base_uri": "https://localhost:8080/" + "base_uri": "https://localhost:8080/", + "height": 443, + "referenced_widgets": [ + "ea5e9803c5de4d2bbb48782069b9829b", + "3f633be94c7d466ea40571e805a76948", + "96e57d98afce44cd8269204dd19ff6e0", + "da43ef4a8c6a41f9bda153a0cd14c2d7", + "3bc228aa98454dc59a604c8f7ff6b2a0", + "65138d18c9c449d1aaaad387293c5ede", + "3ea99b2a6b4246d3abf628ca743f9f24", + "841ce4f5d391457e858c3c48185e259d", + "987bf80aee4b4b97bfad1699f8384af8", + "4ab3c113235746cab5fde158756ab420", + "09e8c93741bf45acb69ba9e757107564", + "d7d06973b2984eb19fa050409bf62222" + ] }, - "id": "U4_vSdU_4AS4", - "outputId": "8af82665-9ae6-40d4-ada2-248edd993291" + "id": "A-DtrD2Ykkkb", + "outputId": "f2672554-16e4-4b88-e24b-f567ff13bb3f" }, "outputs": [], "source": [ - "# Define Metagraph\n", - "fraud_detection_metagraph = {\n", - " \"vertexCollections\": {\n", - " \"account\": {\"rank\"},\n", - " \"Class\": {\"concrete\", \"name\"},\n", - " \"customer\": {\"Sex\", \"Ssn\", \"rank\"},\n", - " },\n", - " \"edgeCollections\": {\n", - " \"accountHolder\": {},\n", - " \"Relationship\": {},\n", - " \"transaction\": {\"receiver_bank_id\", \"sender_bank_id\", \"transaction_amt\", \"transaction_date\", \"trans_time\"},\n", - " },\n", - "}\n", + "# Create the PyG graph\n", + "hetero_graph = dgl.heterograph({\n", + " (\"user\", \"follows\", \"user\"): (torch.tensor([0, 1]), torch.tensor([1, 2])),\n", + " (\"user\", \"follows\", \"topic\"): (torch.tensor([1, 1]), torch.tensor([1, 2])),\n", + " (\"user\", \"plays\", \"game\"): (torch.tensor([0, 3]), torch.tensor([3, 4])),\n", + "})\n", + "hetero_graph.nodes[\"user\"].data[\"features\"] = torch.tensor([21, 44, 16, 25])\n", + "hetero_graph.nodes[\"user\"].data[\"label\"] = torch.tensor([1, 2, 0, 1])\n", + "hetero_graph.nodes[\"game\"].data[\"features\"] = torch.tensor([[0, 0], [0, 1], [1, 0], [1, 1], [1, 1]])\n", + "hetero_graph.edges[(\"user\", \"plays\", \"game\")].data[\"features\"] = torch.tensor([[6, 1], [1000, 0]])\n", "\n", - "# A user-defined Controller class is REQUIRED when converting non-numerical\n", - "# ArangoDB attributes to DGL features.\n", - "class FraudDetection_ADBDGL_Controller(ADBDGL_Controller):\n", - " \"\"\"ArangoDB-DGL controller.\n", + "print(hetero_graph)\n", "\n", - " Responsible for controlling how ArangoDB attributes\n", - " are converted into DGL features, and vice-versa.\n", + "name = \"FakeHetero\"\n", "\n", - " You can derive your own custom ADBDGL_Controller if you want to maintain\n", - " consistency between your ArangoDB attributes & your DGL features.\n", - " \"\"\"\n", + "# Create a custom ADBDGL_Controller\n", + "class Custom_ADBDGL_Controller(ADBDGL_Controller):\n", + " def _prepare_dgl_node(self, dgl_node: dict, node_type: str) -> dict:\n", + " \"\"\"Optionally modify a DGL node object before it gets inserted into its designated ArangoDB collection.\n", "\n", - " def _adb_attribute_to_dgl_feature(self, key: str, col: str, val):\n", + " :param dgl_node: The DGL node object to (optionally) modify.\n", + " :param node_type: The DGL Node Type of the node.\n", + " :return: The DGL Node object\n", " \"\"\"\n", - " Given an ArangoDB attribute key, its assigned value (for an arbitrary document),\n", - " and the collection it belongs to, convert it to a valid\n", - " DGL feature: https://docs.dgl.ai/en/0.6.x/guide/graph-feature.html.\n", - "\n", - " NOTE: You must override this function if you want to transfer non-numerical\n", - " ArangoDB attributes to DGL (DGL only accepts 'attributes' (a.k.a features)\n", - " of numerical types). Read more about DGL features here:\n", - " https://docs.dgl.ai/en/0.6.x/new-tutorial/2_dglgraph.html#assigning-node-and-edge-features-to-graph.\n", - "\n", - " :param key: The ArangoDB attribute key name\n", - " :type key: str\n", - " :param col: The ArangoDB collection of the ArangoDB document.\n", - " :type col: str\n", - " :param val: The assigned attribute value of the ArangoDB document.\n", - " :type val: Any\n", - " :return: The attribute's representation as a DGL Feature\n", - " :rtype: Any\n", + " dgl_node[\"foo\"] = \"bar\"\n", + " return dgl_node\n", + "\n", + " def _prepare_dgl_edge(self, dgl_edge: dict, edge_type: tuple) -> dict:\n", + " \"\"\"Optionally modify a DGL edge object before it gets inserted into its designated ArangoDB collection.\n", + "\n", + " :param dgl_edge: The DGL edge object to (optionally) modify.\n", + " :param edge_type: The Edge Type of the DGL edge. Formatted\n", + " as (from_collection, edge_collection, to_collection)\n", + " :return: The DGL Edge object\n", " \"\"\"\n", - " try:\n", - " if col == \"transaction\":\n", - " if key == \"transaction_date\":\n", - " return int(str(val).replace(\"-\", \"\"))\n", - " \n", - " if key == \"trans_time\":\n", - " return int(str(val).replace(\":\", \"\"))\n", - " \n", - " if col == \"customer\":\n", - " if key == \"Sex\":\n", - " return {\n", - " \"M\": 0,\n", - " \"F\": 1\n", - " }.get(val, -1)\n", - "\n", - " if key == \"Ssn\":\n", - " return int(str(val).replace(\"-\", \"\"))\n", - "\n", - " if col == \"Class\":\n", - " if key == \"name\":\n", - " return {\n", - " \"Bank\": 0,\n", - " \"Branch\": 1,\n", - " \"Account\": 2,\n", - " \"Customer\": 3\n", - " }.get(val, -1)\n", - "\n", - " except (ValueError, TypeError, SyntaxError):\n", - " return 0\n", - "\n", - " # Rely on the parent Controller as a final measure\n", - " return super()._adb_attribute_to_dgl_feature(key, col, val)\n", - "\n", - "# Instantiate the new adapter\n", - "fraud_adbdgl_adapter = ADBDGL_Adapter(db, FraudDetection_ADBDGL_Controller())\n", - "\n", - "# You can also change the adapter's logging level for access to \n", - "# silent, regular, or verbose logging (logging.WARNING, logging.INFO, logging.DEBUG)\n", - "fraud_adbdgl_adapter.set_logging(logging.DEBUG) # verbose logging\n", - "\n", - "# Create DGL Graph from attributes\n", - "dgl_g = fraud_adbdgl_adapter.arangodb_to_dgl('FraudDetection', fraud_detection_metagraph)\n", + " dgl_edge[\"bar\"] = \"foo\"\n", + " return dgl_edge\n", "\n", - "# Show graph data\n", - "print('\\n--------------')\n", - "print(dgl_g)\n", - "print('\\n--------------')\n", - "print(dgl_g.ndata)\n", - "print('--------------\\n')\n", - "print(dgl_g.edata)" + "# Delete the graph if it already exists\n", + "db.delete_graph(name, drop_collections=True, ignore_missing=True)\n", + "\n", + "# Create the ArangoDB graphs\n", + "adb_g = ADBDGL_Adapter(db, Custom_ADBDGL_Controller()).dgl_to_arangodb(name, hetero_graph)\n", + "\n", + "print('\\n--------------------')\n", + "print(\"URL: \" + con[\"url\"])\n", + "print(\"Username: \" + con[\"username\"])\n", + "print(\"Password: \" + con[\"password\"])\n", + "print(\"Database: \" + con[\"dbName\"])\n", + "print('--------------------\\n')\n", + "print(f\"View the created graph here: {con['url']}/_db/{con['dbName']}/_admin/aardvark/index.html#graph/{name}\\n\")\n", + "print(f\"View the original graph below:\\n\")" ] }, { "cell_type": "markdown", "metadata": { - "id": "bvzJXSHHTi3v" + "id": "uByvwf9feG9A" }, "source": [ - "# DGL to ArangoDB" + "# ArangoDB to DGL\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 165, + "referenced_widgets": [ + "c6cffa0a64434e56879ba2a8c9de018a", + "0083494093574c50952dd066502a708d", + "1dea128bde204a8fa53e094e014183fe", + "50f8ff3637ee4fc7af8c811cd5d177be", + "6582a9d3fe044d5380d8e918f3bc5a6d", + "40da9dd52dd6443684b990f74b6cb876", + "80d19dc0d20842c3b5c7313c0ad23d24", + "0478c90ef8234f3a8987dbe9cd3030b2", + "c61e3997250d4f93a8e0494db674892d", + "97e7543f202749c197515a9c5c79adbe", + "88e83ddc1ca1464291e1631b8fced847", + "a9c14a3f339445338119631c8e56ff68" + ] + }, + "id": "rnMe3iMz2K7j", + "outputId": "b1485ec1-64bf-43d5-a5fe-7d6bd5fc2da1" + }, + "outputs": [], + "source": [ + "# Start from scratch! (with the same DGL graph)\n", + "hetero_graph = dgl.heterograph({\n", + " (\"user\", \"follows\", \"user\"): (torch.tensor([0, 1]), torch.tensor([1, 2])),\n", + " (\"user\", \"follows\", \"topic\"): (torch.tensor([1, 1]), torch.tensor([1, 2])),\n", + " (\"user\", \"plays\", \"game\"): (torch.tensor([0, 3]), torch.tensor([3, 4])),\n", + "})\n", + "hetero_graph.nodes[\"user\"].data[\"features\"] = torch.tensor([21, 44, 16, 25])\n", + "hetero_graph.nodes[\"user\"].data[\"label\"] = torch.tensor([1, 2, 0, 1])\n", + "hetero_graph.nodes[\"game\"].data[\"features\"] = torch.tensor([[0, 0], [0, 1], [1, 0], [1, 1], [1, 1]])\n", + "hetero_graph.edges[(\"user\", \"plays\", \"game\")].data[\"features\"] = torch.tensor([[6, 1], [1000, 0]])\n", + "\n", + "db.delete_graph(\"FakeHetero\", drop_collections=True, ignore_missing=True)\n", + "adbdgl_adapter.dgl_to_arangodb(\"FakeHetero\", hetero_graph)" ] }, { "cell_type": "markdown", "metadata": { - "id": "UafSB_3JZNwK" + "id": "ZrEDmtqCVD0W" }, "source": [ - "#### Karate Graph" + "#### Via ArangoDB Graph" ] }, { "cell_type": "markdown", "metadata": { - "id": "tx-tjPfx0U_h" + "id": "H8nlvWCryPW0" }, "source": [ - "Data source\n", - "* [DGL Karate Graph](https://docs.dgl.ai/en/0.6.x/api/python/dgl.data.html#karate-club-dataset)\n", + "Data\n", + "* A fake DGL Heterogeneous graph\n", "\n", - "Package methods used\n", - "* [`adbdgl_adapter.adapter.dgl_to_arangodb()`](https://github.com/arangoml/dgl-adapter/blob/2.0.0/adbdgl_adapter/adapter.py#L215-L311)\n", + "API\n", + "* `adbdgl_adapter.adapter.arangodb_graph_to_dgl()`\n", "\n", - "Important notes\n", - "* The `name` parameter in this case is simply for naming your ArangoDB graph." + "Notes\n", + "* The `name` parameter in this case must point to an existing ArangoDB graph in your ArangoDB instance. \n", + "* Due to risk of ambiguity, this method does **not** carry over ArangoDB attributes to DGL." ] }, { @@ -777,63 +917,67 @@ "metadata": { "colab": { "base_uri": "https://localhost:8080/", - "height": 683 + "height": 184, + "referenced_widgets": [ + "9403e71c2bbe46bd9e6d49d555264554", + "34c4ef0c4aa5454893c0f0fa35902fbd", + "1690574b32cc4b48a8b87520458d5066", + "a9edf4f85a4a4504b155608bb740178a", + "fd2db543279f4a13ab6376b9c23160e0", + "5c310145af4f4c90b659dee771185ab6", + "31a9f782f36d407f8cc42b19679c5c2c", + "9fd8d07a43cd4c06a2d448047ede846c", + "2c2900512b5244d3a0fcaf7409446d0e", + "c5d064af7f4a49dca6716f98d052e951" + ] }, - "id": "eRVbiBy4ZdE4", - "outputId": "c629be2d-1bc9-4539-c7f2-d3ae46676659" + "id": "zZ-Hu3lLVHgd", + "outputId": "85729665-feb3-4382-e84b-4286162581c3" }, "outputs": [], "source": [ - "# Create the DGL graph & draw it\n", - "dgl_karate_graph = KarateClubDataset()[0]\n", - "nx.draw(dgl_karate_graph.to_networkx(), with_labels=True)\n", - "\n", - "name = \"Karate\"\n", + "# Define graph name\n", + "name = \"FakeHetero\"\n", "\n", - "# Delete the graph if it already exists\n", - "db.delete_graph(name, drop_collections=True, ignore_missing=True)\n", + "# Create DGL graph from the ArangoDB graph\n", + "dgl_g = adbdgl_adapter.arangodb_graph_to_dgl(name)\n", "\n", - "# Create the ArangoDB graph\n", - "adb_karate_graph = adbdgl_adapter.dgl_to_arangodb(name, dgl_karate_graph)\n", - "\n", - "# You can also provide valid Python-Arango Import Bulk options to the command above, like such:\n", - "# adb_karate_graph = adbdgl_adapter.dgl_to_arangodb(name, dgl_karate_graph, batch_size=5, on_duplicate=\"replace\")\n", - "# See the full parameter list at https://docs.python-arango.com/en/main/specs.html#arango.collection.Collection.import_bulk\n", + "# You can also provide valid Python-Arango AQL query options to the command above, like such:\n", + "# dgl_g = adbdgl_adapter.arangodb_graph_to_dgl(graph_name, ttl=1000, stream=True)\n", + "# See the full parameter list at https://docs.python-arango.com/en/main/specs.html#arango.aql.AQL.execute\n", "\n", + "# Show graph data\n", "print('\\n--------------------')\n", - "print(\"URL: \" + con[\"url\"])\n", - "print(\"Username: \" + con[\"username\"])\n", - "print(\"Password: \" + con[\"password\"])\n", - "print(\"Database: \" + con[\"dbName\"])\n", - "print('--------------------\\n')\n", - "print(f\"View the created graph here: {con['url']}/_db/{con['dbName']}/_admin/aardvark/index.html#graph/{name}\\n\")\n", - "print(f\"View the original graph below:\\n\")" + "print(dgl_g)\n", + "print(dgl_g.ndata) # note how this is empty\n", + "print(dgl_g.edata) # note how this is empty" ] }, { "cell_type": "markdown", "metadata": { - "id": "gshTlSX_ZZsS" + "id": "RQ4CknYfUEuz" }, "source": [ - "\n", - "#### MiniGCDataset Graphs" + "#### Via ArangoDB Collections" ] }, { "cell_type": "markdown", "metadata": { - "id": "KaExiE2x0-M6" + "id": "bRcCmqWGy1Kf" }, "source": [ - "Data source\n", - "* [DGL Mini Graph Classification Dataset](https://docs.dgl.ai/en/0.6.x/api/python/dgl.data.html#mini-graph-classification-dataset)\n", + "Data\n", + "* A fake DGL Heterogeneous graph\n", "\n", - "Package methods used\n", - "* [`adbdgl_adapter.adapter.dgl_to_arangodb()`](https://github.com/arangoml/dgl-adapter/blob/2.0.0/adbdgl_adapter/adapter.py#L215-L311)\n", + "API\n", + "* `adbdgl_adapter.adapter.arangodb_collections_to_dgl()`\n", "\n", - "Important notes\n", - "* The `name` parameters in this case are simply for naming your ArangoDB graph." + "Notes\n", + "* The `name` parameter is purely for documentation purposes in this case.\n", + "* The `vertex_collections` & `edge_collections` parameters must point to existing ArangoDB collections within your ArangoDB instance.\n", + "* Due to risk of ambiguity, this method does **not** carry over ArangoDB attributes to DGL." ] }, { @@ -842,82 +986,64 @@ "metadata": { "colab": { "base_uri": "https://localhost:8080/", - "height": 1000 + "height": 253, + "referenced_widgets": [ + "f01997b9b43d43368d632e26ba9732ad", + "14b29dc1f2b8454fa9acc1d79dcd4870", + "5f5c119141a24cab907ceb2da27e0244", + "46b88027e41a43578ebcc47513dd6911", + "7a43c4b816da4a40b0eed167a85eef22", + "eb376d5cf782424aaccbce31f0d3ede5", + "7a4db2b18c634bef932fb9b1157d4af1", + "b5be8c1e4ab3415c9fffbb61aeb0fff3", + "4e085418ce1b41e1bc24ad6acea92fc4", + "7b5dba3f4d50466eb2071cb13548ef1b" + ] }, - "id": "dADiexlAioGH", - "outputId": "9921ec34-b860-49e8-f8cb-0b403029ead4" + "id": "i4XOpdRLUNlJ", + "outputId": "c0fa5973-3e46-4227-8b0c-48b4f14736e5" }, "outputs": [], "source": [ - "# Load the dgl graphs & draw:\n", - "## 1) Lollipop Graph\n", - "dgl_lollipop_graph = remove_self_loop(MiniGCDataset(8, 7, 8)[3][0])\n", - "plt.figure(1)\n", - "nx.draw(dgl_lollipop_graph.to_networkx(), with_labels=True)\n", - "\n", - "## 2) Hypercube Graph\n", - "dgl_hypercube_graph = remove_self_loop(MiniGCDataset(8, 8, 9)[4][0])\n", - "plt.figure(2)\n", - "nx.draw(dgl_hypercube_graph.to_networkx(), with_labels=True)\n", - "\n", - "## 3) Clique Graph\n", - "dgl_clique_graph = remove_self_loop(MiniGCDataset(8, 6, 7)[6][0])\n", - "plt.figure(3)\n", - "nx.draw(dgl_clique_graph.to_networkx(), with_labels=True)\n", - "\n", - "lollipop = \"Lollipop\"\n", - "hypercube = \"Hypercube\"\n", - "clique = \"Clique\"\n", - "\n", - "# Delete the graphs from ArangoDB if they already exist\n", - "db.delete_graph(lollipop, drop_collections=True, ignore_missing=True)\n", - "db.delete_graph(hypercube, drop_collections=True, ignore_missing=True)\n", - "db.delete_graph(clique, drop_collections=True, ignore_missing=True)\n", + "name = \"FakeHetero\"\n", "\n", - "# Create the ArangoDB graphs\n", - "adb_lollipop_graph = adbdgl_adapter.dgl_to_arangodb(lollipop, dgl_lollipop_graph)\n", - "adb_hypercube_graph = adbdgl_adapter.dgl_to_arangodb(hypercube, dgl_hypercube_graph)\n", - "adb_clique_graph = adbdgl_adapter.dgl_to_arangodb(clique, dgl_clique_graph)\n", + "dgl_g = adbdgl_adapter.arangodb_collections_to_dgl(\n", + " name, \n", + " v_cols={\"user\", \"game\"},\n", + " e_cols={\"plays\", \"follows\"}\n", + ")\n", "\n", + "# Show graph data (notice that the \"topic\" data is skipped)\n", "print('\\n--------------------')\n", - "print(\"URL: \" + con[\"url\"])\n", - "print(\"Username: \" + con[\"username\"])\n", - "print(\"Password: \" + con[\"password\"])\n", - "print(\"Database: \" + con[\"dbName\"])\n", - "print('--------------------\\n')\n", - "print(\"View the created graphs here:\\n\")\n", - "print(f\"1) {con['url']}/_db/{con['dbName']}/_admin/aardvark/index.html#graph/{lollipop}\")\n", - "print(f\"2) {con['url']}/_db/{con['dbName']}/_admin/aardvark/index.html#graph/{hypercube}\")\n", - "print(f\"3) {con['url']}/_db/{con['dbName']}/_admin/aardvark/index.html#graph/{clique}\\n\")\n", - "print(f\"View the original graphs below:\\n\")" + "print(dgl_g)\n", + "print(dgl_g.ndata) # note how this is empty\n", + "print(dgl_g.edata) # note how this is empty" ] }, { "cell_type": "markdown", "metadata": { - "id": "CNj1xKhwoJoL" + "id": "qEH6OdSB23Ya" }, "source": [ - "\n", - "#### MiniGCDataset Graphs with attributes" + "#### Via ArangoDB-DGL metagraph 1" ] }, { "cell_type": "markdown", "metadata": { - "id": "CZ1UX9YX1Zzo" + "id": "PipFzJ0HzTMA" }, "source": [ - "Data source\n", - "* [DGL Mini Graph Classification Dataset](https://docs.dgl.ai/en/0.6.x/api/python/dgl.data.html#mini-graph-classification-dataset)\n", + "Data\n", + "* A fake DGL Heterogeneous graph\n", "\n", - "Package methods used\n", - "* [`adbdgl_adapter.adapter.dgl_to_arangodb()`](https://github.com/arangoml/dgl-adapter/blob/2.0.0/adbdgl_adapter/adapter.py#L215-L311)\n", - "* [`adbdgl_adapter.controller._dgl_feature_to_adb_attribute()`](https://github.com/arangoml/dgl-adapter/blob/2.0.0/adbdgl_adapter/controller.py#L49-L70)\n", + "API\n", + "* `adbdgl_adapter.adapter.arangodb_to_dgl()`\n", "\n", - "Important notes\n", - "* The `name` parameters in this case are simply for naming your ArangoDB graph.\n", - "* We are creating a custom `ADBDGL_Controller` to specify *how* to convert our DGL node/edge features into ArangoDB vertex/edge attributes. View the default `ADBDGL_Controller` [here](https://github.com/arangoml/dgl-adapter/blob/2.0.0/adbdgl_adapter/controller.py#L11)." + "Notes\n", + "* The `name` parameter is purely for documentation purposes in this case.\n", + "* The `metagraph` parameter is an object defining vertex & edge collections to import to DGL, along with collection-level specifications to indicate which ArangoDB attributes will become DGL features/labels. It should contain collections & associated document attributes names that exist within your ArangoDB instance." ] }, { @@ -925,118 +1051,238 @@ "execution_count": null, "metadata": { "colab": { - "base_uri": "https://localhost:8080/" + "base_uri": "https://localhost:8080/", + "height": 409, + "referenced_widgets": [ + "77b31c42e914410aaea93044f1390121", + "8349f1e6b1f34680bacd7de1a1937122", + "38aaa492d75c48f38de60ea0cc5fa93f", + "63845b04ecbc40de8bcc017d754ac907", + "4b7f5f21b98b4c5d8475929bf1f01a65", + "404a19cadaca4b85a957cad231b73cbb", + "bd8b6caa7d2d4df1a99b1870ecc0ae46", + "13d0f7da120b40b993ce3c0b257d5788", + "ea88ab86e9774ed78ea62daa6e338637", + "712770e675424d7eb0c8efd6c34f2012" + ] }, - "id": "jbJsvMMaoJoT", - "outputId": "6dba7563-84b8-4934-a07f-1525ef67bd5e" + "id": "7Kz8lXXq23Yk", + "outputId": "b17433d7-d344-4748-ffe3-f0abca6fb112" }, "outputs": [], "source": [ - "# Load the dgl graphs\n", - "dgl_lollipop_graph = remove_self_loop(MiniGCDataset(8, 7, 8)[3][0])\n", - "dgl_hypercube_graph = remove_self_loop(MiniGCDataset(8, 8, 9)[4][0])\n", - "dgl_clique_graph = remove_self_loop(MiniGCDataset(8, 6, 7)[6][0])\n", - "\n", - " # Add DGL Node & Edge Features to each graph\n", - "dgl_lollipop_graph.ndata[\"random_ndata\"] = torch.tensor(\n", - " [[i, i, i] for i in range(0, dgl_lollipop_graph.num_nodes())]\n", - ")\n", - "dgl_lollipop_graph.edata[\"random_edata\"] = torch.rand(dgl_lollipop_graph.num_edges())\n", + "# Define the Metagraph that transfers ArangoDB attributes \"as is\",\n", + "# meaning the data is already formatted to DGL data standards\n", + "metagraph_v1 = {\n", + " \"vertexCollections\": {\n", + " # Move the \"features\" & \"label\" ArangoDB attributes to DGL as \"features\" & \"label\" Tensors\n", + " \"user\": {\"features\", \"label\"}, # equivalent to {\"features\": \"features\", \"label\": \"label\"}\n", + " \"game\": {\"dgl_game_features\": \"features\"},\n", + " \"topic\": {},\n", + " },\n", + " \"edgeCollections\": {\n", + " \"plays\": {\"dgl_plays_features\": \"features\"}, \n", + " \"follows\": {}\n", + " },\n", + "}\n", "\n", - "dgl_hypercube_graph.ndata[\"random_ndata\"] = torch.rand(dgl_hypercube_graph.num_nodes())\n", - "dgl_hypercube_graph.edata[\"random_edata\"] = torch.tensor(\n", - " [[[i], [i], [i]] for i in range(0, dgl_hypercube_graph.num_edges())]\n", - ")\n", + "# Create the DGL graph\n", + "dgl_g = adbdgl_adapter.arangodb_to_dgl(\"FakeHetero\", metagraph_v1)\n", "\n", - "dgl_clique_graph.ndata['clique_ndata'] = torch.tensor([1,2,3,4,5,6])\n", - "dgl_clique_graph.edata['clique_edata'] = torch.tensor(\n", - " [1 if i % 2 == 0 else 0 for i in range(0, dgl_clique_graph.num_edges())]\n", - ")\n", + "# Show graph data\n", + "print('\\n--------------')\n", + "print(dgl_g)\n", + "print('\\n--------------')\n", + "print(dgl_g.ndata)\n", + "print('--------------\\n')\n", + "print(dgl_g.edata)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "0806IB4o3WRz" + }, + "source": [ + "#### Via ArangoDB-DGL metagraph 2" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "cnByWtpa3WR7" + }, + "source": [ + "Data\n", + "* [ArangoDB IMDB Movie Dataset](https://www.arangodb.com/docs/stable/arangosearch-example-datasets.html#imdb-movie-dataset)\n", "\n", - "# A user-defined Controller class is OPTIONAL when converting DGL features\n", - "# to ArangoDB attributes. NOTE: A custom Controller is NOT needed if you want to\n", - "# keep the numerical-based values of your DGL features.\n", - "class Clique_ADBDGL_Controller(ADBDGL_Controller):\n", - " \"\"\"ArangoDB-DGL controller.\n", + "API\n", + "* `adbddgl_adapter.adapter.arangodb_to_dgl()`\n", "\n", - " Responsible for controlling how ArangoDB attributes\n", - " are converted into DGL features, and vice-versa.\n", + "Notes\n", + "* The `name` parameter is purely for documentation purposes in this case.\n", + "* The `metagraph` parameter is an object defining vertex & edge collections to import to DGL, along with collection-level specifications to indicate which ArangoDB attributes will become PyG features/labels. In this example, we rely on user-defined encoders to build PyG-ready tensors (i.e feature matrices) from ArangoDB attributes. See https://pytorch-geometric.readthedocs.io/en/latest/notes/load_csv.html for an example on using encoders." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 499, + "referenced_widgets": [ + "2b13e46a722e4be384fad74e1b3e6461", + "848230df62434c77b5b18f9a43e2d14f", + "59405e2d0c164d5b965680cc9d9cd8f3", + "2a380fe111794c3a951cdafa4a2bf0b3", + "3d081c88cd2945fa9534de722669ada9", + "82f996185e8444ada5e18602e2f8e105" + ] + }, + "id": "cKqLoawE3WR7", + "outputId": "02a8bfed-44ae-4c76-9eea-ba7348738707" + }, + "outputs": [], + "source": [ + "# Define the Metagraph that transfers attributes via user-defined encoders\n", + "metagraph_v2 = {\n", + " \"vertexCollections\": {\n", + " \"Movies\": {\n", + " \"features\": { # Build a feature matrix from the \"Action\" & \"Drama\" document attributes\n", + " \"Action\": IdentityEncoder(dtype=torch.long),\n", + " \"Drama\": IdentityEncoder(dtype=torch.long),\n", + " },\n", + " \"label\": \"Comedy\",\n", + " },\n", + " \"Users\": {\n", + " \"features\": {\n", + " \"Gender\": CategoricalEncoder(), # CategoricalEncoder(mapping={\"M\": 0, \"F\": 1}),\n", + " \"Age\": IdentityEncoder(dtype=torch.long),\n", + " }\n", + " },\n", + " },\n", + " \"edgeCollections\": {\"Ratings\": {\"weight\": \"Rating\"}},\n", + "}\n", "\n", - " You can derive your own custom ADBDGL_Controller if you want to maintain\n", - " consistency between your ArangoDB attributes & your DGL features.\n", - " \"\"\"\n", + "# Create the DGL Graph\n", + "dgl_g = adbdgl_adapter.arangodb_to_dgl(\"IMDB\", metagraph_v2)\n", "\n", - " def _dgl_feature_to_adb_attribute(self, key: str, col: str, val: Tensor):\n", - " \"\"\"\n", - " Given a DGL feature key, its assigned value (for an arbitrary node or edge),\n", - " and the collection it belongs to, convert it to a valid ArangoDB attribute\n", - " (e.g string, list, number, ...).\n", - "\n", - " NOTE: No action is needed here if you want to keep the numerical-based values\n", - " of your DGL features.\n", - "\n", - " :param key: The DGL attribute key name\n", - " :type key: str\n", - " :param col: The ArangoDB collection of the (soon-to-be) ArangoDB document.\n", - " :type col: str\n", - " :param val: The assigned attribute value of the DGL node.\n", - " :type val: Tensor\n", - " :return: The feature's representation as an ArangoDB Attribute\n", - " :rtype: Any\n", - " \"\"\"\n", + "# Show graph data\n", + "print('\\n--------------')\n", + "print(dgl_g)\n", + "print('\\n--------------')\n", + "print(dgl_g.ndata)\n", + "print('--------------\\n')\n", + "print(dgl_g.edata)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "d5ijSCcY4bYs" + }, + "source": [ + "#### Via ArangoDB-DGL metagraph 3" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "P1aKzxxZrUXJ" + }, + "source": [ + "Data\n", + "* A fake DGL Heterogeneous graph\n", "\n", - " if key == \"clique_ndata\":\n", - " try:\n", - " return [\"Eins\", \"Zwei\", \"Drei\", \"Vier\", \"Fünf\", \"Sechs\"][val-1]\n", - " except:\n", - " return -1\n", + "API\n", + "* `adbdgl_adapter.adapter.arangodb_to_dgl()`\n", "\n", - " if key == \"clique_edata\":\n", - " return bool(val)\n", + "Notes\n", + "* The `name` parameter is purely for documentation purposes in this case.\n", + "* The `metagraph` parameter is an object defining vertex & edge collections to import to DGL, along with collection-level specifications to indicate which ArangoDB attributes will become DGL features/labels. In this example, we rely on user-defined functions to handle ArangoDB attribute to DGL feature conversion." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 377, + "referenced_widgets": [ + "e4b7b35461e848f5819b9f38d67ee652", + "9968f928e28147f7a0956aff8412a608", + "54801c3c74494fe8bf9e2a7fb64bde48", + "903622e283524c7f89635599920c2b14", + "f0d4515c88a44775be59c4e1a0b3c60a", + "9e1eb071f0b24cb6a8d206477b10b831" + ] + }, + "id": "t-lNli3d4bY0", + "outputId": "7bc48392-81a7-4232-aad2-931ff3c8ca48" + }, + "outputs": [], + "source": [ + "# Define the metagraph that transfers attributes via user-defined functions\n", + "def udf_user_features(user_df):\n", + " # process the user_df Pandas DataFrame to return a feature matrix in a tensor\n", + " # user_df[\"features\"] = ...\n", + " return torch.tensor(user_df[\"features\"].to_list())\n", "\n", - " return super()._dgl_feature_to_adb_attribute(key, col, val)\n", "\n", - "# Re-instantiate a new adapter specifically for the Clique Graph Conversion\n", - "clique_adbgl_adapter = ADBDGL_Adapter(db, Clique_ADBDGL_Controller())\n", + "def udf_game_features(game_df):\n", + " # process the game_df Pandas DataFrame to return a feature matrix in a tensor\n", + " # game_df[\"features\"] = ...\n", + " return torch.tensor(game_df[\"features\"].to_list())\n", "\n", - "# Create the ArangoDB graphs\n", - "lollipop = \"Lollipop_With_Attributes\"\n", - "hypercube = \"Hypercube_With_Attributes\"\n", - "clique = \"Clique_With_Attributes\"\n", "\n", - "db.delete_graph(lollipop, drop_collections=True, ignore_missing=True)\n", - "db.delete_graph(hypercube, drop_collections=True, ignore_missing=True)\n", - "db.delete_graph(clique, drop_collections=True, ignore_missing=True)\n", + "metagraph_v3 = {\n", + " \"vertexCollections\": {\n", + " \"user\": {\n", + " \"features\": udf_user_features, # supports named functions\n", + " \"label\": lambda df: torch.tensor(df[\"label\"].to_list()), # also supports lambda functions\n", + " },\n", + " \"game\": {\"features\": udf_game_features},\n", + " },\n", + " \"edgeCollections\": {\n", + " \"plays\": {\"features\": (lambda df: torch.tensor(df[\"features\"].to_list()))},\n", + " },\n", + "}\n", "\n", - "adb_lollipop_graph = adbdgl_adapter.dgl_to_arangodb(lollipop, dgl_lollipop_graph)\n", - "adb_hypercube_graph = adbdgl_adapter.dgl_to_arangodb(hypercube, dgl_hypercube_graph)\n", - "adb_clique_graph = clique_adbgl_adapter.dgl_to_arangodb(clique, dgl_clique_graph) # Notice the new adapter here!\n", + "# Create PyG Graph\n", + "dgl_g = adbdgl_adapter.arangodb_to_dgl(\"FakeHetero\", metagraph_v3)\n", "\n", - "print('\\n--------------------')\n", - "print(\"URL: \" + con[\"url\"])\n", - "print(\"Username: \" + con[\"username\"])\n", - "print(\"Password: \" + con[\"password\"])\n", - "print(\"Database: \" + con[\"dbName\"])\n", - "print('--------------------\\n')\n", - "print(\"View the created graphs here:\\n\")\n", - "print(f\"1) {con['url']}/_db/{con['dbName']}/_admin/aardvark/index.html#graph/{lollipop}\")\n", - "print(f\"2) {con['url']}/_db/{con['dbName']}/_admin/aardvark/index.html#graph/{hypercube}\")\n", - "print(f\"3) {con['url']}/_db/{con['dbName']}/_admin/aardvark/index.html#graph/{clique}\\n\")" + "# Show graph data\n", + "print('\\n--------------')\n", + "print(dgl_g)\n", + "print('\\n--------------')\n", + "print(dgl_g.ndata)\n", + "print('--------------\\n')\n", + "print(dgl_g.edata)" ] } ], "metadata": { "colab": { "collapsed_sections": [ - "KS9c-vE5eG89", "ot1oJqn7m78n", "Oc__NAd1eG8-", "7y81WHO8eG8_", "QfE_tKxneG9A", + "bvzJXSHHTi3v", + "UafSB_3JZNwK", + "CNj1xKhwoJoL", + "n08RC_GtkDrC", + "mk6m0hBRkkkT", "uByvwf9feG9A", - "bvzJXSHHTi3v" + "ZrEDmtqCVD0W", + "RQ4CknYfUEuz", + "qEH6OdSB23Ya", + "0806IB4o3WRz", + "d5ijSCcY4bYs" ], - "name": "ArangoDB_DGL_Adapter_v2.ipynb", + "name": "ArangoDB_DGL_Adapter_v3.ipynb", "provenance": [] }, "kernelspec": { From a40896b4ce2c3564484d80d5f08c6bec0374c443 Mon Sep 17 00:00:00 2001 From: aMahanna Date: Wed, 19 Oct 2022 17:08:27 -0400 Subject: [PATCH 19/37] new: address comments --- README.md | 1 + adbdgl_adapter/abc.py | 15 --------------- 2 files changed, 1 insertion(+), 15 deletions(-) diff --git a/README.md b/README.md index 0ce4847..434a69e 100644 --- a/README.md +++ b/README.md @@ -157,6 +157,7 @@ dgl_g = adbdgl_adapter.arangodb_graph_to_dgl("FakeHetero") dgl_g = adbdgl_adapter.arangodb_collections_to_dgl("FakeHetero", v_cols={"user", "game"}, e_cols={"plays"}) # 2.3: ArangoDB to DGL via Metagraph v1 (transfer attributes "as is", meaning they are already formatted to DGL data standards) +# Learn more about the DGL Data Standards here: https://docs.dgl.ai/guide/graph.html#guide-graph metagraph_v1 = { "vertexCollections": { # Move the "features" & "label" ArangoDB attributes to DGL as "features" & "label" Tensors diff --git a/adbdgl_adapter/abc.py b/adbdgl_adapter/abc.py index 87401bd..4d9139f 100644 --- a/adbdgl_adapter/abc.py +++ b/adbdgl_adapter/abc.py @@ -46,21 +46,6 @@ def ntypes_to_ocollections( ) -> List[str]: raise NotImplementedError # pragma: no cover - # def __prepare_dgl_features(self) -> None: - # raise NotImplementedError # pragma: no cover - - # def __insert_dgl_features(self) -> None: - # raise NotImplementedError # pragma: no cover - - # def __prepare_adb_attributes(self) -> None: - # raise NotImplementedError # pragma: no cover - - # def __fetch_adb_docs(self) -> None: - # raise NotImplementedError # pragma: no cover - - # def __insert_adb_docs(self) -> None: - # raise NotImplementedError # pragma: no cover - def __fetch_adb_docs(self) -> None: raise NotImplementedError # pragma: no cover From 7070d18c863391f8f983e86f5851a66de51ccc1e Mon Sep 17 00:00:00 2001 From: Anthony Mahanna Date: Thu, 20 Jul 2023 23:53:22 -0400 Subject: [PATCH 20/37] revive PR improvements based on pyg-adapter, general code cleanup --- README.md | 19 +- adbdgl_adapter/adapter.py | 310 ++++++++++++++++++++-------- adbdgl_adapter/typings.py | 4 +- examples/ArangoDB_DGL_Adapter.ipynb | 17 +- setup.py | 10 +- tests/conftest.py | 18 +- tests/test_adapter.py | 75 +++++-- 7 files changed, 317 insertions(+), 136 deletions(-) diff --git a/README.md b/README.md index 434a69e..b663195 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ [![License](https://img.shields.io/github/license/arangoml/dgl-adapter?color=9E2165&style=for-the-badge)](https://github.com/arangoml/dgl-adapter/blob/master/LICENSE) [![Code style: black](https://img.shields.io/static/v1?style=for-the-badge&label=code%20style&message=black&color=black)](https://github.com/psf/black) -[![Downloads](https://img.shields.io/badge/dynamic/json?style=for-the-badge&color=282661&label=Downloads&query=total_downloads&url=https://api.pepy.tech/api/projects/adbdgl-adapter)](https://pepy.tech/project/adbdgl-adapter) +[![Downloads](https://img.shields.io/badge/dynamic/json?style=for-the-badge&color=282661&label=Downloads&query=total_downloads&url=https://api.pepy.tech/api/v2/projects/adbdgl-adapter)](https://pepy.tech/project/adbdgl-adapter) ![](https://raw.githubusercontent.com/arangoml/dgl-adapter/master/examples/assets/adb_logo.png) @@ -76,20 +76,25 @@ adbdgl_adapter = ADBDGL_Adapter(db) adb_g = adbdgl_adapter.dgl_to_arangodb("FakeHetero", fake_hetero) # 1.2: DGL to ArangoDB with a (completely optional) metagraph for customized adapter behaviour -def label_tensor_to_2_column_dataframe(dgl_tensor): +def label_tensor_to_2_column_dataframe(dgl_tensor, adb_df): """ A user-defined function to create two ArangoDB attributes out of the 'user' label tensor - NOTE: user-defined functions must return a Pandas Dataframe + :param dgl_tensor: The DGL Tensor containing the data + :type dgl_tensor: torch.Tensor + :param adb_df: The ArangoDB DataFrame to populate, whose + size is preset to the length of **dgl_tensor**. + :type adb_df: pandas.DataFrame + + NOTE: user-defined functions must return the modified **adb_df** """ label_map = {0: "Class A", 1: "Class B", 2: "Class C"} - df = pandas.DataFrame(columns=["label_num", "label_str"]) - df["label_num"] = dgl_tensor.tolist() - df["label_str"] = df["label_num"].map(label_map) + adb_df["label_num"] = dgl_tensor.tolist() + adb_df["label_str"] = adb_df["label_num"].map(label_map) - return df + return adb_df metagraph = { diff --git a/adbdgl_adapter/adapter.py b/adbdgl_adapter/adapter.py index cfb2912..f8631b6 100644 --- a/adbdgl_adapter/adapter.py +++ b/adbdgl_adapter/adapter.py @@ -2,13 +2,15 @@ # -*- coding: utf-8 -*- import logging from collections import defaultdict -from typing import Any, DefaultDict, Dict, List, Set, Union +from math import ceil +from typing import Any, DefaultDict, Dict, List, Optional, Set, Union +from arango.cursor import Cursor from arango.database import Database from arango.graph import Graph as ADBGraph from dgl import DGLGraph, DGLHeteroGraph, graph, heterograph from dgl.view import EdgeSpace, HeteroEdgeDataView, HeteroNodeDataView, NodeSpace -from pandas import DataFrame +from pandas import DataFrame, Series from torch import Tensor, cat, tensor from .abc import Abstract_ADBDGL_Adapter @@ -53,11 +55,11 @@ def __init__( ): self.set_logging(logging_lvl) - if issubclass(type(db), Database) is False: + if not isinstance(db, Database): msg = "**db** parameter must inherit from arango.database.Database" raise TypeError(msg) - if issubclass(type(controller), ADBDGL_Controller) is False: + if not isinstance(controller, ADBDGL_Controller): msg = "**controller** parameter must inherit from ADBDGL_Controller" raise TypeError(msg) @@ -239,20 +241,30 @@ def udf_v1_x(v1_df): data_dict: DGLDataDict = dict() # The node data view for storing node features - ndata: DGLData = defaultdict(lambda: defaultdict()) + ndata: DGLData = defaultdict(lambda: defaultdict(Tensor)) # The edge data view for storing edge features - edata: DGLData = defaultdict(lambda: defaultdict()) + edata: DGLData = defaultdict(lambda: defaultdict(Tensor)) for v_col, meta in metagraph["vertexCollections"].items(): logger.debug(f"Preparing '{v_col}' vertices") - df = self.__fetch_adb_docs(v_col, meta == {}, query_options) - adb_map[v_col] = { - adb_id: dgl_id for dgl_id, adb_id in enumerate(df["_key"]) - } + dgl_id = 0 + cursor = self.__fetch_adb_docs(v_col, meta, query_options) + while not cursor.empty(): + cursor_batch = len(cursor.batch()) # type: ignore + df = DataFrame([cursor.pop() for _ in range(cursor_batch)]) + + for adb_id in df["_key"]: + adb_map[v_col][adb_id] = dgl_id + dgl_id += 1 + + self.__set_dgl_data(v_col, meta, ndata, df) - self.__set_dgl_data(v_col, meta, ndata, df) + if cursor.has_more(): + cursor.fetch() + + df.drop(df.index, inplace=True) et_df: DataFrame et_blacklist: List[DGLCanonicalEType] = [] # A list of skipped edge types @@ -260,28 +272,46 @@ def udf_v1_x(v1_df): for e_col, meta in metagraph["edgeCollections"].items(): logger.debug(f"Preparing '{e_col}' edges") - df = self.__fetch_adb_docs(e_col, meta == {}, query_options) - df[["from_col", "from_key"]] = df["_from"].str.split("/", 1, True) - df[["to_col", "to_key"]] = df["_to"].str.split("/", 1, True) + cursor = self.__fetch_adb_docs(e_col, meta, query_options) + while not cursor.empty(): + cursor_batch = len(cursor.batch()) # type: ignore + df = DataFrame([cursor.pop() for _ in range(cursor_batch)]) + + df[["from_col", "from_key"]] = self.__split_adb_ids(df["_from"]) + df[["to_col", "to_key"]] = self.__split_adb_ids(df["_to"]) + + for (from_col, to_col), count in ( + df[["from_col", "to_col"]].value_counts().items() + ): + edge_type: DGLCanonicalEType = (from_col, e_col, to_col) + if from_col not in v_cols or to_col not in v_cols: + logger.debug(f"Skipping {edge_type}") + et_blacklist.append(edge_type) + continue # partial edge collection import to dgl - for (from_col, to_col), count in ( - df[["from_col", "to_col"]].value_counts().items() - ): - edge_type: DGLCanonicalEType = (from_col, e_col, to_col) - if from_col not in v_cols or to_col not in v_cols: - logger.debug(f"Skipping {edge_type}") - et_blacklist.append(edge_type) - continue # partial edge collection import to dgl + logger.debug(f"Preparing {count} '{edge_type}' edges") - logger.debug(f"Preparing {count} '{edge_type}' edges") + # Get the edge data corresponding to the current edge type + et_df = df[(df["from_col"] == from_col) & (df["to_col"] == to_col)] - # Get the edge data corresponding to the current edge type - et_df = df[(df["from_col"] == from_col) & (df["to_col"] == to_col)] - from_nodes = et_df["from_key"].map(adb_map[from_col]).tolist() - to_nodes = et_df["to_key"].map(adb_map[to_col]).tolist() + from_nodes = et_df["from_key"].map(adb_map[from_col]).tolist() + to_nodes = et_df["to_key"].map(adb_map[to_col]).tolist() - data_dict[edge_type] = (tensor(from_nodes), tensor(to_nodes)) - self.__set_dgl_data(edge_type, meta, edata, df) + if edge_type not in data_dict: + data_dict[edge_type] = (tensor(from_nodes), tensor(to_nodes)) + else: + previous_from_nodes, previous_to_nodes = data_dict[edge_type] + data_dict[edge_type] = ( + cat((previous_from_nodes, tensor(from_nodes))), + cat((previous_to_nodes, tensor(to_nodes))), + ) + + self.__set_dgl_data(edge_type, meta, edata, df) + + if cursor.has_more(): + cursor.fetch() + + df.drop(df.index, inplace=True) if not data_dict: # pragma: no cover msg = f""" @@ -356,8 +386,9 @@ def arangodb_graph_to_dgl( :raise adbdgl_adapter.exceptions.ADBMetagraphError: If invalid metagraph. """ graph = self.__db.graph(name) - v_cols = graph.vertex_collections() - e_cols = {col["edge_collection"] for col in graph.edge_definitions()} + v_cols: Set[str] = graph.vertex_collections() # type: ignore + edge_definitions: List[Json] = graph.edge_definitions() # type: ignore + e_cols: Set[str] = {c["edge_collection"] for c in edge_definitions} return self.arangodb_collections_to_dgl(name, v_cols, e_cols, **query_options) @@ -368,6 +399,7 @@ def dgl_to_arangodb( metagraph: DGLMetagraph = {}, explicit_metagraph: bool = True, overwrite_graph: bool = False, + batch_size: Optional[int] = None, **import_options: Any, ) -> ADBGraph: """Create an ArangoDB graph from a DGL graph. @@ -408,6 +440,10 @@ def dgl_to_arangodb( :param overwrite_graph: Overwrites the graph if it already exists. Does not drop associated collections. Defaults to False. :type overwrite_graph: bool + :param batch_size: Process the DGL Nodes & Edges in batches of size + **batch_size**. Defaults to `None`, which processes each + NodeStorage & EdgeStorage in one batch. + :type batch_size: int :param import_options: Keyword arguments to specify additional parameters for ArangoDB document insertion. Full parameter list: https://docs.python-arango.com/en/main/specs.html#arango.collection.Collection.import_bulk @@ -455,6 +491,7 @@ def y_tensor_to_2_column_dataframe(dgl_tensor): logger.debug(f"--dgl_to_arangodb('{name}')--") validate_dgl_metagraph(metagraph) + is_custom_controller = type(self.__cntrl) is not ADBDGL_Controller has_one_ntype = len(dgl_g.ntypes) == 1 has_one_etype = len(dgl_g.canonical_etypes) == 1 @@ -487,46 +524,91 @@ def y_tensor_to_2_column_dataframe(dgl_tensor): orphan_collections = self.ntypes_to_ocollections(node_types, edge_types) adb_graph = self.__db.create_graph( name, edge_definitions, orphan_collections - ) + ) # type: ignore n_meta = metagraph.get("nodeTypes", {}) for n_type in node_types: + meta = n_meta.get(n_type, {}) + n_key = None if has_one_ntype else n_type - meta = n_meta.get(n_type, {}) - df = DataFrame([{"_key": str(i)} for i in range(dgl_g.num_nodes(n_key))]) - df = self.__set_adb_data( - df, meta, dgl_g.nodes[n_key].data, explicit_metagraph - ) + ndata_size = dgl_g.num_nodes(n_key) + ndata_batch_size = batch_size or ndata_size + + start_index = 0 + end_index = min(ndata_batch_size, ndata_size) + batches = ceil(ndata_size / ndata_batch_size) + + for _ in range(batches): + adb_keys = [{"_key": str(i)} for i in range(start_index, end_index)] + df = self.__set_adb_data( + DataFrame(adb_keys, index=range(start_index, end_index)), + meta, + dgl_g.nodes[n_key].data, + ndata_size, + start_index, + end_index, + explicit_metagraph, + ) - if type(self.__cntrl) is not ADBDGL_Controller: - f = lambda n: self.__cntrl._prepare_dgl_node(n, n_type) - df = df.apply(f, axis=1) + if is_custom_controller: + f = lambda n: self.__cntrl._prepare_dgl_node(n, n_type) + df = df.apply(f, axis=1) - self.__insert_adb_docs(n_type, df, import_options) + self.__insert_adb_docs(n_type, df, import_options) + + start_index = end_index + end_index = min(end_index + ndata_batch_size, ndata_size) e_meta = metagraph.get("edgeTypes", {}) for e_type in edge_types: - e_key = None if has_one_etype else e_type + meta = e_meta.get(e_type, {}) from_col, _, to_col = e_type + e_key = None if has_one_etype else e_type + + edata_size = dgl_g.num_edges(e_key) + edata_batch_size = batch_size or edata_size + + start_index = 0 + end_index = min(edata_batch_size, edata_size) + batches = ceil(edata_size / edata_batch_size) + from_nodes, to_nodes = dgl_g.edges(etype=e_key) - data = zip(*(from_nodes.tolist(), to_nodes.tolist())) - df = DataFrame(data, columns=["_from", "_to"]) - meta = e_meta.get(e_type, {}) - df = self.__set_adb_data( - df, meta, dgl_g.edges[e_key].data, explicit_metagraph - ) + for _ in range(batches): + data = zip( + *( + from_nodes[start_index:end_index].tolist(), + to_nodes[start_index:end_index].tolist(), + ) + ) + + df = self.__set_adb_data( + DataFrame( + data, + index=range(start_index, end_index), + columns=["_from", "_to"], + ), + meta, + dgl_g.edges[e_key].data, + edata_size, + start_index, + end_index, + explicit_metagraph, + ) + + df["_from"] = from_col + "/" + df["_from"].astype(str) + df["_to"] = to_col + "/" + df["_to"].astype(str) - df["_from"] = from_col + "/" + df["_from"].astype(str) - df["_to"] = to_col + "/" + df["_to"].astype(str) + if is_custom_controller: + f = lambda e: self.__cntrl._prepare_dgl_edge(e, e_type) + df = df.apply(f, axis=1) - if type(self.__cntrl) is not ADBDGL_Controller: - f = lambda e: self.__cntrl._prepare_dgl_edge(e, e_type) - df = df.apply(f, axis=1) + self.__insert_adb_docs(e_type, df, import_options) - self.__insert_adb_docs(e_type, df, import_options) + start_index = end_index + end_index = min(end_index + edata_batch_size, edata_size) logger.info(f"Created ArangoDB '{name}' Graph") return adb_graph @@ -598,43 +680,64 @@ def ntypes_to_ocollections( return list(orphan_collections) def __fetch_adb_docs( - self, col: str, empty_meta: bool, query_options: Any - ) -> DataFrame: + self, + col: str, + meta: Union[Set[str], Dict[str, ADBMetagraphValues]], + query_options: Any, + ) -> Cursor: """Fetches ArangoDB documents within a collection. Returns the documents in a DataFrame. :param col: The ArangoDB collection. :type col: str - :param empty_meta: Set to True if the metagraph specification - for **col** is empty. - :type empty_meta: bool + :param meta: The MetaGraph associated to **col** + :type meta: Set[str] | Dict[str, adbdgl_adapter.typings.ADBMetagraphValues] :param query_options: Keyword arguments to specify AQL query options when fetching documents from the ArangoDB instance. :type query_options: Any :return: A DataFrame representing the ArangoDB documents. :rtype: pandas.DataFrame """ - # Only return the entire document if **empty_meta** is False - aql = f""" - FOR doc IN @@col - RETURN { - "{ _key: doc._key, _from: doc._from, _to: doc._to }" - if empty_meta - else "doc" - } - """ + + def get_aql_return_value( + meta: Union[Set[str], Dict[str, ADBMetagraphValues]] + ) -> str: + """Helper method to formulate the AQL `RETURN` value based on + the document attributes specified in **meta** + """ + attributes = [] + + if type(meta) is set: + attributes = list(meta) + + elif type(meta) is dict: + for value in meta.values(): + if type(value) is str: + attributes.append(value) + elif type(value) is dict: + attributes.extend(list(value.keys())) + elif callable(value): + # Cannot determine which attributes to extract if UDFs are used + # Therefore we just return the entire document + return "doc" + + return f""" + MERGE( + {{ _key: doc._key, _from: doc._from, _to: doc._to }}, + KEEP(doc, {list(attributes)}) + ) + """ with progress( f"(ADB → DGL): {col}", - text_style="#319BF5", - spinner_style="#FCFDFC", + text_style="#8929C2", + spinner_style="#40A6F5", ) as p: p.add_task("__fetch_adb_docs") - - return DataFrame( - self.__db.aql.execute( - aql, count=True, bind_vars={"@col": col}, **query_options - ) + return self.__db.aql.execute( # type: ignore + f"FOR doc IN @@col RETURN {get_aql_return_value(meta)}", + bind_vars={"@col": col}, + **{**{"stream": True}, **query_options}, ) def __insert_adb_docs( @@ -662,6 +765,11 @@ def __insert_adb_docs( docs = df.to_dict("records") result = self.__db.collection(col).import_bulk(docs, **kwargs) logger.debug(result) + df.drop(df.index, inplace=True) + + def __split_adb_ids(self, s: Series) -> Series: + """Helper method to split the ArangoDB IDs within a Series into two columns""" + return s.str.split(pat="/", n=1, expand=True) def __set_dgl_data( self, @@ -690,7 +798,8 @@ def __set_dgl_data( valid_meta = meta if type(meta) is dict else {m: m for m in meta} for k, v in valid_meta.items(): - dgl_data[k][data_type] = self.__build_tensor_from_dataframe(df, k, v) + t = self.__build_tensor_from_dataframe(df, k, v) + dgl_data[k][data_type] = cat((dgl_data[k][data_type], t)) def __copy_dgl_data( self, @@ -722,6 +831,9 @@ def __set_adb_data( df: DataFrame, meta: Union[Set[str], Dict[Any, DGLMetagraphValues]], dgl_data: Union[NodeSpace, EdgeSpace], + dgl_data_size: int, + start_index: int, + end_index: int, explicit_metagraph: bool, ) -> DataFrame: """A helper method to build the ArangoDB Dataframe for the given @@ -739,6 +851,13 @@ def __set_adb_data( :param dgl_data: The NodeSpace or EdgeSpace of the current DGL node or edge type. :type dgl_data: dgl.view.(NodeSpace | EdgeSpace) + :param dgl_data_size: The size of the NodeStorage or EdgeStorage of the + current DGL node or edge type. + :type dgl_data_size: int + :param start_index: The starting index of the current batch to process. + :type start_index: int + :param end_index: The ending index of the current batch to process. + :type end_index: int :param explicit_metagraph: The value of **explicit_metagraph** in **dgl_to_arangodb**. :type explicit_metagraph: bool @@ -758,12 +877,20 @@ def __set_adb_data( else: dgl_keys = dgl_data.keys() - for k in dgl_keys: - data = dgl_data[k] - meta_val = valid_meta.get(k, str(k)) - - if type(data) is Tensor and len(data) == len(df): - df = df.join(self.__build_dataframe_from_tensor(data, k, meta_val)) + for meta_key in dgl_keys: + data = dgl_data[meta_key] + meta_val = valid_meta.get(meta_key, str(meta_key)) + + if type(data) is Tensor and len(data) == dgl_data_size: + df = df.join( + self.__build_dataframe_from_tensor( + data[start_index:end_index], + start_index, + end_index, + meta_key, + meta_val, + ) + ) return df @@ -823,6 +950,8 @@ def __build_tensor_from_dataframe( def __build_dataframe_from_tensor( self, dgl_tensor: Tensor, + start_index: int, + end_index: int, meta_key: Any, meta_val: DGLMetagraphValues, ) -> DataFrame: @@ -846,7 +975,7 @@ def __build_dataframe_from_tensor( ) if type(meta_val) is str: - df = DataFrame(columns=[meta_val]) + df = DataFrame(index=range(start_index, end_index), columns=[meta_val]) df[meta_val] = dgl_tensor.tolist() return df @@ -860,18 +989,27 @@ def __build_dataframe_from_tensor( """ raise DGLMetagraphError(msg) - df = DataFrame(columns=meta_val) + df = DataFrame(index=range(start_index, end_index), columns=meta_val) df[meta_val] = dgl_tensor.tolist() return df if callable(meta_val): - # **meta_val** is a user-defined function that returns a dataframe - user_defined_result = meta_val(dgl_tensor) + # **meta_val** is a user-defined function that populates + # and returns the empty dataframe + empty_df = DataFrame(index=range(start_index, end_index)) + user_defined_result = meta_val(dgl_tensor, empty_df) if type(user_defined_result) is not DataFrame: # pragma: no cover msg = f"Invalid return type for function {meta_val} ('{meta_key}')" raise DGLMetagraphError(msg) + if len(user_defined_result) != (end_index - start_index): + msg = f""" + User Defined Function {meta_val} ('{meta_key}') must return + DataFrame of size equivalent to {end_index - start_index} + """ + raise DGLMetagraphError(msg) + return user_defined_result raise DGLMetagraphError(f"Invalid {meta_val} type") # pragma: no cover diff --git a/adbdgl_adapter/typings.py b/adbdgl_adapter/typings.py index 989ded8..05d7ec4 100644 --- a/adbdgl_adapter/typings.py +++ b/adbdgl_adapter/typings.py @@ -6,6 +6,8 @@ "DGLMetagraphValues", "DGLCanonicalEType", "DGLDataDict", + "ADBMap", + "DGLMap", ] from typing import Any, Callable, DefaultDict, Dict, List, Set, Tuple, Union @@ -16,7 +18,7 @@ Json = Dict[str, Any] DataFrameToTensor = Callable[[DataFrame], Tensor] -TensorToDataFrame = Callable[[Tensor], DataFrame] +TensorToDataFrame = Callable[[Tensor, DataFrame], DataFrame] ADBEncoders = Dict[str, DataFrameToTensor] ADBMetagraphValues = Union[str, DataFrameToTensor, ADBEncoders] diff --git a/examples/ArangoDB_DGL_Adapter.ipynb b/examples/ArangoDB_DGL_Adapter.ipynb index 93039c4..3f17563 100644 --- a/examples/ArangoDB_DGL_Adapter.ipynb +++ b/examples/ArangoDB_DGL_Adapter.ipynb @@ -671,20 +671,25 @@ "name = \"FakeHetero\"\n", "\n", "# Define the metagraph\n", - "def label_tensor_to_2_column_dataframe(dgl_tensor):\n", + "def label_tensor_to_2_column_dataframe(dgl_tensor, adb_df):\n", " \"\"\"\n", " A user-defined function to create two\n", " ArangoDB attributes out of the 'user' label tensor\n", "\n", - " NOTE: user-defined functions must return a Pandas Dataframe\n", + " :param dgl_tensor: The DGL Tensor containing the data\n", + " :type dgl_tensor: torch.Tensor\n", + " :param adb_df: The ArangoDB DataFrame to populate, whose\n", + " size is preset to the length of **dgl_tensor**.\n", + " :type adb_df: pandas.DataFrame\n", + "\n", + " NOTE: user-defined functions must return the modified **adb_df**\n", " \"\"\"\n", " label_map = {0: \"Class A\", 1: \"Class B\", 2: \"Class C\"}\n", "\n", - " df = pandas.DataFrame(columns=[\"label_num\", \"label_str\"])\n", - " df[\"label_num\"] = dgl_tensor.tolist()\n", - " df[\"label_str\"] = df[\"label_num\"].map(label_map)\n", + " adb_df[\"label_num\"] = dgl_tensor.tolist()\n", + " adb_df[\"label_str\"] = adb_df[\"label_num\"].map(label_map)\n", "\n", - " return df\n", + " return adb_df\n", "\n", "\n", "metagraph = {\n", diff --git a/setup.py b/setup.py index 570fbc9..7debffb 100644 --- a/setup.py +++ b/setup.py @@ -11,7 +11,7 @@ long_description=long_description, long_description_content_type="text/markdown", url="https://github.com/arangoml/dgl-adapter", - keywords=["arangodb", "dgl", "adapter"], + keywords=["arangodb", "dgl", "deep graph library", "adapter"], packages=["adbdgl_adapter"], include_package_data=True, python_requires=">=3.7", @@ -27,10 +27,10 @@ ], extras_require={ "dev": [ - "black", - "flake8>=3.8.0", - "isort>=5.0.0", - "mypy>=0.790", + "black==23.3.0", + "flake8==6.0.0", + "isort==5.12.0", + "mypy==1.4.1", "pytest>=6.0.0", "pytest-cov>=2.0.0", "coveralls>=3.3.1", diff --git a/tests/conftest.py b/tests/conftest.py index 15e3f73..0c8acaf 100755 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -6,7 +6,6 @@ from arango import ArangoClient from arango.database import StandardDatabase -from arango.http import DefaultHTTPClient from dgl import DGLGraph, DGLHeteroGraph, heterograph, remove_self_loop from dgl.data import KarateClubDataset, MiniGCDataset from pandas import DataFrame @@ -44,11 +43,8 @@ def pytest_configure(config: Any) -> None: print("Database: " + con["dbName"]) print("----------------------------------------") - class NoTimeoutHTTPClient(DefaultHTTPClient): # type: ignore - REQUEST_TIMEOUT = None - global db - db = ArangoClient(hosts=con["url"], http_client=NoTimeoutHTTPClient()).db( + db = ArangoClient(hosts=con["url"]).db( con["dbName"], con["username"], con["password"], verify=True ) @@ -143,11 +139,10 @@ def get_social_graph() -> DGLHeteroGraph: # For DGL to ArangoDB testing purposes -def udf_users_features_tensor_to_df(t: Tensor) -> DataFrame: - df = DataFrame(columns=["age", "gender"]) - df[["age", "gender"]] = t.tolist() - df["gender"] = df["gender"].map({0: "Male", 1: "Female"}) - return df +def udf_users_features_tensor_to_df(t: Tensor, adb_df: DataFrame) -> DataFrame: + adb_df[["age", "gender"]] = t.tolist() + adb_df["gender"] = adb_df["gender"].map({0: "Male", 1: "Female"}) + return adb_df # For ArangoDB to DGL testing purposes @@ -163,10 +158,9 @@ def f(df: DataFrame) -> Tensor: return f -def label_tensor_to_2_column_dataframe(dgl_tensor: Tensor) -> DataFrame: +def label_tensor_to_2_column_dataframe(dgl_tensor: Tensor, df: DataFrame) -> DataFrame: label_map = {0: "Class A", 1: "Class B", 2: "Class C"} - df = DataFrame(columns=["label_num", "label_str"]) df["label_num"] = dgl_tensor.tolist() df["label_str"] = df["label_num"].map(label_map) diff --git a/tests/test_adapter.py b/tests/test_adapter.py index 22be05d..51db111 100644 --- a/tests/test_adapter.py +++ b/tests/test_adapter.py @@ -44,7 +44,7 @@ class Bad_ADBDGL_Controller: pass with pytest.raises(TypeError): - ADBDGL_Adapter(bad_db) + ADBDGL_Adapter(bad_db) # type: ignore with pytest.raises(TypeError): ADBDGL_Adapter(db, Bad_ADBDGL_Controller()) # type: ignore @@ -237,15 +237,16 @@ def test_validate_dgl_metagraph(bad_metagraph: Dict[Any, Any]) -> None: @pytest.mark.parametrize( "adapter, name, dgl_g, metagraph, \ - explicit_metagraph, overwrite_graph, import_options", + explicit_metagraph, overwrite_graph, batch_size, import_options", [ ( adbdgl_adapter, - "Karate_2", + "Karate_1", get_karate_graph(), {"nodeTypes": {"Karate_1_N": {"label": "node_label"}}}, False, False, + 33, {}, ), ( @@ -255,6 +256,7 @@ def test_validate_dgl_metagraph(bad_metagraph: Dict[Any, Any]) -> None: {"nodeTypes": {"Karate_2_N": {}}}, True, False, + 1000, {}, ), ( @@ -277,6 +279,7 @@ def test_validate_dgl_metagraph(bad_metagraph: Dict[Any, Any]) -> None: }, True, False, + 1, {}, ), ( @@ -292,6 +295,7 @@ def test_validate_dgl_metagraph(bad_metagraph: Dict[Any, Any]) -> None: }, True, False, + 1000, {}, ), ( @@ -301,6 +305,7 @@ def test_validate_dgl_metagraph(bad_metagraph: Dict[Any, Any]) -> None: {}, False, False, + None, {}, ), ( @@ -315,6 +320,7 @@ def test_validate_dgl_metagraph(bad_metagraph: Dict[Any, Any]) -> None: }, True, False, + None, {}, ), ( @@ -324,6 +330,7 @@ def test_validate_dgl_metagraph(bad_metagraph: Dict[Any, Any]) -> None: {}, False, False, + None, {}, ), ( @@ -336,6 +343,7 @@ def test_validate_dgl_metagraph(bad_metagraph: Dict[Any, Any]) -> None: }, True, True, + None, {}, ), ], @@ -347,28 +355,35 @@ def test_dgl_to_adb( metagraph: DGLMetagraph, explicit_metagraph: bool, overwrite_graph: bool, + batch_size: Optional[int], import_options: Any, ) -> None: db.delete_graph(name, drop_collections=True, ignore_missing=True) adapter.dgl_to_arangodb( - name, dgl_g, metagraph, explicit_metagraph, overwrite_graph, **import_options + name, + dgl_g, + metagraph, + explicit_metagraph, + overwrite_graph, + batch_size, + **import_options ) assert_dgl_to_adb(name, dgl_g, metagraph, explicit_metagraph) db.delete_graph(name, drop_collections=True) -def test_dgl_to_arangodb_with_controller() -> None: +def test_dgl_to_adb_with_controller() -> None: name = "Karate_3" data = get_karate_graph() db.delete_graph(name, drop_collections=True, ignore_missing=True) ADBDGL_Adapter(db, Custom_ADBDGL_Controller()).dgl_to_arangodb(name, data) - for doc in db.collection(name + "_N"): + for doc in db.collection(name + "_N"): # type: ignore assert "foo" in doc assert doc["foo"] == "bar" - for edge in db.collection(name + "_E"): + for edge in db.collection(name + "_E"): # type: ignore assert "bar" in edge assert edge["bar"] == "foo" @@ -376,7 +391,7 @@ def test_dgl_to_arangodb_with_controller() -> None: @pytest.mark.parametrize( - "adapter, name, metagraph, dgl_g_old", + "adapter, name, metagraph, dgl_g_old, batch_size", [ ( adbdgl_adapter, @@ -390,6 +405,21 @@ def test_dgl_to_arangodb_with_controller() -> None: }, }, get_karate_graph(), + 1, + ), + ( + adbdgl_adapter, + "Karate_2", + { + "vertexCollections": { + "Karate_2_N": {"karate_label": "label"}, + }, + "edgeCollections": { + "Karate_2_E": {}, + }, + }, + get_karate_graph(), + 33, ), ( adbdgl_adapter, @@ -403,6 +433,7 @@ def test_dgl_to_arangodb_with_controller() -> None: }, }, get_hypercube_graph(), + 1000, ), ( adbdgl_adapter, @@ -419,6 +450,7 @@ def test_dgl_to_arangodb_with_controller() -> None: }, }, get_social_graph(), + 1, ), ( adbdgl_adapter, @@ -434,6 +466,7 @@ def test_dgl_to_arangodb_with_controller() -> None: }, }, get_fake_hetero_dataset(), + 1000, ), ( adbdgl_adapter, @@ -449,6 +482,7 @@ def test_dgl_to_arangodb_with_controller() -> None: }, }, get_fake_hetero_dataset(), + None, ), ( adbdgl_adapter, @@ -464,6 +498,7 @@ def test_dgl_to_arangodb_with_controller() -> None: }, }, get_fake_hetero_dataset(), + None, ), ( adbdgl_adapter, @@ -482,6 +517,7 @@ def test_dgl_to_arangodb_with_controller() -> None: }, }, get_fake_hetero_dataset(), + None, ), ], ) @@ -490,12 +526,13 @@ def test_adb_to_dgl( name: str, metagraph: ADBMetagraph, dgl_g_old: Optional[Union[DGLGraph, DGLHeteroGraph]], + batch_size: Optional[None], ) -> None: if dgl_g_old: db.delete_graph(name, drop_collections=True, ignore_missing=True) adapter.dgl_to_arangodb(name, dgl_g_old) - dgl_g_new = adapter.arangodb_to_dgl(name, metagraph) + dgl_g_new = adapter.arangodb_to_dgl(name, metagraph, batch_size=batch_size) assert_adb_to_dgl(dgl_g_new, metagraph) if dgl_g_old: @@ -621,9 +658,10 @@ def test_adb_graph_to_dgl( dgl_g_new = adapter.arangodb_graph_to_dgl(name) - arango_graph = db.graph(name) - v_cols = arango_graph.vertex_collections() - e_cols = {col["edge_collection"] for col in arango_graph.edge_definitions()} + graph = db.graph(name) + v_cols: Set[str] = graph.vertex_collections() # type: ignore + edge_definitions: List[Dict[str, Any]] = graph.edge_definitions() # type: ignore + e_cols: Set[str] = {c["edge_collection"] for c in edge_definitions} assert_adb_to_dgl( dgl_g_new, @@ -637,7 +675,7 @@ def test_adb_graph_to_dgl( db.delete_graph(name, drop_collections=True) -def test_full_cycle_imdb_without_preserve_adb_keys() -> None: +def test_full_cycle_imdb() -> None: name = "imdb" db.delete_graph(name, drop_collections=True, ignore_missing=True) arango_restore(con, "tests/data/adb/imdb_dump") @@ -717,8 +755,8 @@ def assert_adb_to_dgl( assert collection.count() <= dgl_g.num_edges(None) df = DataFrame(collection.all()) - df[["from_col", "from_key"]] = df["_from"].str.split("/", 1, True) - df[["to_col", "to_key"]] = df["_to"].str.split("/", 1, True) + df[["from_col", "from_key"]] = df["_from"].str.split(pat="/", n=1, expand=True) + df[["to_col", "to_key"]] = df["_to"].str.split(pat="/", n=1, expand=True) for (from_col, to_col), count in ( df[["from_col", "to_col"]].value_counts().items() @@ -782,7 +820,6 @@ def assert_dgl_to_adb( metagraph: DGLMetagraph, explicit_metagraph: bool = False, ) -> None: - has_one_ntype = len(dgl_g.ntypes) == 1 has_one_etype = len(dgl_g.canonical_etypes) == 1 has_default_canonical_etypes = dgl_g.canonical_etypes == [("_N", "_E", "_N")] @@ -820,8 +857,8 @@ def assert_dgl_to_adb( collection = db.collection(e_col) df = DataFrame(collection.all()) - df[["from_col", "from_key"]] = df["_from"].str.split("/", 1, True) - df[["to_col", "to_key"]] = df["_to"].str.split("/", 1, True) + df[["from_col", "from_key"]] = df["_from"].str.split(pat="/", n=1, expand=True) + df[["to_col", "to_key"]] = df["_to"].str.split(pat="/", n=1, expand=True) et_df = df[(df["from_col"] == from_col) & (df["to_col"] == to_col)] assert len(et_df) == dgl_g.num_edges(e_key) @@ -866,7 +903,7 @@ def assert_dgl_to_adb_meta( assert df[meta_val].values.tolist() == data.tolist() if callable(meta_val): - udf_df = meta_val(data) + udf_df = meta_val(data, DataFrame(index=range(len(data)))) assert all([column in df for column in udf_df.columns]) for column in udf_df.columns: assert df[column].tolist() == udf_df[column].tolist() From bca8d5a3d2c9fab5041364dc909a0f4ab3eb7b46 Mon Sep 17 00:00:00 2001 From: Anthony Mahanna Date: Thu, 20 Jul 2023 23:55:11 -0400 Subject: [PATCH 21/37] swap python 3.7 support for 3.11 3.7 has reached eol --- .github/workflows/build.yml | 2 +- .github/workflows/release.yml | 2 +- setup.py | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 39f4c43..d6b1742 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python: ["3.7", "3.8", "3.9", "3.10"] + python: ["3.8", "3.9", "3.10", "3.11"] name: Python ${{ matrix.python }} steps: - uses: actions/checkout@v2 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e102f0e..553150f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python: ["3.7", "3.8", "3.9", "3.10"] + python: ["3.8", "3.9", "3.10", "3.11"] name: Python ${{ matrix.python }} steps: - uses: actions/checkout@v2 diff --git a/setup.py b/setup.py index 7debffb..c5c56ed 100644 --- a/setup.py +++ b/setup.py @@ -14,7 +14,7 @@ keywords=["arangodb", "dgl", "deep graph library", "adapter"], packages=["adbdgl_adapter"], include_package_data=True, - python_requires=">=3.7", + python_requires=">=3.8", license="Apache Software License", install_requires=[ "requests>=2.27.1", @@ -43,10 +43,10 @@ "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", "Topic :: Utilities", "Typing :: Typed", ], From b919e67be710521caf1ff0c0e3b00d8cfa623a51 Mon Sep 17 00:00:00 2001 From: Anthony Mahanna Date: Fri, 21 Jul 2023 00:08:53 -0400 Subject: [PATCH 22/37] fix: PyG typos --- README.md | 2 +- examples/ArangoDB_DGL_Adapter.ipynb | 10 +++++----- examples/outputs/ArangoDB_DGL_Adapter_output.ipynb | 10 +++++----- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index b663195..1660047 100644 --- a/README.md +++ b/README.md @@ -103,7 +103,7 @@ metagraph = { "features": "user_age", # 1) you can specify a string value for attribute renaming "label": label_tensor_to_2_column_dataframe, # 2) you can specify a function for user-defined handling, as long as the function returns a Pandas DataFrame }, - # 3) You can specify set of strings if you want to preserve the same PyG attribute names for the node/edge type + # 3) You can specify set of strings if you want to preserve the same DGL attribute names for the node/edge type "game": {"features"} # this is equivalent to {"features": "features"} }, "edgeTypes": { diff --git a/examples/ArangoDB_DGL_Adapter.ipynb b/examples/ArangoDB_DGL_Adapter.ipynb index 3f17563..4aacd3b 100644 --- a/examples/ArangoDB_DGL_Adapter.ipynb +++ b/examples/ArangoDB_DGL_Adapter.ipynb @@ -570,7 +570,7 @@ }, "outputs": [], "source": [ - "# Create the PyG graph\n", + "# Create the DGL graph\n", "hetero_graph = dgl.heterograph({\n", " (\"user\", \"follows\", \"user\"): (torch.tensor([0, 1]), torch.tensor([1, 2])),\n", " (\"user\", \"follows\", \"topic\"): (torch.tensor([1, 1]), torch.tensor([1, 2])),\n", @@ -655,7 +655,7 @@ }, "outputs": [], "source": [ - "# Create the PyG graph\n", + "# Create the DGL graph\n", "hetero_graph = dgl.heterograph({\n", " (\"user\", \"follows\", \"user\"): (torch.tensor([0, 1]), torch.tensor([1, 2])),\n", " (\"user\", \"follows\", \"topic\"): (torch.tensor([1, 1]), torch.tensor([1, 2])),\n", @@ -698,7 +698,7 @@ " \"features\": \"user_age\", # 1) you can specify a string value for attribute renaming\n", " \"label\": label_tensor_to_2_column_dataframe, # 2) you can specify a function for user-defined handling, as long as the function returns a Pandas DataFrame\n", " },\n", - " # 3) You can specify set of strings if you want to preserve the same PyG attribute names for the node/edge type\n", + " # 3) You can specify set of strings if you want to preserve the same DGL attribute names for the node/edge type\n", " \"game\": {\"features\"} # this is equivalent to {\"features\": \"features\"}\n", " },\n", " \"edgeTypes\": {\n", @@ -784,7 +784,7 @@ }, "outputs": [], "source": [ - "# Create the PyG graph\n", + "# Create the DGL graph\n", "hetero_graph = dgl.heterograph({\n", " (\"user\", \"follows\", \"user\"): (torch.tensor([0, 1]), torch.tensor([1, 2])),\n", " (\"user\", \"follows\", \"topic\"): (torch.tensor([1, 1]), torch.tensor([1, 2])),\n", @@ -1255,7 +1255,7 @@ " },\n", "}\n", "\n", - "# Create PyG Graph\n", + "# Create DGL Graph\n", "dgl_g = adbdgl_adapter.arangodb_to_dgl(\"FakeHetero\", metagraph_v3)\n", "\n", "# Show graph data\n", diff --git a/examples/outputs/ArangoDB_DGL_Adapter_output.ipynb b/examples/outputs/ArangoDB_DGL_Adapter_output.ipynb index fa9100a..623127f 100644 --- a/examples/outputs/ArangoDB_DGL_Adapter_output.ipynb +++ b/examples/outputs/ArangoDB_DGL_Adapter_output.ipynb @@ -1177,7 +1177,7 @@ }, { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "

" ] @@ -1301,7 +1301,7 @@ }, { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] @@ -1311,7 +1311,7 @@ }, { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] @@ -1321,7 +1321,7 @@ }, { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] @@ -1566,7 +1566,7 @@ "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", + "DGLments_lexer": "ipython3", "version": "3.7.6" } }, From ba9ecbc55c2a0a4e9e5e62b23d99abc907367538 Mon Sep 17 00:00:00 2001 From: Anthony Mahanna Date: Fri, 21 Jul 2023 00:09:10 -0400 Subject: [PATCH 23/37] cleanup: udf behaviour (dgl to arangodb) --- adbdgl_adapter/adapter.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/adbdgl_adapter/adapter.py b/adbdgl_adapter/adapter.py index f8631b6..1fa6fa4 100644 --- a/adbdgl_adapter/adapter.py +++ b/adbdgl_adapter/adapter.py @@ -999,14 +999,20 @@ def __build_dataframe_from_tensor( empty_df = DataFrame(index=range(start_index, end_index)) user_defined_result = meta_val(dgl_tensor, empty_df) - if type(user_defined_result) is not DataFrame: # pragma: no cover - msg = f"Invalid return type for function {meta_val} ('{meta_key}')" + if not isinstance(user_defined_result, DataFrame): # pragma: no cover + msg = f""" + Invalid return type for function {meta_val} ('{meta_key}'). + Function must return Pandas DataFrame. + """ raise DGLMetagraphError(msg) - if len(user_defined_result) != (end_index - start_index): + if ( + user_defined_result.index.start != start_index + or user_defined_result.index.stop != end_index + ): # pragma: no cover msg = f""" User Defined Function {meta_val} ('{meta_key}') must return - DataFrame of size equivalent to {end_index - start_index} + DataFrame with start index {start_index} & stop index {end_index} """ raise DGLMetagraphError(msg) From 4f3a861c515ec353cf446863f417f7460988e037 Mon Sep 17 00:00:00 2001 From: Anthony Mahanna Date: Tue, 8 Aug 2023 11:32:13 -0400 Subject: [PATCH 24/37] fix: rich progress style --- adbdgl_adapter/adapter.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/adbdgl_adapter/adapter.py b/adbdgl_adapter/adapter.py index 1fa6fa4..db39072 100644 --- a/adbdgl_adapter/adapter.py +++ b/adbdgl_adapter/adapter.py @@ -730,8 +730,8 @@ def get_aql_return_value( with progress( f"(ADB → DGL): {col}", - text_style="#8929C2", - spinner_style="#40A6F5", + text_style="#319BF5", + spinner_style="#FCFDFC", ) as p: p.add_task("__fetch_adb_docs") return self.__db.aql.execute( # type: ignore From 2fe1d6ec0473b1b9df84a896663a8c37fc5ff0f7 Mon Sep 17 00:00:00 2001 From: Anthony Mahanna Date: Tue, 8 Aug 2023 11:32:19 -0400 Subject: [PATCH 25/37] lock python-arango version --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index c5c56ed..b881f7b 100644 --- a/setup.py +++ b/setup.py @@ -22,7 +22,7 @@ "pandas>=1.3.5", "dgl>=0.6.1", "torch>=1.12.0", - "python-arango>=7.4.1", + "python-arango==7.6.0", "setuptools>=45", ], extras_require={ From 111f295fd14de686308c07d393f1da3f6f07f048 Mon Sep 17 00:00:00 2001 From: Anthony Mahanna Date: Wed, 4 Oct 2023 21:51:55 -0400 Subject: [PATCH 26/37] new: notebook output file --- .../outputs/ArangoDB_DGL_Adapter_output.ipynb | 7467 +++++++++++++++-- 1 file changed, 6599 insertions(+), 868 deletions(-) diff --git a/examples/outputs/ArangoDB_DGL_Adapter_output.ipynb b/examples/outputs/ArangoDB_DGL_Adapter_output.ipynb index 623127f..2db3221 100644 --- a/examples/outputs/ArangoDB_DGL_Adapter_output.ipynb +++ b/examples/outputs/ArangoDB_DGL_Adapter_output.ipynb @@ -15,7 +15,7 @@ "id": "U1d45V4OeG89" }, "source": [ - "\"Open" + "\"Open" ] }, { @@ -34,7 +34,7 @@ "id": "bpvZS-1aeG89" }, "source": [ - "Version: 2.0.0\n", + "Version: 3.0.0\n", "\n", "Objective: Export Graphs from [ArangoDB](https://www.arangodb.com/), a multi-model Graph Database, to [Deep Graph Library](https://www.dgl.ai/) (DGL), a python package for graph neural networks, and vice-versa." ] @@ -57,39 +57,55 @@ "outputs": [], "source": [ "%%capture\n", - "!pip install adbdgl-adapter==2.0.0\n", + "!pip install adbdgl-adapter==3.0.0\n", "!pip install adb-cloud-connector\n", - "!git clone -b 2.0.0 --single-branch https://github.com/arangoml/dgl-adapter.git\n", + "!git clone -b 3.0.0 --single-branch https://github.com/arangoml/dgl-adapter.git\n", "\n", - "## For drawing purposes \n", + "## For drawing purposes\n", "!pip install matplotlib\n", - "!pip install networkx " + "!pip install networkx" ] }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": { - "id": "niijQHqBM6zp" + "id": "niijQHqBM6zp", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "77df8f72-4000-44e8-9dd6-c56bbf33c07d" }, - "outputs": [], + "outputs": [ + { + "output_type": "stream", + "name": "stderr", + "text": [ + "DGL backend not selected or invalid. Assuming PyTorch for now.\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Setting the default backend to \"pytorch\". You can change it in the ~/.dgl/config.json file or export the DGLBACKEND environment variable. Valid options are: pytorch, mxnet, tensorflow (all lowercase)\n" + ] + } + ], "source": [ "# All imports\n", "\n", + "import pandas\n", + "import torch\n", "import dgl\n", - "from dgl import remove_self_loop\n", - "from dgl.data import MiniGCDataset\n", "from dgl.data import KarateClubDataset\n", "\n", - "import torch\n", - "from torch import Tensor\n", - "\n", - "from adbdgl_adapter import ADBDGL_Adapter, ADBDGL_Controller\n", - "from adbdgl_adapter.typings import Json, ArangoMetagraph, DGLCanonicalEType, DGLDataDict\n", - "\n", "from arango import ArangoClient\n", "from adb_cloud_connector import get_temp_credentials\n", "\n", + "from adbdgl_adapter import ADBDGL_Adapter, ADBDGL_Controller\n", + "from adbdgl_adapter.encoders import IdentityEncoder, CategoricalEncoder\n", + "\n", "import json\n", "import logging\n", "\n", @@ -119,23 +135,23 @@ "\n", "DGL represents a directed graph as a `DGLGraph` object. You can construct a graph by specifying the number of nodes in the graph as well as the list of source and destination nodes. **Nodes in the graph have consecutive IDs starting from 0.**\n", "\n", - "The following code constructs a directed \"star\" homogeneous graph with 6 nodes and 5 edges. \n" + "The following code constructs a directed \"star\" homogeneous graph with 6 nodes and 5 edges.\n" ] }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": { + "id": "vf0350qvj8up", "colab": { "base_uri": "https://localhost:8080/" }, - "id": "vf0350qvj8up", - "outputId": "fbf300df-5dcd-44e8-a746-cb554eba1dd8" + "outputId": "bb473200-893d-4d4e-ed6d-239ec497d0e3" }, "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "Graph(num_nodes=6, num_edges=5,\n", " ndata_schemes={}\n", @@ -169,18 +185,18 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": { + "id": "oOS3AVAnkQEV", "colab": { "base_uri": "https://localhost:8080/" }, - "id": "oOS3AVAnkQEV", - "outputId": "3a7403db-d11b-4f7a-a0b7-6e8220186273" + "outputId": "5b5feaaa-2a6f-4e0e-ef89-68b9e365a6db" }, "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "Graph(num_nodes={'game': 4, 'user': 4},\n", " num_edges={('user', 'follows', 'game'): 3, ('user', 'follows', 'user'): 2, ('user', 'plays', 'game'): 2},\n", @@ -221,18 +237,18 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": { + "id": "meLon-KgkU4h", "colab": { "base_uri": "https://localhost:8080/" }, - "id": "meLon-KgkU4h", - "outputId": "fa57e121-5294-45f9-b3d0-3a2cfa212da7" + "outputId": "7517b39b-adfa-426d-ccae-89254cf642b5" }, "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "Graph(num_nodes=6, num_edges=5,\n", " ndata_schemes={'x': Scheme(shape=(), dtype=torch.int64)}\n", @@ -240,11 +256,11 @@ "\n", "Node Data X attribute: tensor([151, 124, 41, 89, 76, 55])\n", "\n", - "Edge Data A attribute: tensor([[-0.6538, 1.5450, -1.7828, 1.2241],\n", - " [ 1.3176, -0.0545, 0.8196, 0.0695],\n", - " [-0.8568, 1.3135, 0.4980, -0.4290],\n", - " [ 1.5448, 0.2502, 2.3616, 1.2318],\n", - " [-0.9194, 0.2285, 0.0267, -0.0482]])\n" + "Edge Data A attribute: tensor([[ 0.6125, 0.4397, -0.4108, -0.6406],\n", + " [-0.4089, -0.3135, -0.8268, 0.2150],\n", + " [-0.5285, -1.7320, 0.5904, -0.2922],\n", + " [ 0.3878, 0.1858, 0.9546, -0.4877],\n", + " [ 1.4629, -1.9385, -2.1406, -0.1621]])\n" ] } ], @@ -277,18 +293,18 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "metadata": { + "id": "zTebQ0LOlsGA", "colab": { "base_uri": "https://localhost:8080/" }, - "id": "zTebQ0LOlsGA", - "outputId": "f5c06fec-a3e3-41fb-b478-42e492af07de" + "outputId": "c871096b-b06e-4cd8-ad56-06758090600d" }, "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "All nodes: 8\n", "User nodes: 4\n", @@ -330,18 +346,18 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "metadata": { + "id": "KsxNujb0mSqZ", "colab": { "base_uri": "https://localhost:8080/" }, - "id": "KsxNujb0mSqZ", - "outputId": "0cf12da9-c754-41a3-9496-5aea0a0faac9" + "outputId": "0b7b4106-7385-4489-e49a-399efbef0cb8" }, "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "defaultdict(, {'age': {'user': tensor([21, 16, 38, 64])}})\n" ] @@ -367,7 +383,7 @@ "id": "1M_isKWLnCfr" }, "source": [ - "For more info, visit https://docs.dgl.ai/en/0.6.x/. " + "For more info, visit https://docs.dgl.ai/en/0.6.x/." ] }, { @@ -381,25 +397,25 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": { + "id": "2ekGwnJDeG8-", "colab": { "base_uri": "https://localhost:8080/" }, - "id": "2ekGwnJDeG8-", - "outputId": "02cf35c6-9416-44fb-be44-5c0f517e0f78" + "outputId": "84a1c36b-3dc1-47e2-dadf-8a4ebefd98c0" }, "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "Log: requesting new credentials...\n", "Succcess: new credentials acquired\n", "{\n", - " \"dbName\": \"TUT56z6dbtgsoeu5cc6aixs7d\",\n", - " \"username\": \"TUTtj3263blez70kmqdi3ts\",\n", - " \"password\": \"TUTf6tursgxqogdo3ww3nplb\",\n", + " \"dbName\": \"TUTk9nlikuz4zowwxfkusway\",\n", + " \"username\": \"TUT6h05us6483maimfr7o28jq\",\n", + " \"password\": \"TUTis4noysrzjeig2bqpdccaa\",\n", " \"hostname\": \"tutorials.arangodb.cloud\",\n", " \"port\": 8529,\n", " \"url\": \"https://tutorials.arangodb.cloud:8529\"\n", @@ -440,81 +456,83 @@ "id": "BM0iRYPDeG8_" }, "source": [ - "For demo purposes, we will be using the [ArangoDB Fraud Detection example graph](https://colab.research.google.com/github/joerg84/Graph_Powered_ML_Workshop/blob/master/Fraud_Detection.ipynb)." + "For demo purposes, we will be using the [ArangoDB IMDB example graph](https://www.arangodb.com/docs/stable/arangosearch-example-datasets.html#imdb-movie-dataset)." ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": { + "id": "7bgGJ3QkeG8_", "colab": { "base_uri": "https://localhost:8080/" }, - "id": "7bgGJ3QkeG8_", - "outputId": "15b25959-5a2f-4d1c-852e-5019845716a4" + "outputId": "1f490370-72f3-4d1b-8950-ef1d0f690218" }, "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ - "\u001b[0m2022-05-25T17:23:07Z [272] INFO [05c30] {restore} Connected to ArangoDB 'http+ssl://tutorials.arangodb.cloud:8529'\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:08Z [272] INFO [abeb4] {restore} Database name in source dump is 'fraud-detection'\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:08Z [272] INFO [9b414] {restore} # Re-creating document collection '_analyzers'...\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:08Z [272] INFO [9b414] {restore} # Re-creating document collection '_appbundles'...\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:12Z [272] INFO [9b414] {restore} # Re-creating document collection '_apps'...\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:13Z [272] INFO [9b414] {restore} # Re-creating document collection '_aqlfunctions'...\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:17Z [272] INFO [9b414] {restore} # Re-creating document collection '_graphs'...\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:17Z [272] INFO [9b414] {restore} # Re-creating document collection '_modules'...\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:17Z [272] INFO [9b414] {restore} # Re-creating document collection 'account'...\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:18Z [272] INFO [9b414] {restore} # Re-creating document collection 'bank'...\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:18Z [272] INFO [9b414] {restore} # Re-creating document collection 'branch'...\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:18Z [272] INFO [9b414] {restore} # Re-creating document collection 'Class'...\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:18Z [272] INFO [9b414] {restore} # Re-creating document collection 'customer'...\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:19Z [272] INFO [9b414] {restore} # Re-creating edge collection 'accountHolder'...\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:19Z [272] INFO [9b414] {restore} # Re-creating edge collection 'Relationship'...\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:19Z [272] INFO [9b414] {restore} # Re-creating edge collection 'transaction'...\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:20Z [272] INFO [94913] {restore} # Loading data into document collection '_analyzers', data size: 20 byte(s)\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:20Z [272] INFO [6ae09] {restore} # Successfully restored document collection '_analyzers'\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:20Z [272] INFO [f723c] {restore} # Creating views...\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:20Z [272] INFO [6d69f] {restore} # Dispatched 14 job(s), using 2 worker(s)\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:20Z [272] INFO [d88c6] {restore} # Creating indexes for collection '_apps'...\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:20Z [272] INFO [94913] {restore} # Loading data into document collection '_appbundles', data size: 20 byte(s)\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:20Z [272] INFO [6ae09] {restore} # Successfully restored document collection '_appbundles'\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:20Z [272] INFO [94913] {restore} # Loading data into document collection '_aqlfunctions', data size: 20 byte(s)\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:20Z [272] INFO [6ae09] {restore} # Successfully restored document collection '_aqlfunctions'\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:20Z [272] INFO [94913] {restore} # Loading data into document collection '_graphs', data size: 292 byte(s)\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:20Z [272] INFO [6ae09] {restore} # Successfully restored document collection '_graphs'\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:20Z [272] INFO [94913] {restore} # Loading data into document collection '_modules', data size: 20 byte(s)\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:20Z [272] INFO [6ae09] {restore} # Successfully restored document collection '_modules'\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:20Z [272] INFO [d88c6] {restore} # Creating indexes for collection 'account'...\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:20Z [272] INFO [94913] {restore} # Loading data into document collection '_apps', data size: 20 byte(s)\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:20Z [272] INFO [6ae09] {restore} # Successfully restored document collection '_apps'\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:20Z [272] INFO [94913] {restore} # Loading data into document collection 'bank', data size: 183 byte(s)\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:20Z [272] INFO [94913] {restore} # Loading data into document collection 'account', data size: 1696 byte(s)\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:20Z [272] INFO [6ae09] {restore} # Successfully restored document collection 'bank'\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:20Z [272] INFO [94913] {restore} # Loading data into document collection 'branch', data size: 465 byte(s)\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:20Z [272] INFO [6ae09] {restore} # Successfully restored document collection 'account'\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:20Z [272] INFO [94913] {restore} # Loading data into document collection 'Class', data size: 196 byte(s)\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:20Z [272] INFO [6ae09] {restore} # Successfully restored document collection 'branch'\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:20Z [272] INFO [d88c6] {restore} # Creating indexes for collection 'customer'...\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:20Z [272] INFO [6ae09] {restore} # Successfully restored document collection 'Class'\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:20Z [272] INFO [94913] {restore} # Loading data into edge collection 'accountHolder', data size: 1076 byte(s)\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:20Z [272] INFO [94913] {restore} # Loading data into document collection 'customer', data size: 794 byte(s)\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:20Z [272] INFO [6ae09] {restore} # Successfully restored edge collection 'accountHolder'\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:20Z [272] INFO [94913] {restore} # Loading data into edge collection 'Relationship', data size: 275 byte(s)\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:20Z [272] INFO [6ae09] {restore} # Successfully restored document collection 'customer'\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:20Z [272] INFO [94913] {restore} # Loading data into edge collection 'transaction', data size: 2292 byte(s)\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:20Z [272] INFO [6ae09] {restore} # Successfully restored edge collection 'Relationship'\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:20Z [272] INFO [6ae09] {restore} # Successfully restored edge collection 'transaction'\n", - "\u001b[0m\u001b[0m2022-05-25T17:23:20Z [272] INFO [a66e1] {restore} Processed 14 collection(s) in 13.360950 s, read 50480 byte(s) from datafiles, sent 9 data batch(es) of 50471 byte(s) total size\n", + "\u001b[0m2022-08-05T20:32:43Z [308] INFO [05c30] {restore} Connected to ArangoDB 'http+ssl://tutorials.arangodb.cloud:8529'\n", + "\u001b[0m\u001b[0m2022-08-05T20:32:43Z [308] INFO [abeb4] {restore} Database name in source dump is 'TUTdit9ohpgz1ntnbetsjstwi'\n", + "\u001b[0m\u001b[0m2022-08-05T20:32:43Z [308] INFO [9b414] {restore} # Re-creating document collection 'Movies'...\n", + "\u001b[0m\u001b[0m2022-08-05T20:32:43Z [308] INFO [9b414] {restore} # Re-creating document collection 'Users'...\n", + "\u001b[0m\u001b[0m2022-08-05T20:32:44Z [308] INFO [9b414] {restore} # Re-creating edge collection 'Ratings'...\n", + "\u001b[0m\u001b[0m2022-08-05T20:32:44Z [308] INFO [6d69f] {restore} # Dispatched 3 job(s), using 2 worker(s)\n", + "\u001b[0m\u001b[0m2022-08-05T20:32:44Z [308] INFO [94913] {restore} # Loading data into document collection 'Movies', data size: 68107 byte(s)\n", + "\u001b[0m\u001b[0m2022-08-05T20:32:44Z [308] INFO [94913] {restore} # Loading data into document collection 'Users', data size: 16717 byte(s)\n", + "\u001b[0m\u001b[0m2022-08-05T20:32:44Z [308] INFO [6ae09] {restore} # Successfully restored document collection 'Users'\n", + "\u001b[0m\u001b[0m2022-08-05T20:32:44Z [308] INFO [94913] {restore} # Loading data into edge collection 'Ratings', data size: 1407601 byte(s)\n", + "\u001b[0m\u001b[0m2022-08-05T20:32:44Z [308] INFO [6ae09] {restore} # Successfully restored document collection 'Movies'\n", + "\u001b[0m\u001b[0m2022-08-05T20:32:49Z [308] INFO [75e65] {restore} # Current restore progress: restored 2 of 3 collection(s), read 9270558 byte(s) from datafiles, sent 3 data batch(es) of 881948 byte(s) total size, queued jobs: 0, workers: 2\n", + "\u001b[0m\u001b[0m2022-08-05T20:32:52Z [308] INFO [69a73] {restore} # Still loading data into edge collection 'Ratings', 10660073 byte(s) restored\n", + "\u001b[0m\u001b[0m2022-08-05T20:32:52Z [308] INFO [6ae09] {restore} # Successfully restored edge collection 'Ratings'\n", + "\u001b[0m\u001b[0m2022-08-05T20:32:52Z [308] INFO [a66e1] {restore} Processed 3 collection(s) in 9.925065 s, read 11542023 byte(s) from datafiles, sent 4 data batch(es) of 11542020 byte(s) total size\n", "\u001b[0m" ] } ], "source": [ "!chmod -R 755 dgl-adapter/\n", - "!./dgl-adapter/tests/assets/arangorestore -c none --server.endpoint http+ssl://{con[\"hostname\"]}:{con[\"port\"]} --server.username {con[\"username\"]} --server.database {con[\"dbName\"]} --server.password {con[\"password\"]} --replication-factor 3 --input-directory \"dgl-adapter/examples/data/fraud_dump\" --include-system-collections true" + "!./dgl-adapter/tests/tools/arangorestore -c none --server.endpoint http+ssl://{con[\"hostname\"]}:{con[\"port\"]} --server.username {con[\"username\"]} --server.database {con[\"dbName\"]} --server.password {con[\"password\"]} --replication-factor 3 --input-directory \"dgl-adapter/tests/data/adb/imdb_dump\" --include-system-collections true" + ] + }, + { + "cell_type": "code", + "source": [ + "# Create the IMDB graph\n", + "db.delete_graph(\"imdb\", ignore_missing=True)\n", + "db.create_graph(\n", + " \"imdb\",\n", + " edge_definitions=[\n", + " {\n", + " \"edge_collection\": \"Ratings\",\n", + " \"from_vertex_collections\": [\"Users\"],\n", + " \"to_vertex_collections\": [\"Movies\"],\n", + " },\n", + " ],\n", + ")" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "XLiXYJPRlVYZ", + "outputId": "2666c5b3-1f62-4bfc-c9af-53bc53f0ffd8" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": {}, + "execution_count": 10 + } ] }, { @@ -537,20 +555,20 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": { + "id": "oG496kBeeG9A", "colab": { "base_uri": "https://localhost:8080/" }, - "id": "oG496kBeeG9A", - "outputId": "792a3ad2-3d04-4132-d878-a5e52c58dc17" + "outputId": "e5d8657f-a644-4493-ca16-16a300ac4a87" }, "outputs": [ { - "name": "stderr", "output_type": "stream", + "name": "stderr", "text": [ - "[2022/05/25 17:23:34 +0000] [60] [INFO] - adbdgl_adapter: Instantiated ADBDGL_Adapter with database 'TUT56z6dbtgsoeu5cc6aixs7d'\n" + "[2022/08/05 20:33:59 +0000] [61] [INFO] - adbdgl_adapter: Instantiated ADBDGL_Adapter with database 'TUTk9nlikuz4zowwxfkusway'\n" ] } ], @@ -561,643 +579,539 @@ { "cell_type": "markdown", "metadata": { - "id": "uByvwf9feG9A" + "id": "bvzJXSHHTi3v" }, "source": [ - "# ArangoDB to DGL\n", - "\n" + "# DGL to ArangoDB" ] }, { "cell_type": "markdown", "metadata": { - "id": "ZrEDmtqCVD0W" + "id": "UafSB_3JZNwK" }, "source": [ - "#### Via ArangoDB Graph" + "#### Karate Graph" ] }, { "cell_type": "markdown", "metadata": { - "id": "H8nlvWCryPW0" + "id": "tx-tjPfx0U_h" }, "source": [ - "Data source\n", - "* ArangoDB Fraud-Detection Graph\n", + "Data\n", + "* [DGL Karate Graph](https://docs.dgl.ai/en/0.6.x/api/python/dgl.data.html#karate-club-dataset)\n", "\n", - "Package methods used\n", - "* [`adbdgl_adapter.adapter.arangodb_graph_to_dgl()`](https://github.com/arangoml/dgl-adapter/blob/2.0.0/adbdgl_adapter/adapter.py#L198-L213)\n", + "API\n", + "* `adbdgl_adapter.adapter.dgl_to_arangodb()`\n", "\n", - "Important notes\n", - "* The `name` parameter in this case must point to an existing ArangoDB graph in your ArangoDB instance. " + "Notes\n", + "* The `name` parameter in this case is simply for naming your ArangoDB graph." ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": { + "id": "eRVbiBy4ZdE4", "colab": { - "base_uri": "https://localhost:8080/" + "base_uri": "https://localhost:8080/", + "height": 577, + "referenced_widgets": [ + "61d2a0426c324309ab51111933276e3d", + "77c208846c1e4503bc22a5b5504f89ee", + "2d1fc41d509e481cb779603827359184", + "87d9c9de620847f48b4088e8577cd653" + ] }, - "id": "zZ-Hu3lLVHgd", - "outputId": "d1c38c22-eebb-456d-8e4c-140ddd9baed8" + "outputId": "74ac6cb8-824b-443a-ad6e-9f36b23060a1" }, "outputs": [ { - "name": "stderr", - "output_type": "stream", - "text": [ - "[2022/05/25 17:23:40 +0000] [60] [INFO] - adbdgl_adapter: Created DGL 'fraud-detection' Graph\n" - ] + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "61d2a0426c324309ab51111933276e3d" + } + }, + "metadata": {} }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--------------------\n", - "Graph(num_nodes={'account': 54, 'customer': 17},\n", - " num_edges={('account', 'accountHolder', 'customer'): 54, ('account', 'transaction', 'account'): 62},\n", - " metagraph=[('account', 'customer', 'accountHolder'), ('account', 'account', 'transaction')])\n", - "['account', 'customer']\n", - "['accountHolder', 'transaction']\n" - ] - } - ], - "source": [ - "# Define graph name\n", - "graph_name = \"fraud-detection\"\n", - "\n", - "# Create DGL graph from ArangoDB graph\n", - "dgl_g = adbdgl_adapter.arangodb_graph_to_dgl(graph_name)\n", - "\n", - "# You can also provide valid Python-Arango AQL query options to the command above, like such:\n", - "# dgl_g = aadbdgl_adapter.arangodb_graph_to_dgl(graph_name, ttl=1000, stream=True)\n", - "# See more here: https://docs.python-arango.com/en/main/specs.html#arango.aql.AQL.execute\n", - "\n", - "# Show graph data\n", - "print('\\n--------------------')\n", - "print(dgl_g)\n", - "print(dgl_g.ntypes)\n", - "print(dgl_g.etypes)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "RQ4CknYfUEuz" - }, - "source": [ - "#### Via ArangoDB Collections" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "bRcCmqWGy1Kf" - }, - "source": [ - "Data source\n", - "* ArangoDB Fraud-Detection Collections\n", - "\n", - "Package methods used\n", - "* [`adbdgl_adapter.adapter.arangodb_collections_to_dgl()`](https://github.com/arangoml/dgl-adapter/blob/2.0.0/adbdgl_adapter/adapter.py#L169-L196)\n", - "\n", - "Important notes\n", - "* The `name` parameter in this case is simply for naming your DGL graph.\n", - "* The `vertex_collections` & `edge_collections` parameters must point to existing ArangoDB collections within your ArangoDB instance." - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "2d1fc41d509e481cb779603827359184" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "
\n" + ] + }, + "metadata": {} }, - "id": "i4XOpdRLUNlJ", - "outputId": "4d53a3d0-316b-40c2-d841-5fb29fa1358b" - }, - "outputs": [ { - "name": "stderr", "output_type": "stream", + "name": "stderr", "text": [ - "[2022/05/25 17:23:46 +0000] [60] [INFO] - adbdgl_adapter: Created DGL 'fraud-detection' Graph\n" + "[2022/08/05 20:34:04 +0000] [61] [INFO] - adbdgl_adapter: Created ArangoDB 'Karate' Graph\n" ] }, { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "\n", "--------------------\n", - "Graph(num_nodes={'Class': 4, 'account': 54, 'customer': 17},\n", - " num_edges={('Class', 'Relationship', 'Class'): 4, ('account', 'accountHolder', 'customer'): 54, ('account', 'transaction', 'account'): 62},\n", - " metagraph=[('Class', 'Class', 'Relationship'), ('account', 'customer', 'accountHolder'), ('account', 'account', 'transaction')])\n", - "['Class', 'account', 'customer']\n", - "['Relationship', 'accountHolder', 'transaction']\n" + "URL: https://tutorials.arangodb.cloud:8529\n", + "Username: TUT6h05us6483maimfr7o28jq\n", + "Password: TUTis4noysrzjeig2bqpdccaa\n", + "Database: TUTk9nlikuz4zowwxfkusway\n", + "--------------------\n", + "\n", + "View the created graph here: https://tutorials.arangodb.cloud:8529/_db/TUTk9nlikuz4zowwxfkusway/_admin/aardvark/index.html#graph/Karate\n", + "\n", + "View the original graph below:\n", + "\n" ] + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": {} } ], "source": [ - "# Define collection names\n", - "vertex_collections = {\"account\", \"Class\", \"customer\"}\n", - "edge_collections = {\"accountHolder\", \"Relationship\", \"transaction\"}\n", + "# Create the DGL graph & draw it\n", + "dgl_karate_graph = KarateClubDataset()[0]\n", + "nx.draw(dgl_karate_graph.to_networkx(), with_labels=True)\n", "\n", - "# Create DGL from ArangoDB collections\n", - "dgl_g = adbdgl_adapter.arangodb_collections_to_dgl(\"fraud-detection\", vertex_collections, edge_collections)\n", + "name = \"Karate\"\n", "\n", - "# You can also provide valid Python-Arango AQL query options to the command above, like such:\n", - "# dgl_g = adbdgl_adapter.arangodb_collections_to_dgl(\"fraud-detection\", vertex_collections, edge_collections, ttl=1000, stream=True)\n", - "# See more here: https://docs.python-arango.com/en/main/specs.html#arango.aql.AQL.execute\n", + "# Delete the graph if it already exists\n", + "db.delete_graph(name, drop_collections=True, ignore_missing=True)\n", + "\n", + "# Create the ArangoDB graph\n", + "adb_karate_graph = adbdgl_adapter.dgl_to_arangodb(name, dgl_karate_graph)\n", + "\n", + "# You can also provide valid Python-Arango Import Bulk options to the command above, like such:\n", + "# adb_karate_graph = adbdgl_adapter.dgl_to_arangodb(name, dgl_karate_graph, batch_size=5, on_duplicate=\"replace\")\n", + "# See the full parameter list at https://docs.python-arango.com/en/main/specs.html#arango.collection.Collection.import_bulk\n", "\n", - "# Show graph data\n", "print('\\n--------------------')\n", - "print(dgl_g)\n", - "print(dgl_g.ntypes)\n", - "print(dgl_g.etypes)" + "print(\"URL: \" + con[\"url\"])\n", + "print(\"Username: \" + con[\"username\"])\n", + "print(\"Password: \" + con[\"password\"])\n", + "print(\"Database: \" + con[\"dbName\"])\n", + "print('--------------------\\n')\n", + "print(f\"View the created graph here: {con['url']}/_db/{con['dbName']}/_admin/aardvark/index.html#graph/{name}\\n\")\n", + "print(f\"View the original graph below:\\n\")" ] }, { "cell_type": "markdown", "metadata": { - "id": "qEH6OdSB23Ya" + "id": "CNj1xKhwoJoL" }, "source": [ - "#### Via ArangoDB Metagraph" + "\n", + "#### FakeHeterogeneous Graph" ] }, { "cell_type": "markdown", "metadata": { - "id": "PipFzJ0HzTMA" + "id": "CZ1UX9YX1Zzo" }, "source": [ - "Data source\n", - "* ArangoDB Fraud-Detection Collections\n", + "Data\n", + "* A fake DGL Heterogeneous graph\n", "\n", - "Package methods used\n", - "* [`adbdgl_adapter.adapter.arangodb_to_dgl()`](https://github.com/arangoml/dgl-adapter/blob/2.0.0/adbdgl_adapter/adapter.py#L70-L167)\n", + "API\n", + "* `adbdgl_adapter.adapter.dgl_to_arangodb()`\n", "\n", - "Important notes\n", - "* The `name` parameter in this case is simply for naming your DGL graph.\n", - "* The `metagraph` parameter should contain collections & associated document attributes names that exist within your ArangoDB instance." + "Notes\n", + "* The `name` parameter is used to name your ArangoDB graph." ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": { + "id": "jbJsvMMaoJoT", "colab": { - "base_uri": "https://localhost:8080/" + "base_uri": "https://localhost:8080/", + "height": 408, + "referenced_widgets": [ + "3fc8b14d794a46118b328893bd216405", + "c7e222474ff445fe86e4e599848b2ae2", + "289a6e16c3d640c29d96edf09908bd0f", + "61f3832c906445a3ab7e7ba9b41c0127", + "99bbe81a24db49ff9352987fd97649cd", + "21e50aa61c3d4de19b5cc0bbe27d53c9", + "f9fdfe6ce44e4e1c8f513f82efca3e0d", + "9b2b3abbe2c04af0bc232c9b16bfd90d", + "8444e147be8f44aba06ec1f8a880104e", + "80e69b3aa98b44e295efe3940c1146c2", + "ec7b8b0b853f463fa079dda845891391", + "dd2376f84c794b4989f385a5bb147bd8" + ] }, - "id": "7Kz8lXXq23Yk", - "outputId": "7804e7ba-3760-4eb5-8669-f6fa20948262" + "outputId": "c1606984-c2ef-41c1-e8b1-78a4ae40d93c" }, "outputs": [ { - "name": "stderr", "output_type": "stream", + "name": "stdout", "text": [ - "[2022/05/25 17:23:50 +0000] [60] [INFO] - adbdgl_adapter: Created DGL 'FraudDetection' Graph\n" + "Graph(num_nodes={'game': 5, 'topic': 3, 'user': 4},\n", + " num_edges={('user', 'follows', 'topic'): 2, ('user', 'follows', 'user'): 2, ('user', 'plays', 'game'): 2},\n", + " metagraph=[('user', 'topic', 'follows'), ('user', 'user', 'follows'), ('user', 'game', 'plays')])\n" ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--------------\n", - "Graph(num_nodes={'Class': 4, 'account': 54, 'customer': 17},\n", - " num_edges={('Class', 'Relationship', 'Class'): 4, ('account', 'accountHolder', 'customer'): 54, ('account', 'transaction', 'account'): 62},\n", - " metagraph=[('Class', 'Class', 'Relationship'), ('account', 'customer', 'accountHolder'), ('account', 'account', 'transaction')])\n", - "\n", - "--------------\n", - "defaultdict(, {'concrete': {'Class': tensor([True, True, True, True])}, 'customer_id': {'account': tensor([10000009, 10000004, 10000004, 10000010, 10000002, 10000011, 10000015,\n", - " 10000006, 10000010, 10810, 10000002, 10000014, 10000008, 0,\n", - " 10000002, 0, 10000008, 10000006, 10000012, 10000015, 10000001,\n", - " 10000010, 10000015, 10000005, 10000009, 10000008, 10000011, 10000014,\n", - " 10000010, 10000006, 10000002, 10000007, 10000006, 10000005, 0,\n", - " 10000010, 10810, 0, 10000009, 10000006, 10000002, 10000005,\n", - " 10000009, 10000012, 10000007, 10000002, 10000014, 0, 10810,\n", - " 10000016, 10000006, 10000016, 10000013, 10810])}, 'Balance': {'account': tensor([5331, 7630, 1433, 2201, 4837, 5817, 1689, 1042, 4104, 10, 2338, 10,\n", - " 3779, 0, 529, 0, 1992, 2912, 6367, 1819, 0, 221, 5062, 2372,\n", - " 841, 5393, 1138, 8414, 4064, 5686, 6294, 6540, 7358, 3452, 0, 3993,\n", - " 10, 0, 471, 8148, 5832, 1758, 1747, 1679, 6789, 1599, 8320, 0,\n", - " 10, 8626, 7199, 8644, 3879, 10])}, 'rank': {'account': tensor([0.0021, 0.0031, 0.0052, 0.0021, 0.0046, 0.0037, 0.0032, 0.0042, 0.0021,\n", - " 0.0021, 0.0030, 0.0037, 0.0040, 0.0037, 0.0021, 0.0046, 0.0040, 0.0030,\n", - " 0.0026, 0.0032, 0.0021, 0.0034, 0.0032, 0.0021, 0.0021, 0.0035, 0.0026,\n", - " 0.0026, 0.0046, 0.0021, 0.0021, 0.0035, 0.0036, 0.0036, 0.0038, 0.0055,\n", - " 0.0021, 0.0041, 0.0044, 0.0021, 0.0030, 0.0035, 0.0033, 0.0026, 0.0071,\n", - " 0.0036, 0.0032, 0.0059, 0.0021, 0.0090, 0.0057, 0.0032, 0.0026, 0.0021]), 'customer': tensor([0.0135, 0.0050, 0.0062, 0.0066, 0.0096, 0.0088, 0.0089, 0.0047, 0.0066,\n", - " 0.0045, 0.0062, 0.0103, 0.0081, 0.0039, 0.0054, 0.0044, 0.0093])}})\n", - "--------------\n", - "\n", - "defaultdict(, {'receiver_bank_id': {('account', 'transaction', 'account'): tensor([10000000003, 10000000003, 10000000001, 10000000002, 10000000002,\n", - " 10000000003, 10000000001, 10000000003, 10000000001, 10000000003,\n", - " 10000000002, 10000000003, 0, 10000000003, 10000000003,\n", - " 0, 10000000001, 0, 10000000002, 10000000003,\n", - " 10000000003, 10000000003, 10000000001, 0, 10000000003,\n", - " 10000000002, 10000000003, 10000000003, 10000000001, 10000000001,\n", - " 10000000003, 10000000003, 10000000003, 10000000003, 10000000001,\n", - " 10000000002, 0, 10000000001, 10000000001, 10000000002,\n", - " 10000000001, 10000000003, 10000000003, 10000000003, 10000000001,\n", - " 10000000003, 10000000002, 10000000003, 10000000002, 10000000001,\n", - " 10000000003, 0, 10000000003, 10000000003, 0,\n", - " 10000000003, 10000000002, 10000000002, 10000000001, 10000000003,\n", - " 10000000003, 10000000003])}, 'sender_bank_id': {('account', 'transaction', 'account'): tensor([10000000003, 10000000002, 10000000001, 10000000001, 10000000002,\n", - " 10000000003, 10000000003, 10000000002, 10000000002, 10000000003,\n", - " 10000000001, 10000000001, 0, 10000000003, 10000000003,\n", - " 0, 10000000002, 0, 10000000001, 10000000003,\n", - " 10000000001, 10000000003, 10000000002, 0, 10000000003,\n", - " 10000000003, 10000000003, 10000000003, 10000000001, 10000000001,\n", - " 10000000002, 10000000001, 10000000003, 10000000003, 10000000001,\n", - " 10000000001, 0, 10000000003, 10000000002, 10000000001,\n", - " 10000000002, 10000000003, 10000000003, 10000000003, 10000000002,\n", - " 10000000003, 10000000002, 10000000003, 10000000002, 10000000001,\n", - " 10000000001, 0, 10000000003, 10000000003, 0,\n", - " 10000000003, 10000000003, 10000000001, 10000000001, 10000000003,\n", - " 10000000003, 10000000002])}, 'transaction_amt': {('account', 'transaction', 'account'): tensor([9000, 299, 498, 954, 756, 627, 142, 946, 920, 9000, 421, 343,\n", - " 9000, 457, 9000, 9000, 53, 9000, 284, 120, 441, 9000, 364, 901,\n", - " 9000, 279, 9000, 9000, 273, 127, 952, 354, 795, 9000, 835, 761,\n", - " 9000, 478, 172, 804, 665, 995, 9000, 9000, 670, 9000, 340, 9000,\n", - " 747, 347, 52, 911, 762, 9000, 0, 790, 619, 491, 954, 9000,\n", - " 9000, 843])}})\n" - ] - } - ], - "source": [ - "# Define Metagraph\n", - "fraud_detection_metagraph = {\n", - " \"vertexCollections\": {\n", - " \"account\": {\"rank\", \"Balance\", \"customer_id\"},\n", - " \"Class\": {\"concrete\"},\n", - " \"customer\": {\"rank\"},\n", - " },\n", - " \"edgeCollections\": {\n", - " \"accountHolder\": {},\n", - " \"Relationship\": {},\n", - " \"transaction\": {\"receiver_bank_id\", \"sender_bank_id\", \"transaction_amt\"},\n", - " },\n", - "}\n", - "\n", - "# Create DGL Graph from attributes\n", - "dgl_g = adbdgl_adapter.arangodb_to_dgl('FraudDetection', fraud_detection_metagraph)\n", - "\n", - "# You can also provide valid Python-Arango AQL query options to the command above, like such:\n", - "# dgl_g = adbdgl_adapter.arangodb_to_dgl(graph_name = 'FraudDetection', fraud_detection_metagraph, ttl=1000, stream=True)\n", - "# See more here: https://docs.python-arango.com/en/main/specs.html#arango.aql.AQL.execute\n", - "\n", - "# Show graph data\n", - "print('\\n--------------')\n", - "print(dgl_g)\n", - "print('\\n--------------')\n", - "print(dgl_g.ndata)\n", - "print('--------------\\n')\n", - "print(dgl_g.edata)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "DqIKT1lO4ASw" - }, - "source": [ - "#### Via ArangoDB Metagraph with a custom controller and verbose logging" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "PGkGh_KjzlYM" - }, - "source": [ - "Data source\n", - "* ArangoDB Fraud-Detection Collections\n", - "\n", - "Package methods used\n", - "* [`adbdgl_adapter.adapter.arangodb_to_dgl()`](https://github.com/arangoml/dgl-adapter/blob/2.0.0/adbdgl_adapter/adapter.py#L70-L167)\n", - "* [`adbdgl_adapter.controller._adb_attribute_to_dgl_feature()`](https://github.com/arangoml/dgl-adapter/blob/2.0.0/adbdgl_adapter/controller.py#L21-L47)\n", - "\n", - "Important notes\n", - "* The `name` parameter in this case is simply for naming your DGL graph.\n", - "* The `metagraph` parameter should contain collections & associated document attributes names that exist within your ArangoDB instance.\n", - "* We are creating a custom `ADBDGL_Controller` to specify *how* to convert our ArangoDB vertex/edge attributes into DGL node/edge features. View the default `ADBDGL_Controller` [here](https://github.com/arangoml/dgl-adapter/blob/2.0.0/adbdgl_adapter/controller.py#L11)." - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "3fc8b14d794a46118b328893bd216405" + } + }, + "metadata": {} }, - "id": "U4_vSdU_4AS4", - "outputId": "8af82665-9ae6-40d4-ada2-248edd993291" - }, - "outputs": [ { - "name": "stderr", - "output_type": "stream", - "text": [ - "[2022/05/25 17:23:56 +0000] [60] [INFO] - adbdgl_adapter: Instantiated ADBDGL_Adapter with database 'TUT56z6dbtgsoeu5cc6aixs7d'\n", - "[2022/05/25 17:23:56 +0000] [60] [DEBUG] - adbdgl_adapter: Starting arangodb_to_dgl(FraudDetection, ...):\n", - "[2022/05/25 17:23:56 +0000] [60] [DEBUG] - adbdgl_adapter: Preparing 'account' vertices\n", - "[2022/05/25 17:23:56 +0000] [60] [DEBUG] - adbdgl_adapter: Preparing 'Class' vertices\n", - "[2022/05/25 17:23:57 +0000] [60] [DEBUG] - adbdgl_adapter: Preparing 'customer' vertices\n", - "[2022/05/25 17:23:57 +0000] [60] [DEBUG] - adbdgl_adapter: Preparing 'accountHolder' edges\n", - "[2022/05/25 17:23:57 +0000] [60] [DEBUG] - adbdgl_adapter: Preparing 'Relationship' edges\n", - "[2022/05/25 17:23:57 +0000] [60] [DEBUG] - adbdgl_adapter: Preparing 'transaction' edges\n", - "[2022/05/25 17:23:57 +0000] [60] [DEBUG] - adbdgl_adapter: Is graph 'FraudDetection' homogenous? False\n", - "[2022/05/25 17:23:57 +0000] [60] [DEBUG] - adbdgl_adapter: Inserting 54 'rank' features into 'account'\n", - "[2022/05/25 17:23:57 +0000] [60] [DEBUG] - adbdgl_adapter: Inserting 17 'rank' features into 'customer'\n", - "[2022/05/25 17:23:57 +0000] [60] [DEBUG] - adbdgl_adapter: Inserting 4 'name' features into 'Class'\n", - "[2022/05/25 17:23:57 +0000] [60] [DEBUG] - adbdgl_adapter: Inserting 4 'concrete' features into 'Class'\n", - "[2022/05/25 17:23:57 +0000] [60] [DEBUG] - adbdgl_adapter: Inserting 17 'Ssn' features into 'customer'\n", - "[2022/05/25 17:23:57 +0000] [60] [DEBUG] - adbdgl_adapter: Inserting 17 'Sex' features into 'customer'\n", - "[2022/05/25 17:23:57 +0000] [60] [DEBUG] - adbdgl_adapter: Inserting 62 'trans_time' features into 'transaction'\n", - "[2022/05/25 17:23:57 +0000] [60] [DEBUG] - adbdgl_adapter: Inserting 62 'transaction_amt' features into 'transaction'\n", - "[2022/05/25 17:23:57 +0000] [60] [DEBUG] - adbdgl_adapter: Inserting 62 'receiver_bank_id' features into 'transaction'\n", - "[2022/05/25 17:23:57 +0000] [60] [DEBUG] - adbdgl_adapter: Inserting 62 'transaction_date' features into 'transaction'\n", - "[2022/05/25 17:23:57 +0000] [60] [DEBUG] - adbdgl_adapter: Inserting 62 'sender_bank_id' features into 'transaction'\n", - "[2022/05/25 17:23:57 +0000] [60] [INFO] - adbdgl_adapter: Created DGL 'FraudDetection' Graph\n" - ] + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
         },
         {
-          "name": "stdout",
-          "output_type": "stream",
-          "text": [
-            "\n",
-            "--------------\n",
-            "Graph(num_nodes={'Class': 4, 'account': 54, 'customer': 17},\n",
-            "      num_edges={('Class', 'Relationship', 'Class'): 4, ('account', 'accountHolder', 'customer'): 54, ('account', 'transaction', 'account'): 62},\n",
-            "      metagraph=[('Class', 'Class', 'Relationship'), ('account', 'customer', 'accountHolder'), ('account', 'account', 'transaction')])\n",
-            "\n",
-            "--------------\n",
-            "defaultdict(, {'name': {'Class': tensor([0, 1, 2, 3])}, 'concrete': {'Class': tensor([True, True, True, True])}, 'rank': {'account': tensor([0.0021, 0.0031, 0.0052, 0.0021, 0.0046, 0.0037, 0.0032, 0.0042, 0.0021,\n",
-            "        0.0021, 0.0030, 0.0037, 0.0040, 0.0037, 0.0021, 0.0046, 0.0040, 0.0030,\n",
-            "        0.0026, 0.0032, 0.0021, 0.0034, 0.0032, 0.0021, 0.0021, 0.0035, 0.0026,\n",
-            "        0.0026, 0.0046, 0.0021, 0.0021, 0.0035, 0.0036, 0.0036, 0.0038, 0.0055,\n",
-            "        0.0021, 0.0041, 0.0044, 0.0021, 0.0030, 0.0035, 0.0033, 0.0026, 0.0071,\n",
-            "        0.0036, 0.0032, 0.0059, 0.0021, 0.0090, 0.0057, 0.0032, 0.0026, 0.0021]), 'customer': tensor([0.0135, 0.0050, 0.0062, 0.0066, 0.0096, 0.0088, 0.0089, 0.0047, 0.0066,\n",
-            "        0.0045, 0.0062, 0.0103, 0.0081, 0.0039, 0.0054, 0.0044, 0.0093])}, 'Ssn': {'customer': tensor([123456786, 123456780, 123456780, 123456787, 123456780, 123456789,\n",
-            "        123456780, 123456785, 123456783, 123456784, 123456780, 123456788,\n",
-            "        123456782, 123456781, 123456780, 123456780, 111223333])}, 'Sex': {'customer': tensor([1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1])}})\n",
-            "--------------\n",
-            "\n",
-            "defaultdict(, {'trans_time': {('account', 'transaction', 'account'): tensor([1136, 1516, 1340, 1030, 1552, 1116, 1450,  924, 1046, 1426, 1247, 1459,\n",
-            "           0, 1459, 1258,    0, 1758,    0, 1230, 1210, 1252, 1039, 1741,    0,\n",
-            "        1420, 1713, 1710, 1028, 1636, 1054, 1658, 1332, 1316,  955, 1629, 1642,\n",
-            "           0, 1710,  932, 1652, 1018, 1527, 1555, 1640, 1158, 1035, 1015, 1133,\n",
-            "        1320, 1514, 1213,    0, 1133, 1340,    0, 1026, 1312, 1027, 1745, 1342,\n",
-            "        1520, 1141])}, 'transaction_amt': {('account', 'transaction', 'account'): tensor([9000,  299,  498,  954,  756,  627,  142,  946,  920, 9000,  421,  343,\n",
-            "        9000,  457, 9000, 9000,   53, 9000,  284,  120,  441, 9000,  364,  901,\n",
-            "        9000,  279, 9000, 9000,  273,  127,  952,  354,  795, 9000,  835,  761,\n",
-            "        9000,  478,  172,  804,  665,  995, 9000, 9000,  670, 9000,  340, 9000,\n",
-            "         747,  347,   52,  911,  762, 9000,    0,  790,  619,  491,  954, 9000,\n",
-            "        9000,  843])}, 'receiver_bank_id': {('account', 'transaction', 'account'): tensor([10000000003, 10000000003, 10000000001, 10000000002, 10000000002,\n",
-            "        10000000003, 10000000001, 10000000003, 10000000001, 10000000003,\n",
-            "        10000000002, 10000000003,           0, 10000000003, 10000000003,\n",
-            "                  0, 10000000001,           0, 10000000002, 10000000003,\n",
-            "        10000000003, 10000000003, 10000000001,           0, 10000000003,\n",
-            "        10000000002, 10000000003, 10000000003, 10000000001, 10000000001,\n",
-            "        10000000003, 10000000003, 10000000003, 10000000003, 10000000001,\n",
-            "        10000000002,           0, 10000000001, 10000000001, 10000000002,\n",
-            "        10000000001, 10000000003, 10000000003, 10000000003, 10000000001,\n",
-            "        10000000003, 10000000002, 10000000003, 10000000002, 10000000001,\n",
-            "        10000000003,           0, 10000000003, 10000000003,           0,\n",
-            "        10000000003, 10000000002, 10000000002, 10000000001, 10000000003,\n",
-            "        10000000003, 10000000003])}, 'transaction_date': {('account', 'transaction', 'account'): tensor([  201966,   201721,  2017528,  2018924,  2017516,  2018128,  2019213,\n",
-            "          201847,  2017914,   201966,  2017810, 20181020,        0,  2017724,\n",
-            "          201966,        0,  2019311,        0,  2018211,  2018125,   201932,\n",
-            "          201966,   201795,        0,   201966,  2017111,   201966,   201966,\n",
-            "         2019822,  2017317,  2019124,  2017121,  2017110,   201966,  2017717,\n",
-            "        20181012,        0, 20181023,  2019724,  2019611,  2019928,  2019117,\n",
-            "          201966,   201966,  2017328,   201966,  2019316,   201966,  2017914,\n",
-            "         2017521,   201713,        0,  2018124,   201966,        0,   201784,\n",
-            "          201713, 20171212,  2019413,   201966,   201966,   201887])}, 'sender_bank_id': {('account', 'transaction', 'account'): tensor([10000000003, 10000000002, 10000000001, 10000000001, 10000000002,\n",
-            "        10000000003, 10000000003, 10000000002, 10000000002, 10000000003,\n",
-            "        10000000001, 10000000001,           0, 10000000003, 10000000003,\n",
-            "                  0, 10000000002,           0, 10000000001, 10000000003,\n",
-            "        10000000001, 10000000003, 10000000002,           0, 10000000003,\n",
-            "        10000000003, 10000000003, 10000000003, 10000000001, 10000000001,\n",
-            "        10000000002, 10000000001, 10000000003, 10000000003, 10000000001,\n",
-            "        10000000001,           0, 10000000003, 10000000002, 10000000001,\n",
-            "        10000000002, 10000000003, 10000000003, 10000000003, 10000000002,\n",
-            "        10000000003, 10000000002, 10000000003, 10000000002, 10000000001,\n",
-            "        10000000001,           0, 10000000003, 10000000003,           0,\n",
-            "        10000000003, 10000000003, 10000000001, 10000000001, 10000000003,\n",
-            "        10000000003, 10000000002])}})\n"
-          ]
-        }
-      ],
-      "source": [
-        "# Define Metagraph\n",
-        "fraud_detection_metagraph = {\n",
-        "    \"vertexCollections\": {\n",
-        "        \"account\": {\"rank\"},\n",
-        "        \"Class\": {\"concrete\", \"name\"},\n",
-        "        \"customer\": {\"Sex\", \"Ssn\", \"rank\"},\n",
-        "    },\n",
-        "    \"edgeCollections\": {\n",
-        "        \"accountHolder\": {},\n",
-        "        \"Relationship\": {},\n",
-        "        \"transaction\": {\"receiver_bank_id\", \"sender_bank_id\", \"transaction_amt\", \"transaction_date\", \"trans_time\"},\n",
-        "    },\n",
-        "}\n",
-        "\n",
-        "# A user-defined Controller class is REQUIRED when converting non-numerical\n",
-        "# ArangoDB attributes to DGL features.\n",
-        "class FraudDetection_ADBDGL_Controller(ADBDGL_Controller):\n",
-        "    \"\"\"ArangoDB-DGL controller.\n",
-        "\n",
-        "    Responsible for controlling how ArangoDB attributes\n",
-        "    are converted into DGL features, and vice-versa.\n",
-        "\n",
-        "    You can derive your own custom ADBDGL_Controller if you want to maintain\n",
-        "    consistency between your ArangoDB attributes & your DGL features.\n",
-        "    \"\"\"\n",
-        "\n",
-        "    def _adb_attribute_to_dgl_feature(self, key: str, col: str, val):\n",
-        "        \"\"\"\n",
-        "        Given an ArangoDB attribute key, its assigned value (for an arbitrary document),\n",
-        "        and the collection it belongs to, convert it to a valid\n",
-        "        DGL feature: https://docs.dgl.ai/en/0.6.x/guide/graph-feature.html.\n",
-        "\n",
-        "        NOTE: You must override this function if you want to transfer non-numerical\n",
-        "        ArangoDB attributes to DGL (DGL only accepts 'attributes' (a.k.a features)\n",
-        "        of numerical types). Read more about DGL features here:\n",
-        "        https://docs.dgl.ai/en/0.6.x/new-tutorial/2_dglgraph.html#assigning-node-and-edge-features-to-graph.\n",
-        "\n",
-        "        :param key: The ArangoDB attribute key name\n",
-        "        :type key: str\n",
-        "        :param col: The ArangoDB collection of the ArangoDB document.\n",
-        "        :type col: str\n",
-        "        :param val: The assigned attribute value of the ArangoDB document.\n",
-        "        :type val: Any\n",
-        "        :return: The attribute's representation as a DGL Feature\n",
-        "        :rtype: Any\n",
-        "        \"\"\"\n",
-        "        try:\n",
-        "          if col == \"transaction\":\n",
-        "            if key == \"transaction_date\":\n",
-        "              return int(str(val).replace(\"-\", \"\"))\n",
-        "    \n",
-        "            if key == \"trans_time\":\n",
-        "              return int(str(val).replace(\":\", \"\"))\n",
-        "    \n",
-        "          if col == \"customer\":\n",
-        "            if key == \"Sex\":\n",
-        "              return {\n",
-        "                  \"M\": 0,\n",
-        "                  \"F\": 1\n",
-        "              }.get(val, -1)\n",
-        "\n",
-        "            if key == \"Ssn\":\n",
-        "              return int(str(val).replace(\"-\", \"\"))\n",
-        "\n",
-        "          if col == \"Class\":\n",
-        "            if key == \"name\":\n",
-        "              return {\n",
-        "                  \"Bank\": 0,\n",
-        "                  \"Branch\": 1,\n",
-        "                  \"Account\": 2,\n",
-        "                  \"Customer\": 3\n",
-        "              }.get(val, -1)\n",
-        "\n",
-        "        except (ValueError, TypeError, SyntaxError):\n",
-        "          return 0\n",
-        "\n",
-        "        # Rely on the parent Controller as a final measure\n",
-        "        return super()._adb_attribute_to_dgl_feature(key, col, val)\n",
-        "\n",
-        "# Instantiate the new adapter\n",
-        "fraud_adbdgl_adapter = ADBDGL_Adapter(db, FraudDetection_ADBDGL_Controller())\n",
-        "\n",
-        "# You can also change the adapter's logging level for access to \n",
-        "# silent, regular, or verbose logging (logging.WARNING, logging.INFO, logging.DEBUG)\n",
-        "fraud_adbdgl_adapter.set_logging(logging.DEBUG) # verbose logging\n",
-        "\n",
-        "# Create DGL Graph from attributes\n",
-        "dgl_g = fraud_adbdgl_adapter.arangodb_to_dgl('FraudDetection',  fraud_detection_metagraph)\n",
-        "\n",
-        "# You can also provide valid Python-Arango AQL query options to the command above, like such:\n",
-        "# dgl_g = fraud_adbdgl_adapter.arangodb_to_dgl(graph_name = 'FraudDetection',  fraud_detection_metagraph, ttl=1000, stream=True)\n",
-        "# See more here: https://docs.python-arango.com/en/main/specs.html#arango.aql.AQL.execute\n",
-        "\n",
-        "# Show graph data\n",
-        "print('\\n--------------')\n",
-        "print(dgl_g)\n",
-        "print('\\n--------------')\n",
-        "print(dgl_g.ndata)\n",
-        "print('--------------\\n')\n",
-        "print(dgl_g.edata)"
-      ]
-    },
-    {
-      "cell_type": "markdown",
-      "metadata": {
-        "id": "bvzJXSHHTi3v"
-      },
-      "source": [
-        "# DGL to ArangoDB"
-      ]
-    },
-    {
-      "cell_type": "markdown",
-      "metadata": {
-        "id": "UafSB_3JZNwK"
-      },
-      "source": [
-        "#### Karate Graph"
-      ]
-    },
-    {
-      "cell_type": "markdown",
-      "metadata": {
-        "id": "tx-tjPfx0U_h"
-      },
-      "source": [
-        "Data source\n",
-        "* [DGL Karate Graph](https://docs.dgl.ai/en/0.6.x/api/python/dgl.data.html#karate-club-dataset)\n",
-        "\n",
-        "Package methods used\n",
-        "* [`adbdgl_adapter.adapter.dgl_to_arangodb()`](https://github.com/arangoml/dgl-adapter/blob/2.0.0/adbdgl_adapter/adapter.py#L215-L311)\n",
-        "\n",
-        "Important notes\n",
-        "* The `name` parameter in this case is simply for naming your ArangoDB graph."
-      ]
-    },
-    {
-      "cell_type": "code",
-      "execution_count": 10,
-      "metadata": {
-        "colab": {
-          "base_uri": "https://localhost:8080/",
-          "height": 683
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "289a6e16c3d640c29d96edf09908bd0f" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "99bbe81a24db49ff9352987fd97649cd" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "f9fdfe6ce44e4e1c8f513f82efca3e0d" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "8444e147be8f44aba06ec1f8a880104e" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "ec7b8b0b853f463fa079dda845891391" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "
\n" + ] + }, + "metadata": {} }, - "id": "eRVbiBy4ZdE4", - "outputId": "c629be2d-1bc9-4539-c7f2-d3ae46676659" - }, - "outputs": [ { - "name": "stderr", "output_type": "stream", + "name": "stderr", "text": [ - "[2022/05/25 17:24:04 +0000] [60] [DEBUG] - adbdgl_adapter: Starting dgl_to_arangodb(Karate, ...):\n", - "[2022/05/25 17:24:04 +0000] [60] [DEBUG] - adbdgl_adapter: Is graph 'Karate' using default canonical_etypes? True\n", - "[2022/05/25 17:24:04 +0000] [60] [DEBUG] - adbdgl_adapter: Is graph 'Karate' homogenous? True\n", - "[2022/05/25 17:24:04 +0000] [60] [DEBUG] - adbdgl_adapter: Preparing 34 'Karate_N' DGL nodes\n", - "[2022/05/25 17:24:04 +0000] [60] [DEBUG] - adbdgl_adapter: Preparing 156 'Karate_E' DGL edges\n", - "[2022/05/25 17:24:04 +0000] [60] [DEBUG] - adbdgl_adapter: Inserting last 34 documents into 'Karate_N'\n", - "[2022/05/25 17:24:05 +0000] [60] [DEBUG] - adbdgl_adapter: Inserting last 156 documents into 'Karate_E'\n", - "[2022/05/25 17:24:05 +0000] [60] [INFO] - adbdgl_adapter: Created ArangoDB 'Karate' Graph\n" + "[2022/08/05 20:35:24 +0000] [61] [INFO] - adbdgl_adapter: Created ArangoDB 'FakeHetero' Graph\n", + "INFO:adbdgl_adapter:Created ArangoDB 'FakeHetero' Graph\n" ] }, { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "\n", "--------------------\n", "URL: https://tutorials.arangodb.cloud:8529\n", - "Username: TUTtj3263blez70kmqdi3ts\n", - "Password: TUTf6tursgxqogdo3ww3nplb\n", - "Database: TUT56z6dbtgsoeu5cc6aixs7d\n", + "Username: TUT6h05us6483maimfr7o28jq\n", + "Password: TUTis4noysrzjeig2bqpdccaa\n", + "Database: TUTk9nlikuz4zowwxfkusway\n", "--------------------\n", "\n", - "View the created graph here: https://tutorials.arangodb.cloud:8529/_db/TUT56z6dbtgsoeu5cc6aixs7d/_admin/aardvark/index.html#graph/Karate\n", - "\n", + "View the created graph here: https://tutorials.arangodb.cloud:8529/_db/TUTk9nlikuz4zowwxfkusway/_admin/aardvark/index.html#graph/FakeHetero\n", "\n", "View the original graph below:\n", "\n" ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" } ], "source": [ - "# Create the DGL graph & draw it\n", - "dgl_karate_graph = KarateClubDataset()[0]\n", - "nx.draw(dgl_karate_graph.to_networkx(), with_labels=True)\n", + "# Create the PyG graph\n", + "hetero_graph = dgl.heterograph({\n", + " (\"user\", \"follows\", \"user\"): (torch.tensor([0, 1]), torch.tensor([1, 2])),\n", + " (\"user\", \"follows\", \"topic\"): (torch.tensor([1, 1]), torch.tensor([1, 2])),\n", + " (\"user\", \"plays\", \"game\"): (torch.tensor([0, 3]), torch.tensor([3, 4])),\n", + "})\n", + "hetero_graph.nodes[\"user\"].data[\"features\"] = torch.tensor([21, 44, 16, 25])\n", + "hetero_graph.nodes[\"user\"].data[\"label\"] = torch.tensor([1, 2, 0, 1])\n", + "hetero_graph.nodes[\"game\"].data[\"features\"] = torch.tensor([[0, 0], [0, 1], [1, 0], [1, 1], [1, 1]])\n", + "hetero_graph.edges[(\"user\", \"plays\", \"game\")].data[\"features\"] = torch.tensor([[6, 1], [1000, 0]])\n", "\n", - "name = \"Karate\"\n", + "print(hetero_graph)\n", + "\n", + "name = \"FakeHetero\"\n", "\n", "# Delete the graph if it already exists\n", "db.delete_graph(name, drop_collections=True, ignore_missing=True)\n", "\n", - "# Create the ArangoDB graph\n", - "adb_karate_graph = adbdgl_adapter.dgl_to_arangodb(name, dgl_karate_graph)\n", + "# Create the ArangoDB graphs\n", + "adb_hetero_graph = adbdgl_adapter.dgl_to_arangodb(name, hetero_graph)\n", "\n", "print('\\n--------------------')\n", "print(\"URL: \" + con[\"url\"])\n", @@ -1212,154 +1126,386 @@ { "cell_type": "markdown", "metadata": { - "id": "gshTlSX_ZZsS" + "id": "n08RC_GtkDrC" }, "source": [ "\n", - "#### MiniGCDataset Graphs" + "#### FakeHeterogeneous Graph with a DGL-ArangoDB metagraph" ] }, { "cell_type": "markdown", "metadata": { - "id": "KaExiE2x0-M6" + "id": "rUD_y0yxkDrK" }, "source": [ - "Data source\n", - "* [DGL Mini Graph Classification Dataset](https://docs.dgl.ai/en/0.6.x/api/python/dgl.data.html#mini-graph-classification-dataset)\n", + "Data\n", + "* A fake DGL Heterogeneous graph\n", "\n", - "Package methods used\n", - "* [`adbdgl_adapter.adapter.dgl_to_arangodb()`](https://github.com/arangoml/dgl-adapter/blob/2.0.0/adbdgl_adapter/adapter.py#L215-L311)\n", + "API\n", + "* `adbdgl_adapter.adapter.dgl_to_arangodb()`\n", "\n", - "Important notes\n", - "* The `name` parameters in this case are simply for naming your ArangoDB graph." + "Notes\n", + "* The `name` parameter is used to name your ArangoDB graph.\n", + "* The `metagraph` parameter is an optional object mapping the PyG keys of the node & edge data to strings, list of strings, or user-defined functions." ] }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", - "height": 1000 + "height": 408, + "referenced_widgets": [ + "345a5984959c4e57b7e2715fa8eeef8f", + "99e6613c4187459396eea503453934cb", + "968020b1388e4883843575d9198af1cd", + "f1a08470110e4099af2a3d4cf4d0f956", + "6744eb60dfa04a8598fca3b998ce3077", + "09d25097c75c4fa8a2c7376f1965afc5", + "cb8167f00277413eaaa2ad6e0e162fab", + "8128e6d80fcb4a8ca0a72097bb8b6521", + "575205f1a4e64c5d977e69d4939a5605", + "d20843bfa9064d56b37aaea011789a26", + "8bf075c6f7834d3fa905b7ddc37cf128", + "b080f26fe35241fb9cca48e97bc9ef0c" + ] }, - "id": "dADiexlAioGH", - "outputId": "9921ec34-b860-49e8-f8cb-0b403029ead4" + "id": "xAdjZiJ8kDrK", + "outputId": "2822ed4b-8199-48e2-a753-4b1f60d648a0" }, "outputs": [ { - "name": "stderr", "output_type": "stream", + "name": "stdout", "text": [ - "[2022/05/25 17:24:48 +0000] [60] [DEBUG] - adbdgl_adapter: Starting dgl_to_arangodb(Lollipop, ...):\n", - "[2022/05/25 17:24:48 +0000] [60] [DEBUG] - adbdgl_adapter: Is graph 'Lollipop' using default canonical_etypes? True\n", - "[2022/05/25 17:24:48 +0000] [60] [DEBUG] - adbdgl_adapter: Is graph 'Lollipop' homogenous? True\n", - "[2022/05/25 17:24:48 +0000] [60] [DEBUG] - adbdgl_adapter: Preparing 7 'Lollipop_N' DGL nodes\n", - "[2022/05/25 17:24:48 +0000] [60] [DEBUG] - adbdgl_adapter: Preparing 24 'Lollipop_E' DGL edges\n", - "[2022/05/25 17:24:48 +0000] [60] [DEBUG] - adbdgl_adapter: Inserting last 7 documents into 'Lollipop_N'\n", - "[2022/05/25 17:24:48 +0000] [60] [DEBUG] - adbdgl_adapter: Inserting last 24 documents into 'Lollipop_E'\n", - "[2022/05/25 17:24:48 +0000] [60] [INFO] - adbdgl_adapter: Created ArangoDB 'Lollipop' Graph\n", - "[2022/05/25 17:24:48 +0000] [60] [DEBUG] - adbdgl_adapter: Starting dgl_to_arangodb(Hypercube, ...):\n", - "[2022/05/25 17:24:48 +0000] [60] [DEBUG] - adbdgl_adapter: Is graph 'Hypercube' using default canonical_etypes? True\n", - "[2022/05/25 17:24:49 +0000] [60] [DEBUG] - adbdgl_adapter: Is graph 'Hypercube' homogenous? True\n", - "[2022/05/25 17:24:49 +0000] [60] [DEBUG] - adbdgl_adapter: Preparing 8 'Hypercube_N' DGL nodes\n", - "[2022/05/25 17:24:49 +0000] [60] [DEBUG] - adbdgl_adapter: Preparing 24 'Hypercube_E' DGL edges\n", - "[2022/05/25 17:24:49 +0000] [60] [DEBUG] - adbdgl_adapter: Inserting last 8 documents into 'Hypercube_N'\n", - "[2022/05/25 17:24:49 +0000] [60] [DEBUG] - adbdgl_adapter: Inserting last 24 documents into 'Hypercube_E'\n", - "[2022/05/25 17:24:49 +0000] [60] [INFO] - adbdgl_adapter: Created ArangoDB 'Hypercube' Graph\n", - "[2022/05/25 17:24:49 +0000] [60] [DEBUG] - adbdgl_adapter: Starting dgl_to_arangodb(Clique, ...):\n", - "[2022/05/25 17:24:49 +0000] [60] [DEBUG] - adbdgl_adapter: Is graph 'Clique' using default canonical_etypes? True\n", - "[2022/05/25 17:24:49 +0000] [60] [DEBUG] - adbdgl_adapter: Is graph 'Clique' homogenous? True\n", - "[2022/05/25 17:24:49 +0000] [60] [DEBUG] - adbdgl_adapter: Preparing 6 'Clique_N' DGL nodes\n", - "[2022/05/25 17:24:49 +0000] [60] [DEBUG] - adbdgl_adapter: Preparing 30 'Clique_E' DGL edges\n", - "[2022/05/25 17:24:49 +0000] [60] [DEBUG] - adbdgl_adapter: Inserting last 6 documents into 'Clique_N'\n", - "[2022/05/25 17:24:49 +0000] [60] [DEBUG] - adbdgl_adapter: Inserting last 30 documents into 'Clique_E'\n", - "[2022/05/25 17:24:49 +0000] [60] [INFO] - adbdgl_adapter: Created ArangoDB 'Clique' Graph\n" + "Graph(num_nodes={'game': 5, 'topic': 3, 'user': 4},\n", + " num_edges={('user', 'follows', 'topic'): 2, ('user', 'follows', 'user'): 2, ('user', 'plays', 'game'): 2},\n", + " metagraph=[('user', 'topic', 'follows'), ('user', 'user', 'follows'), ('user', 'game', 'plays')])\n" ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--------------------\n", - "URL: https://tutorials.arangodb.cloud:8529\n", - "Username: TUTtj3263blez70kmqdi3ts\n", - "Password: TUTf6tursgxqogdo3ww3nplb\n", - "Database: TUT56z6dbtgsoeu5cc6aixs7d\n", - "--------------------\n", - "\n", - "\\View the created graphs here:\n", - "\n", - "1) https://tutorials.arangodb.cloud:8529/_db/TUT56z6dbtgsoeu5cc6aixs7d/_admin/aardvark/index.html#graph/Lollipop\n", - "2) https://tutorials.arangodb.cloud:8529/_db/TUT56z6dbtgsoeu5cc6aixs7d/_admin/aardvark/index.html#graph/Hypercube\n", - "3) https://tutorials.arangodb.cloud:8529/_db/TUT56z6dbtgsoeu5cc6aixs7d/_admin/aardvark/index.html#graph/Clique\n", - "\n", - "View the original graphs below:\n", - "\n" - ] + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "345a5984959c4e57b7e2715fa8eeef8f" + } + }, + "metadata": {} }, { + "output_type": "display_data", "data": { - "image/png": "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", "text/plain": [ - "
" + "" + ], + "text/html": [ + "
\n"
             ]
           },
-          "metadata": {},
-          "output_type": "display_data"
+          "metadata": {}
         },
         {
+          "output_type": "display_data",
           "data": {
-            "image/png": "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",
             "text/plain": [
-              "
" + "\n" + ], + "text/html": [ + "
\n",
+              "
\n" ] }, - "metadata": {}, - "output_type": "display_data" + "metadata": {} }, { + "output_type": "display_data", "data": { - "image/png": "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", "text/plain": [ - "
" - ] + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "968020b1388e4883843575d9198af1cd" + } }, - "metadata": {}, - "output_type": "display_data" - } + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "6744eb60dfa04a8598fca3b998ce3077" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "cb8167f00277413eaaa2ad6e0e162fab" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "575205f1a4e64c5d977e69d4939a5605" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "8bf075c6f7834d3fa905b7ddc37cf128" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[2022/08/05 20:35:56 +0000] [61] [INFO] - adbdgl_adapter: Created ArangoDB 'FakeHetero' Graph\n", + "INFO:adbdgl_adapter:Created ArangoDB 'FakeHetero' Graph\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\n", + "--------------------\n", + "URL: https://tutorials.arangodb.cloud:8529\n", + "Username: TUT6h05us6483maimfr7o28jq\n", + "Password: TUTis4noysrzjeig2bqpdccaa\n", + "Database: TUTk9nlikuz4zowwxfkusway\n", + "--------------------\n", + "\n", + "View the created graph here: https://tutorials.arangodb.cloud:8529/_db/TUTk9nlikuz4zowwxfkusway/_admin/aardvark/index.html#graph/FakeHetero\n", + "\n", + "View the original graph below:\n", + "\n" + ] + } ], "source": [ - "# Load the dgl graphs & draw:\n", - "## 1) Lollipop Graph\n", - "dgl_lollipop_graph = remove_self_loop(MiniGCDataset(8, 7, 8)[3][0])\n", - "plt.figure(1)\n", - "nx.draw(dgl_lollipop_graph.to_networkx(), with_labels=True)\n", - "\n", - "## 2) Hypercube Graph\n", - "dgl_hypercube_graph = remove_self_loop(MiniGCDataset(8, 8, 9)[4][0])\n", - "plt.figure(2)\n", - "nx.draw(dgl_hypercube_graph.to_networkx(), with_labels=True)\n", - "\n", - "## 3) Clique Graph\n", - "dgl_clique_graph = remove_self_loop(MiniGCDataset(8, 6, 7)[6][0])\n", - "plt.figure(3)\n", - "nx.draw(dgl_clique_graph.to_networkx(), with_labels=True)\n", - "\n", - "lollipop = \"Lollipop\"\n", - "hypercube = \"Hypercube\"\n", - "clique = \"Clique\"\n", - "\n", - "# Delete the graphs from ArangoDB if they already exist\n", - "db.delete_graph(lollipop, drop_collections=True, ignore_missing=True)\n", - "db.delete_graph(hypercube, drop_collections=True, ignore_missing=True)\n", - "db.delete_graph(clique, drop_collections=True, ignore_missing=True)\n", + "# Create the PyG graph\n", + "hetero_graph = dgl.heterograph({\n", + " (\"user\", \"follows\", \"user\"): (torch.tensor([0, 1]), torch.tensor([1, 2])),\n", + " (\"user\", \"follows\", \"topic\"): (torch.tensor([1, 1]), torch.tensor([1, 2])),\n", + " (\"user\", \"plays\", \"game\"): (torch.tensor([0, 3]), torch.tensor([3, 4])),\n", + "})\n", + "hetero_graph.nodes[\"user\"].data[\"features\"] = torch.tensor([21, 44, 16, 25])\n", + "hetero_graph.nodes[\"user\"].data[\"label\"] = torch.tensor([1, 2, 0, 1])\n", + "hetero_graph.nodes[\"game\"].data[\"features\"] = torch.tensor([[0, 0], [0, 1], [1, 0], [1, 1], [1, 1]])\n", + "hetero_graph.edges[(\"user\", \"plays\", \"game\")].data[\"features\"] = torch.tensor([[6, 1], [1000, 0]])\n", + "\n", + "print(hetero_graph)\n", + "\n", + "name = \"FakeHetero\"\n", + "\n", + "# Define the metagraph\n", + "def label_tensor_to_2_column_dataframe(dgl_tensor):\n", + " \"\"\"\n", + " A user-defined function to create two\n", + " ArangoDB attributes out of the 'user' label tensor\n", + "\n", + " NOTE: user-defined functions must return a Pandas Dataframe\n", + " \"\"\"\n", + " label_map = {0: \"Class A\", 1: \"Class B\", 2: \"Class C\"}\n", + "\n", + " df = pandas.DataFrame(columns=[\"label_num\", \"label_str\"])\n", + " df[\"label_num\"] = dgl_tensor.tolist()\n", + " df[\"label_str\"] = df[\"label_num\"].map(label_map)\n", + "\n", + " return df\n", + "\n", + "\n", + "metagraph = {\n", + " \"nodeTypes\": {\n", + " \"user\": {\n", + " \"features\": \"user_age\", # 1) you can specify a string value for attribute renaming\n", + " \"label\": label_tensor_to_2_column_dataframe, # 2) you can specify a function for user-defined handling, as long as the function returns a Pandas DataFrame\n", + " },\n", + " # 3) You can specify set of strings if you want to preserve the same PyG attribute names for the node/edge type\n", + " \"game\": {\"features\"} # this is equivalent to {\"features\": \"features\"}\n", + " },\n", + " \"edgeTypes\": {\n", + " (\"user\", \"plays\", \"game\"): {\n", + " # 4) you can specify a list of strings for tensor dissasembly (if you know the number of node/edge features in advance)\n", + " \"features\": [\"hours_played\", \"is_satisfied_with_game\"]\n", + " },\n", + " },\n", + "}\n", + "\n", + "# Delete the graph if it already exists\n", + "db.delete_graph(name, drop_collections=True, ignore_missing=True)\n", "\n", "# Create the ArangoDB graphs\n", - "adb_lollipop_graph = adbdgl_adapter.dgl_to_arangodb(lollipop, dgl_lollipop_graph)\n", - "adb_hypercube_graph = adbdgl_adapter.dgl_to_arangodb(hypercube, dgl_hypercube_graph)\n", - "adb_clique_graph = adbdgl_adapter.dgl_to_arangodb(clique, dgl_clique_graph)\n", + "adb_hetero_graph = adbdgl_adapter.dgl_to_arangodb(name, hetero_graph, metagraph, explicit_metagraph=False)\n", + "\n", + "# Create the ArangoDB graph with `explicit_metagraph=True`\n", + "# With `explicit_metagraph=True`, the node & edge types omitted from the metagraph will NOT be converted to ArangoDB.\n", + "# Only 'user', 'game', and ('user', 'plays', 'game') will be brought over (i.e 'topic', ('user', 'follows', 'user'), ... are ignored)\n", + "## adb_hetero_graph = adbdgl_adapter.dgl_to_arangodb(name, hetero_graph, metagraph, explicit_metagraph=True)\n", "\n", "print('\\n--------------------')\n", "print(\"URL: \" + con[\"url\"])\n", @@ -1367,189 +1513,2057 @@ "print(\"Password: \" + con[\"password\"])\n", "print(\"Database: \" + con[\"dbName\"])\n", "print('--------------------\\n')\n", - "print(\"View the created graphs here:\\n\")\n", - "print(f\"1) {con['url']}/_db/{con['dbName']}/_admin/aardvark/index.html#graph/{lollipop}\")\n", - "print(f\"2) {con['url']}/_db/{con['dbName']}/_admin/aardvark/index.html#graph/{hypercube}\")\n", - "print(f\"3) {con['url']}/_db/{con['dbName']}/_admin/aardvark/index.html#graph/{clique}\\n\")\n", - "print(f\"View the original graphs below:\\n\")" + "print(f\"View the created graph here: {con['url']}/_db/{con['dbName']}/_admin/aardvark/index.html#graph/{name}\\n\")\n", + "print(f\"View the original graph below:\\n\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "mk6m0hBRkkkT" + }, + "source": [ + "\n", + "#### FakeHeterogeneous Graph with a user-defined ADBDGL Controller" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "KG7kFoOUkkkb" + }, + "source": [ + "Data\n", + "* A fake DGL Heterogeneous graph\n", + "\n", + "API\n", + "* `adbdgl_adapter.adapter.dgl_to_arangodb()`\n", + "\n", + "Notes\n", + "* The `name` parameter is used to name your ArangoDB graph.\n", + "* The `ADBDGL_Controller` is an optional user-defined class for controlling how nodes & edges are handled when transitioning from PyG to ArangoDB. **It is interpreted as the alternative to the `metagraph` parameter.**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 443, + "referenced_widgets": [ + "ea5e9803c5de4d2bbb48782069b9829b", + "3f633be94c7d466ea40571e805a76948", + "96e57d98afce44cd8269204dd19ff6e0", + "da43ef4a8c6a41f9bda153a0cd14c2d7", + "3bc228aa98454dc59a604c8f7ff6b2a0", + "65138d18c9c449d1aaaad387293c5ede", + "3ea99b2a6b4246d3abf628ca743f9f24", + "841ce4f5d391457e858c3c48185e259d", + "987bf80aee4b4b97bfad1699f8384af8", + "4ab3c113235746cab5fde158756ab420", + "09e8c93741bf45acb69ba9e757107564", + "d7d06973b2984eb19fa050409bf62222" + ] + }, + "id": "A-DtrD2Ykkkb", + "outputId": "f2672554-16e4-4b88-e24b-f567ff13bb3f" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Graph(num_nodes={'game': 5, 'topic': 3, 'user': 4},\n", + " num_edges={('user', 'follows', 'topic'): 2, ('user', 'follows', 'user'): 2, ('user', 'plays', 'game'): 2},\n", + " metagraph=[('user', 'topic', 'follows'), ('user', 'user', 'follows'), ('user', 'game', 'plays')])\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[2022/08/05 20:36:18 +0000] [61] [INFO] - adbdgl_adapter: Instantiated ADBDGL_Adapter with database 'TUTk9nlikuz4zowwxfkusway'\n", + "INFO:adbdgl_adapter:Instantiated ADBDGL_Adapter with database 'TUTk9nlikuz4zowwxfkusway'\n" + ] + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "ea5e9803c5de4d2bbb48782069b9829b" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "96e57d98afce44cd8269204dd19ff6e0" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "3bc228aa98454dc59a604c8f7ff6b2a0" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "3ea99b2a6b4246d3abf628ca743f9f24" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "987bf80aee4b4b97bfad1699f8384af8" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "09e8c93741bf45acb69ba9e757107564" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[2022/08/05 20:36:20 +0000] [61] [INFO] - adbdgl_adapter: Created ArangoDB 'FakeHetero' Graph\n", + "INFO:adbdgl_adapter:Created ArangoDB 'FakeHetero' Graph\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\n", + "--------------------\n", + "URL: https://tutorials.arangodb.cloud:8529\n", + "Username: TUT6h05us6483maimfr7o28jq\n", + "Password: TUTis4noysrzjeig2bqpdccaa\n", + "Database: TUTk9nlikuz4zowwxfkusway\n", + "--------------------\n", + "\n", + "View the created graph here: https://tutorials.arangodb.cloud:8529/_db/TUTk9nlikuz4zowwxfkusway/_admin/aardvark/index.html#graph/FakeHetero\n", + "\n", + "View the original graph below:\n", + "\n" + ] + } + ], + "source": [ + "# Create the PyG graph\n", + "hetero_graph = dgl.heterograph({\n", + " (\"user\", \"follows\", \"user\"): (torch.tensor([0, 1]), torch.tensor([1, 2])),\n", + " (\"user\", \"follows\", \"topic\"): (torch.tensor([1, 1]), torch.tensor([1, 2])),\n", + " (\"user\", \"plays\", \"game\"): (torch.tensor([0, 3]), torch.tensor([3, 4])),\n", + "})\n", + "hetero_graph.nodes[\"user\"].data[\"features\"] = torch.tensor([21, 44, 16, 25])\n", + "hetero_graph.nodes[\"user\"].data[\"label\"] = torch.tensor([1, 2, 0, 1])\n", + "hetero_graph.nodes[\"game\"].data[\"features\"] = torch.tensor([[0, 0], [0, 1], [1, 0], [1, 1], [1, 1]])\n", + "hetero_graph.edges[(\"user\", \"plays\", \"game\")].data[\"features\"] = torch.tensor([[6, 1], [1000, 0]])\n", + "\n", + "print(hetero_graph)\n", + "\n", + "name = \"FakeHetero\"\n", + "\n", + "# Create a custom ADBDGL_Controller\n", + "class Custom_ADBDGL_Controller(ADBDGL_Controller):\n", + " def _prepare_dgl_node(self, dgl_node: dict, node_type: str) -> dict:\n", + " \"\"\"Optionally modify a DGL node object before it gets inserted into its designated ArangoDB collection.\n", + "\n", + " :param dgl_node: The DGL node object to (optionally) modify.\n", + " :param node_type: The DGL Node Type of the node.\n", + " :return: The DGL Node object\n", + " \"\"\"\n", + " dgl_node[\"foo\"] = \"bar\"\n", + " return dgl_node\n", + "\n", + " def _prepare_dgl_edge(self, dgl_edge: dict, edge_type: tuple) -> dict:\n", + " \"\"\"Optionally modify a DGL edge object before it gets inserted into its designated ArangoDB collection.\n", + "\n", + " :param dgl_edge: The DGL edge object to (optionally) modify.\n", + " :param edge_type: The Edge Type of the DGL edge. Formatted\n", + " as (from_collection, edge_collection, to_collection)\n", + " :return: The DGL Edge object\n", + " \"\"\"\n", + " dgl_edge[\"bar\"] = \"foo\"\n", + " return dgl_edge\n", + "\n", + "# Delete the graph if it already exists\n", + "db.delete_graph(name, drop_collections=True, ignore_missing=True)\n", + "\n", + "# Create the ArangoDB graphs\n", + "adb_g = ADBDGL_Adapter(db, Custom_ADBDGL_Controller()).dgl_to_arangodb(name, hetero_graph)\n", + "\n", + "print('\\n--------------------')\n", + "print(\"URL: \" + con[\"url\"])\n", + "print(\"Username: \" + con[\"username\"])\n", + "print(\"Password: \" + con[\"password\"])\n", + "print(\"Database: \" + con[\"dbName\"])\n", + "print('--------------------\\n')\n", + "print(f\"View the created graph here: {con['url']}/_db/{con['dbName']}/_admin/aardvark/index.html#graph/{name}\\n\")\n", + "print(f\"View the original graph below:\\n\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "uByvwf9feG9A" + }, + "source": [ + "# ArangoDB to DGL\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "rnMe3iMz2K7j", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 165, + "referenced_widgets": [ + "c6cffa0a64434e56879ba2a8c9de018a", + "0083494093574c50952dd066502a708d", + "1dea128bde204a8fa53e094e014183fe", + "50f8ff3637ee4fc7af8c811cd5d177be", + "6582a9d3fe044d5380d8e918f3bc5a6d", + "40da9dd52dd6443684b990f74b6cb876", + "80d19dc0d20842c3b5c7313c0ad23d24", + "0478c90ef8234f3a8987dbe9cd3030b2", + "c61e3997250d4f93a8e0494db674892d", + "97e7543f202749c197515a9c5c79adbe", + "88e83ddc1ca1464291e1631b8fced847", + "a9c14a3f339445338119631c8e56ff68" + ] + }, + "outputId": "b1485ec1-64bf-43d5-a5fe-7d6bd5fc2da1" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "c6cffa0a64434e56879ba2a8c9de018a" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "1dea128bde204a8fa53e094e014183fe" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "6582a9d3fe044d5380d8e918f3bc5a6d" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "80d19dc0d20842c3b5c7313c0ad23d24" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "c61e3997250d4f93a8e0494db674892d" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "88e83ddc1ca1464291e1631b8fced847" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[2022/08/05 20:36:46 +0000] [61] [INFO] - adbdgl_adapter: Created ArangoDB 'FakeHetero' Graph\n", + "INFO:adbdgl_adapter:Created ArangoDB 'FakeHetero' Graph\n" + ] + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": {}, + "execution_count": 18 + } + ], + "source": [ + "# Start from scratch! (with the same DGL graph)\n", + "hetero_graph = dgl.heterograph({\n", + " (\"user\", \"follows\", \"user\"): (torch.tensor([0, 1]), torch.tensor([1, 2])),\n", + " (\"user\", \"follows\", \"topic\"): (torch.tensor([1, 1]), torch.tensor([1, 2])),\n", + " (\"user\", \"plays\", \"game\"): (torch.tensor([0, 3]), torch.tensor([3, 4])),\n", + "})\n", + "hetero_graph.nodes[\"user\"].data[\"features\"] = torch.tensor([21, 44, 16, 25])\n", + "hetero_graph.nodes[\"user\"].data[\"label\"] = torch.tensor([1, 2, 0, 1])\n", + "hetero_graph.nodes[\"game\"].data[\"features\"] = torch.tensor([[0, 0], [0, 1], [1, 0], [1, 1], [1, 1]])\n", + "hetero_graph.edges[(\"user\", \"plays\", \"game\")].data[\"features\"] = torch.tensor([[6, 1], [1000, 0]])\n", + "\n", + "db.delete_graph(\"FakeHetero\", drop_collections=True, ignore_missing=True)\n", + "adbdgl_adapter.dgl_to_arangodb(\"FakeHetero\", hetero_graph)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ZrEDmtqCVD0W" + }, + "source": [ + "#### Via ArangoDB Graph" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "H8nlvWCryPW0" + }, + "source": [ + "Data\n", + "* A fake DGL Heterogeneous graph\n", + "\n", + "API\n", + "* `adbdgl_adapter.adapter.arangodb_graph_to_dgl()`\n", + "\n", + "Notes\n", + "* The `name` parameter in this case must point to an existing ArangoDB graph in your ArangoDB instance.\n", + "* Due to risk of ambiguity, this method does **not** carry over ArangoDB attributes to DGL." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "zZ-Hu3lLVHgd", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 184, + "referenced_widgets": [ + "9403e71c2bbe46bd9e6d49d555264554", + "34c4ef0c4aa5454893c0f0fa35902fbd", + "1690574b32cc4b48a8b87520458d5066", + "a9edf4f85a4a4504b155608bb740178a", + "fd2db543279f4a13ab6376b9c23160e0", + "5c310145af4f4c90b659dee771185ab6", + "31a9f782f36d407f8cc42b19679c5c2c", + "9fd8d07a43cd4c06a2d448047ede846c", + "2c2900512b5244d3a0fcaf7409446d0e", + "c5d064af7f4a49dca6716f98d052e951" + ] + }, + "outputId": "85729665-feb3-4382-e84b-4286162581c3" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "9403e71c2bbe46bd9e6d49d555264554" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "1690574b32cc4b48a8b87520458d5066" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "fd2db543279f4a13ab6376b9c23160e0" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "31a9f782f36d407f8cc42b19679c5c2c" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "2c2900512b5244d3a0fcaf7409446d0e" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[2022/08/05 20:37:12 +0000] [61] [INFO] - adbdgl_adapter: Created DGL 'FakeHetero' Graph\n", + "INFO:adbdgl_adapter:Created DGL 'FakeHetero' Graph\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\n", + "--------------------\n", + "defaultdict(, {})\n" + ] + } + ], + "source": [ + "# Define graph name\n", + "name = \"FakeHetero\"\n", + "\n", + "# Create DGL graph from the ArangoDB graph\n", + "dgl_g = adbdgl_adapter.arangodb_graph_to_dgl(name)\n", + "\n", + "# You can also provide valid Python-Arango AQL query options to the command above, like such:\n", + "# dgl_g = adbdgl_adapter.arangodb_graph_to_dgl(graph_name, ttl=1000, stream=True)\n", + "# See the full parameter list at https://docs.python-arango.com/en/main/specs.html#arango.aql.AQL.execute\n", + "\n", + "# Show graph data\n", + "print('\\n--------------------')\n", + "print(dgl_g)\n", + "print(dgl_g.ndata) # note how this is empty\n", + "print(dgl_g.edata) # note how this is empty" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "RQ4CknYfUEuz" + }, + "source": [ + "#### Via ArangoDB Collections" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "bRcCmqWGy1Kf" + }, + "source": [ + "Data\n", + "* A fake DGL Heterogeneous graph\n", + "\n", + "API\n", + "* `adbdgl_adapter.adapter.arangodb_collections_to_dgl()`\n", + "\n", + "Notes\n", + "* The `name` parameter is purely for documentation purposes in this case.\n", + "* The `vertex_collections` & `edge_collections` parameters must point to existing ArangoDB collections within your ArangoDB instance.\n", + "* Due to risk of ambiguity, this method does **not** carry over ArangoDB attributes to DGL." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "i4XOpdRLUNlJ", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 253, + "referenced_widgets": [ + "f01997b9b43d43368d632e26ba9732ad", + "14b29dc1f2b8454fa9acc1d79dcd4870", + "5f5c119141a24cab907ceb2da27e0244", + "46b88027e41a43578ebcc47513dd6911", + "7a43c4b816da4a40b0eed167a85eef22", + "eb376d5cf782424aaccbce31f0d3ede5", + "7a4db2b18c634bef932fb9b1157d4af1", + "b5be8c1e4ab3415c9fffbb61aeb0fff3", + "4e085418ce1b41e1bc24ad6acea92fc4", + "7b5dba3f4d50466eb2071cb13548ef1b" + ] + }, + "outputId": "c0fa5973-3e46-4227-8b0c-48b4f14736e5" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "f01997b9b43d43368d632e26ba9732ad" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "5f5c119141a24cab907ceb2da27e0244" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "7a43c4b816da4a40b0eed167a85eef22" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "7a4db2b18c634bef932fb9b1157d4af1" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "4e085418ce1b41e1bc24ad6acea92fc4" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[2022/08/05 20:37:50 +0000] [61] [INFO] - adbdgl_adapter: Created DGL 'FakeHetero' Graph\n", + "INFO:adbdgl_adapter:Created DGL 'FakeHetero' Graph\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\n", + "--------------------\n", + "Graph(num_nodes={'game': 5, 'topic': 3, 'user': 4},\n", + " num_edges={('user', 'follows', 'topic'): 2, ('user', 'follows', 'user'): 2, ('user', 'plays', 'game'): 2},\n", + " metagraph=[('user', 'topic', 'follows'), ('user', 'user', 'follows'), ('user', 'game', 'plays')])\n", + "defaultdict(, {})\n", + "defaultdict(, {})\n" + ] + } + ], + "source": [ + "name = \"FakeHetero\"\n", + "\n", + "dgl_g = adbdgl_adapter.arangodb_collections_to_dgl(\n", + " name,\n", + " v_cols={\"user\", \"game\"},\n", + " e_cols={\"plays\", \"follows\"}\n", + ")\n", + "\n", + "# Show graph data (notice that the \"topic\" data is skipped)\n", + "print('\\n--------------------')\n", + "print(dgl_g)\n", + "print(dgl_g.ndata) # note how this is empty\n", + "print(dgl_g.edata) # note how this is empty" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "qEH6OdSB23Ya" + }, + "source": [ + "#### Via ArangoDB-DGL metagraph 1" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "PipFzJ0HzTMA" + }, + "source": [ + "Data\n", + "* A fake DGL Heterogeneous graph\n", + "\n", + "API\n", + "* `adbdgl_adapter.adapter.arangodb_to_dgl()`\n", + "\n", + "Notes\n", + "* The `name` parameter is purely for documentation purposes in this case.\n", + "* The `metagraph` parameter is an object defining vertex & edge collections to import to DGL, along with collection-level specifications to indicate which ArangoDB attributes will become DGL features/labels. It should contain collections & associated document attributes names that exist within your ArangoDB instance." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "7Kz8lXXq23Yk", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 409, + "referenced_widgets": [ + "77b31c42e914410aaea93044f1390121", + "8349f1e6b1f34680bacd7de1a1937122", + "38aaa492d75c48f38de60ea0cc5fa93f", + "63845b04ecbc40de8bcc017d754ac907", + "4b7f5f21b98b4c5d8475929bf1f01a65", + "404a19cadaca4b85a957cad231b73cbb", + "bd8b6caa7d2d4df1a99b1870ecc0ae46", + "13d0f7da120b40b993ce3c0b257d5788", + "ea88ab86e9774ed78ea62daa6e338637", + "712770e675424d7eb0c8efd6c34f2012" + ] + }, + "outputId": "b17433d7-d344-4748-ffe3-f0abca6fb112" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "77b31c42e914410aaea93044f1390121" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "38aaa492d75c48f38de60ea0cc5fa93f" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "4b7f5f21b98b4c5d8475929bf1f01a65" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "bd8b6caa7d2d4df1a99b1870ecc0ae46" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "ea88ab86e9774ed78ea62daa6e338637" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[2022/08/05 20:38:02 +0000] [61] [INFO] - adbdgl_adapter: Created DGL 'FakeHetero' Graph\n", + "INFO:adbdgl_adapter:Created DGL 'FakeHetero' Graph\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\n", + "--------------\n", + "Graph(num_nodes={'game': 5, 'topic': 3, 'user': 4},\n", + " num_edges={('user', 'follows', 'topic'): 2, ('user', 'follows', 'user'): 2, ('user', 'plays', 'game'): 2},\n", + " metagraph=[('user', 'topic', 'follows'), ('user', 'user', 'follows'), ('user', 'game', 'plays')])\n", + "\n", + "--------------\n", + "defaultdict(, {'dgl_game_features': {'game': tensor([[0, 0],\n", + " [0, 1],\n", + " [1, 0],\n", + " [1, 1],\n", + " [1, 1]])}, 'label': {'user': tensor([1, 2, 0, 1])}, 'features': {'user': tensor([21, 44, 16, 25])}})\n", + "--------------\n", + "\n", + "defaultdict(, {'dgl_plays_features': {('user', 'plays', 'game'): tensor([[ 6, 1],\n", + " [1000, 0]])}})\n" + ] + } + ], + "source": [ + "# Define the Metagraph that transfers ArangoDB attributes \"as is\",\n", + "# meaning the data is already formatted to DGL data standards\n", + "metagraph_v1 = {\n", + " \"vertexCollections\": {\n", + " # Move the \"features\" & \"label\" ArangoDB attributes to DGL as \"features\" & \"label\" Tensors\n", + " \"user\": {\"features\", \"label\"}, # equivalent to {\"features\": \"features\", \"label\": \"label\"}\n", + " \"game\": {\"dgl_game_features\": \"features\"},\n", + " \"topic\": {},\n", + " },\n", + " \"edgeCollections\": {\n", + " \"plays\": {\"dgl_plays_features\": \"features\"},\n", + " \"follows\": {}\n", + " },\n", + "}\n", + "\n", + "# Create the DGL graph\n", + "dgl_g = adbdgl_adapter.arangodb_to_dgl(\"FakeHetero\", metagraph_v1)\n", + "\n", + "# Show graph data\n", + "print('\\n--------------')\n", + "print(dgl_g)\n", + "print('\\n--------------')\n", + "print(dgl_g.ndata)\n", + "print('--------------\\n')\n", + "print(dgl_g.edata)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "0806IB4o3WRz" + }, + "source": [ + "#### Via ArangoDB-DGL metagraph 2" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "cnByWtpa3WR7" + }, + "source": [ + "Data\n", + "* [ArangoDB IMDB Movie Dataset](https://www.arangodb.com/docs/stable/arangosearch-example-datasets.html#imdb-movie-dataset)\n", + "\n", + "API\n", + "* `adbddgl_adapter.adapter.arangodb_to_dgl()`\n", + "\n", + "Notes\n", + "* The `name` parameter is purely for documentation purposes in this case.\n", + "* The `metagraph` parameter is an object defining vertex & edge collections to import to DGL, along with collection-level specifications to indicate which ArangoDB attributes will become PyG features/labels. In this example, we rely on user-defined encoders to build PyG-ready tensors (i.e feature matrices) from ArangoDB attributes. See https://pytorch-geometric.readthedocs.io/en/latest/notes/load_csv.html for an example on using encoders." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "cKqLoawE3WR7", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 499, + "referenced_widgets": [ + "2b13e46a722e4be384fad74e1b3e6461", + "848230df62434c77b5b18f9a43e2d14f", + "59405e2d0c164d5b965680cc9d9cd8f3", + "2a380fe111794c3a951cdafa4a2bf0b3", + "3d081c88cd2945fa9534de722669ada9", + "82f996185e8444ada5e18602e2f8e105" + ] + }, + "outputId": "02a8bfed-44ae-4c76-9eea-ba7348738707" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "2b13e46a722e4be384fad74e1b3e6461" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "59405e2d0c164d5b965680cc9d9cd8f3" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "3d081c88cd2945fa9534de722669ada9" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[2022/08/05 20:38:44 +0000] [61] [INFO] - adbdgl_adapter: Created DGL 'IMDB' Graph\n", + "INFO:adbdgl_adapter:Created DGL 'IMDB' Graph\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\n", + "--------------\n", + "Graph(num_nodes={'Movies': 1682, 'Users': 943},\n", + " num_edges={('Users', 'Ratings', 'Movies'): 65499},\n", + " metagraph=[('Users', 'Movies', 'Ratings')])\n", + "\n", + "--------------\n", + "defaultdict(, {'features': {'Movies': tensor([[0, 0],\n", + " [1, 0],\n", + " [0, 0],\n", + " ...,\n", + " [0, 1],\n", + " [0, 0],\n", + " [0, 1]]), 'Users': tensor([[ 0., 35.],\n", + " [ 1., 53.],\n", + " [ 0., 23.],\n", + " ...,\n", + " [ 0., 20.],\n", + " [ 1., 48.],\n", + " [ 0., 22.]])}, 'label': {'Movies': tensor([1, 0, 0, ..., 0, 1, 0])}})\n", + "--------------\n", + "\n", + "{'weight': tensor([4, 4, 3, ..., 4, 4, 4])}\n" + ] + } + ], + "source": [ + "# Define the Metagraph that transfers attributes via user-defined encoders\n", + "metagraph_v2 = {\n", + " \"vertexCollections\": {\n", + " \"Movies\": {\n", + " \"features\": { # Build a feature matrix from the \"Action\" & \"Drama\" document attributes\n", + " \"Action\": IdentityEncoder(dtype=torch.long),\n", + " \"Drama\": IdentityEncoder(dtype=torch.long),\n", + " },\n", + " \"label\": \"Comedy\",\n", + " },\n", + " \"Users\": {\n", + " \"features\": {\n", + " \"Gender\": CategoricalEncoder(), # CategoricalEncoder(mapping={\"M\": 0, \"F\": 1}),\n", + " \"Age\": IdentityEncoder(dtype=torch.long),\n", + " }\n", + " },\n", + " },\n", + " \"edgeCollections\": {\"Ratings\": {\"weight\": \"Rating\"}},\n", + "}\n", + "\n", + "# Create the DGL Graph\n", + "dgl_g = adbdgl_adapter.arangodb_to_dgl(\"IMDB\", metagraph_v2)\n", + "\n", + "# Show graph data\n", + "print('\\n--------------')\n", + "print(dgl_g)\n", + "print('\\n--------------')\n", + "print(dgl_g.ndata)\n", + "print('--------------\\n')\n", + "print(dgl_g.edata)" ] }, { "cell_type": "markdown", "metadata": { - "id": "CNj1xKhwoJoL" + "id": "d5ijSCcY4bYs" }, "source": [ - "\n", - "#### MiniGCDataset Graphs with attributes" + "#### Via ArangoDB-DGL metagraph 3" ] }, { "cell_type": "markdown", - "metadata": { - "id": "CZ1UX9YX1Zzo" - }, "source": [ - "Data source\n", - "* [DGL Mini Graph Classification Dataset](https://docs.dgl.ai/en/0.6.x/api/python/dgl.data.html#mini-graph-classification-dataset)\n", + "Data\n", + "* A fake DGL Heterogeneous graph\n", "\n", - "Package methods used\n", - "* [`adbdgl_adapter.adapter.dgl_to_arangodb()`](https://github.com/arangoml/dgl-adapter/blob/2.0.0/adbdgl_adapter/adapter.py#L215-L311)\n", - "* [`adbdgl_adapter.controller._dgl_feature_to_adb_attribute()`](https://github.com/arangoml/dgl-adapter/blob/2.0.0/adbdgl_adapter/controller.py#L49-L70)\n", + "API\n", + "* `adbdgl_adapter.adapter.arangodb_to_dgl()`\n", "\n", - "Important notes\n", - "* The `name` parameters in this case are simply for naming your ArangoDB graph.\n", - "* We are creating a custom `ADBDGL_Controller` to specify *how* to convert our DGL node/edge features into ArangoDB vertex/edge attributes. View the default `ADBDGL_Controller` [here](https://github.com/arangoml/dgl-adapter/blob/2.0.0/adbdgl_adapter/controller.py#L11)." - ] + "Notes\n", + "* The `name` parameter is purely for documentation purposes in this case.\n", + "* The `metagraph` parameter is an object defining vertex & edge collections to import to DGL, along with collection-level specifications to indicate which ArangoDB attributes will become DGL features/labels. In this example, we rely on user-defined functions to handle ArangoDB attribute to DGL feature conversion." + ], + "metadata": { + "id": "P1aKzxxZrUXJ" + } }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": { + "id": "t-lNli3d4bY0", "colab": { - "base_uri": "https://localhost:8080/" + "base_uri": "https://localhost:8080/", + "height": 377, + "referenced_widgets": [ + "e4b7b35461e848f5819b9f38d67ee652", + "9968f928e28147f7a0956aff8412a608", + "54801c3c74494fe8bf9e2a7fb64bde48", + "903622e283524c7f89635599920c2b14", + "f0d4515c88a44775be59c4e1a0b3c60a", + "9e1eb071f0b24cb6a8d206477b10b831" + ] }, - "id": "jbJsvMMaoJoT", - "outputId": "6dba7563-84b8-4934-a07f-1525ef67bd5e" + "outputId": "7bc48392-81a7-4232-aad2-931ff3c8ca48" }, "outputs": [ { - "name": "stderr", + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "e4b7b35461e848f5819b9f38d67ee652" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "54801c3c74494fe8bf9e2a7fb64bde48" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "f0d4515c88a44775be59c4e1a0b3c60a" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { "output_type": "stream", + "name": "stderr", "text": [ - "[2022/05/25 17:25:16 +0000] [60] [INFO] - adbdgl_adapter: Instantiated ADBDGL_Adapter with database 'TUT56z6dbtgsoeu5cc6aixs7d'\n", - "[2022/05/25 17:25:17 +0000] [60] [INFO] - adbdgl_adapter: Created ArangoDB 'Lollipop_With_Attributes' Graph\n", - "[2022/05/25 17:25:17 +0000] [60] [INFO] - adbdgl_adapter: Created ArangoDB 'Hypercube_With_Attributes' Graph\n", - "[2022/05/25 17:25:18 +0000] [60] [INFO] - adbdgl_adapter: Created ArangoDB 'Clique_With_Attributes' Graph\n" + "[2022/08/05 20:39:00 +0000] [61] [INFO] - adbdgl_adapter: Created DGL 'FakeHetero' Graph\n", + "INFO:adbdgl_adapter:Created DGL 'FakeHetero' Graph\n" ] }, { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "\n", - "--------------------\n", - "URL: https://tutorials.arangodb.cloud:8529\n", - "Username: TUTtj3263blez70kmqdi3ts\n", - "Password: TUTf6tursgxqogdo3ww3nplb\n", - "Database: TUT56z6dbtgsoeu5cc6aixs7d\n", - "--------------------\n", + "--------------\n", + "Graph(num_nodes={'game': 5, 'user': 4},\n", + " num_edges={('user', 'plays', 'game'): 2},\n", + " metagraph=[('user', 'game', 'plays')])\n", "\n", - "\\View the created graphs here:\n", + "--------------\n", + "defaultdict(, {'features': {'game': tensor([[0, 0],\n", + " [0, 1],\n", + " [1, 0],\n", + " [1, 1],\n", + " [1, 1]]), 'user': tensor([21, 44, 16, 25])}, 'label': {'user': tensor([1, 2, 0, 1])}})\n", + "--------------\n", "\n", - "1) https://tutorials.arangodb.cloud:8529/_db/TUT56z6dbtgsoeu5cc6aixs7d/_admin/aardvark/index.html#graph/Lollipop_With_Attributes\n", - "2) https://tutorials.arangodb.cloud:8529/_db/TUT56z6dbtgsoeu5cc6aixs7d/_admin/aardvark/index.html#graph/Hypercube_With_Attributes\n", - "3) https://tutorials.arangodb.cloud:8529/_db/TUT56z6dbtgsoeu5cc6aixs7d/_admin/aardvark/index.html#graph/Clique_With_Attributes\n", - "\n" + "{'features': tensor([[ 6, 1],\n", + " [1000, 0]])}\n" ] } ], "source": [ - "# Load the dgl graphs\n", - "dgl_lollipop_graph = remove_self_loop(MiniGCDataset(8, 7, 8)[3][0])\n", - "dgl_hypercube_graph = remove_self_loop(MiniGCDataset(8, 8, 9)[4][0])\n", - "dgl_clique_graph = remove_self_loop(MiniGCDataset(8, 6, 7)[6][0])\n", - "\n", - " # Add DGL Node & Edge Features to each graph\n", - "dgl_lollipop_graph.ndata[\"random_ndata\"] = torch.tensor(\n", - " [[i, i, i] for i in range(0, dgl_lollipop_graph.num_nodes())]\n", - ")\n", - "dgl_lollipop_graph.edata[\"random_edata\"] = torch.rand(dgl_lollipop_graph.num_edges())\n", - "\n", - "dgl_hypercube_graph.ndata[\"random_ndata\"] = torch.rand(dgl_hypercube_graph.num_nodes())\n", - "dgl_hypercube_graph.edata[\"random_edata\"] = torch.tensor(\n", - " [[[i], [i], [i]] for i in range(0, dgl_hypercube_graph.num_edges())]\n", - ")\n", - "\n", - "dgl_clique_graph.ndata['clique_ndata'] = torch.tensor([1,2,3,4,5,6])\n", - "dgl_clique_graph.edata['clique_edata'] = torch.tensor(\n", - " [1 if i % 2 == 0 else 0 for i in range(0, dgl_clique_graph.num_edges())]\n", - ")\n", - "\n", - "# A user-defined Controller class is OPTIONAL when converting DGL features\n", - "# to ArangoDB attributes. NOTE: A custom Controller is NOT needed if you want to\n", - "# keep the numerical-based values of your DGL features.\n", - "class Clique_ADBDGL_Controller(ADBDGL_Controller):\n", - " \"\"\"ArangoDB-DGL controller.\n", - "\n", - " Responsible for controlling how ArangoDB attributes\n", - " are converted into DGL features, and vice-versa.\n", + "# Define the metagraph that transfers attributes via user-defined functions\n", + "def udf_user_features(user_df):\n", + " # process the user_df Pandas DataFrame to return a feature matrix in a tensor\n", + " # user_df[\"features\"] = ...\n", + " return torch.tensor(user_df[\"features\"].to_list())\n", "\n", - " You can derive your own custom ADBDGL_Controller if you want to maintain\n", - " consistency between your ArangoDB attributes & your DGL features.\n", - " \"\"\"\n", - "\n", - " def _dgl_feature_to_adb_attribute(self, key: str, col: str, val: Tensor):\n", - " \"\"\"\n", - " Given a DGL feature key, its assigned value (for an arbitrary node or edge),\n", - " and the collection it belongs to, convert it to a valid ArangoDB attribute\n", - " (e.g string, list, number, ...).\n", - "\n", - " NOTE: No action is needed here if you want to keep the numerical-based values\n", - " of your DGL features.\n", - "\n", - " :param key: The DGL attribute key name\n", - " :type key: str\n", - " :param col: The ArangoDB collection of the (soon-to-be) ArangoDB document.\n", - " :type col: str\n", - " :param val: The assigned attribute value of the DGL node.\n", - " :type val: Tensor\n", - " :return: The feature's representation as an ArangoDB Attribute\n", - " :rtype: Any\n", - " \"\"\"\n", "\n", - " if key == \"clique_ndata\":\n", - " try:\n", - " return [\"Eins\", \"Zwei\", \"Drei\", \"Vier\", \"Fünf\", \"Sechs\"][key-1]\n", - " except:\n", - " return -1\n", + "def udf_game_features(game_df):\n", + " # process the game_df Pandas DataFrame to return a feature matrix in a tensor\n", + " # game_df[\"features\"] = ...\n", + " return torch.tensor(game_df[\"features\"].to_list())\n", "\n", - " if key == \"clique_edata\":\n", - " return bool(val)\n", - "\n", - " return super()._dgl_feature_to_adb_attribute(key, col, val)\n", - "\n", - "# Re-instantiate a new adapter specifically for the Clique Graph Conversion\n", - "clique_adbgl_adapter = ADBDGL_Adapter(db, Clique_ADBDGL_Controller())\n", - "\n", - "# Create the ArangoDB graphs\n", - "lollipop = \"Lollipop_With_Attributes\"\n", - "hypercube = \"Hypercube_With_Attributes\"\n", - "clique = \"Clique_With_Attributes\"\n", "\n", - "db.delete_graph(lollipop, drop_collections=True, ignore_missing=True)\n", - "db.delete_graph(hypercube, drop_collections=True, ignore_missing=True)\n", - "db.delete_graph(clique, drop_collections=True, ignore_missing=True)\n", + "metagraph_v3 = {\n", + " \"vertexCollections\": {\n", + " \"user\": {\n", + " \"features\": udf_user_features, # supports named functions\n", + " \"label\": lambda df: torch.tensor(df[\"label\"].to_list()), # also supports lambda functions\n", + " },\n", + " \"game\": {\"features\": udf_game_features},\n", + " },\n", + " \"edgeCollections\": {\n", + " \"plays\": {\"features\": (lambda df: torch.tensor(df[\"features\"].to_list()))},\n", + " },\n", + "}\n", "\n", - "adb_lollipop_graph = adbdgl_adapter.dgl_to_arangodb(lollipop, dgl_lollipop_graph)\n", - "adb_hypercube_graph = adbdgl_adapter.dgl_to_arangodb(hypercube, dgl_hypercube_graph)\n", - "adb_clique_graph = clique_adbgl_adapter.dgl_to_arangodb(clique, dgl_clique_graph) # Notice the new adapter here!\n", + "# Create PyG Graph\n", + "dgl_g = adbdgl_adapter.arangodb_to_dgl(\"FakeHetero\", metagraph_v3)\n", "\n", - "print('\\n--------------------')\n", - "print(\"URL: \" + con[\"url\"])\n", - "print(\"Username: \" + con[\"username\"])\n", - "print(\"Password: \" + con[\"password\"])\n", - "print(\"Database: \" + con[\"dbName\"])\n", - "print('--------------------\\n')\n", - "print(\"View the created graphs here:\\n\")\n", - "print(f\"1) {con['url']}/_db/{con['dbName']}/_admin/aardvark/index.html#graph/{lollipop}\")\n", - "print(f\"2) {con['url']}/_db/{con['dbName']}/_admin/aardvark/index.html#graph/{hypercube}\")\n", - "print(f\"3) {con['url']}/_db/{con['dbName']}/_admin/aardvark/index.html#graph/{clique}\\n\")" + "# Show graph data\n", + "print('\\n--------------')\n", + "print(dgl_g)\n", + "print('\\n--------------')\n", + "print(dgl_g.ndata)\n", + "print('--------------\\n')\n", + "print(dgl_g.edata)" ] } ], "metadata": { "colab": { "collapsed_sections": [ - "KS9c-vE5eG89", "ot1oJqn7m78n", "Oc__NAd1eG8-", "7y81WHO8eG8_", "QfE_tKxneG9A", + "bvzJXSHHTi3v", + "UafSB_3JZNwK", + "CNj1xKhwoJoL", + "n08RC_GtkDrC", + "mk6m0hBRkkkT", "uByvwf9feG9A", - "bvzJXSHHTi3v" + "ZrEDmtqCVD0W", + "RQ4CknYfUEuz", + "qEH6OdSB23Ya", + "0806IB4o3WRz", + "d5ijSCcY4bYs" ], - "name": "ArangoDB_DGL_Adapter_v2.ipynb", "provenance": [] }, "kernelspec": { @@ -1566,10 +3580,3727 @@ "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "DGLments_lexer": "ipython3", + "pygments_lexer": "ipython3", "version": "3.7.6" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "61d2a0426c324309ab51111933276e3d": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_77c208846c1e4503bc22a5b5504f89ee", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): Karate_N (34)\u001b[0m \u001b[38;2;153;70;2m▰▰▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "text/html": "
(DGL → ADB): Karate_N (34) ▰▰▱▱▱▱▱ 0:00:00\n
\n" + }, + "metadata": {} + } + ] + } + }, + "77c208846c1e4503bc22a5b5504f89ee": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "2d1fc41d509e481cb779603827359184": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_87d9c9de620847f48b4088e8577cd653", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): ('Karate_N', 'Karate_E', 'Karate_N') (156)\u001b[0m \u001b[38;2;153;70;2m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "text/html": "
(DGL → ADB): ('Karate_N', 'Karate_E', 'Karate_N') (156) ▰▱▱▱▱▱▱ 0:00:00\n
\n" + }, + "metadata": {} + } + ] + } + }, + "87d9c9de620847f48b4088e8577cd653": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "3fc8b14d794a46118b328893bd216405": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_c7e222474ff445fe86e4e599848b2ae2", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): game (5)\u001b[0m \u001b[38;2;153;70;2m▰▰▰▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "text/html": "
(DGL → ADB): game (5) ▰▰▰▱▱▱▱ 0:00:00\n
\n" + }, + "metadata": {} + } + ] + } + }, + "c7e222474ff445fe86e4e599848b2ae2": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "289a6e16c3d640c29d96edf09908bd0f": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_61f3832c906445a3ab7e7ba9b41c0127", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): topic (3)\u001b[0m \u001b[38;2;153;70;2m▰▰▰▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "text/html": "
(DGL → ADB): topic (3) ▰▰▰▱▱▱▱ 0:00:00\n
\n" + }, + "metadata": {} + } + ] + } + }, + "61f3832c906445a3ab7e7ba9b41c0127": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "99bbe81a24db49ff9352987fd97649cd": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_21e50aa61c3d4de19b5cc0bbe27d53c9", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): user (4)\u001b[0m \u001b[38;2;153;70;2m▰▰▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "text/html": "
(DGL → ADB): user (4) ▰▰▱▱▱▱▱ 0:00:00\n
\n" + }, + "metadata": {} + } + ] + } + }, + "21e50aa61c3d4de19b5cc0bbe27d53c9": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "f9fdfe6ce44e4e1c8f513f82efca3e0d": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_9b2b3abbe2c04af0bc232c9b16bfd90d", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): ('user', 'follows', 'topic') (2)\u001b[0m \u001b[38;2;153;70;2m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "text/html": "
(DGL → ADB): ('user', 'follows', 'topic') (2) ▰▱▱▱▱▱▱ 0:00:00\n
\n" + }, + "metadata": {} + } + ] + } + }, + "9b2b3abbe2c04af0bc232c9b16bfd90d": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "8444e147be8f44aba06ec1f8a880104e": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_80e69b3aa98b44e295efe3940c1146c2", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): ('user', 'follows', 'user') (2)\u001b[0m \u001b[38;2;153;70;2m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "text/html": "
(DGL → ADB): ('user', 'follows', 'user') (2) ▰▱▱▱▱▱▱ 0:00:00\n
\n" + }, + "metadata": {} + } + ] + } + }, + "80e69b3aa98b44e295efe3940c1146c2": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "ec7b8b0b853f463fa079dda845891391": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_dd2376f84c794b4989f385a5bb147bd8", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): ('user', 'plays', 'game') (2)\u001b[0m \u001b[38;2;153;70;2m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "text/html": "
(DGL → ADB): ('user', 'plays', 'game') (2) ▰▱▱▱▱▱▱ 0:00:00\n
\n" + }, + "metadata": {} + } + ] + } + }, + "dd2376f84c794b4989f385a5bb147bd8": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "345a5984959c4e57b7e2715fa8eeef8f": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_99e6613c4187459396eea503453934cb", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): game (5)\u001b[0m \u001b[38;2;153;70;2m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "text/html": "
(DGL → ADB): game (5) ▰▱▱▱▱▱▱ 0:00:00\n
\n" + }, + "metadata": {} + } + ] + } + }, + "99e6613c4187459396eea503453934cb": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "968020b1388e4883843575d9198af1cd": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_f1a08470110e4099af2a3d4cf4d0f956", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): topic (3)\u001b[0m \u001b[38;2;153;70;2m▰▰▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "text/html": "
(DGL → ADB): topic (3) ▰▰▱▱▱▱▱ 0:00:00\n
\n" + }, + "metadata": {} + } + ] + } + }, + "f1a08470110e4099af2a3d4cf4d0f956": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "6744eb60dfa04a8598fca3b998ce3077": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_09d25097c75c4fa8a2c7376f1965afc5", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): user (4)\u001b[0m \u001b[38;2;153;70;2m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "text/html": "
(DGL → ADB): user (4) ▰▱▱▱▱▱▱ 0:00:00\n
\n" + }, + "metadata": {} + } + ] + } + }, + "09d25097c75c4fa8a2c7376f1965afc5": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "cb8167f00277413eaaa2ad6e0e162fab": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_8128e6d80fcb4a8ca0a72097bb8b6521", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): ('user', 'follows', 'topic') (2)\u001b[0m \u001b[38;2;153;70;2m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "text/html": "
(DGL → ADB): ('user', 'follows', 'topic') (2) ▰▱▱▱▱▱▱ 0:00:00\n
\n" + }, + "metadata": {} + } + ] + } + }, + "8128e6d80fcb4a8ca0a72097bb8b6521": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "575205f1a4e64c5d977e69d4939a5605": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_d20843bfa9064d56b37aaea011789a26", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): ('user', 'follows', 'user') (2)\u001b[0m \u001b[38;2;153;70;2m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "text/html": "
(DGL → ADB): ('user', 'follows', 'user') (2) ▰▱▱▱▱▱▱ 0:00:00\n
\n" + }, + "metadata": {} + } + ] + } + }, + "d20843bfa9064d56b37aaea011789a26": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "8bf075c6f7834d3fa905b7ddc37cf128": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_b080f26fe35241fb9cca48e97bc9ef0c", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): ('user', 'plays', 'game') (2)\u001b[0m \u001b[38;2;153;70;2m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "text/html": "
(DGL → ADB): ('user', 'plays', 'game') (2) ▰▱▱▱▱▱▱ 0:00:00\n
\n" + }, + "metadata": {} + } + ] + } + }, + "b080f26fe35241fb9cca48e97bc9ef0c": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "ea5e9803c5de4d2bbb48782069b9829b": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_3f633be94c7d466ea40571e805a76948", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): game (5)\u001b[0m \u001b[38;2;153;70;2m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "text/html": "
(DGL → ADB): game (5) ▰▱▱▱▱▱▱ 0:00:00\n
\n" + }, + "metadata": {} + } + ] + } + }, + "3f633be94c7d466ea40571e805a76948": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "96e57d98afce44cd8269204dd19ff6e0": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_da43ef4a8c6a41f9bda153a0cd14c2d7", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): topic (3)\u001b[0m \u001b[38;2;153;70;2m▰▰▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "text/html": "
(DGL → ADB): topic (3) ▰▰▱▱▱▱▱ 0:00:00\n
\n" + }, + "metadata": {} + } + ] + } + }, + "da43ef4a8c6a41f9bda153a0cd14c2d7": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "3bc228aa98454dc59a604c8f7ff6b2a0": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_65138d18c9c449d1aaaad387293c5ede", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): user (4)\u001b[0m \u001b[38;2;153;70;2m▰▰▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "text/html": "
(DGL → ADB): user (4) ▰▰▱▱▱▱▱ 0:00:00\n
\n" + }, + "metadata": {} + } + ] + } + }, + "65138d18c9c449d1aaaad387293c5ede": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "3ea99b2a6b4246d3abf628ca743f9f24": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_841ce4f5d391457e858c3c48185e259d", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): ('user', 'follows', 'topic') (2)\u001b[0m \u001b[38;2;153;70;2m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "text/html": "
(DGL → ADB): ('user', 'follows', 'topic') (2) ▰▱▱▱▱▱▱ 0:00:00\n
\n" + }, + "metadata": {} + } + ] + } + }, + "841ce4f5d391457e858c3c48185e259d": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "987bf80aee4b4b97bfad1699f8384af8": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_4ab3c113235746cab5fde158756ab420", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): ('user', 'follows', 'user') (2)\u001b[0m \u001b[38;2;153;70;2m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "text/html": "
(DGL → ADB): ('user', 'follows', 'user') (2) ▰▱▱▱▱▱▱ 0:00:00\n
\n" + }, + "metadata": {} + } + ] + } + }, + "4ab3c113235746cab5fde158756ab420": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "09e8c93741bf45acb69ba9e757107564": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_d7d06973b2984eb19fa050409bf62222", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): ('user', 'plays', 'game') (2)\u001b[0m \u001b[38;2;153;70;2m▰▰▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "text/html": "
(DGL → ADB): ('user', 'plays', 'game') (2) ▰▰▱▱▱▱▱ 0:00:00\n
\n" + }, + "metadata": {} + } + ] + } + }, + "d7d06973b2984eb19fa050409bf62222": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "c6cffa0a64434e56879ba2a8c9de018a": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_0083494093574c50952dd066502a708d", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): game (5)\u001b[0m \u001b[38;2;153;70;2m▰▰▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "text/html": "
(DGL → ADB): game (5) ▰▰▱▱▱▱▱ 0:00:00\n
\n" + }, + "metadata": {} + } + ] + } + }, + "0083494093574c50952dd066502a708d": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "1dea128bde204a8fa53e094e014183fe": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_50f8ff3637ee4fc7af8c811cd5d177be", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): topic (3)\u001b[0m \u001b[38;2;153;70;2m▰▰▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "text/html": "
(DGL → ADB): topic (3) ▰▰▱▱▱▱▱ 0:00:00\n
\n" + }, + "metadata": {} + } + ] + } + }, + "50f8ff3637ee4fc7af8c811cd5d177be": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "6582a9d3fe044d5380d8e918f3bc5a6d": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_40da9dd52dd6443684b990f74b6cb876", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): user (4)\u001b[0m \u001b[38;2;153;70;2m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "text/html": "
(DGL → ADB): user (4) ▰▱▱▱▱▱▱ 0:00:00\n
\n" + }, + "metadata": {} + } + ] + } + }, + "40da9dd52dd6443684b990f74b6cb876": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "80d19dc0d20842c3b5c7313c0ad23d24": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_0478c90ef8234f3a8987dbe9cd3030b2", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): ('user', 'follows', 'topic') (2)\u001b[0m \u001b[38;2;153;70;2m▰▰▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "text/html": "
(DGL → ADB): ('user', 'follows', 'topic') (2) ▰▰▱▱▱▱▱ 0:00:00\n
\n" + }, + "metadata": {} + } + ] + } + }, + "0478c90ef8234f3a8987dbe9cd3030b2": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "c61e3997250d4f93a8e0494db674892d": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_97e7543f202749c197515a9c5c79adbe", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): ('user', 'follows', 'user') (2)\u001b[0m \u001b[38;2;153;70;2m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "text/html": "
(DGL → ADB): ('user', 'follows', 'user') (2) ▰▱▱▱▱▱▱ 0:00:00\n
\n" + }, + "metadata": {} + } + ] + } + }, + "97e7543f202749c197515a9c5c79adbe": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "88e83ddc1ca1464291e1631b8fced847": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_a9c14a3f339445338119631c8e56ff68", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): ('user', 'plays', 'game') (2)\u001b[0m \u001b[38;2;153;70;2m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "text/html": "
(DGL → ADB): ('user', 'plays', 'game') (2) ▰▱▱▱▱▱▱ 0:00:00\n
\n" + }, + "metadata": {} + } + ] + } + }, + "a9c14a3f339445338119631c8e56ff68": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "9403e71c2bbe46bd9e6d49d555264554": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_34c4ef0c4aa5454893c0f0fa35902fbd", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): game\u001b[0m \u001b[38;2;252;253;252m▰▰▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "text/html": "
(ADB → DGL): game ▰▰▱▱▱▱▱ 0:00:00\n
\n" + }, + "metadata": {} + } + ] + } + }, + "34c4ef0c4aa5454893c0f0fa35902fbd": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "1690574b32cc4b48a8b87520458d5066": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_a9edf4f85a4a4504b155608bb740178a", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): topic\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "text/html": "
(ADB → DGL): topic ▰▱▱▱▱▱▱ 0:00:00\n
\n" + }, + "metadata": {} + } + ] + } + }, + "a9edf4f85a4a4504b155608bb740178a": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "fd2db543279f4a13ab6376b9c23160e0": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_5c310145af4f4c90b659dee771185ab6", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): user\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "text/html": "
(ADB → DGL): user ▰▱▱▱▱▱▱ 0:00:00\n
\n" + }, + "metadata": {} + } + ] + } + }, + "5c310145af4f4c90b659dee771185ab6": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "31a9f782f36d407f8cc42b19679c5c2c": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_9fd8d07a43cd4c06a2d448047ede846c", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): follows\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "text/html": "
(ADB → DGL): follows ▰▱▱▱▱▱▱ 0:00:00\n
\n" + }, + "metadata": {} + } + ] + } + }, + "9fd8d07a43cd4c06a2d448047ede846c": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "2c2900512b5244d3a0fcaf7409446d0e": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_c5d064af7f4a49dca6716f98d052e951", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): plays\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "text/html": "
(ADB → DGL): plays ▰▱▱▱▱▱▱ 0:00:00\n
\n" + }, + "metadata": {} + } + ] + } + }, + "c5d064af7f4a49dca6716f98d052e951": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "f01997b9b43d43368d632e26ba9732ad": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_14b29dc1f2b8454fa9acc1d79dcd4870", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): user\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "text/html": "
(ADB → DGL): user ▰▱▱▱▱▱▱ 0:00:00\n
\n" + }, + "metadata": {} + } + ] + } + }, + "14b29dc1f2b8454fa9acc1d79dcd4870": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "5f5c119141a24cab907ceb2da27e0244": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_46b88027e41a43578ebcc47513dd6911", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): topic\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "text/html": "
(ADB → DGL): topic ▰▱▱▱▱▱▱ 0:00:00\n
\n" + }, + "metadata": {} + } + ] + } + }, + "46b88027e41a43578ebcc47513dd6911": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "7a43c4b816da4a40b0eed167a85eef22": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_eb376d5cf782424aaccbce31f0d3ede5", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): game\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "text/html": "
(ADB → DGL): game ▰▱▱▱▱▱▱ 0:00:00\n
\n" + }, + "metadata": {} + } + ] + } + }, + "eb376d5cf782424aaccbce31f0d3ede5": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "7a4db2b18c634bef932fb9b1157d4af1": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_b5be8c1e4ab3415c9fffbb61aeb0fff3", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): follows\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "text/html": "
(ADB → DGL): follows ▰▱▱▱▱▱▱ 0:00:00\n
\n" + }, + "metadata": {} + } + ] + } + }, + "b5be8c1e4ab3415c9fffbb61aeb0fff3": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "4e085418ce1b41e1bc24ad6acea92fc4": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_7b5dba3f4d50466eb2071cb13548ef1b", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): plays\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "text/html": "
(ADB → DGL): plays ▰▱▱▱▱▱▱ 0:00:00\n
\n" + }, + "metadata": {} + } + ] + } + }, + "7b5dba3f4d50466eb2071cb13548ef1b": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "77b31c42e914410aaea93044f1390121": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_8349f1e6b1f34680bacd7de1a1937122", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): user\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "text/html": "
(ADB → DGL): user ▰▱▱▱▱▱▱ 0:00:00\n
\n" + }, + "metadata": {} + } + ] + } + }, + "8349f1e6b1f34680bacd7de1a1937122": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "38aaa492d75c48f38de60ea0cc5fa93f": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_63845b04ecbc40de8bcc017d754ac907", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): game\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "text/html": "
(ADB → DGL): game ▰▱▱▱▱▱▱ 0:00:00\n
\n" + }, + "metadata": {} + } + ] + } + }, + "63845b04ecbc40de8bcc017d754ac907": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "4b7f5f21b98b4c5d8475929bf1f01a65": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_404a19cadaca4b85a957cad231b73cbb", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): topic\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "text/html": "
(ADB → DGL): topic ▰▱▱▱▱▱▱ 0:00:00\n
\n" + }, + "metadata": {} + } + ] + } + }, + "404a19cadaca4b85a957cad231b73cbb": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "bd8b6caa7d2d4df1a99b1870ecc0ae46": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_13d0f7da120b40b993ce3c0b257d5788", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): plays\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "text/html": "
(ADB → DGL): plays ▰▱▱▱▱▱▱ 0:00:00\n
\n" + }, + "metadata": {} + } + ] + } + }, + "13d0f7da120b40b993ce3c0b257d5788": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "ea88ab86e9774ed78ea62daa6e338637": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_712770e675424d7eb0c8efd6c34f2012", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): follows\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "text/html": "
(ADB → DGL): follows ▰▱▱▱▱▱▱ 0:00:00\n
\n" + }, + "metadata": {} + } + ] + } + }, + "712770e675424d7eb0c8efd6c34f2012": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "2b13e46a722e4be384fad74e1b3e6461": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_848230df62434c77b5b18f9a43e2d14f", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): Movies\u001b[0m \u001b[38;2;252;253;252m▰▰▰▰▰▰▰\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "text/html": "
(ADB → DGL): Movies ▰▰▰▰▰▰▰ 0:00:00\n
\n" + }, + "metadata": {} + } + ] + } + }, + "848230df62434c77b5b18f9a43e2d14f": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "59405e2d0c164d5b965680cc9d9cd8f3": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_2a380fe111794c3a951cdafa4a2bf0b3", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): Users\u001b[0m \u001b[38;2;252;253;252m▰▰▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "text/html": "
(ADB → DGL): Users ▰▰▱▱▱▱▱ 0:00:00\n
\n" + }, + "metadata": {} + } + ] + } + }, + "2a380fe111794c3a951cdafa4a2bf0b3": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "3d081c88cd2945fa9534de722669ada9": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_82f996185e8444ada5e18602e2f8e105", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): Ratings\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:06\u001b[0m\n", + "text/html": "
(ADB → DGL): Ratings ▰▱▱▱▱▱▱ 0:00:06\n
\n" + }, + "metadata": {} + } + ] + } + }, + "82f996185e8444ada5e18602e2f8e105": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "e4b7b35461e848f5819b9f38d67ee652": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_9968f928e28147f7a0956aff8412a608", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): user\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "text/html": "
(ADB → DGL): user ▰▱▱▱▱▱▱ 0:00:00\n
\n" + }, + "metadata": {} + } + ] + } + }, + "9968f928e28147f7a0956aff8412a608": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "54801c3c74494fe8bf9e2a7fb64bde48": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_903622e283524c7f89635599920c2b14", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): game\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "text/html": "
(ADB → DGL): game ▰▱▱▱▱▱▱ 0:00:00\n
\n" + }, + "metadata": {} + } + ] + } + }, + "903622e283524c7f89635599920c2b14": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "f0d4515c88a44775be59c4e1a0b3c60a": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_9e1eb071f0b24cb6a8d206477b10b831", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): plays\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "text/html": "
(ADB → DGL): plays ▰▱▱▱▱▱▱ 0:00:00\n
\n" + }, + "metadata": {} + } + ] + } + }, + "9e1eb071f0b24cb6a8d206477b10b831": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + } + } } }, "nbformat": 4, "nbformat_minor": 0 -} +} \ No newline at end of file From 6b36a5056939efa56a857f709857c3b364c06ccb Mon Sep 17 00:00:00 2001 From: Anthony Mahanna Date: Wed, 4 Oct 2023 23:06:53 -0400 Subject: [PATCH 27/37] code cleanup --- adbdgl_adapter/abc.py | 22 +- adbdgl_adapter/adapter.py | 464 ++++++++++++++++++++++++-------------- 2 files changed, 292 insertions(+), 194 deletions(-) diff --git a/adbdgl_adapter/abc.py b/adbdgl_adapter/abc.py index 4d9139f..9f2b4e3 100644 --- a/adbdgl_adapter/abc.py +++ b/adbdgl_adapter/abc.py @@ -2,7 +2,7 @@ # -*- coding: utf-8 -*- from abc import ABC -from typing import Any, List, Set, Union +from typing import Any, Set, Union from arango.graph import Graph as ArangoDBGraph from dgl import DGLGraph, DGLHeteroGraph @@ -38,26 +38,6 @@ def dgl_to_arangodb( ) -> ArangoDBGraph: raise NotImplementedError # pragma: no cover - def etypes_to_edefinitions(self, edge_types: List[DGLCanonicalEType]) -> List[Json]: - raise NotImplementedError # pragma: no cover - - def ntypes_to_ocollections( - self, node_types: List[str], edge_types: List[DGLCanonicalEType] - ) -> List[str]: - raise NotImplementedError # pragma: no cover - - def __fetch_adb_docs(self) -> None: - raise NotImplementedError # pragma: no cover - - def __insert_adb_docs(self) -> None: - raise NotImplementedError # pragma: no cover - - def __build_tensor_from_dataframe(self) -> None: - raise NotImplementedError # pragma: no cover - - def __build_dataframe_from_tensor(self) -> None: - raise NotImplementedError # pragma: no cover - class Abstract_ADBDGL_Controller(ABC): def _prepare_dgl_node(self, dgl_node: Json, node_type: str) -> Json: diff --git a/adbdgl_adapter/adapter.py b/adbdgl_adapter/adapter.py index db39072..b222c89 100644 --- a/adbdgl_adapter/adapter.py +++ b/adbdgl_adapter/adapter.py @@ -3,7 +3,7 @@ import logging from collections import defaultdict from math import ceil -from typing import Any, DefaultDict, Dict, List, Optional, Set, Union +from typing import Any, DefaultDict, Dict, List, Optional, Set, Tuple, Union from arango.cursor import Cursor from arango.database import Database @@ -227,11 +227,6 @@ def udf_v1_x(v1_df): validate_adb_metagraph(metagraph) - is_homogeneous = ( - len(metagraph["vertexCollections"]) == 1 - and len(metagraph["edgeCollections"]) == 1 - ) - # Maps ArangoDB Vertex _keys to DGL Node ids adb_map: ADBMap = defaultdict(dict) @@ -246,6 +241,12 @@ def udf_v1_x(v1_df): # The edge data view for storing edge features edata: DGLData = defaultdict(lambda: defaultdict(Tensor)) + v_cols: List[str] = list(metagraph["vertexCollections"].keys()) + + ###################### + # Vertex Collections # + ###################### + for v_col, meta in metagraph["vertexCollections"].items(): logger.debug(f"Preparing '{v_col}' vertices") @@ -255,10 +256,12 @@ def udf_v1_x(v1_df): cursor_batch = len(cursor.batch()) # type: ignore df = DataFrame([cursor.pop() for _ in range(cursor_batch)]) + # 1. Map each ArangoDB _key to a DGL node id for adb_id in df["_key"]: adb_map[v_col][adb_id] = dgl_id dgl_id += 1 + # 2. Set the DGL Node Data self.__set_dgl_data(v_col, meta, ndata, df) if cursor.has_more(): @@ -266,9 +269,14 @@ def udf_v1_x(v1_df): df.drop(df.index, inplace=True) + #################### + # Edge Collections # + #################### + + # et = Edge Type et_df: DataFrame et_blacklist: List[DGLCanonicalEType] = [] # A list of skipped edge types - v_cols: List[str] = list(metagraph["vertexCollections"].keys()) + for e_col, meta in metagraph["edgeCollections"].items(): logger.debug(f"Preparing '{e_col}' edges") @@ -277,26 +285,32 @@ def udf_v1_x(v1_df): cursor_batch = len(cursor.batch()) # type: ignore df = DataFrame([cursor.pop() for _ in range(cursor_batch)]) + # 1. Split the ArangoDB _from & _to IDs into two columns df[["from_col", "from_key"]] = self.__split_adb_ids(df["_from"]) df[["to_col", "to_key"]] = self.__split_adb_ids(df["_to"]) + # 2. Iterate over each edge type for (from_col, to_col), count in ( df[["from_col", "to_col"]].value_counts().items() ): edge_type: DGLCanonicalEType = (from_col, e_col, to_col) + + # 3. Check for partial Edge Collection import if from_col not in v_cols or to_col not in v_cols: logger.debug(f"Skipping {edge_type}") et_blacklist.append(edge_type) - continue # partial edge collection import to dgl + continue logger.debug(f"Preparing {count} '{edge_type}' edges") - # Get the edge data corresponding to the current edge type + # 4. Get the edge data corresponding to the current edge type et_df = df[(df["from_col"] == from_col) & (df["to_col"] == to_col)] + # 5. Map each ArangoDB from/to _key to the corresponding DGL node id from_nodes = et_df["from_key"].map(adb_map[from_col]).tolist() to_nodes = et_df["to_key"].map(adb_map[to_col]).tolist() + # 6. Set/Update the DGL Edge Index if edge_type not in data_dict: data_dict[edge_type] = (tensor(from_nodes), tensor(to_nodes)) else: @@ -306,6 +320,7 @@ def udf_v1_x(v1_df): cat((previous_to_nodes, tensor(to_nodes))), ) + # 7. Set the DGL Edge Data self.__set_dgl_data(edge_type, meta, edata, df) if cursor.has_more(): @@ -321,20 +336,9 @@ def udf_v1_x(v1_df): """ raise ValueError(msg) - dgl_g: Union[DGLGraph, DGLHeteroGraph] - if is_homogeneous: - num_nodes = len(adb_map[v_col]) - data = list(data_dict.values())[0] - dgl_g = graph(data, num_nodes=num_nodes) - else: - num_nodes_dict = {v_col: len(adb_map[v_col]) for v_col in adb_map} - dgl_g = heterograph(data_dict, num_nodes_dict) - - has_one_ntype = len(dgl_g.ntypes) == 1 - has_one_etype = len(dgl_g.canonical_etypes) == 1 - - self.__copy_dgl_data(dgl_g.ndata, ndata, has_one_ntype) - self.__copy_dgl_data(dgl_g.edata, edata, has_one_etype) + dgl_g = self.__create_dgl_graph(data_dict, adb_map, metagraph) + self.__copy_dgl_data(dgl_g.ndata, ndata, len(dgl_g.ntypes) == 1) + self.__copy_dgl_data(dgl_g.edata, edata, len(dgl_g.canonical_etypes) == 1) logger.info(f"Created DGL '{name}' Graph") return dgl_g @@ -392,6 +396,156 @@ def arangodb_graph_to_dgl( return self.arangodb_collections_to_dgl(name, v_cols, e_cols, **query_options) + def __fetch_adb_docs( + self, + col: str, + meta: Union[Set[str], Dict[str, ADBMetagraphValues]], + query_options: Any, + ) -> Cursor: + """Fetches ArangoDB documents within a collection. Returns the + documents in a DataFrame. + + :param col: The ArangoDB collection. + :type col: str + :param meta: The MetaGraph associated to **col** + :type meta: Set[str] | Dict[str, adbdgl_adapter.typings.ADBMetagraphValues] + :param query_options: Keyword arguments to specify AQL query options + when fetching documents from the ArangoDB instance. + :type query_options: Any + :return: A DataFrame representing the ArangoDB documents. + :rtype: pandas.DataFrame + """ + + def get_aql_return_value( + meta: Union[Set[str], Dict[str, ADBMetagraphValues]] + ) -> str: + """Helper method to formulate the AQL `RETURN` value based on + the document attributes specified in **meta** + """ + attributes = [] + + if type(meta) is set: + attributes = list(meta) + + elif type(meta) is dict: + for value in meta.values(): + if type(value) is str: + attributes.append(value) + elif type(value) is dict: + attributes.extend(list(value.keys())) + elif callable(value): + # Cannot determine which attributes to extract if UDFs are used + # Therefore we just return the entire document + return "doc" + + return f""" + MERGE( + {{ _key: doc._key, _from: doc._from, _to: doc._to }}, + KEEP(doc, {list(attributes)}) + ) + """ + + with progress( + f"(ADB → DGL): {col}", + text_style="#319BF5", + spinner_style="#FCFDFC", + ) as p: + p.add_task("__fetch_adb_docs") + return self.__db.aql.execute( # type: ignore + f"FOR doc IN @@col RETURN {get_aql_return_value(meta)}", + bind_vars={"@col": col}, + **{**{"stream": True}, **query_options}, + ) + + def __set_dgl_data( + self, + data_type: DGLDataTypes, + meta: Union[Set[str], Dict[str, ADBMetagraphValues]], + dgl_data: DGLData, + df: DataFrame, + ) -> None: + """A helper method to build the DGL NodeSpace or EdgeSpace object + for the DGL graph. Is responsible for preparing the input **meta** such + that it becomes a dictionary, and building DGL-ready tensors from the + ArangoDB DataFrame **df**. + + :param data_type: The current node or edge type of the soon-to-be DGL graph. + :type data_type: str | tuple[str, str, str] + :param meta: The metagraph associated to the current ArangoDB vertex or + edge collection. e.g metagraph['vertexCollections']['Users'] + :type meta: Set[str] | Dict[str, adbdgl_adapter.typings.ADBMetagraphValues] + :param dgl_data: The (currently empty) DefaultDict object storing the node or + edge features of the soon-to-be DGL graph. + :type dgl_data: adbdgl_adapter.typings.DGLData + :param df: The DataFrame representing the ArangoDB collection data + :type df: pandas.DataFrame + """ + valid_meta: Dict[str, ADBMetagraphValues] + valid_meta = meta if type(meta) is dict else {m: m for m in meta} + + for k, v in valid_meta.items(): + t = self.__build_tensor_from_dataframe(df, k, v) + dgl_data[k][data_type] = cat((dgl_data[k][data_type], t)) + + def __split_adb_ids(self, s: Series) -> Series: + """Helper method to split the ArangoDB IDs within a Series into two columns""" + return s.str.split(pat="/", n=1, expand=True) + + def __create_dgl_graph( + self, data_dict: DGLDataDict, adb_map: ADBMap, metagraph: ADBMetagraph + ) -> Union[DGLGraph, DGLHeteroGraph]: + """Creates a DGL graph from the given DGL data. + + :param data_dict: The data for constructing a graph, + which takes the form of (U, V). + (U[i], V[i]) forms the edge with ID i in the graph. + :type data_dict: adbdgl_adapter.typings.DGLDataDict + :param adb_map: A mapping of ArangoDB IDs to DGL IDs. + :type adb_map: adbdgl_adapter.typings.ADBMap + :param metagraph: The ArangoDB metagraph. + :type metagraph: adbdgl_adapter.typings.ADBMetagraph + :return: A DGL Homogeneous or Heterogeneous graph object + :rtype: dgl.DGLGraph | dgl.DGLHeteroGraph + """ + is_homogeneous = ( + len(metagraph["vertexCollections"]) == 1 + and len(metagraph["edgeCollections"]) == 1 + ) + + if is_homogeneous: + v_col = next(iter(metagraph["vertexCollections"])) + data = next(iter(data_dict.values())) + + return graph(data, num_nodes=len(adb_map[v_col])) + + num_nodes_dict = {v_col: len(adb_map[v_col]) for v_col in adb_map} + return heterograph(data_dict, num_nodes_dict) + + def __copy_dgl_data( + self, + dgl_data: Union[HeteroNodeDataView, HeteroEdgeDataView], + dgl_data_temp: DGLData, + has_one_type: bool, + ) -> None: + """Copies **dgl_data_temp** into **dgl_data**. This method is (unfortunately) + required, since a dgl graph's `ndata` and `edata` properties can't be + manually set (i.e `g.ndata = ndata` is not possible). + + :param dgl_data: The (empty) ndata or edata instance attribute of a dgl graph, + which is about to receive **dgl_data_temp**. + :type dgl_data: Union[dgl.view.HeteroNodeDataView, dgl.view.HeteroEdgeDataView] + :param dgl_data_temp: A temporary place to store the ndata or edata features. + :type dgl_data_temp: adbdgl_adapter.typings.DGLData + :param has_one_type: Set to True if the DGL graph only has one + node type or edge type. + :type has_one_type: bool + """ + for feature_name, feature_map in dgl_data_temp.items(): + for data_type, dgl_tensor in feature_map.items(): + dgl_data[feature_name] = ( + dgl_tensor if has_one_type else {data_type: dgl_tensor} + ) + def dgl_to_arangodb( self, name: str, @@ -491,40 +645,22 @@ def y_tensor_to_2_column_dataframe(dgl_tensor): logger.debug(f"--dgl_to_arangodb('{name}')--") validate_dgl_metagraph(metagraph) - is_custom_controller = type(self.__cntrl) is not ADBDGL_Controller + is_custom_controller = type(self.__cntrl) is not ADBDGL_Controller has_one_ntype = len(dgl_g.ntypes) == 1 has_one_etype = len(dgl_g.canonical_etypes) == 1 - has_default_canonical_etypes = dgl_g.canonical_etypes == [("_N", "_E", "_N")] - node_types: List[str] - edge_types: List[DGLCanonicalEType] - explicit_metagraph = metagraph != {} and explicit_metagraph - if explicit_metagraph: - node_types = metagraph.get("nodeTypes", {}).keys() # type: ignore - edge_types = metagraph.get("edgeTypes", {}).keys() # type: ignore - - elif has_default_canonical_etypes: - n_type = name + "_N" - node_types = [n_type] - edge_types = [(n_type, name + "_E", n_type)] - - else: - node_types = dgl_g.ntypes - edge_types = dgl_g.canonical_etypes + node_types, edge_types = self.__get_node_and_edge_types( + name, dgl_g, metagraph, explicit_metagraph + ) - if overwrite_graph: - logger.debug("Overwrite graph flag is True. Deleting old graph.") - self.__db.delete_graph(name, ignore_missing=True) + adb_graph = self.__create_adb_graph( + name, overwrite_graph, node_types, edge_types + ) - if self.__db.has_graph(name): - adb_graph = self.__db.graph(name) - else: - edge_definitions = self.etypes_to_edefinitions(edge_types) - orphan_collections = self.ntypes_to_ocollections(node_types, edge_types) - adb_graph = self.__db.create_graph( - name, edge_definitions, orphan_collections - ) # type: ignore + ############## + # Node Types # + ############## n_meta = metagraph.get("nodeTypes", {}) for n_type in node_types: @@ -539,8 +675,12 @@ def y_tensor_to_2_column_dataframe(dgl_tensor): end_index = min(ndata_batch_size, ndata_size) batches = ceil(ndata_size / ndata_batch_size) + # For each batch of nodes for _ in range(batches): + # 1. Map each DGL node id to an ArangoDB _key adb_keys = [{"_key": str(i)} for i in range(start_index, end_index)] + + # 2. Set the ArangoDB Node Data df = self.__set_adb_data( DataFrame(adb_keys, index=range(start_index, end_index)), meta, @@ -551,15 +691,22 @@ def y_tensor_to_2_column_dataframe(dgl_tensor): explicit_metagraph, ) + # 3. Apply the ArangoDB Node Controller (if provided) if is_custom_controller: f = lambda n: self.__cntrl._prepare_dgl_node(n, n_type) df = df.apply(f, axis=1) + # 4. Insert the ArangoDB Node Documents self.__insert_adb_docs(n_type, df, import_options) + # 5. Update the batch indices start_index = end_index end_index = min(end_index + ndata_batch_size, ndata_size) + ############## + # Edge Types # + ############## + e_meta = metagraph.get("edgeTypes", {}) for e_type in edge_types: meta = e_meta.get(e_type, {}) @@ -576,7 +723,9 @@ def y_tensor_to_2_column_dataframe(dgl_tensor): from_nodes, to_nodes = dgl_g.edges(etype=e_key) + # For each batch of edges for _ in range(batches): + # 1. Map the DGL edges to ArangoDB _from & _to IDs data = zip( *( from_nodes[start_index:end_index].tolist(), @@ -584,6 +733,7 @@ def y_tensor_to_2_column_dataframe(dgl_tensor): ) ) + # 2. Set the ArangoDB Edge Data df = self.__set_adb_data( DataFrame( data, @@ -601,19 +751,107 @@ def y_tensor_to_2_column_dataframe(dgl_tensor): df["_from"] = from_col + "/" + df["_from"].astype(str) df["_to"] = to_col + "/" + df["_to"].astype(str) + # 3. Apply the ArangoDB Edge Controller (if provided) if is_custom_controller: f = lambda e: self.__cntrl._prepare_dgl_edge(e, e_type) df = df.apply(f, axis=1) + # 4. Insert the ArangoDB Edge Documents self.__insert_adb_docs(e_type, df, import_options) + # 5. Update the batch indices start_index = end_index end_index = min(end_index + edata_batch_size, edata_size) logger.info(f"Created ArangoDB '{name}' Graph") return adb_graph - def etypes_to_edefinitions(self, edge_types: List[DGLCanonicalEType]) -> List[Json]: + def __get_node_and_edge_types( + self, + name: str, + dgl_g: DGLGraph, + metagraph: DGLMetagraph, + explicit_metagraph: bool, + ) -> Tuple[List[str], List[DGLCanonicalEType]]: + """Returns the node & edge types of the DGL graph, based on the + metagraph and whether the graph has default canonical etypes. + + :param name: The DGL graph name. + :type name: str + :param dgl_g: The existing DGL graph. + :type dgl_g: dgl.DGLGraph + :param metagraph: The DGL Metagraph. + :type metagraph: adbdgl_adapter.typings.DGLMetagraph + :param explicit_metagraph: Whether to take the metagraph at face value or not. + If False, node & edge types OMITTED from the metagraph will be + brought over into ArangoDB. Also applies to node & edge attributes. + Defaults to True. + :type explicit_metagraph: bool + :return: The node & edge types of the DGL graph. + :rtype: Tuple[List[str], List[adbdgl_adapter.typings.DGLCanonicalEType]] + """ + node_types: List[str] + edge_types: List[DGLCanonicalEType] + + explicit_metagraph = metagraph != {} and explicit_metagraph + has_default_canonical_etypes = dgl_g.canonical_etypes == [("_N", "_E", "_N")] + + if explicit_metagraph: + node_types = metagraph.get("nodeTypes", {}).keys() # type: ignore + edge_types = metagraph.get("edgeTypes", {}).keys() # type: ignore + + elif has_default_canonical_etypes: + n_type = name + "_N" + node_types = [n_type] + edge_types = [(n_type, name + "_E", n_type)] + + else: + node_types = dgl_g.ntypes + edge_types = dgl_g.canonical_etypes + + return node_types, edge_types + + def __create_adb_graph( + self, + name: str, + overwrite_graph: bool, + node_types: List[str], + edge_types: List[DGLCanonicalEType], + ) -> ADBGraph: + """Creates an ArangoDB graph. + + :param name: The ArangoDB graph name. + :type name: str + :param overwrite_graph: Overwrites the graph if it already exists. + Does not drop associated collections. Defaults to False. + :type overwrite_graph: bool + :param node_types: A list of strings representing the DGL node types. + :type node_types: List[str] + :param edge_types: A list of string triplets (str, str, str) for + source node type, edge type and destination node type. + :type edge_types: List[adbdgl_adapter.typings.DGLCanonicalEType] + :return: The ArangoDB Graph API wrapper. + :rtype: arango.graph.Graph + """ + if overwrite_graph: + logger.debug("Overwrite graph flag is True. Deleting old graph.") + self.__db.delete_graph(name, ignore_missing=True) + + if self.__db.has_graph(name): + return self.__db.graph(name) + + edge_definitions = self.__etypes_to_edefinitions(edge_types) + orphan_collections = self.__ntypes_to_ocollections(node_types, edge_types) + + return self.__db.create_graph( # type: ignore[return-value] + name, + edge_definitions, + orphan_collections, + ) + + def __etypes_to_edefinitions( + self, edge_types: List[DGLCanonicalEType] + ) -> List[Json]: """Converts DGL canonical_etypes to ArangoDB edge_definitions :param edge_types: A list of string triplets (str, str, str) for @@ -657,7 +895,7 @@ def etypes_to_edefinitions(self, edge_types: List[DGLCanonicalEType]) -> List[Js return edge_definitions - def ntypes_to_ocollections( + def __ntypes_to_ocollections( self, node_types: List[str], edge_types: List[DGLCanonicalEType] ) -> List[str]: """Converts DGL node_types to ArangoDB orphan collections, if any. @@ -679,67 +917,6 @@ def ntypes_to_ocollections( orphan_collections = set(node_types) ^ non_orphan_collections return list(orphan_collections) - def __fetch_adb_docs( - self, - col: str, - meta: Union[Set[str], Dict[str, ADBMetagraphValues]], - query_options: Any, - ) -> Cursor: - """Fetches ArangoDB documents within a collection. Returns the - documents in a DataFrame. - - :param col: The ArangoDB collection. - :type col: str - :param meta: The MetaGraph associated to **col** - :type meta: Set[str] | Dict[str, adbdgl_adapter.typings.ADBMetagraphValues] - :param query_options: Keyword arguments to specify AQL query options - when fetching documents from the ArangoDB instance. - :type query_options: Any - :return: A DataFrame representing the ArangoDB documents. - :rtype: pandas.DataFrame - """ - - def get_aql_return_value( - meta: Union[Set[str], Dict[str, ADBMetagraphValues]] - ) -> str: - """Helper method to formulate the AQL `RETURN` value based on - the document attributes specified in **meta** - """ - attributes = [] - - if type(meta) is set: - attributes = list(meta) - - elif type(meta) is dict: - for value in meta.values(): - if type(value) is str: - attributes.append(value) - elif type(value) is dict: - attributes.extend(list(value.keys())) - elif callable(value): - # Cannot determine which attributes to extract if UDFs are used - # Therefore we just return the entire document - return "doc" - - return f""" - MERGE( - {{ _key: doc._key, _from: doc._from, _to: doc._to }}, - KEEP(doc, {list(attributes)}) - ) - """ - - with progress( - f"(ADB → DGL): {col}", - text_style="#319BF5", - spinner_style="#FCFDFC", - ) as p: - p.add_task("__fetch_adb_docs") - return self.__db.aql.execute( # type: ignore - f"FOR doc IN @@col RETURN {get_aql_return_value(meta)}", - bind_vars={"@col": col}, - **{**{"stream": True}, **query_options}, - ) - def __insert_adb_docs( self, doc_type: Union[str, DGLCanonicalEType], df: DataFrame, kwargs: Any ) -> None: @@ -767,65 +944,6 @@ def __insert_adb_docs( logger.debug(result) df.drop(df.index, inplace=True) - def __split_adb_ids(self, s: Series) -> Series: - """Helper method to split the ArangoDB IDs within a Series into two columns""" - return s.str.split(pat="/", n=1, expand=True) - - def __set_dgl_data( - self, - data_type: DGLDataTypes, - meta: Union[Set[str], Dict[str, ADBMetagraphValues]], - dgl_data: DGLData, - df: DataFrame, - ) -> None: - """A helper method to build the DGL NodeSpace or EdgeSpace object - for the DGL graph. Is responsible for preparing the input **meta** such - that it becomes a dictionary, and building DGL-ready tensors from the - ArangoDB DataFrame **df**. - - :param data_type: The current node or edge type of the soon-to-be DGL graph. - :type data_type: str | tuple[str, str, str] - :param meta: The metagraph associated to the current ArangoDB vertex or - edge collection. e.g metagraph['vertexCollections']['Users'] - :type meta: Set[str] | Dict[str, adbdgl_adapter.typings.ADBMetagraphValues] - :param dgl_data: The (currently empty) DefaultDict object storing the node or - edge features of the soon-to-be DGL graph. - :type dgl_data: adbdgl_adapter.typings.DGLData - :param df: The DataFrame representing the ArangoDB collection data - :type df: pandas.DataFrame - """ - valid_meta: Dict[str, ADBMetagraphValues] - valid_meta = meta if type(meta) is dict else {m: m for m in meta} - - for k, v in valid_meta.items(): - t = self.__build_tensor_from_dataframe(df, k, v) - dgl_data[k][data_type] = cat((dgl_data[k][data_type], t)) - - def __copy_dgl_data( - self, - dgl_data: Union[HeteroNodeDataView, HeteroEdgeDataView], - dgl_data_temp: DGLData, - has_one_type: bool, - ) -> None: - """Copies **dgl_data_temp** into **dgl_data**. This method is (unfortunately) - required, since a dgl graph's `ndata` and `edata` properties can't be - manually set (i.e `g.ndata = ndata` is not possible). - - :param dgl_data: The (empty) ndata or edata instance attribute of a dgl graph, - which is about to receive **dgl_data_temp**. - :type dgl_data: Union[dgl.view.HeteroNodeDataView, dgl.view.HeteroEdgeDataView] - :param dgl_data_temp: A temporary place to store the ndata or edata features. - :type dgl_data_temp: adbdgl_adapter.typings.DGLData - :param has_one_type: Set to True if the DGL graph only has one - node type or edge type. - :type has_one_type: bool - """ - for feature_name, feature_map in dgl_data_temp.items(): - for data_type, dgl_tensor in feature_map.items(): - dgl_data[feature_name] = ( - dgl_tensor if has_one_type else {data_type: dgl_tensor} - ) - def __set_adb_data( self, df: DataFrame, From 11442b074c522e41d02164c84e99626699e2ec77 Mon Sep 17 00:00:00 2001 From: Anthony Mahanna Date: Wed, 4 Oct 2023 23:55:43 -0400 Subject: [PATCH 28/37] fix: explicit_metagraph that took a while to find... --- adbdgl_adapter/adapter.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/adbdgl_adapter/adapter.py b/adbdgl_adapter/adapter.py index b222c89..8dfd7bf 100644 --- a/adbdgl_adapter/adapter.py +++ b/adbdgl_adapter/adapter.py @@ -645,6 +645,7 @@ def y_tensor_to_2_column_dataframe(dgl_tensor): logger.debug(f"--dgl_to_arangodb('{name}')--") validate_dgl_metagraph(metagraph) + explicit_metagraph = metagraph != {} and explicit_metagraph is_custom_controller = type(self.__cntrl) is not ADBDGL_Controller has_one_ntype = len(dgl_g.ntypes) == 1 @@ -793,7 +794,6 @@ def __get_node_and_edge_types( node_types: List[str] edge_types: List[DGLCanonicalEType] - explicit_metagraph = metagraph != {} and explicit_metagraph has_default_canonical_etypes = dgl_g.canonical_etypes == [("_N", "_E", "_N")] if explicit_metagraph: From 4c7ab3be41f900ca3922c31e842b3a19c5d769c0 Mon Sep 17 00:00:00 2001 From: Anthony Mahanna Date: Thu, 5 Oct 2023 00:12:49 -0400 Subject: [PATCH 29/37] cleanup function order --- adbdgl_adapter/adapter.py | 376 +++++++++++++++++++------------------- 1 file changed, 188 insertions(+), 188 deletions(-) diff --git a/adbdgl_adapter/adapter.py b/adbdgl_adapter/adapter.py index 8dfd7bf..52ce920 100644 --- a/adbdgl_adapter/adapter.py +++ b/adbdgl_adapter/adapter.py @@ -396,156 +396,6 @@ def arangodb_graph_to_dgl( return self.arangodb_collections_to_dgl(name, v_cols, e_cols, **query_options) - def __fetch_adb_docs( - self, - col: str, - meta: Union[Set[str], Dict[str, ADBMetagraphValues]], - query_options: Any, - ) -> Cursor: - """Fetches ArangoDB documents within a collection. Returns the - documents in a DataFrame. - - :param col: The ArangoDB collection. - :type col: str - :param meta: The MetaGraph associated to **col** - :type meta: Set[str] | Dict[str, adbdgl_adapter.typings.ADBMetagraphValues] - :param query_options: Keyword arguments to specify AQL query options - when fetching documents from the ArangoDB instance. - :type query_options: Any - :return: A DataFrame representing the ArangoDB documents. - :rtype: pandas.DataFrame - """ - - def get_aql_return_value( - meta: Union[Set[str], Dict[str, ADBMetagraphValues]] - ) -> str: - """Helper method to formulate the AQL `RETURN` value based on - the document attributes specified in **meta** - """ - attributes = [] - - if type(meta) is set: - attributes = list(meta) - - elif type(meta) is dict: - for value in meta.values(): - if type(value) is str: - attributes.append(value) - elif type(value) is dict: - attributes.extend(list(value.keys())) - elif callable(value): - # Cannot determine which attributes to extract if UDFs are used - # Therefore we just return the entire document - return "doc" - - return f""" - MERGE( - {{ _key: doc._key, _from: doc._from, _to: doc._to }}, - KEEP(doc, {list(attributes)}) - ) - """ - - with progress( - f"(ADB → DGL): {col}", - text_style="#319BF5", - spinner_style="#FCFDFC", - ) as p: - p.add_task("__fetch_adb_docs") - return self.__db.aql.execute( # type: ignore - f"FOR doc IN @@col RETURN {get_aql_return_value(meta)}", - bind_vars={"@col": col}, - **{**{"stream": True}, **query_options}, - ) - - def __set_dgl_data( - self, - data_type: DGLDataTypes, - meta: Union[Set[str], Dict[str, ADBMetagraphValues]], - dgl_data: DGLData, - df: DataFrame, - ) -> None: - """A helper method to build the DGL NodeSpace or EdgeSpace object - for the DGL graph. Is responsible for preparing the input **meta** such - that it becomes a dictionary, and building DGL-ready tensors from the - ArangoDB DataFrame **df**. - - :param data_type: The current node or edge type of the soon-to-be DGL graph. - :type data_type: str | tuple[str, str, str] - :param meta: The metagraph associated to the current ArangoDB vertex or - edge collection. e.g metagraph['vertexCollections']['Users'] - :type meta: Set[str] | Dict[str, adbdgl_adapter.typings.ADBMetagraphValues] - :param dgl_data: The (currently empty) DefaultDict object storing the node or - edge features of the soon-to-be DGL graph. - :type dgl_data: adbdgl_adapter.typings.DGLData - :param df: The DataFrame representing the ArangoDB collection data - :type df: pandas.DataFrame - """ - valid_meta: Dict[str, ADBMetagraphValues] - valid_meta = meta if type(meta) is dict else {m: m for m in meta} - - for k, v in valid_meta.items(): - t = self.__build_tensor_from_dataframe(df, k, v) - dgl_data[k][data_type] = cat((dgl_data[k][data_type], t)) - - def __split_adb_ids(self, s: Series) -> Series: - """Helper method to split the ArangoDB IDs within a Series into two columns""" - return s.str.split(pat="/", n=1, expand=True) - - def __create_dgl_graph( - self, data_dict: DGLDataDict, adb_map: ADBMap, metagraph: ADBMetagraph - ) -> Union[DGLGraph, DGLHeteroGraph]: - """Creates a DGL graph from the given DGL data. - - :param data_dict: The data for constructing a graph, - which takes the form of (U, V). - (U[i], V[i]) forms the edge with ID i in the graph. - :type data_dict: adbdgl_adapter.typings.DGLDataDict - :param adb_map: A mapping of ArangoDB IDs to DGL IDs. - :type adb_map: adbdgl_adapter.typings.ADBMap - :param metagraph: The ArangoDB metagraph. - :type metagraph: adbdgl_adapter.typings.ADBMetagraph - :return: A DGL Homogeneous or Heterogeneous graph object - :rtype: dgl.DGLGraph | dgl.DGLHeteroGraph - """ - is_homogeneous = ( - len(metagraph["vertexCollections"]) == 1 - and len(metagraph["edgeCollections"]) == 1 - ) - - if is_homogeneous: - v_col = next(iter(metagraph["vertexCollections"])) - data = next(iter(data_dict.values())) - - return graph(data, num_nodes=len(adb_map[v_col])) - - num_nodes_dict = {v_col: len(adb_map[v_col]) for v_col in adb_map} - return heterograph(data_dict, num_nodes_dict) - - def __copy_dgl_data( - self, - dgl_data: Union[HeteroNodeDataView, HeteroEdgeDataView], - dgl_data_temp: DGLData, - has_one_type: bool, - ) -> None: - """Copies **dgl_data_temp** into **dgl_data**. This method is (unfortunately) - required, since a dgl graph's `ndata` and `edata` properties can't be - manually set (i.e `g.ndata = ndata` is not possible). - - :param dgl_data: The (empty) ndata or edata instance attribute of a dgl graph, - which is about to receive **dgl_data_temp**. - :type dgl_data: Union[dgl.view.HeteroNodeDataView, dgl.view.HeteroEdgeDataView] - :param dgl_data_temp: A temporary place to store the ndata or edata features. - :type dgl_data_temp: adbdgl_adapter.typings.DGLData - :param has_one_type: Set to True if the DGL graph only has one - node type or edge type. - :type has_one_type: bool - """ - for feature_name, feature_map in dgl_data_temp.items(): - for data_type, dgl_tensor in feature_map.items(): - dgl_data[feature_name] = ( - dgl_tensor if has_one_type else {data_type: dgl_tensor} - ) - def dgl_to_arangodb( self, name: str, @@ -767,6 +617,74 @@ def y_tensor_to_2_column_dataframe(dgl_tensor): logger.info(f"Created ArangoDB '{name}' Graph") return adb_graph + def __create_adb_graph( + self, + name: str, + overwrite_graph: bool, + node_types: List[str], + edge_types: List[DGLCanonicalEType], + ) -> ADBGraph: + """Creates an ArangoDB graph. + + :param name: The ArangoDB graph name. + :type name: str + :param overwrite_graph: Overwrites the graph if it already exists. + Does not drop associated collections. Defaults to False. + :type overwrite_graph: bool + :param node_types: A list of strings representing the DGL node types. + :type node_types: List[str] + :param edge_types: A list of string triplets (str, str, str) for + source node type, edge type and destination node type. + :type edge_types: List[adbdgl_adapter.typings.DGLCanonicalEType] + :return: The ArangoDB Graph API wrapper. + :rtype: arango.graph.Graph + """ + if overwrite_graph: + logger.debug("Overwrite graph flag is True. Deleting old graph.") + self.__db.delete_graph(name, ignore_missing=True) + + if self.__db.has_graph(name): + return self.__db.graph(name) + + edge_definitions = self.__etypes_to_edefinitions(edge_types) + orphan_collections = self.__ntypes_to_ocollections(node_types, edge_types) + + return self.__db.create_graph( # type: ignore[return-value] + name, + edge_definitions, + orphan_collections, + ) + + def __create_dgl_graph( + self, data_dict: DGLDataDict, adb_map: ADBMap, metagraph: ADBMetagraph + ) -> Union[DGLGraph, DGLHeteroGraph]: + """Creates a DGL graph from the given DGL data. + + :param data_dict: The data for constructing a graph, + which takes the form of (U, V). + (U[i], V[i]) forms the edge with ID i in the graph. + :type data_dict: adbdgl_adapter.typings.DGLDataDict + :param adb_map: A mapping of ArangoDB IDs to DGL IDs. + :type adb_map: adbdgl_adapter.typings.ADBMap + :param metagraph: The ArangoDB metagraph. + :type metagraph: adbdgl_adapter.typings.ADBMetagraph + :return: A DGL Homogeneous or Heterogeneous graph object + :rtype: dgl.DGLGraph | dgl.DGLHeteroGraph + """ + is_homogeneous = ( + len(metagraph["vertexCollections"]) == 1 + and len(metagraph["edgeCollections"]) == 1 + ) + + if is_homogeneous: + v_col = next(iter(metagraph["vertexCollections"])) + data = next(iter(data_dict.values())) + + return graph(data, num_nodes=len(adb_map[v_col])) + + num_nodes_dict = {v_col: len(adb_map[v_col]) for v_col in adb_map} + return heterograph(data_dict, num_nodes_dict) + def __get_node_and_edge_types( self, name: str, @@ -811,44 +729,6 @@ def __get_node_and_edge_types( return node_types, edge_types - def __create_adb_graph( - self, - name: str, - overwrite_graph: bool, - node_types: List[str], - edge_types: List[DGLCanonicalEType], - ) -> ADBGraph: - """Creates an ArangoDB graph. - - :param name: The ArangoDB graph name. - :type name: str - :param overwrite_graph: Overwrites the graph if it already exists. - Does not drop associated collections. Defaults to False. - :type overwrite_graph: bool - :param node_types: A list of strings representing the DGL node types. - :type node_types: List[str] - :param edge_types: A list of string triplets (str, str, str) for - source node type, edge type and destination node type. - :type edge_types: List[adbdgl_adapter.typings.DGLCanonicalEType] - :return: The ArangoDB Graph API wrapper. - :rtype: arango.graph.Graph - """ - if overwrite_graph: - logger.debug("Overwrite graph flag is True. Deleting old graph.") - self.__db.delete_graph(name, ignore_missing=True) - - if self.__db.has_graph(name): - return self.__db.graph(name) - - edge_definitions = self.__etypes_to_edefinitions(edge_types) - orphan_collections = self.__ntypes_to_ocollections(node_types, edge_types) - - return self.__db.create_graph( # type: ignore[return-value] - name, - edge_definitions, - orphan_collections, - ) - def __etypes_to_edefinitions( self, edge_types: List[DGLCanonicalEType] ) -> List[Json]: @@ -917,6 +797,67 @@ def __ntypes_to_ocollections( orphan_collections = set(node_types) ^ non_orphan_collections return list(orphan_collections) + def __fetch_adb_docs( + self, + col: str, + meta: Union[Set[str], Dict[str, ADBMetagraphValues]], + query_options: Any, + ) -> Cursor: + """Fetches ArangoDB documents within a collection. Returns the + documents in a DataFrame. + + :param col: The ArangoDB collection. + :type col: str + :param meta: The MetaGraph associated to **col** + :type meta: Set[str] | Dict[str, adbdgl_adapter.typings.ADBMetagraphValues] + :param query_options: Keyword arguments to specify AQL query options + when fetching documents from the ArangoDB instance. + :type query_options: Any + :return: A DataFrame representing the ArangoDB documents. + :rtype: pandas.DataFrame + """ + + def get_aql_return_value( + meta: Union[Set[str], Dict[str, ADBMetagraphValues]] + ) -> str: + """Helper method to formulate the AQL `RETURN` value based on + the document attributes specified in **meta** + """ + attributes = [] + + if type(meta) is set: + attributes = list(meta) + + elif type(meta) is dict: + for value in meta.values(): + if type(value) is str: + attributes.append(value) + elif type(value) is dict: + attributes.extend(list(value.keys())) + elif callable(value): + # Cannot determine which attributes to extract if UDFs are used + # Therefore we just return the entire document + return "doc" + + return f""" + MERGE( + {{ _key: doc._key, _from: doc._from, _to: doc._to }}, + KEEP(doc, {list(attributes)}) + ) + """ + + with progress( + f"(ADB → DGL): {col}", + text_style="#319BF5", + spinner_style="#FCFDFC", + ) as p: + p.add_task("__fetch_adb_docs") + return self.__db.aql.execute( # type: ignore + f"FOR doc IN @@col RETURN {get_aql_return_value(meta)}", + bind_vars={"@col": col}, + **{**{"stream": True}, **query_options}, + ) + def __insert_adb_docs( self, doc_type: Union[str, DGLCanonicalEType], df: DataFrame, kwargs: Any ) -> None: @@ -944,6 +885,65 @@ def __insert_adb_docs( logger.debug(result) df.drop(df.index, inplace=True) + def __split_adb_ids(self, s: Series) -> Series: + """Helper method to split the ArangoDB IDs within a Series into two columns""" + return s.str.split(pat="/", n=1, expand=True) + + def __set_dgl_data( + self, + data_type: DGLDataTypes, + meta: Union[Set[str], Dict[str, ADBMetagraphValues]], + dgl_data: DGLData, + df: DataFrame, + ) -> None: + """A helper method to build the DGL NodeSpace or EdgeSpace object + for the DGL graph. Is responsible for preparing the input **meta** such + that it becomes a dictionary, and building DGL-ready tensors from the + ArangoDB DataFrame **df**. + + :param data_type: The current node or edge type of the soon-to-be DGL graph. + :type data_type: str | tuple[str, str, str] + :param meta: The metagraph associated to the current ArangoDB vertex or + edge collection. e.g metagraph['vertexCollections']['Users'] + :type meta: Set[str] | Dict[str, adbdgl_adapter.typings.ADBMetagraphValues] + :param dgl_data: The (currently empty) DefaultDict object storing the node or + edge features of the soon-to-be DGL graph. + :type dgl_data: adbdgl_adapter.typings.DGLData + :param df: The DataFrame representing the ArangoDB collection data + :type df: pandas.DataFrame + """ + valid_meta: Dict[str, ADBMetagraphValues] + valid_meta = meta if type(meta) is dict else {m: m for m in meta} + + for k, v in valid_meta.items(): + t = self.__build_tensor_from_dataframe(df, k, v) + dgl_data[k][data_type] = cat((dgl_data[k][data_type], t)) + + def __copy_dgl_data( + self, + dgl_data: Union[HeteroNodeDataView, HeteroEdgeDataView], + dgl_data_temp: DGLData, + has_one_type: bool, + ) -> None: + """Copies **dgl_data_temp** into **dgl_data**. This method is (unfortunately) + required, since a dgl graph's `ndata` and `edata` properties can't be + manually set (i.e `g.ndata = ndata` is not possible). + + :param dgl_data: The (empty) ndata or edata instance attribute of a dgl graph, + which is about to receive **dgl_data_temp**. + :type dgl_data: Union[dgl.view.HeteroNodeDataView, dgl.view.HeteroEdgeDataView] + :param dgl_data_temp: A temporary place to store the ndata or edata features. + :type dgl_data_temp: adbdgl_adapter.typings.DGLData + :param has_one_type: Set to True if the DGL graph only has one + node type or edge type. + :type has_one_type: bool + """ + for feature_name, feature_map in dgl_data_temp.items(): + for data_type, dgl_tensor in feature_map.items(): + dgl_data[feature_name] = ( + dgl_tensor if has_one_type else {data_type: dgl_tensor} + ) + def __set_adb_data( self, df: DataFrame, From f9ba7dedb48fdea00b80f3cb0ed763d3cdd047ec Mon Sep 17 00:00:00 2001 From: Anthony Mahanna Date: Fri, 6 Oct 2023 13:01:57 -0400 Subject: [PATCH 30/37] more cleanup --- adbdgl_adapter/adapter.py | 43 ++++++++++++++++----------------------- 1 file changed, 18 insertions(+), 25 deletions(-) diff --git a/adbdgl_adapter/adapter.py b/adbdgl_adapter/adapter.py index 52ce920..f7f29c0 100644 --- a/adbdgl_adapter/adapter.py +++ b/adbdgl_adapter/adapter.py @@ -337,8 +337,8 @@ def udf_v1_x(v1_df): raise ValueError(msg) dgl_g = self.__create_dgl_graph(data_dict, adb_map, metagraph) - self.__copy_dgl_data(dgl_g.ndata, ndata, len(dgl_g.ntypes) == 1) - self.__copy_dgl_data(dgl_g.edata, edata, len(dgl_g.canonical_etypes) == 1) + self.__link_dgl_data(dgl_g.ndata, ndata, len(dgl_g.ntypes) == 1) + self.__link_dgl_data(dgl_g.edata, edata, len(dgl_g.canonical_etypes) == 1) logger.info(f"Created DGL '{name}' Graph") return dgl_g @@ -495,14 +495,15 @@ def y_tensor_to_2_column_dataframe(dgl_tensor): logger.debug(f"--dgl_to_arangodb('{name}')--") validate_dgl_metagraph(metagraph) - explicit_metagraph = metagraph != {} and explicit_metagraph + is_explicit_metagraph = metagraph != {} and explicit_metagraph is_custom_controller = type(self.__cntrl) is not ADBDGL_Controller + has_one_ntype = len(dgl_g.ntypes) == 1 has_one_etype = len(dgl_g.canonical_etypes) == 1 node_types, edge_types = self.__get_node_and_edge_types( - name, dgl_g, metagraph, explicit_metagraph + name, dgl_g, metagraph, is_explicit_metagraph ) adb_graph = self.__create_adb_graph( @@ -539,7 +540,7 @@ def y_tensor_to_2_column_dataframe(dgl_tensor): ndata_size, start_index, end_index, - explicit_metagraph, + is_explicit_metagraph, ) # 3. Apply the ArangoDB Node Controller (if provided) @@ -596,7 +597,7 @@ def y_tensor_to_2_column_dataframe(dgl_tensor): edata_size, start_index, end_index, - explicit_metagraph, + is_explicit_metagraph, ) df["_from"] = from_col + "/" + df["_from"].astype(str) @@ -690,7 +691,7 @@ def __get_node_and_edge_types( name: str, dgl_g: DGLGraph, metagraph: DGLMetagraph, - explicit_metagraph: bool, + is_explicit_metagraph: bool, ) -> Tuple[List[str], List[DGLCanonicalEType]]: """Returns the node & edge types of the DGL graph, based on the metagraph and whether the graph has default canonical etypes. @@ -701,11 +702,8 @@ def __get_node_and_edge_types( :type dgl_g: dgl.DGLGraph :param metagraph: The DGL Metagraph. :type metagraph: adbdgl_adapter.typings.DGLMetagraph - :param explicit_metagraph: Whether to take the metagraph at face value or not. - If False, node & edge types OMITTED from the metagraph will be - brought over into ArangoDB. Also applies to node & edge attributes. - Defaults to True. - :type explicit_metagraph: bool + :param is_explicit_metagraph: Take the metagraph at face value or not. + :type is_explicit_metagraph: bool :return: The node & edge types of the DGL graph. :rtype: Tuple[List[str], List[adbdgl_adapter.typings.DGLCanonicalEType]] """ @@ -714,7 +712,7 @@ def __get_node_and_edge_types( has_default_canonical_etypes = dgl_g.canonical_etypes == [("_N", "_E", "_N")] - if explicit_metagraph: + if is_explicit_metagraph: node_types = metagraph.get("nodeTypes", {}).keys() # type: ignore edge_types = metagraph.get("edgeTypes", {}).keys() # type: ignore @@ -919,13 +917,13 @@ def __set_dgl_data( t = self.__build_tensor_from_dataframe(df, k, v) dgl_data[k][data_type] = cat((dgl_data[k][data_type], t)) - def __copy_dgl_data( + def __link_dgl_data( self, dgl_data: Union[HeteroNodeDataView, HeteroEdgeDataView], dgl_data_temp: DGLData, has_one_type: bool, ) -> None: - """Copies **dgl_data_temp** into **dgl_data**. This method is (unfortunately) + """Links **dgl_data_temp** to **dgl_data**. This method is (unfortunately) required, since a dgl graph's `ndata` and `edata` properties can't be manually set (i.e `g.ndata = ndata` is not possible). @@ -952,7 +950,7 @@ def __set_adb_data( dgl_data_size: int, start_index: int, end_index: int, - explicit_metagraph: bool, + is_explicit_metagraph: bool, ) -> DataFrame: """A helper method to build the ArangoDB Dataframe for the given collection. Is responsible for creating "sub-DataFrames" from DGL tensors, @@ -976,25 +974,20 @@ def __set_adb_data( :type start_index: int :param end_index: The ending index of the current batch to process. :type end_index: int - :param explicit_metagraph: The value of **explicit_metagraph** - in **dgl_to_arangodb**. - :type explicit_metagraph: bool + :param is_explicit_metagraph: Take the metagraph at face value or not. + :type is_explicit_metagraph: bool :return: The completed DataFrame for the (soon-to-be) ArangoDB collection. :rtype: pandas.DataFrame :raise ValueError: If an unsupported DGL data value is found. """ logger.debug( - f"__set_adb_data(df, {meta}, {type(dgl_data)}, {explicit_metagraph}" + f"__set_adb_data(df, {meta}, {type(dgl_data)}, {is_explicit_metagraph}" ) valid_meta: Dict[Any, DGLMetagraphValues] valid_meta = meta if type(meta) is dict else {m: m for m in meta} - if explicit_metagraph: - dgl_keys = set(valid_meta.keys()) - else: - dgl_keys = dgl_data.keys() - + dgl_keys = set(valid_meta.keys()) if is_explicit_metagraph else dgl_data.keys() for meta_key in dgl_keys: data = dgl_data[meta_key] meta_val = valid_meta.get(meta_key, str(meta_key)) From 69630147f01aef1bc781a4f4c4f9dbec4fa8445d Mon Sep 17 00:00:00 2001 From: Anthony Mahanna Date: Tue, 10 Oct 2023 23:06:12 -0400 Subject: [PATCH 31/37] address comments --- adbdgl_adapter/adapter.py | 2 +- examples/ArangoDB_DGL_Adapter.ipynb | 4 +- .../outputs/ArangoDB_DGL_Adapter_output.ipynb | 3676 ++++++++--------- setup.py | 4 +- 4 files changed, 1796 insertions(+), 1890 deletions(-) diff --git a/adbdgl_adapter/adapter.py b/adbdgl_adapter/adapter.py index f7f29c0..847a159 100644 --- a/adbdgl_adapter/adapter.py +++ b/adbdgl_adapter/adapter.py @@ -330,7 +330,7 @@ def udf_v1_x(v1_df): if not data_dict: # pragma: no cover msg = f""" - Can't create DGL graph: no complete edge types found. + Can't Create the DGLgraph: no complete edge types found. The following edge types were skipped due to missing vertex collection specifications: {et_blacklist} """ diff --git a/examples/ArangoDB_DGL_Adapter.ipynb b/examples/ArangoDB_DGL_Adapter.ipynb index 4aacd3b..de2a7ce 100644 --- a/examples/ArangoDB_DGL_Adapter.ipynb +++ b/examples/ArangoDB_DGL_Adapter.ipynb @@ -944,7 +944,7 @@ "# Define graph name\n", "name = \"FakeHetero\"\n", "\n", - "# Create DGL graph from the ArangoDB graph\n", + "# Create the DGL Graph from the ArangoDB graph\n", "dgl_g = adbdgl_adapter.arangodb_graph_to_dgl(name)\n", "\n", "# You can also provide valid Python-Arango AQL query options to the command above, like such:\n", @@ -1255,7 +1255,7 @@ " },\n", "}\n", "\n", - "# Create DGL Graph\n", + "# Create the DGL Graph\n", "dgl_g = adbdgl_adapter.arangodb_to_dgl(\"FakeHetero\", metagraph_v3)\n", "\n", "# Show graph data\n", diff --git a/examples/outputs/ArangoDB_DGL_Adapter_output.ipynb b/examples/outputs/ArangoDB_DGL_Adapter_output.ipynb index 2db3221..7987a54 100644 --- a/examples/outputs/ArangoDB_DGL_Adapter_output.ipynb +++ b/examples/outputs/ArangoDB_DGL_Adapter_output.ipynb @@ -70,23 +70,23 @@ "cell_type": "code", "execution_count": null, "metadata": { - "id": "niijQHqBM6zp", "colab": { "base_uri": "https://localhost:8080/" }, + "id": "niijQHqBM6zp", "outputId": "77df8f72-4000-44e8-9dd6-c56bbf33c07d" }, "outputs": [ { - "output_type": "stream", "name": "stderr", + "output_type": "stream", "text": [ "DGL backend not selected or invalid. Assuming PyTorch for now.\n" ] }, { - "output_type": "stream", "name": "stdout", + "output_type": "stream", "text": [ "Setting the default backend to \"pytorch\". You can change it in the ~/.dgl/config.json file or export the DGLBACKEND environment variable. Valid options are: pytorch, mxnet, tensorflow (all lowercase)\n" ] @@ -142,16 +142,16 @@ "cell_type": "code", "execution_count": null, "metadata": { - "id": "vf0350qvj8up", "colab": { "base_uri": "https://localhost:8080/" }, + "id": "vf0350qvj8up", "outputId": "bb473200-893d-4d4e-ed6d-239ec497d0e3" }, "outputs": [ { - "output_type": "stream", "name": "stdout", + "output_type": "stream", "text": [ "Graph(num_nodes=6, num_edges=5,\n", " ndata_schemes={}\n", @@ -187,16 +187,16 @@ "cell_type": "code", "execution_count": null, "metadata": { - "id": "oOS3AVAnkQEV", "colab": { "base_uri": "https://localhost:8080/" }, + "id": "oOS3AVAnkQEV", "outputId": "5b5feaaa-2a6f-4e0e-ef89-68b9e365a6db" }, "outputs": [ { - "output_type": "stream", "name": "stdout", + "output_type": "stream", "text": [ "Graph(num_nodes={'game': 4, 'user': 4},\n", " num_edges={('user', 'follows', 'game'): 3, ('user', 'follows', 'user'): 2, ('user', 'plays', 'game'): 2},\n", @@ -239,16 +239,16 @@ "cell_type": "code", "execution_count": null, "metadata": { - "id": "meLon-KgkU4h", "colab": { "base_uri": "https://localhost:8080/" }, + "id": "meLon-KgkU4h", "outputId": "7517b39b-adfa-426d-ccae-89254cf642b5" }, "outputs": [ { - "output_type": "stream", "name": "stdout", + "output_type": "stream", "text": [ "Graph(num_nodes=6, num_edges=5,\n", " ndata_schemes={'x': Scheme(shape=(), dtype=torch.int64)}\n", @@ -295,16 +295,16 @@ "cell_type": "code", "execution_count": null, "metadata": { - "id": "zTebQ0LOlsGA", "colab": { "base_uri": "https://localhost:8080/" }, + "id": "zTebQ0LOlsGA", "outputId": "c871096b-b06e-4cd8-ad56-06758090600d" }, "outputs": [ { - "output_type": "stream", "name": "stdout", + "output_type": "stream", "text": [ "All nodes: 8\n", "User nodes: 4\n", @@ -348,16 +348,16 @@ "cell_type": "code", "execution_count": null, "metadata": { - "id": "KsxNujb0mSqZ", "colab": { "base_uri": "https://localhost:8080/" }, + "id": "KsxNujb0mSqZ", "outputId": "0b7b4106-7385-4489-e49a-399efbef0cb8" }, "outputs": [ { - "output_type": "stream", "name": "stdout", + "output_type": "stream", "text": [ "defaultdict(, {'age': {'user': tensor([21, 16, 38, 64])}})\n" ] @@ -399,16 +399,16 @@ "cell_type": "code", "execution_count": null, "metadata": { - "id": "2ekGwnJDeG8-", "colab": { "base_uri": "https://localhost:8080/" }, + "id": "2ekGwnJDeG8-", "outputId": "84a1c36b-3dc1-47e2-dadf-8a4ebefd98c0" }, "outputs": [ { - "output_type": "stream", "name": "stdout", + "output_type": "stream", "text": [ "Log: requesting new credentials...\n", "Succcess: new credentials acquired\n", @@ -463,16 +463,16 @@ "cell_type": "code", "execution_count": null, "metadata": { - "id": "7bgGJ3QkeG8_", "colab": { "base_uri": "https://localhost:8080/" }, + "id": "7bgGJ3QkeG8_", "outputId": "1f490370-72f3-4d1b-8950-ef1d0f690218" }, "outputs": [ { - "output_type": "stream", "name": "stdout", + "output_type": "stream", "text": [ "\u001b[0m2022-08-05T20:32:43Z [308] INFO [05c30] {restore} Connected to ArangoDB 'http+ssl://tutorials.arangodb.cloud:8529'\n", "\u001b[0m\u001b[0m2022-08-05T20:32:43Z [308] INFO [abeb4] {restore} Database name in source dump is 'TUTdit9ohpgz1ntnbetsjstwi'\n", @@ -500,20 +500,7 @@ }, { "cell_type": "code", - "source": [ - "# Create the IMDB graph\n", - "db.delete_graph(\"imdb\", ignore_missing=True)\n", - "db.create_graph(\n", - " \"imdb\",\n", - " edge_definitions=[\n", - " {\n", - " \"edge_collection\": \"Ratings\",\n", - " \"from_vertex_collections\": [\"Users\"],\n", - " \"to_vertex_collections\": [\"Movies\"],\n", - " },\n", - " ],\n", - ")" - ], + "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -521,18 +508,31 @@ "id": "XLiXYJPRlVYZ", "outputId": "2666c5b3-1f62-4bfc-c9af-53bc53f0ffd8" }, - "execution_count": null, "outputs": [ { - "output_type": "execute_result", "data": { "text/plain": [ "" ] }, + "execution_count": 10, "metadata": {}, - "execution_count": 10 + "output_type": "execute_result" } + ], + "source": [ + "# Create the IMDB graph\n", + "db.delete_graph(\"imdb\", ignore_missing=True)\n", + "db.create_graph(\n", + " \"imdb\",\n", + " edge_definitions=[\n", + " {\n", + " \"edge_collection\": \"Ratings\",\n", + " \"from_vertex_collections\": [\"Users\"],\n", + " \"to_vertex_collections\": [\"Movies\"],\n", + " },\n", + " ],\n", + ")" ] }, { @@ -557,16 +557,16 @@ "cell_type": "code", "execution_count": null, "metadata": { - "id": "oG496kBeeG9A", "colab": { "base_uri": "https://localhost:8080/" }, + "id": "oG496kBeeG9A", "outputId": "e5d8657f-a644-4493-ca16-16a300ac4a87" }, "outputs": [ { - "output_type": "stream", "name": "stderr", + "output_type": "stream", "text": [ "[2022/08/05 20:33:59 +0000] [61] [INFO] - adbdgl_adapter: Instantiated ADBDGL_Adapter with database 'TUTk9nlikuz4zowwxfkusway'\n" ] @@ -614,7 +614,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "id": "eRVbiBy4ZdE4", "colab": { "base_uri": "https://localhost:8080/", "height": 577, @@ -625,97 +624,94 @@ "87d9c9de620847f48b4088e8577cd653" ] }, + "id": "eRVbiBy4ZdE4", "outputId": "74ac6cb8-824b-443a-ad6e-9f36b23060a1" }, "outputs": [ { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "61d2a0426c324309ab51111933276e3d", "version_major": 2, - "version_minor": 0, - "model_id": "61d2a0426c324309ab51111933276e3d" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" + ], + "text/plain": [ + "\n" ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "2d1fc41d509e481cb779603827359184", "version_major": 2, - "version_minor": 0, - "model_id": "2d1fc41d509e481cb779603827359184" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" + ], + "text/plain": [ + "\n" ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "stream", "name": "stderr", + "output_type": "stream", "text": [ "[2022/08/05 20:34:04 +0000] [61] [INFO] - adbdgl_adapter: Created ArangoDB 'Karate' Graph\n" ] }, { - "output_type": "stream", "name": "stdout", + "output_type": "stream", "text": [ "\n", "--------------------\n", @@ -732,14 +728,14 @@ ] }, { - "output_type": "display_data", "data": { + "image/png": "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", "text/plain": [ "
" - ], - "image/png": "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\n" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" } ], "source": [ @@ -799,7 +795,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "id": "jbJsvMMaoJoT", "colab": { "base_uri": "https://localhost:8080/", "height": 408, @@ -818,12 +813,13 @@ "dd2376f84c794b4989f385a5bb147bd8" ] }, + "id": "jbJsvMMaoJoT", "outputId": "c1606984-c2ef-41c1-e8b1-78a4ae40d93c" }, "outputs": [ { - "output_type": "stream", "name": "stdout", + "output_type": "stream", "text": [ "Graph(num_nodes={'game': 5, 'topic': 3, 'user': 4},\n", " num_edges={('user', 'follows', 'topic'): 2, ('user', 'follows', 'user'): 2, ('user', 'plays', 'game'): 2},\n", @@ -831,250 +827,238 @@ ] }, { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "3fc8b14d794a46118b328893bd216405", "version_major": 2, - "version_minor": 0, - "model_id": "3fc8b14d794a46118b328893bd216405" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" + ], + "text/plain": [ + "\n" ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "289a6e16c3d640c29d96edf09908bd0f", "version_major": 2, - "version_minor": 0, - "model_id": "289a6e16c3d640c29d96edf09908bd0f" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" + ], + "text/plain": [ + "\n" ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "99bbe81a24db49ff9352987fd97649cd", "version_major": 2, - "version_minor": 0, - "model_id": "99bbe81a24db49ff9352987fd97649cd" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" + ], + "text/plain": [ + "\n" ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "f9fdfe6ce44e4e1c8f513f82efca3e0d", "version_major": 2, - "version_minor": 0, - "model_id": "f9fdfe6ce44e4e1c8f513f82efca3e0d" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" + ], + "text/plain": [ + "\n" ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "8444e147be8f44aba06ec1f8a880104e", "version_major": 2, - "version_minor": 0, - "model_id": "8444e147be8f44aba06ec1f8a880104e" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" + ], + "text/plain": [ + "\n" ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "ec7b8b0b853f463fa079dda845891391", "version_major": 2, - "version_minor": 0, - "model_id": "ec7b8b0b853f463fa079dda845891391" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" + ], + "text/plain": [ + "\n" ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "stream", "name": "stderr", + "output_type": "stream", "text": [ "[2022/08/05 20:35:24 +0000] [61] [INFO] - adbdgl_adapter: Created ArangoDB 'FakeHetero' Graph\n", "INFO:adbdgl_adapter:Created ArangoDB 'FakeHetero' Graph\n" ] }, { - "output_type": "stream", "name": "stdout", + "output_type": "stream", "text": [ "\n", "--------------------\n", @@ -1092,7 +1076,7 @@ } ], "source": [ - "# Create the PyG graph\n", + "# Create the DGL graph\n", "hetero_graph = dgl.heterograph({\n", " (\"user\", \"follows\", \"user\"): (torch.tensor([0, 1]), torch.tensor([1, 2])),\n", " (\"user\", \"follows\", \"topic\"): (torch.tensor([1, 1]), torch.tensor([1, 2])),\n", @@ -1177,8 +1161,8 @@ }, "outputs": [ { - "output_type": "stream", "name": "stdout", + "output_type": "stream", "text": [ "Graph(num_nodes={'game': 5, 'topic': 3, 'user': 4},\n", " num_edges={('user', 'follows', 'topic'): 2, ('user', 'follows', 'user'): 2, ('user', 'plays', 'game'): 2},\n", @@ -1186,250 +1170,238 @@ ] }, { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "345a5984959c4e57b7e2715fa8eeef8f", "version_major": 2, - "version_minor": 0, - "model_id": "345a5984959c4e57b7e2715fa8eeef8f" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" - ] + ], + "text/plain": [ + "\n" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "968020b1388e4883843575d9198af1cd", "version_major": 2, - "version_minor": 0, - "model_id": "968020b1388e4883843575d9198af1cd" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" + ], + "text/plain": [ + "\n" ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "6744eb60dfa04a8598fca3b998ce3077", "version_major": 2, - "version_minor": 0, - "model_id": "6744eb60dfa04a8598fca3b998ce3077" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" + ], + "text/plain": [ + "\n" ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "cb8167f00277413eaaa2ad6e0e162fab", "version_major": 2, - "version_minor": 0, - "model_id": "cb8167f00277413eaaa2ad6e0e162fab" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" + ], + "text/plain": [ + "\n" ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "575205f1a4e64c5d977e69d4939a5605", "version_major": 2, - "version_minor": 0, - "model_id": "575205f1a4e64c5d977e69d4939a5605" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" + ], + "text/plain": [ + "\n" ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "8bf075c6f7834d3fa905b7ddc37cf128", "version_major": 2, - "version_minor": 0, - "model_id": "8bf075c6f7834d3fa905b7ddc37cf128" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" + ], + "text/plain": [ + "\n" ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "stream", "name": "stderr", + "output_type": "stream", "text": [ "[2022/08/05 20:35:56 +0000] [61] [INFO] - adbdgl_adapter: Created ArangoDB 'FakeHetero' Graph\n", "INFO:adbdgl_adapter:Created ArangoDB 'FakeHetero' Graph\n" ] }, { - "output_type": "stream", "name": "stdout", + "output_type": "stream", "text": [ "\n", "--------------------\n", @@ -1447,7 +1419,7 @@ } ], "source": [ - "# Create the PyG graph\n", + "# Create the DGL graph\n", "hetero_graph = dgl.heterograph({\n", " (\"user\", \"follows\", \"user\"): (torch.tensor([0, 1]), torch.tensor([1, 2])),\n", " (\"user\", \"follows\", \"topic\"): (torch.tensor([1, 1]), torch.tensor([1, 2])),\n", @@ -1485,7 +1457,7 @@ " \"features\": \"user_age\", # 1) you can specify a string value for attribute renaming\n", " \"label\": label_tensor_to_2_column_dataframe, # 2) you can specify a function for user-defined handling, as long as the function returns a Pandas DataFrame\n", " },\n", - " # 3) You can specify set of strings if you want to preserve the same PyG attribute names for the node/edge type\n", + " # 3) You can specify set of strings if you want to preserve the same DGL attribute names for the node/edge type\n", " \"game\": {\"features\"} # this is equivalent to {\"features\": \"features\"}\n", " },\n", " \"edgeTypes\": {\n", @@ -1571,8 +1543,8 @@ }, "outputs": [ { - "output_type": "stream", "name": "stdout", + "output_type": "stream", "text": [ "Graph(num_nodes={'game': 5, 'topic': 3, 'user': 4},\n", " num_edges={('user', 'follows', 'topic'): 2, ('user', 'follows', 'user'): 2, ('user', 'plays', 'game'): 2},\n", @@ -1580,258 +1552,246 @@ ] }, { - "output_type": "stream", "name": "stderr", + "output_type": "stream", "text": [ "[2022/08/05 20:36:18 +0000] [61] [INFO] - adbdgl_adapter: Instantiated ADBDGL_Adapter with database 'TUTk9nlikuz4zowwxfkusway'\n", "INFO:adbdgl_adapter:Instantiated ADBDGL_Adapter with database 'TUTk9nlikuz4zowwxfkusway'\n" ] }, { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "ea5e9803c5de4d2bbb48782069b9829b", "version_major": 2, - "version_minor": 0, - "model_id": "ea5e9803c5de4d2bbb48782069b9829b" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" + ], + "text/plain": [ + "\n" ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "96e57d98afce44cd8269204dd19ff6e0", "version_major": 2, - "version_minor": 0, - "model_id": "96e57d98afce44cd8269204dd19ff6e0" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" + ], + "text/plain": [ + "\n" ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "3bc228aa98454dc59a604c8f7ff6b2a0", "version_major": 2, - "version_minor": 0, - "model_id": "3bc228aa98454dc59a604c8f7ff6b2a0" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" + ], + "text/plain": [ + "\n" ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "3ea99b2a6b4246d3abf628ca743f9f24", "version_major": 2, - "version_minor": 0, - "model_id": "3ea99b2a6b4246d3abf628ca743f9f24" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" + ], + "text/plain": [ + "\n" ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "987bf80aee4b4b97bfad1699f8384af8", "version_major": 2, - "version_minor": 0, - "model_id": "987bf80aee4b4b97bfad1699f8384af8" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" + ], + "text/plain": [ + "\n" ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "09e8c93741bf45acb69ba9e757107564", "version_major": 2, - "version_minor": 0, - "model_id": "09e8c93741bf45acb69ba9e757107564" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" + ], + "text/plain": [ + "\n" ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "stream", "name": "stderr", + "output_type": "stream", "text": [ "[2022/08/05 20:36:20 +0000] [61] [INFO] - adbdgl_adapter: Created ArangoDB 'FakeHetero' Graph\n", "INFO:adbdgl_adapter:Created ArangoDB 'FakeHetero' Graph\n" ] }, { - "output_type": "stream", "name": "stdout", + "output_type": "stream", "text": [ "\n", "--------------------\n", @@ -1849,7 +1809,7 @@ } ], "source": [ - "# Create the PyG graph\n", + "# Create the DGL graph\n", "hetero_graph = dgl.heterograph({\n", " (\"user\", \"follows\", \"user\"): (torch.tensor([0, 1]), torch.tensor([1, 2])),\n", " (\"user\", \"follows\", \"topic\"): (torch.tensor([1, 1]), torch.tensor([1, 2])),\n", @@ -1917,7 +1877,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "id": "rnMe3iMz2K7j", "colab": { "base_uri": "https://localhost:8080/", "height": 165, @@ -1936,260 +1895,249 @@ "a9c14a3f339445338119631c8e56ff68" ] }, + "id": "rnMe3iMz2K7j", "outputId": "b1485ec1-64bf-43d5-a5fe-7d6bd5fc2da1" }, "outputs": [ { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "c6cffa0a64434e56879ba2a8c9de018a", "version_major": 2, - "version_minor": 0, - "model_id": "c6cffa0a64434e56879ba2a8c9de018a" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" + ], + "text/plain": [ + "\n" ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "1dea128bde204a8fa53e094e014183fe", "version_major": 2, - "version_minor": 0, - "model_id": "1dea128bde204a8fa53e094e014183fe" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" + ], + "text/plain": [ + "\n" ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "6582a9d3fe044d5380d8e918f3bc5a6d", "version_major": 2, - "version_minor": 0, - "model_id": "6582a9d3fe044d5380d8e918f3bc5a6d" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" + ], + "text/plain": [ + "\n" ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "80d19dc0d20842c3b5c7313c0ad23d24", "version_major": 2, - "version_minor": 0, - "model_id": "80d19dc0d20842c3b5c7313c0ad23d24" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" + ], + "text/plain": [ + "\n" ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "c61e3997250d4f93a8e0494db674892d", "version_major": 2, - "version_minor": 0, - "model_id": "c61e3997250d4f93a8e0494db674892d" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" + ], + "text/plain": [ + "\n" ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "88e83ddc1ca1464291e1631b8fced847", "version_major": 2, - "version_minor": 0, - "model_id": "88e83ddc1ca1464291e1631b8fced847" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" + ], + "text/plain": [ + "\n" ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "stream", "name": "stderr", + "output_type": "stream", "text": [ "[2022/08/05 20:36:46 +0000] [61] [INFO] - adbdgl_adapter: Created ArangoDB 'FakeHetero' Graph\n", "INFO:adbdgl_adapter:Created ArangoDB 'FakeHetero' Graph\n" ] }, { - "output_type": "execute_result", "data": { "text/plain": [ "" ] }, + "execution_count": 18, "metadata": {}, - "execution_count": 18 + "output_type": "execute_result" } ], "source": [ @@ -2238,7 +2186,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "id": "zZ-Hu3lLVHgd", "colab": { "base_uri": "https://localhost:8080/", "height": 184, @@ -2255,215 +2202,206 @@ "c5d064af7f4a49dca6716f98d052e951" ] }, + "id": "zZ-Hu3lLVHgd", "outputId": "85729665-feb3-4382-e84b-4286162581c3" }, "outputs": [ { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "9403e71c2bbe46bd9e6d49d555264554", "version_major": 2, - "version_minor": 0, - "model_id": "9403e71c2bbe46bd9e6d49d555264554" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" + ], + "text/plain": [ + "\n" ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "1690574b32cc4b48a8b87520458d5066", "version_major": 2, - "version_minor": 0, - "model_id": "1690574b32cc4b48a8b87520458d5066" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" + ], + "text/plain": [ + "\n" ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "fd2db543279f4a13ab6376b9c23160e0", "version_major": 2, - "version_minor": 0, - "model_id": "fd2db543279f4a13ab6376b9c23160e0" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" + ], + "text/plain": [ + "\n" ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "31a9f782f36d407f8cc42b19679c5c2c", "version_major": 2, - "version_minor": 0, - "model_id": "31a9f782f36d407f8cc42b19679c5c2c" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" + ], + "text/plain": [ + "\n" ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "2c2900512b5244d3a0fcaf7409446d0e", "version_major": 2, - "version_minor": 0, - "model_id": "2c2900512b5244d3a0fcaf7409446d0e" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" + ], + "text/plain": [ + "\n" ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "stream", "name": "stderr", + "output_type": "stream", "text": [ "[2022/08/05 20:37:12 +0000] [61] [INFO] - adbdgl_adapter: Created DGL 'FakeHetero' Graph\n", "INFO:adbdgl_adapter:Created DGL 'FakeHetero' Graph\n" ] }, { - "output_type": "stream", "name": "stdout", + "output_type": "stream", "text": [ "\n", "--------------------\n", @@ -2475,7 +2413,7 @@ "# Define graph name\n", "name = \"FakeHetero\"\n", "\n", - "# Create DGL graph from the ArangoDB graph\n", + "# Create the DGL Graph from the ArangoDB graph\n", "dgl_g = adbdgl_adapter.arangodb_graph_to_dgl(name)\n", "\n", "# You can also provide valid Python-Arango AQL query options to the command above, like such:\n", @@ -2520,7 +2458,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "id": "i4XOpdRLUNlJ", "colab": { "base_uri": "https://localhost:8080/", "height": 253, @@ -2537,215 +2474,206 @@ "7b5dba3f4d50466eb2071cb13548ef1b" ] }, + "id": "i4XOpdRLUNlJ", "outputId": "c0fa5973-3e46-4227-8b0c-48b4f14736e5" }, "outputs": [ { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "f01997b9b43d43368d632e26ba9732ad", "version_major": 2, - "version_minor": 0, - "model_id": "f01997b9b43d43368d632e26ba9732ad" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" + ], + "text/plain": [ + "\n" ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "5f5c119141a24cab907ceb2da27e0244", "version_major": 2, - "version_minor": 0, - "model_id": "5f5c119141a24cab907ceb2da27e0244" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" + ], + "text/plain": [ + "\n" ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "7a43c4b816da4a40b0eed167a85eef22", "version_major": 2, - "version_minor": 0, - "model_id": "7a43c4b816da4a40b0eed167a85eef22" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" + ], + "text/plain": [ + "\n" ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "7a4db2b18c634bef932fb9b1157d4af1", "version_major": 2, - "version_minor": 0, - "model_id": "7a4db2b18c634bef932fb9b1157d4af1" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" + ], + "text/plain": [ + "\n" ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "4e085418ce1b41e1bc24ad6acea92fc4", "version_major": 2, - "version_minor": 0, - "model_id": "4e085418ce1b41e1bc24ad6acea92fc4" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" + ], + "text/plain": [ + "\n" ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "stream", "name": "stderr", + "output_type": "stream", "text": [ "[2022/08/05 20:37:50 +0000] [61] [INFO] - adbdgl_adapter: Created DGL 'FakeHetero' Graph\n", "INFO:adbdgl_adapter:Created DGL 'FakeHetero' Graph\n" ] }, { - "output_type": "stream", "name": "stdout", + "output_type": "stream", "text": [ "\n", "--------------------\n", @@ -2803,7 +2731,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "id": "7Kz8lXXq23Yk", "colab": { "base_uri": "https://localhost:8080/", "height": 409, @@ -2820,215 +2747,206 @@ "712770e675424d7eb0c8efd6c34f2012" ] }, + "id": "7Kz8lXXq23Yk", "outputId": "b17433d7-d344-4748-ffe3-f0abca6fb112" }, "outputs": [ { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "77b31c42e914410aaea93044f1390121", "version_major": 2, - "version_minor": 0, - "model_id": "77b31c42e914410aaea93044f1390121" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" + ], + "text/plain": [ + "\n" ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "38aaa492d75c48f38de60ea0cc5fa93f", "version_major": 2, - "version_minor": 0, - "model_id": "38aaa492d75c48f38de60ea0cc5fa93f" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" + ], + "text/plain": [ + "\n" ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "4b7f5f21b98b4c5d8475929bf1f01a65", "version_major": 2, - "version_minor": 0, - "model_id": "4b7f5f21b98b4c5d8475929bf1f01a65" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" + ], + "text/plain": [ + "\n" ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "bd8b6caa7d2d4df1a99b1870ecc0ae46", "version_major": 2, - "version_minor": 0, - "model_id": "bd8b6caa7d2d4df1a99b1870ecc0ae46" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" + ], + "text/plain": [ + "\n" ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "ea88ab86e9774ed78ea62daa6e338637", "version_major": 2, - "version_minor": 0, - "model_id": "ea88ab86e9774ed78ea62daa6e338637" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" + ], + "text/plain": [ + "\n" ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "stream", "name": "stderr", + "output_type": "stream", "text": [ "[2022/08/05 20:38:02 +0000] [61] [INFO] - adbdgl_adapter: Created DGL 'FakeHetero' Graph\n", "INFO:adbdgl_adapter:Created DGL 'FakeHetero' Graph\n" ] }, { - "output_type": "stream", "name": "stdout", + "output_type": "stream", "text": [ "\n", "--------------\n", @@ -3107,7 +3025,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "id": "cKqLoawE3WR7", "colab": { "base_uri": "https://localhost:8080/", "height": 499, @@ -3120,137 +3037,132 @@ "82f996185e8444ada5e18602e2f8e105" ] }, + "id": "cKqLoawE3WR7", "outputId": "02a8bfed-44ae-4c76-9eea-ba7348738707" }, "outputs": [ { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "2b13e46a722e4be384fad74e1b3e6461", "version_major": 2, - "version_minor": 0, - "model_id": "2b13e46a722e4be384fad74e1b3e6461" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" + ], + "text/plain": [ + "\n" ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "59405e2d0c164d5b965680cc9d9cd8f3", "version_major": 2, - "version_minor": 0, - "model_id": "59405e2d0c164d5b965680cc9d9cd8f3" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" + ], + "text/plain": [ + "\n" ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "3d081c88cd2945fa9534de722669ada9", "version_major": 2, - "version_minor": 0, - "model_id": "3d081c88cd2945fa9534de722669ada9" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" + ], + "text/plain": [ + "\n" ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "stream", "name": "stderr", + "output_type": "stream", "text": [ "[2022/08/05 20:38:44 +0000] [61] [INFO] - adbdgl_adapter: Created DGL 'IMDB' Graph\n", "INFO:adbdgl_adapter:Created DGL 'IMDB' Graph\n" ] }, { - "output_type": "stream", "name": "stdout", + "output_type": "stream", "text": [ "\n", "--------------\n", @@ -3322,6 +3234,9 @@ }, { "cell_type": "markdown", + "metadata": { + "id": "P1aKzxxZrUXJ" + }, "source": [ "Data\n", "* A fake DGL Heterogeneous graph\n", @@ -3332,16 +3247,12 @@ "Notes\n", "* The `name` parameter is purely for documentation purposes in this case.\n", "* The `metagraph` parameter is an object defining vertex & edge collections to import to DGL, along with collection-level specifications to indicate which ArangoDB attributes will become DGL features/labels. In this example, we rely on user-defined functions to handle ArangoDB attribute to DGL feature conversion." - ], - "metadata": { - "id": "P1aKzxxZrUXJ" - } + ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "id": "t-lNli3d4bY0", "colab": { "base_uri": "https://localhost:8080/", "height": 377, @@ -3354,137 +3265,132 @@ "9e1eb071f0b24cb6a8d206477b10b831" ] }, + "id": "t-lNli3d4bY0", "outputId": "7bc48392-81a7-4232-aad2-931ff3c8ca48" }, "outputs": [ { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "e4b7b35461e848f5819b9f38d67ee652", "version_major": 2, - "version_minor": 0, - "model_id": "e4b7b35461e848f5819b9f38d67ee652" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" + ], + "text/plain": [ + "\n" ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "54801c3c74494fe8bf9e2a7fb64bde48", "version_major": 2, - "version_minor": 0, - "model_id": "54801c3c74494fe8bf9e2a7fb64bde48" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" + ], + "text/plain": [ + "\n" ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "Output()" - ], "application/vnd.jupyter.widget-view+json": { + "model_id": "f0d4515c88a44775be59c4e1a0b3c60a", "version_major": 2, - "version_minor": 0, - "model_id": "f0d4515c88a44775be59c4e1a0b3c60a" - } + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "text/html": [ "
\n"
-            ]
+            ],
+            "text/plain": []
           },
-          "metadata": {}
+          "metadata": {},
+          "output_type": "display_data"
         },
         {
-          "output_type": "display_data",
           "data": {
-            "text/plain": [
-              "\n"
-            ],
             "text/html": [
               "
\n",
               "
\n" + ], + "text/plain": [ + "\n" ] }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "stream", "name": "stderr", + "output_type": "stream", "text": [ "[2022/08/05 20:39:00 +0000] [61] [INFO] - adbdgl_adapter: Created DGL 'FakeHetero' Graph\n", "INFO:adbdgl_adapter:Created DGL 'FakeHetero' Graph\n" ] }, { - "output_type": "stream", "name": "stdout", + "output_type": "stream", "text": [ "\n", "--------------\n", @@ -3532,7 +3438,7 @@ " },\n", "}\n", "\n", - "# Create PyG Graph\n", + "# Create the DGL Graph\n", "dgl_g = adbdgl_adapter.arangodb_to_dgl(\"FakeHetero\", metagraph_v3)\n", "\n", "# Show graph data\n", @@ -3585,37 +3491,10 @@ }, "widgets": { "application/vnd.jupyter.widget-state+json": { - "61d2a0426c324309ab51111933276e3d": { - "model_module": "@jupyter-widgets/output", - "model_name": "OutputModel", - "model_module_version": "1.0.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/output", - "_model_module_version": "1.0.0", - "_model_name": "OutputModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/output", - "_view_module_version": "1.0.0", - "_view_name": "OutputView", - "layout": "IPY_MODEL_77c208846c1e4503bc22a5b5504f89ee", - "msg_id": "", - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): Karate_N (34)\u001b[0m \u001b[38;2;153;70;2m▰▰▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", - "text/html": "
(DGL → ADB): Karate_N (34) ▰▰▱▱▱▱▱ 0:00:00\n
\n" - }, - "metadata": {} - } - ] - } - }, - "77c208846c1e4503bc22a5b5504f89ee": { + "0083494093574c50952dd066502a708d": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -3664,37 +3543,10 @@ "width": null } }, - "2d1fc41d509e481cb779603827359184": { - "model_module": "@jupyter-widgets/output", - "model_name": "OutputModel", - "model_module_version": "1.0.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/output", - "_model_module_version": "1.0.0", - "_model_name": "OutputModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/output", - "_view_module_version": "1.0.0", - "_view_name": "OutputView", - "layout": "IPY_MODEL_87d9c9de620847f48b4088e8577cd653", - "msg_id": "", - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): ('Karate_N', 'Karate_E', 'Karate_N') (156)\u001b[0m \u001b[38;2;153;70;2m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", - "text/html": "
(DGL → ADB): ('Karate_N', 'Karate_E', 'Karate_N') (156) ▰▱▱▱▱▱▱ 0:00:00\n
\n" - }, - "metadata": {} - } - ] - } - }, - "87d9c9de620847f48b4088e8577cd653": { + "0478c90ef8234f3a8987dbe9cd3030b2": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -3743,37 +3595,10 @@ "width": null } }, - "3fc8b14d794a46118b328893bd216405": { - "model_module": "@jupyter-widgets/output", - "model_name": "OutputModel", - "model_module_version": "1.0.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/output", - "_model_module_version": "1.0.0", - "_model_name": "OutputModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/output", - "_view_module_version": "1.0.0", - "_view_name": "OutputView", - "layout": "IPY_MODEL_c7e222474ff445fe86e4e599848b2ae2", - "msg_id": "", - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): game (5)\u001b[0m \u001b[38;2;153;70;2m▰▰▰▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", - "text/html": "
(DGL → ADB): game (5) ▰▰▰▱▱▱▱ 0:00:00\n
\n" - }, - "metadata": {} - } - ] - } - }, - "c7e222474ff445fe86e4e599848b2ae2": { + "09d25097c75c4fa8a2c7376f1965afc5": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -3822,10 +3647,10 @@ "width": null } }, - "289a6e16c3d640c29d96edf09908bd0f": { + "09e8c93741bf45acb69ba9e757107564": { "model_module": "@jupyter-widgets/output", - "model_name": "OutputModel", "model_module_version": "1.0.0", + "model_name": "OutputModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/output", @@ -3835,24 +3660,24 @@ "_view_module": "@jupyter-widgets/output", "_view_module_version": "1.0.0", "_view_name": "OutputView", - "layout": "IPY_MODEL_61f3832c906445a3ab7e7ba9b41c0127", + "layout": "IPY_MODEL_d7d06973b2984eb19fa050409bf62222", "msg_id": "", "outputs": [ { - "output_type": "display_data", "data": { - "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): topic (3)\u001b[0m \u001b[38;2;153;70;2m▰▰▰▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", - "text/html": "
(DGL → ADB): topic (3) ▰▰▰▱▱▱▱ 0:00:00\n
\n" + "text/html": "
(DGL → ADB): ('user', 'plays', 'game') (2) ▰▰▱▱▱▱▱ 0:00:00\n
\n", + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): ('user', 'plays', 'game') (2)\u001b[0m \u001b[38;2;153;70;2m▰▰▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n" }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" } ] } }, - "61f3832c906445a3ab7e7ba9b41c0127": { + "13d0f7da120b40b993ce3c0b257d5788": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -3901,37 +3726,10 @@ "width": null } }, - "99bbe81a24db49ff9352987fd97649cd": { - "model_module": "@jupyter-widgets/output", - "model_name": "OutputModel", - "model_module_version": "1.0.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/output", - "_model_module_version": "1.0.0", - "_model_name": "OutputModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/output", - "_view_module_version": "1.0.0", - "_view_name": "OutputView", - "layout": "IPY_MODEL_21e50aa61c3d4de19b5cc0bbe27d53c9", - "msg_id": "", - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): user (4)\u001b[0m \u001b[38;2;153;70;2m▰▰▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", - "text/html": "
(DGL → ADB): user (4) ▰▰▱▱▱▱▱ 0:00:00\n
\n" - }, - "metadata": {} - } - ] - } - }, - "21e50aa61c3d4de19b5cc0bbe27d53c9": { + "14b29dc1f2b8454fa9acc1d79dcd4870": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -3980,10 +3778,37 @@ "width": null } }, - "f9fdfe6ce44e4e1c8f513f82efca3e0d": { + "1690574b32cc4b48a8b87520458d5066": { "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_a9edf4f85a4a4504b155608bb740178a", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
(ADB → DGL): topic ▰▱▱▱▱▱▱ 0:00:00\n
\n", + "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): topic\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "1dea128bde204a8fa53e094e014183fe": { + "model_module": "@jupyter-widgets/output", "model_module_version": "1.0.0", + "model_name": "OutputModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/output", @@ -3993,24 +3818,24 @@ "_view_module": "@jupyter-widgets/output", "_view_module_version": "1.0.0", "_view_name": "OutputView", - "layout": "IPY_MODEL_9b2b3abbe2c04af0bc232c9b16bfd90d", + "layout": "IPY_MODEL_50f8ff3637ee4fc7af8c811cd5d177be", "msg_id": "", "outputs": [ { - "output_type": "display_data", "data": { - "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): ('user', 'follows', 'topic') (2)\u001b[0m \u001b[38;2;153;70;2m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", - "text/html": "
(DGL → ADB): ('user', 'follows', 'topic') (2) ▰▱▱▱▱▱▱ 0:00:00\n
\n" + "text/html": "
(DGL → ADB): topic (3) ▰▰▱▱▱▱▱ 0:00:00\n
\n", + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): topic (3)\u001b[0m \u001b[38;2;153;70;2m▰▰▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n" }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" } ] } }, - "9b2b3abbe2c04af0bc232c9b16bfd90d": { + "21e50aa61c3d4de19b5cc0bbe27d53c9": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -4059,10 +3884,10 @@ "width": null } }, - "8444e147be8f44aba06ec1f8a880104e": { + "289a6e16c3d640c29d96edf09908bd0f": { "model_module": "@jupyter-widgets/output", - "model_name": "OutputModel", "model_module_version": "1.0.0", + "model_name": "OutputModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/output", @@ -4072,24 +3897,24 @@ "_view_module": "@jupyter-widgets/output", "_view_module_version": "1.0.0", "_view_name": "OutputView", - "layout": "IPY_MODEL_80e69b3aa98b44e295efe3940c1146c2", + "layout": "IPY_MODEL_61f3832c906445a3ab7e7ba9b41c0127", "msg_id": "", "outputs": [ { - "output_type": "display_data", "data": { - "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): ('user', 'follows', 'user') (2)\u001b[0m \u001b[38;2;153;70;2m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", - "text/html": "
(DGL → ADB): ('user', 'follows', 'user') (2) ▰▱▱▱▱▱▱ 0:00:00\n
\n" + "text/html": "
(DGL → ADB): topic (3) ▰▰▰▱▱▱▱ 0:00:00\n
\n", + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): topic (3)\u001b[0m \u001b[38;2;153;70;2m▰▰▰▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n" }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" } ] } }, - "80e69b3aa98b44e295efe3940c1146c2": { + "2a380fe111794c3a951cdafa4a2bf0b3": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -4138,10 +3963,37 @@ "width": null } }, - "ec7b8b0b853f463fa079dda845891391": { + "2b13e46a722e4be384fad74e1b3e6461": { "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_848230df62434c77b5b18f9a43e2d14f", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
(ADB → DGL): Movies ▰▰▰▰▰▰▰ 0:00:00\n
\n", + "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): Movies\u001b[0m \u001b[38;2;252;253;252m▰▰▰▰▰▰▰\u001b[0m \u001b[33m0:00:00\u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "2c2900512b5244d3a0fcaf7409446d0e": { + "model_module": "@jupyter-widgets/output", "model_module_version": "1.0.0", + "model_name": "OutputModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/output", @@ -4151,24 +4003,105 @@ "_view_module": "@jupyter-widgets/output", "_view_module_version": "1.0.0", "_view_name": "OutputView", - "layout": "IPY_MODEL_dd2376f84c794b4989f385a5bb147bd8", + "layout": "IPY_MODEL_c5d064af7f4a49dca6716f98d052e951", "msg_id": "", "outputs": [ { - "output_type": "display_data", "data": { - "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): ('user', 'plays', 'game') (2)\u001b[0m \u001b[38;2;153;70;2m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", - "text/html": "
(DGL → ADB): ('user', 'plays', 'game') (2) ▰▱▱▱▱▱▱ 0:00:00\n
\n" + "text/html": "
(ADB → DGL): plays ▰▱▱▱▱▱▱ 0:00:00\n
\n", + "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): plays\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n" }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" } ] } }, - "dd2376f84c794b4989f385a5bb147bd8": { + "2d1fc41d509e481cb779603827359184": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_87d9c9de620847f48b4088e8577cd653", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
(DGL → ADB): ('Karate_N', 'Karate_E', 'Karate_N') (156) ▰▱▱▱▱▱▱ 0:00:00\n
\n", + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): ('Karate_N', 'Karate_E', 'Karate_N') (156)\u001b[0m \u001b[38;2;153;70;2m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "31a9f782f36d407f8cc42b19679c5c2c": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_9fd8d07a43cd4c06a2d448047ede846c", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
(ADB → DGL): follows ▰▱▱▱▱▱▱ 0:00:00\n
\n", + "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): follows\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "345a5984959c4e57b7e2715fa8eeef8f": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_99e6613c4187459396eea503453934cb", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
(DGL → ADB): game (5) ▰▱▱▱▱▱▱ 0:00:00\n
\n", + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): game (5)\u001b[0m \u001b[38;2;153;70;2m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "34c4ef0c4aa5454893c0f0fa35902fbd": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -4217,10 +4150,37 @@ "width": null } }, - "345a5984959c4e57b7e2715fa8eeef8f": { + "38aaa492d75c48f38de60ea0cc5fa93f": { "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_63845b04ecbc40de8bcc017d754ac907", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
(ADB → DGL): game ▰▱▱▱▱▱▱ 0:00:00\n
\n", + "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): game\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "3bc228aa98454dc59a604c8f7ff6b2a0": { + "model_module": "@jupyter-widgets/output", "model_module_version": "1.0.0", + "model_name": "OutputModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/output", @@ -4230,24 +4190,78 @@ "_view_module": "@jupyter-widgets/output", "_view_module_version": "1.0.0", "_view_name": "OutputView", - "layout": "IPY_MODEL_99e6613c4187459396eea503453934cb", + "layout": "IPY_MODEL_65138d18c9c449d1aaaad387293c5ede", "msg_id": "", "outputs": [ { - "output_type": "display_data", "data": { - "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): game (5)\u001b[0m \u001b[38;2;153;70;2m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", - "text/html": "
(DGL → ADB): game (5) ▰▱▱▱▱▱▱ 0:00:00\n
\n" + "text/html": "
(DGL → ADB): user (4) ▰▰▱▱▱▱▱ 0:00:00\n
\n", + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): user (4)\u001b[0m \u001b[38;2;153;70;2m▰▰▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n" }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" } ] } }, - "99e6613c4187459396eea503453934cb": { + "3d081c88cd2945fa9534de722669ada9": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_82f996185e8444ada5e18602e2f8e105", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
(ADB → DGL): Ratings ▰▱▱▱▱▱▱ 0:00:06\n
\n", + "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): Ratings\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:06\u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "3ea99b2a6b4246d3abf628ca743f9f24": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_841ce4f5d391457e858c3c48185e259d", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
(DGL → ADB): ('user', 'follows', 'topic') (2) ▰▱▱▱▱▱▱ 0:00:00\n
\n", + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): ('user', 'follows', 'topic') (2)\u001b[0m \u001b[38;2;153;70;2m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "3f633be94c7d466ea40571e805a76948": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -4296,10 +4310,10 @@ "width": null } }, - "968020b1388e4883843575d9198af1cd": { + "3fc8b14d794a46118b328893bd216405": { "model_module": "@jupyter-widgets/output", - "model_name": "OutputModel", "model_module_version": "1.0.0", + "model_name": "OutputModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/output", @@ -4309,24 +4323,24 @@ "_view_module": "@jupyter-widgets/output", "_view_module_version": "1.0.0", "_view_name": "OutputView", - "layout": "IPY_MODEL_f1a08470110e4099af2a3d4cf4d0f956", + "layout": "IPY_MODEL_c7e222474ff445fe86e4e599848b2ae2", "msg_id": "", "outputs": [ { - "output_type": "display_data", "data": { - "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): topic (3)\u001b[0m \u001b[38;2;153;70;2m▰▰▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", - "text/html": "
(DGL → ADB): topic (3) ▰▰▱▱▱▱▱ 0:00:00\n
\n" + "text/html": "
(DGL → ADB): game (5) ▰▰▰▱▱▱▱ 0:00:00\n
\n", + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): game (5)\u001b[0m \u001b[38;2;153;70;2m▰▰▰▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n" }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" } ] } }, - "f1a08470110e4099af2a3d4cf4d0f956": { + "404a19cadaca4b85a957cad231b73cbb": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -4375,37 +4389,10 @@ "width": null } }, - "6744eb60dfa04a8598fca3b998ce3077": { - "model_module": "@jupyter-widgets/output", - "model_name": "OutputModel", - "model_module_version": "1.0.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/output", - "_model_module_version": "1.0.0", - "_model_name": "OutputModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/output", - "_view_module_version": "1.0.0", - "_view_name": "OutputView", - "layout": "IPY_MODEL_09d25097c75c4fa8a2c7376f1965afc5", - "msg_id": "", - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): user (4)\u001b[0m \u001b[38;2;153;70;2m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", - "text/html": "
(DGL → ADB): user (4) ▰▱▱▱▱▱▱ 0:00:00\n
\n" - }, - "metadata": {} - } - ] - } - }, - "09d25097c75c4fa8a2c7376f1965afc5": { + "40da9dd52dd6443684b990f74b6cb876": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -4434,57 +4421,30 @@ "grid_template_rows": null, "height": null, "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "cb8167f00277413eaaa2ad6e0e162fab": { - "model_module": "@jupyter-widgets/output", - "model_name": "OutputModel", - "model_module_version": "1.0.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/output", - "_model_module_version": "1.0.0", - "_model_name": "OutputModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/output", - "_view_module_version": "1.0.0", - "_view_name": "OutputView", - "layout": "IPY_MODEL_8128e6d80fcb4a8ca0a72097bb8b6521", - "msg_id": "", - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): ('user', 'follows', 'topic') (2)\u001b[0m \u001b[38;2;153;70;2m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", - "text/html": "
(DGL → ADB): ('user', 'follows', 'topic') (2) ▰▱▱▱▱▱▱ 0:00:00\n
\n" - }, - "metadata": {} - } - ] + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null } }, - "8128e6d80fcb4a8ca0a72097bb8b6521": { + "46b88027e41a43578ebcc47513dd6911": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -4533,37 +4493,10 @@ "width": null } }, - "575205f1a4e64c5d977e69d4939a5605": { - "model_module": "@jupyter-widgets/output", - "model_name": "OutputModel", - "model_module_version": "1.0.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/output", - "_model_module_version": "1.0.0", - "_model_name": "OutputModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/output", - "_view_module_version": "1.0.0", - "_view_name": "OutputView", - "layout": "IPY_MODEL_d20843bfa9064d56b37aaea011789a26", - "msg_id": "", - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): ('user', 'follows', 'user') (2)\u001b[0m \u001b[38;2;153;70;2m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", - "text/html": "
(DGL → ADB): ('user', 'follows', 'user') (2) ▰▱▱▱▱▱▱ 0:00:00\n
\n" - }, - "metadata": {} - } - ] - } - }, - "d20843bfa9064d56b37aaea011789a26": { + "4ab3c113235746cab5fde158756ab420": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -4612,10 +4545,37 @@ "width": null } }, - "8bf075c6f7834d3fa905b7ddc37cf128": { + "4b7f5f21b98b4c5d8475929bf1f01a65": { "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_404a19cadaca4b85a957cad231b73cbb", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
(ADB → DGL): topic ▰▱▱▱▱▱▱ 0:00:00\n
\n", + "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): topic\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "4e085418ce1b41e1bc24ad6acea92fc4": { + "model_module": "@jupyter-widgets/output", "model_module_version": "1.0.0", + "model_name": "OutputModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/output", @@ -4625,24 +4585,24 @@ "_view_module": "@jupyter-widgets/output", "_view_module_version": "1.0.0", "_view_name": "OutputView", - "layout": "IPY_MODEL_b080f26fe35241fb9cca48e97bc9ef0c", + "layout": "IPY_MODEL_7b5dba3f4d50466eb2071cb13548ef1b", "msg_id": "", "outputs": [ { - "output_type": "display_data", "data": { - "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): ('user', 'plays', 'game') (2)\u001b[0m \u001b[38;2;153;70;2m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", - "text/html": "
(DGL → ADB): ('user', 'plays', 'game') (2) ▰▱▱▱▱▱▱ 0:00:00\n
\n" + "text/html": "
(ADB → DGL): plays ▰▱▱▱▱▱▱ 0:00:00\n
\n", + "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): plays\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n" }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" } ] } }, - "b080f26fe35241fb9cca48e97bc9ef0c": { + "50f8ff3637ee4fc7af8c811cd5d177be": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -4691,10 +4651,37 @@ "width": null } }, - "ea5e9803c5de4d2bbb48782069b9829b": { + "54801c3c74494fe8bf9e2a7fb64bde48": { "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_903622e283524c7f89635599920c2b14", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
(ADB → DGL): game ▰▱▱▱▱▱▱ 0:00:00\n
\n", + "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): game\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "575205f1a4e64c5d977e69d4939a5605": { + "model_module": "@jupyter-widgets/output", "model_module_version": "1.0.0", + "model_name": "OutputModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/output", @@ -4704,24 +4691,51 @@ "_view_module": "@jupyter-widgets/output", "_view_module_version": "1.0.0", "_view_name": "OutputView", - "layout": "IPY_MODEL_3f633be94c7d466ea40571e805a76948", + "layout": "IPY_MODEL_d20843bfa9064d56b37aaea011789a26", "msg_id": "", "outputs": [ { - "output_type": "display_data", "data": { - "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): game (5)\u001b[0m \u001b[38;2;153;70;2m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", - "text/html": "
(DGL → ADB): game (5) ▰▱▱▱▱▱▱ 0:00:00\n
\n" + "text/html": "
(DGL → ADB): ('user', 'follows', 'user') (2) ▰▱▱▱▱▱▱ 0:00:00\n
\n", + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): ('user', 'follows', 'user') (2)\u001b[0m \u001b[38;2;153;70;2m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n" }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" } ] } }, - "3f633be94c7d466ea40571e805a76948": { + "59405e2d0c164d5b965680cc9d9cd8f3": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_2a380fe111794c3a951cdafa4a2bf0b3", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
(ADB → DGL): Users ▰▰▱▱▱▱▱ 0:00:00\n
\n", + "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): Users\u001b[0m \u001b[38;2;252;253;252m▰▰▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "5c310145af4f4c90b659dee771185ab6": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -4770,10 +4784,37 @@ "width": null } }, - "96e57d98afce44cd8269204dd19ff6e0": { + "5f5c119141a24cab907ceb2da27e0244": { "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_46b88027e41a43578ebcc47513dd6911", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
(ADB → DGL): topic ▰▱▱▱▱▱▱ 0:00:00\n
\n", + "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): topic\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "61d2a0426c324309ab51111933276e3d": { + "model_module": "@jupyter-widgets/output", "model_module_version": "1.0.0", + "model_name": "OutputModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/output", @@ -4783,24 +4824,24 @@ "_view_module": "@jupyter-widgets/output", "_view_module_version": "1.0.0", "_view_name": "OutputView", - "layout": "IPY_MODEL_da43ef4a8c6a41f9bda153a0cd14c2d7", + "layout": "IPY_MODEL_77c208846c1e4503bc22a5b5504f89ee", "msg_id": "", "outputs": [ { - "output_type": "display_data", "data": { - "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): topic (3)\u001b[0m \u001b[38;2;153;70;2m▰▰▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", - "text/html": "
(DGL → ADB): topic (3) ▰▰▱▱▱▱▱ 0:00:00\n
\n" + "text/html": "
(DGL → ADB): Karate_N (34) ▰▰▱▱▱▱▱ 0:00:00\n
\n", + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): Karate_N (34)\u001b[0m \u001b[38;2;153;70;2m▰▰▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n" }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" } ] } }, - "da43ef4a8c6a41f9bda153a0cd14c2d7": { + "61f3832c906445a3ab7e7ba9b41c0127": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -4849,37 +4890,10 @@ "width": null } }, - "3bc228aa98454dc59a604c8f7ff6b2a0": { - "model_module": "@jupyter-widgets/output", - "model_name": "OutputModel", - "model_module_version": "1.0.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/output", - "_model_module_version": "1.0.0", - "_model_name": "OutputModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/output", - "_view_module_version": "1.0.0", - "_view_name": "OutputView", - "layout": "IPY_MODEL_65138d18c9c449d1aaaad387293c5ede", - "msg_id": "", - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): user (4)\u001b[0m \u001b[38;2;153;70;2m▰▰▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", - "text/html": "
(DGL → ADB): user (4) ▰▰▱▱▱▱▱ 0:00:00\n
\n" - }, - "metadata": {} - } - ] - } - }, - "65138d18c9c449d1aaaad387293c5ede": { + "63845b04ecbc40de8bcc017d754ac907": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -4928,37 +4942,10 @@ "width": null } }, - "3ea99b2a6b4246d3abf628ca743f9f24": { - "model_module": "@jupyter-widgets/output", - "model_name": "OutputModel", - "model_module_version": "1.0.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/output", - "_model_module_version": "1.0.0", - "_model_name": "OutputModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/output", - "_view_module_version": "1.0.0", - "_view_name": "OutputView", - "layout": "IPY_MODEL_841ce4f5d391457e858c3c48185e259d", - "msg_id": "", - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): ('user', 'follows', 'topic') (2)\u001b[0m \u001b[38;2;153;70;2m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", - "text/html": "
(DGL → ADB): ('user', 'follows', 'topic') (2) ▰▱▱▱▱▱▱ 0:00:00\n
\n" - }, - "metadata": {} - } - ] - } - }, - "841ce4f5d391457e858c3c48185e259d": { + "65138d18c9c449d1aaaad387293c5ede": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -5007,10 +4994,37 @@ "width": null } }, - "987bf80aee4b4b97bfad1699f8384af8": { + "6582a9d3fe044d5380d8e918f3bc5a6d": { "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_40da9dd52dd6443684b990f74b6cb876", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
(DGL → ADB): user (4) ▰▱▱▱▱▱▱ 0:00:00\n
\n", + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): user (4)\u001b[0m \u001b[38;2;153;70;2m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "6744eb60dfa04a8598fca3b998ce3077": { + "model_module": "@jupyter-widgets/output", "model_module_version": "1.0.0", + "model_name": "OutputModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/output", @@ -5020,24 +5034,24 @@ "_view_module": "@jupyter-widgets/output", "_view_module_version": "1.0.0", "_view_name": "OutputView", - "layout": "IPY_MODEL_4ab3c113235746cab5fde158756ab420", + "layout": "IPY_MODEL_09d25097c75c4fa8a2c7376f1965afc5", "msg_id": "", "outputs": [ { - "output_type": "display_data", "data": { - "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): ('user', 'follows', 'user') (2)\u001b[0m \u001b[38;2;153;70;2m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", - "text/html": "
(DGL → ADB): ('user', 'follows', 'user') (2) ▰▱▱▱▱▱▱ 0:00:00\n
\n" + "text/html": "
(DGL → ADB): user (4) ▰▱▱▱▱▱▱ 0:00:00\n
\n", + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): user (4)\u001b[0m \u001b[38;2;153;70;2m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n" }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" } ] } }, - "4ab3c113235746cab5fde158756ab420": { + "712770e675424d7eb0c8efd6c34f2012": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -5086,10 +5100,10 @@ "width": null } }, - "09e8c93741bf45acb69ba9e757107564": { + "77b31c42e914410aaea93044f1390121": { "model_module": "@jupyter-widgets/output", - "model_name": "OutputModel", "model_module_version": "1.0.0", + "model_name": "OutputModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/output", @@ -5099,24 +5113,24 @@ "_view_module": "@jupyter-widgets/output", "_view_module_version": "1.0.0", "_view_name": "OutputView", - "layout": "IPY_MODEL_d7d06973b2984eb19fa050409bf62222", + "layout": "IPY_MODEL_8349f1e6b1f34680bacd7de1a1937122", "msg_id": "", "outputs": [ { - "output_type": "display_data", "data": { - "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): ('user', 'plays', 'game') (2)\u001b[0m \u001b[38;2;153;70;2m▰▰▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", - "text/html": "
(DGL → ADB): ('user', 'plays', 'game') (2) ▰▰▱▱▱▱▱ 0:00:00\n
\n" + "text/html": "
(ADB → DGL): user ▰▱▱▱▱▱▱ 0:00:00\n
\n", + "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): user\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n" }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" } ] } }, - "d7d06973b2984eb19fa050409bf62222": { + "77c208846c1e4503bc22a5b5504f89ee": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -5165,10 +5179,37 @@ "width": null } }, - "c6cffa0a64434e56879ba2a8c9de018a": { + "7a43c4b816da4a40b0eed167a85eef22": { "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_eb376d5cf782424aaccbce31f0d3ede5", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
(ADB → DGL): game ▰▱▱▱▱▱▱ 0:00:00\n
\n", + "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): game\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "7a4db2b18c634bef932fb9b1157d4af1": { + "model_module": "@jupyter-widgets/output", "model_module_version": "1.0.0", + "model_name": "OutputModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/output", @@ -5178,24 +5219,24 @@ "_view_module": "@jupyter-widgets/output", "_view_module_version": "1.0.0", "_view_name": "OutputView", - "layout": "IPY_MODEL_0083494093574c50952dd066502a708d", + "layout": "IPY_MODEL_b5be8c1e4ab3415c9fffbb61aeb0fff3", "msg_id": "", "outputs": [ { - "output_type": "display_data", "data": { - "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): game (5)\u001b[0m \u001b[38;2;153;70;2m▰▰▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", - "text/html": "
(DGL → ADB): game (5) ▰▰▱▱▱▱▱ 0:00:00\n
\n" + "text/html": "
(ADB → DGL): follows ▰▱▱▱▱▱▱ 0:00:00\n
\n", + "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): follows\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n" }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" } ] } }, - "0083494093574c50952dd066502a708d": { + "7b5dba3f4d50466eb2071cb13548ef1b": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -5244,10 +5285,10 @@ "width": null } }, - "1dea128bde204a8fa53e094e014183fe": { + "80d19dc0d20842c3b5c7313c0ad23d24": { "model_module": "@jupyter-widgets/output", - "model_name": "OutputModel", "model_module_version": "1.0.0", + "model_name": "OutputModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/output", @@ -5257,24 +5298,24 @@ "_view_module": "@jupyter-widgets/output", "_view_module_version": "1.0.0", "_view_name": "OutputView", - "layout": "IPY_MODEL_50f8ff3637ee4fc7af8c811cd5d177be", + "layout": "IPY_MODEL_0478c90ef8234f3a8987dbe9cd3030b2", "msg_id": "", "outputs": [ { - "output_type": "display_data", "data": { - "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): topic (3)\u001b[0m \u001b[38;2;153;70;2m▰▰▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", - "text/html": "
(DGL → ADB): topic (3) ▰▰▱▱▱▱▱ 0:00:00\n
\n" + "text/html": "
(DGL → ADB): ('user', 'follows', 'topic') (2) ▰▰▱▱▱▱▱ 0:00:00\n
\n", + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): ('user', 'follows', 'topic') (2)\u001b[0m \u001b[38;2;153;70;2m▰▰▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n" }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" } ] } }, - "50f8ff3637ee4fc7af8c811cd5d177be": { + "80e69b3aa98b44e295efe3940c1146c2": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -5323,37 +5364,10 @@ "width": null } }, - "6582a9d3fe044d5380d8e918f3bc5a6d": { - "model_module": "@jupyter-widgets/output", - "model_name": "OutputModel", - "model_module_version": "1.0.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/output", - "_model_module_version": "1.0.0", - "_model_name": "OutputModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/output", - "_view_module_version": "1.0.0", - "_view_name": "OutputView", - "layout": "IPY_MODEL_40da9dd52dd6443684b990f74b6cb876", - "msg_id": "", - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): user (4)\u001b[0m \u001b[38;2;153;70;2m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", - "text/html": "
(DGL → ADB): user (4) ▰▱▱▱▱▱▱ 0:00:00\n
\n" - }, - "metadata": {} - } - ] - } - }, - "40da9dd52dd6443684b990f74b6cb876": { + "8128e6d80fcb4a8ca0a72097bb8b6521": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -5402,37 +5416,10 @@ "width": null } }, - "80d19dc0d20842c3b5c7313c0ad23d24": { - "model_module": "@jupyter-widgets/output", - "model_name": "OutputModel", - "model_module_version": "1.0.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/output", - "_model_module_version": "1.0.0", - "_model_name": "OutputModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/output", - "_view_module_version": "1.0.0", - "_view_name": "OutputView", - "layout": "IPY_MODEL_0478c90ef8234f3a8987dbe9cd3030b2", - "msg_id": "", - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): ('user', 'follows', 'topic') (2)\u001b[0m \u001b[38;2;153;70;2m▰▰▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", - "text/html": "
(DGL → ADB): ('user', 'follows', 'topic') (2) ▰▰▱▱▱▱▱ 0:00:00\n
\n" - }, - "metadata": {} - } - ] - } - }, - "0478c90ef8234f3a8987dbe9cd3030b2": { + "82f996185e8444ada5e18602e2f8e105": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -5481,37 +5468,10 @@ "width": null } }, - "c61e3997250d4f93a8e0494db674892d": { - "model_module": "@jupyter-widgets/output", - "model_name": "OutputModel", - "model_module_version": "1.0.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/output", - "_model_module_version": "1.0.0", - "_model_name": "OutputModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/output", - "_view_module_version": "1.0.0", - "_view_name": "OutputView", - "layout": "IPY_MODEL_97e7543f202749c197515a9c5c79adbe", - "msg_id": "", - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): ('user', 'follows', 'user') (2)\u001b[0m \u001b[38;2;153;70;2m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", - "text/html": "
(DGL → ADB): ('user', 'follows', 'user') (2) ▰▱▱▱▱▱▱ 0:00:00\n
\n" - }, - "metadata": {} - } - ] - } - }, - "97e7543f202749c197515a9c5c79adbe": { + "8349f1e6b1f34680bacd7de1a1937122": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -5560,37 +5520,10 @@ "width": null } }, - "88e83ddc1ca1464291e1631b8fced847": { - "model_module": "@jupyter-widgets/output", - "model_name": "OutputModel", - "model_module_version": "1.0.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/output", - "_model_module_version": "1.0.0", - "_model_name": "OutputModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/output", - "_view_module_version": "1.0.0", - "_view_name": "OutputView", - "layout": "IPY_MODEL_a9c14a3f339445338119631c8e56ff68", - "msg_id": "", - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): ('user', 'plays', 'game') (2)\u001b[0m \u001b[38;2;153;70;2m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", - "text/html": "
(DGL → ADB): ('user', 'plays', 'game') (2) ▰▱▱▱▱▱▱ 0:00:00\n
\n" - }, - "metadata": {} - } - ] - } - }, - "a9c14a3f339445338119631c8e56ff68": { + "841ce4f5d391457e858c3c48185e259d": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -5639,10 +5572,10 @@ "width": null } }, - "9403e71c2bbe46bd9e6d49d555264554": { + "8444e147be8f44aba06ec1f8a880104e": { "model_module": "@jupyter-widgets/output", - "model_name": "OutputModel", "model_module_version": "1.0.0", + "model_name": "OutputModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/output", @@ -5652,24 +5585,24 @@ "_view_module": "@jupyter-widgets/output", "_view_module_version": "1.0.0", "_view_name": "OutputView", - "layout": "IPY_MODEL_34c4ef0c4aa5454893c0f0fa35902fbd", + "layout": "IPY_MODEL_80e69b3aa98b44e295efe3940c1146c2", "msg_id": "", "outputs": [ { - "output_type": "display_data", "data": { - "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): game\u001b[0m \u001b[38;2;252;253;252m▰▰▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", - "text/html": "
(ADB → DGL): game ▰▰▱▱▱▱▱ 0:00:00\n
\n" + "text/html": "
(DGL → ADB): ('user', 'follows', 'user') (2) ▰▱▱▱▱▱▱ 0:00:00\n
\n", + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): ('user', 'follows', 'user') (2)\u001b[0m \u001b[38;2;153;70;2m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n" }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" } ] } }, - "34c4ef0c4aa5454893c0f0fa35902fbd": { + "848230df62434c77b5b18f9a43e2d14f": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -5718,37 +5651,10 @@ "width": null } }, - "1690574b32cc4b48a8b87520458d5066": { - "model_module": "@jupyter-widgets/output", - "model_name": "OutputModel", - "model_module_version": "1.0.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/output", - "_model_module_version": "1.0.0", - "_model_name": "OutputModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/output", - "_view_module_version": "1.0.0", - "_view_name": "OutputView", - "layout": "IPY_MODEL_a9edf4f85a4a4504b155608bb740178a", - "msg_id": "", - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): topic\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", - "text/html": "
(ADB → DGL): topic ▰▱▱▱▱▱▱ 0:00:00\n
\n" - }, - "metadata": {} - } - ] - } - }, - "a9edf4f85a4a4504b155608bb740178a": { + "87d9c9de620847f48b4088e8577cd653": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -5797,10 +5703,37 @@ "width": null } }, - "fd2db543279f4a13ab6376b9c23160e0": { + "88e83ddc1ca1464291e1631b8fced847": { "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_a9c14a3f339445338119631c8e56ff68", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
(DGL → ADB): ('user', 'plays', 'game') (2) ▰▱▱▱▱▱▱ 0:00:00\n
\n", + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): ('user', 'plays', 'game') (2)\u001b[0m \u001b[38;2;153;70;2m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "8bf075c6f7834d3fa905b7ddc37cf128": { + "model_module": "@jupyter-widgets/output", "model_module_version": "1.0.0", + "model_name": "OutputModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/output", @@ -5810,24 +5743,24 @@ "_view_module": "@jupyter-widgets/output", "_view_module_version": "1.0.0", "_view_name": "OutputView", - "layout": "IPY_MODEL_5c310145af4f4c90b659dee771185ab6", + "layout": "IPY_MODEL_b080f26fe35241fb9cca48e97bc9ef0c", "msg_id": "", "outputs": [ { - "output_type": "display_data", "data": { - "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): user\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", - "text/html": "
(ADB → DGL): user ▰▱▱▱▱▱▱ 0:00:00\n
\n" + "text/html": "
(DGL → ADB): ('user', 'plays', 'game') (2) ▰▱▱▱▱▱▱ 0:00:00\n
\n", + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): ('user', 'plays', 'game') (2)\u001b[0m \u001b[38;2;153;70;2m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n" }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" } ] } }, - "5c310145af4f4c90b659dee771185ab6": { + "903622e283524c7f89635599920c2b14": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -5876,10 +5809,64 @@ "width": null } }, - "31a9f782f36d407f8cc42b19679c5c2c": { + "9403e71c2bbe46bd9e6d49d555264554": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_34c4ef0c4aa5454893c0f0fa35902fbd", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
(ADB → DGL): game ▰▰▱▱▱▱▱ 0:00:00\n
\n", + "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): game\u001b[0m \u001b[38;2;252;253;252m▰▰▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "968020b1388e4883843575d9198af1cd": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_f1a08470110e4099af2a3d4cf4d0f956", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
(DGL → ADB): topic (3) ▰▰▱▱▱▱▱ 0:00:00\n
\n", + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): topic (3)\u001b[0m \u001b[38;2;153;70;2m▰▰▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "96e57d98afce44cd8269204dd19ff6e0": { "model_module": "@jupyter-widgets/output", - "model_name": "OutputModel", "model_module_version": "1.0.0", + "model_name": "OutputModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/output", @@ -5889,24 +5876,24 @@ "_view_module": "@jupyter-widgets/output", "_view_module_version": "1.0.0", "_view_name": "OutputView", - "layout": "IPY_MODEL_9fd8d07a43cd4c06a2d448047ede846c", + "layout": "IPY_MODEL_da43ef4a8c6a41f9bda153a0cd14c2d7", "msg_id": "", "outputs": [ { - "output_type": "display_data", "data": { - "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): follows\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", - "text/html": "
(ADB → DGL): follows ▰▱▱▱▱▱▱ 0:00:00\n
\n" + "text/html": "
(DGL → ADB): topic (3) ▰▰▱▱▱▱▱ 0:00:00\n
\n", + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): topic (3)\u001b[0m \u001b[38;2;153;70;2m▰▰▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n" }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" } ] } }, - "9fd8d07a43cd4c06a2d448047ede846c": { + "97e7543f202749c197515a9c5c79adbe": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -5955,10 +5942,10 @@ "width": null } }, - "2c2900512b5244d3a0fcaf7409446d0e": { + "987bf80aee4b4b97bfad1699f8384af8": { "model_module": "@jupyter-widgets/output", - "model_name": "OutputModel", "model_module_version": "1.0.0", + "model_name": "OutputModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/output", @@ -5968,24 +5955,24 @@ "_view_module": "@jupyter-widgets/output", "_view_module_version": "1.0.0", "_view_name": "OutputView", - "layout": "IPY_MODEL_c5d064af7f4a49dca6716f98d052e951", + "layout": "IPY_MODEL_4ab3c113235746cab5fde158756ab420", "msg_id": "", "outputs": [ { - "output_type": "display_data", "data": { - "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): plays\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", - "text/html": "
(ADB → DGL): plays ▰▱▱▱▱▱▱ 0:00:00\n
\n" + "text/html": "
(DGL → ADB): ('user', 'follows', 'user') (2) ▰▱▱▱▱▱▱ 0:00:00\n
\n", + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): ('user', 'follows', 'user') (2)\u001b[0m \u001b[38;2;153;70;2m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n" }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" } ] } }, - "c5d064af7f4a49dca6716f98d052e951": { + "9968f928e28147f7a0956aff8412a608": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -6034,10 +6021,10 @@ "width": null } }, - "f01997b9b43d43368d632e26ba9732ad": { + "99bbe81a24db49ff9352987fd97649cd": { "model_module": "@jupyter-widgets/output", - "model_name": "OutputModel", "model_module_version": "1.0.0", + "model_name": "OutputModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/output", @@ -6047,24 +6034,24 @@ "_view_module": "@jupyter-widgets/output", "_view_module_version": "1.0.0", "_view_name": "OutputView", - "layout": "IPY_MODEL_14b29dc1f2b8454fa9acc1d79dcd4870", + "layout": "IPY_MODEL_21e50aa61c3d4de19b5cc0bbe27d53c9", "msg_id": "", "outputs": [ { - "output_type": "display_data", "data": { - "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): user\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", - "text/html": "
(ADB → DGL): user ▰▱▱▱▱▱▱ 0:00:00\n
\n" + "text/html": "
(DGL → ADB): user (4) ▰▰▱▱▱▱▱ 0:00:00\n
\n", + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): user (4)\u001b[0m \u001b[38;2;153;70;2m▰▰▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n" }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" } ] } }, - "14b29dc1f2b8454fa9acc1d79dcd4870": { + "99e6613c4187459396eea503453934cb": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -6113,37 +6100,10 @@ "width": null } }, - "5f5c119141a24cab907ceb2da27e0244": { - "model_module": "@jupyter-widgets/output", - "model_name": "OutputModel", - "model_module_version": "1.0.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/output", - "_model_module_version": "1.0.0", - "_model_name": "OutputModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/output", - "_view_module_version": "1.0.0", - "_view_name": "OutputView", - "layout": "IPY_MODEL_46b88027e41a43578ebcc47513dd6911", - "msg_id": "", - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): topic\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", - "text/html": "
(ADB → DGL): topic ▰▱▱▱▱▱▱ 0:00:00\n
\n" - }, - "metadata": {} - } - ] - } - }, - "46b88027e41a43578ebcc47513dd6911": { + "9b2b3abbe2c04af0bc232c9b16bfd90d": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -6192,37 +6152,10 @@ "width": null } }, - "7a43c4b816da4a40b0eed167a85eef22": { - "model_module": "@jupyter-widgets/output", - "model_name": "OutputModel", - "model_module_version": "1.0.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/output", - "_model_module_version": "1.0.0", - "_model_name": "OutputModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/output", - "_view_module_version": "1.0.0", - "_view_name": "OutputView", - "layout": "IPY_MODEL_eb376d5cf782424aaccbce31f0d3ede5", - "msg_id": "", - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): game\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", - "text/html": "
(ADB → DGL): game ▰▱▱▱▱▱▱ 0:00:00\n
\n" - }, - "metadata": {} - } - ] - } - }, - "eb376d5cf782424aaccbce31f0d3ede5": { + "9e1eb071f0b24cb6a8d206477b10b831": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -6271,37 +6204,10 @@ "width": null } }, - "7a4db2b18c634bef932fb9b1157d4af1": { - "model_module": "@jupyter-widgets/output", - "model_name": "OutputModel", - "model_module_version": "1.0.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/output", - "_model_module_version": "1.0.0", - "_model_name": "OutputModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/output", - "_view_module_version": "1.0.0", - "_view_name": "OutputView", - "layout": "IPY_MODEL_b5be8c1e4ab3415c9fffbb61aeb0fff3", - "msg_id": "", - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): follows\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", - "text/html": "
(ADB → DGL): follows ▰▱▱▱▱▱▱ 0:00:00\n
\n" - }, - "metadata": {} - } - ] - } - }, - "b5be8c1e4ab3415c9fffbb61aeb0fff3": { + "9fd8d07a43cd4c06a2d448047ede846c": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -6350,37 +6256,10 @@ "width": null } }, - "4e085418ce1b41e1bc24ad6acea92fc4": { - "model_module": "@jupyter-widgets/output", - "model_name": "OutputModel", - "model_module_version": "1.0.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/output", - "_model_module_version": "1.0.0", - "_model_name": "OutputModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/output", - "_view_module_version": "1.0.0", - "_view_name": "OutputView", - "layout": "IPY_MODEL_7b5dba3f4d50466eb2071cb13548ef1b", - "msg_id": "", - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): plays\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", - "text/html": "
(ADB → DGL): plays ▰▱▱▱▱▱▱ 0:00:00\n
\n" - }, - "metadata": {} - } - ] - } - }, - "7b5dba3f4d50466eb2071cb13548ef1b": { + "a9c14a3f339445338119631c8e56ff68": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -6429,37 +6308,10 @@ "width": null } }, - "77b31c42e914410aaea93044f1390121": { - "model_module": "@jupyter-widgets/output", - "model_name": "OutputModel", - "model_module_version": "1.0.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/output", - "_model_module_version": "1.0.0", - "_model_name": "OutputModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/output", - "_view_module_version": "1.0.0", - "_view_name": "OutputView", - "layout": "IPY_MODEL_8349f1e6b1f34680bacd7de1a1937122", - "msg_id": "", - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): user\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", - "text/html": "
(ADB → DGL): user ▰▱▱▱▱▱▱ 0:00:00\n
\n" - }, - "metadata": {} - } - ] - } - }, - "8349f1e6b1f34680bacd7de1a1937122": { + "a9edf4f85a4a4504b155608bb740178a": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -6508,37 +6360,10 @@ "width": null } }, - "38aaa492d75c48f38de60ea0cc5fa93f": { - "model_module": "@jupyter-widgets/output", - "model_name": "OutputModel", - "model_module_version": "1.0.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/output", - "_model_module_version": "1.0.0", - "_model_name": "OutputModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/output", - "_view_module_version": "1.0.0", - "_view_name": "OutputView", - "layout": "IPY_MODEL_63845b04ecbc40de8bcc017d754ac907", - "msg_id": "", - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): game\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", - "text/html": "
(ADB → DGL): game ▰▱▱▱▱▱▱ 0:00:00\n
\n" - }, - "metadata": {} - } - ] - } - }, - "63845b04ecbc40de8bcc017d754ac907": { + "b080f26fe35241fb9cca48e97bc9ef0c": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -6587,37 +6412,10 @@ "width": null } }, - "4b7f5f21b98b4c5d8475929bf1f01a65": { - "model_module": "@jupyter-widgets/output", - "model_name": "OutputModel", - "model_module_version": "1.0.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/output", - "_model_module_version": "1.0.0", - "_model_name": "OutputModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/output", - "_view_module_version": "1.0.0", - "_view_name": "OutputView", - "layout": "IPY_MODEL_404a19cadaca4b85a957cad231b73cbb", - "msg_id": "", - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): topic\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", - "text/html": "
(ADB → DGL): topic ▰▱▱▱▱▱▱ 0:00:00\n
\n" - }, - "metadata": {} - } - ] - } - }, - "404a19cadaca4b85a957cad231b73cbb": { + "b5be8c1e4ab3415c9fffbb61aeb0fff3": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -6668,8 +6466,8 @@ }, "bd8b6caa7d2d4df1a99b1870ecc0ae46": { "model_module": "@jupyter-widgets/output", - "model_name": "OutputModel", "model_module_version": "1.0.0", + "model_name": "OutputModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/output", @@ -6683,20 +6481,20 @@ "msg_id": "", "outputs": [ { - "output_type": "display_data", "data": { - "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): plays\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", - "text/html": "
(ADB → DGL): plays ▰▱▱▱▱▱▱ 0:00:00\n
\n" + "text/html": "
(ADB → DGL): plays ▰▱▱▱▱▱▱ 0:00:00\n
\n", + "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): plays\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n" }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" } ] } }, - "13d0f7da120b40b993ce3c0b257d5788": { + "c5d064af7f4a49dca6716f98d052e951": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -6745,10 +6543,37 @@ "width": null } }, - "ea88ab86e9774ed78ea62daa6e338637": { + "c61e3997250d4f93a8e0494db674892d": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_97e7543f202749c197515a9c5c79adbe", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
(DGL → ADB): ('user', 'follows', 'user') (2) ▰▱▱▱▱▱▱ 0:00:00\n
\n", + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): ('user', 'follows', 'user') (2)\u001b[0m \u001b[38;2;153;70;2m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "c6cffa0a64434e56879ba2a8c9de018a": { "model_module": "@jupyter-widgets/output", - "model_name": "OutputModel", "model_module_version": "1.0.0", + "model_name": "OutputModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/output", @@ -6758,24 +6583,24 @@ "_view_module": "@jupyter-widgets/output", "_view_module_version": "1.0.0", "_view_name": "OutputView", - "layout": "IPY_MODEL_712770e675424d7eb0c8efd6c34f2012", + "layout": "IPY_MODEL_0083494093574c50952dd066502a708d", "msg_id": "", "outputs": [ { - "output_type": "display_data", "data": { - "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): follows\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", - "text/html": "
(ADB → DGL): follows ▰▱▱▱▱▱▱ 0:00:00\n
\n" + "text/html": "
(DGL → ADB): game (5) ▰▰▱▱▱▱▱ 0:00:00\n
\n", + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): game (5)\u001b[0m \u001b[38;2;153;70;2m▰▰▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n" }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" } ] } }, - "712770e675424d7eb0c8efd6c34f2012": { + "c7e222474ff445fe86e4e599848b2ae2": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -6824,10 +6649,10 @@ "width": null } }, - "2b13e46a722e4be384fad74e1b3e6461": { + "cb8167f00277413eaaa2ad6e0e162fab": { "model_module": "@jupyter-widgets/output", - "model_name": "OutputModel", "model_module_version": "1.0.0", + "model_name": "OutputModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/output", @@ -6837,24 +6662,24 @@ "_view_module": "@jupyter-widgets/output", "_view_module_version": "1.0.0", "_view_name": "OutputView", - "layout": "IPY_MODEL_848230df62434c77b5b18f9a43e2d14f", + "layout": "IPY_MODEL_8128e6d80fcb4a8ca0a72097bb8b6521", "msg_id": "", "outputs": [ { - "output_type": "display_data", "data": { - "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): Movies\u001b[0m \u001b[38;2;252;253;252m▰▰▰▰▰▰▰\u001b[0m \u001b[33m0:00:00\u001b[0m\n", - "text/html": "
(ADB → DGL): Movies ▰▰▰▰▰▰▰ 0:00:00\n
\n" + "text/html": "
(DGL → ADB): ('user', 'follows', 'topic') (2) ▰▱▱▱▱▱▱ 0:00:00\n
\n", + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): ('user', 'follows', 'topic') (2)\u001b[0m \u001b[38;2;153;70;2m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n" }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" } ] } }, - "848230df62434c77b5b18f9a43e2d14f": { + "d20843bfa9064d56b37aaea011789a26": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -6903,37 +6728,10 @@ "width": null } }, - "59405e2d0c164d5b965680cc9d9cd8f3": { - "model_module": "@jupyter-widgets/output", - "model_name": "OutputModel", - "model_module_version": "1.0.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/output", - "_model_module_version": "1.0.0", - "_model_name": "OutputModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/output", - "_view_module_version": "1.0.0", - "_view_name": "OutputView", - "layout": "IPY_MODEL_2a380fe111794c3a951cdafa4a2bf0b3", - "msg_id": "", - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): Users\u001b[0m \u001b[38;2;252;253;252m▰▰▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", - "text/html": "
(ADB → DGL): Users ▰▰▱▱▱▱▱ 0:00:00\n
\n" - }, - "metadata": {} - } - ] - } - }, - "2a380fe111794c3a951cdafa4a2bf0b3": { + "d7d06973b2984eb19fa050409bf62222": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -6982,37 +6780,10 @@ "width": null } }, - "3d081c88cd2945fa9534de722669ada9": { - "model_module": "@jupyter-widgets/output", - "model_name": "OutputModel", - "model_module_version": "1.0.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/output", - "_model_module_version": "1.0.0", - "_model_name": "OutputModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/output", - "_view_module_version": "1.0.0", - "_view_name": "OutputView", - "layout": "IPY_MODEL_82f996185e8444ada5e18602e2f8e105", - "msg_id": "", - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): Ratings\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:06\u001b[0m\n", - "text/html": "
(ADB → DGL): Ratings ▰▱▱▱▱▱▱ 0:00:06\n
\n" - }, - "metadata": {} - } - ] - } - }, - "82f996185e8444ada5e18602e2f8e105": { + "da43ef4a8c6a41f9bda153a0cd14c2d7": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -7061,37 +6832,10 @@ "width": null } }, - "e4b7b35461e848f5819b9f38d67ee652": { - "model_module": "@jupyter-widgets/output", - "model_name": "OutputModel", - "model_module_version": "1.0.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/output", - "_model_module_version": "1.0.0", - "_model_name": "OutputModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/output", - "_view_module_version": "1.0.0", - "_view_name": "OutputView", - "layout": "IPY_MODEL_9968f928e28147f7a0956aff8412a608", - "msg_id": "", - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): user\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", - "text/html": "
(ADB → DGL): user ▰▱▱▱▱▱▱ 0:00:00\n
\n" - }, - "metadata": {} - } - ] - } - }, - "9968f928e28147f7a0956aff8412a608": { + "dd2376f84c794b4989f385a5bb147bd8": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -7140,10 +6884,64 @@ "width": null } }, - "54801c3c74494fe8bf9e2a7fb64bde48": { + "e4b7b35461e848f5819b9f38d67ee652": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_9968f928e28147f7a0956aff8412a608", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
(ADB → DGL): user ▰▱▱▱▱▱▱ 0:00:00\n
\n", + "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): user\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "ea5e9803c5de4d2bbb48782069b9829b": { "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_3f633be94c7d466ea40571e805a76948", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
(DGL → ADB): game (5) ▰▱▱▱▱▱▱ 0:00:00\n
\n", + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): game (5)\u001b[0m \u001b[38;2;153;70;2m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "ea88ab86e9774ed78ea62daa6e338637": { + "model_module": "@jupyter-widgets/output", "model_module_version": "1.0.0", + "model_name": "OutputModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/output", @@ -7153,24 +6951,24 @@ "_view_module": "@jupyter-widgets/output", "_view_module_version": "1.0.0", "_view_name": "OutputView", - "layout": "IPY_MODEL_903622e283524c7f89635599920c2b14", + "layout": "IPY_MODEL_712770e675424d7eb0c8efd6c34f2012", "msg_id": "", "outputs": [ { - "output_type": "display_data", "data": { - "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): game\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", - "text/html": "
(ADB → DGL): game ▰▱▱▱▱▱▱ 0:00:00\n
\n" + "text/html": "
(ADB → DGL): follows ▰▱▱▱▱▱▱ 0:00:00\n
\n", + "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): follows\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n" }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" } ] } }, - "903622e283524c7f89635599920c2b14": { + "eb376d5cf782424aaccbce31f0d3ede5": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -7219,10 +7017,64 @@ "width": null } }, - "f0d4515c88a44775be59c4e1a0b3c60a": { + "ec7b8b0b853f463fa079dda845891391": { "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_dd2376f84c794b4989f385a5bb147bd8", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
(DGL → ADB): ('user', 'plays', 'game') (2) ▰▱▱▱▱▱▱ 0:00:00\n
\n", + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): ('user', 'plays', 'game') (2)\u001b[0m \u001b[38;2;153;70;2m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "f01997b9b43d43368d632e26ba9732ad": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_14b29dc1f2b8454fa9acc1d79dcd4870", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
(ADB → DGL): user ▰▱▱▱▱▱▱ 0:00:00\n
\n", + "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): user\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "f0d4515c88a44775be59c4e1a0b3c60a": { + "model_module": "@jupyter-widgets/output", "model_module_version": "1.0.0", + "model_name": "OutputModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/output", @@ -7236,20 +7088,20 @@ "msg_id": "", "outputs": [ { - "output_type": "display_data", "data": { - "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): plays\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n", - "text/html": "
(ADB → DGL): plays ▰▱▱▱▱▱▱ 0:00:00\n
\n" + "text/html": "
(ADB → DGL): plays ▰▱▱▱▱▱▱ 0:00:00\n
\n", + "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): plays\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n" }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" } ] } }, - "9e1eb071f0b24cb6a8d206477b10b831": { + "f1a08470110e4099af2a3d4cf4d0f956": { "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", "model_module_version": "1.2.0", + "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", @@ -7297,10 +7149,64 @@ "visibility": null, "width": null } + }, + "f9fdfe6ce44e4e1c8f513f82efca3e0d": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_9b2b3abbe2c04af0bc232c9b16bfd90d", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
(DGL → ADB): ('user', 'follows', 'topic') (2) ▰▱▱▱▱▱▱ 0:00:00\n
\n", + "text/plain": "\u001b[38;2;151;196;35m(DGL → ADB): ('user', 'follows', 'topic') (2)\u001b[0m \u001b[38;2;153;70;2m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "fd2db543279f4a13ab6376b9c23160e0": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_5c310145af4f4c90b659dee771185ab6", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
(ADB → DGL): user ▰▱▱▱▱▱▱ 0:00:00\n
\n", + "text/plain": "\u001b[38;2;49;155;245m(ADB → DGL): user\u001b[0m \u001b[38;2;252;253;252m▰▱▱▱▱▱▱\u001b[0m \u001b[33m0:00:00\u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } } } } }, "nbformat": 4, "nbformat_minor": 0 -} \ No newline at end of file +} diff --git a/setup.py b/setup.py index b881f7b..0b56dea 100644 --- a/setup.py +++ b/setup.py @@ -20,9 +20,9 @@ "requests>=2.27.1", "rich>=12.5.1", "pandas>=1.3.5", - "dgl>=0.6.1", + "dgl~=1.0", "torch>=1.12.0", - "python-arango==7.6.0", + "python-arango~=7.6", "setuptools>=45", ], extras_require={ From 272e92fe8548068cc816b1ac787637e56e57cb05 Mon Sep 17 00:00:00 2001 From: Anthony Mahanna Date: Tue, 10 Oct 2023 23:26:03 -0400 Subject: [PATCH 32/37] fix: PyG typos --- examples/ArangoDB_DGL_Adapter.ipynb | 6 +++--- examples/outputs/ArangoDB_DGL_Adapter_output.ipynb | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/examples/ArangoDB_DGL_Adapter.ipynb b/examples/ArangoDB_DGL_Adapter.ipynb index de2a7ce..7ace981 100644 --- a/examples/ArangoDB_DGL_Adapter.ipynb +++ b/examples/ArangoDB_DGL_Adapter.ipynb @@ -625,7 +625,7 @@ "\n", "Notes\n", "* The `name` parameter is used to name your ArangoDB graph.\n", - "* The `metagraph` parameter is an optional object mapping the PyG keys of the node & edge data to strings, list of strings, or user-defined functions." + "* The `metagraph` parameter is an optional object mapping the DGL keys of the node & edge data to strings, list of strings, or user-defined functions." ] }, { @@ -754,7 +754,7 @@ "\n", "Notes\n", "* The `name` parameter is used to name your ArangoDB graph.\n", - "* The `ADBDGL_Controller` is an optional user-defined class for controlling how nodes & edges are handled when transitioning from PyG to ArangoDB. **It is interpreted as the alternative to the `metagraph` parameter.**" + "* The `ADBDGL_Controller` is an optional user-defined class for controlling how nodes & edges are handled when transitioning from DGL to ArangoDB. **It is interpreted as the alternative to the `metagraph` parameter.**" ] }, { @@ -1126,7 +1126,7 @@ "\n", "Notes\n", "* The `name` parameter is purely for documentation purposes in this case.\n", - "* The `metagraph` parameter is an object defining vertex & edge collections to import to DGL, along with collection-level specifications to indicate which ArangoDB attributes will become PyG features/labels. In this example, we rely on user-defined encoders to build PyG-ready tensors (i.e feature matrices) from ArangoDB attributes. See https://pytorch-geometric.readthedocs.io/en/latest/notes/load_csv.html for an example on using encoders." + "* The `metagraph` parameter is an object defining vertex & edge collections to import to DGL, along with collection-level specifications to indicate which ArangoDB attributes will become DGL features/labels. In this example, we rely on user-defined encoders to build DGL-ready tensors (i.e feature matrices) from ArangoDB attributes. See https://pytorch-geometric.readthedocs.io/en/latest/notes/load_csv.html for an example on using encoders." ] }, { diff --git a/examples/outputs/ArangoDB_DGL_Adapter_output.ipynb b/examples/outputs/ArangoDB_DGL_Adapter_output.ipynb index 7987a54..0dc3cbd 100644 --- a/examples/outputs/ArangoDB_DGL_Adapter_output.ipynb +++ b/examples/outputs/ArangoDB_DGL_Adapter_output.ipynb @@ -1131,7 +1131,7 @@ "\n", "Notes\n", "* The `name` parameter is used to name your ArangoDB graph.\n", - "* The `metagraph` parameter is an optional object mapping the PyG keys of the node & edge data to strings, list of strings, or user-defined functions." + "* The `metagraph` parameter is an optional object mapping the DGL keys of the node & edge data to strings, list of strings, or user-defined functions." ] }, { @@ -1513,7 +1513,7 @@ "\n", "Notes\n", "* The `name` parameter is used to name your ArangoDB graph.\n", - "* The `ADBDGL_Controller` is an optional user-defined class for controlling how nodes & edges are handled when transitioning from PyG to ArangoDB. **It is interpreted as the alternative to the `metagraph` parameter.**" + "* The `ADBDGL_Controller` is an optional user-defined class for controlling how nodes & edges are handled when transitioning from DGL to ArangoDB. **It is interpreted as the alternative to the `metagraph` parameter.**" ] }, { @@ -3018,7 +3018,7 @@ "\n", "Notes\n", "* The `name` parameter is purely for documentation purposes in this case.\n", - "* The `metagraph` parameter is an object defining vertex & edge collections to import to DGL, along with collection-level specifications to indicate which ArangoDB attributes will become PyG features/labels. In this example, we rely on user-defined encoders to build PyG-ready tensors (i.e feature matrices) from ArangoDB attributes. See https://pytorch-geometric.readthedocs.io/en/latest/notes/load_csv.html for an example on using encoders." + "* The `metagraph` parameter is an object defining vertex & edge collections to import to DGL, along with collection-level specifications to indicate which ArangoDB attributes will become DGL features/labels. In this example, we rely on user-defined encoders to build DGL-ready tensors (i.e feature matrices) from ArangoDB attributes. See https://pytorch-geometric.readthedocs.io/en/latest/notes/load_csv.html for an example on using encoders." ] }, { From fd787bcbb3a48ecbc1ff146c44d7db1ce328d4ab Mon Sep 17 00:00:00 2001 From: Anthony Mahanna Date: Tue, 10 Oct 2023 23:28:01 -0400 Subject: [PATCH 33/37] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1660047..8cd5489 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,7 @@ The ArangoDB-DGL Adapter exports Graphs from ArangoDB, the multi-model database for graph & beyond, into Deep Graph Library (DGL), a python package for graph neural networks, and vice-versa. +Note: The ArangoDB-DGL Adapter currently only supports the use of PyTorch as the [DGL backend](https://docs.dgl.ai/en/0.8.x/install/#backends). Support for MXNet and Tensorflow will be added in the future. ## About DGL From b470e85098bbe47d46fe1dbfc695c88809907ffe Mon Sep 17 00:00:00 2001 From: Anthony Mahanna Date: Tue, 10 Oct 2023 23:29:31 -0400 Subject: [PATCH 34/37] fix: typo --- adbdgl_adapter/adapter.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/adbdgl_adapter/adapter.py b/adbdgl_adapter/adapter.py index 847a159..ac9ff1a 100644 --- a/adbdgl_adapter/adapter.py +++ b/adbdgl_adapter/adapter.py @@ -330,7 +330,7 @@ def udf_v1_x(v1_df): if not data_dict: # pragma: no cover msg = f""" - Can't Create the DGLgraph: no complete edge types found. + Can't create the DGL graph: no complete edge types found. The following edge types were skipped due to missing vertex collection specifications: {et_blacklist} """ From 2178ac0d55892ccd215b0620bdd0748c887421fe Mon Sep 17 00:00:00 2001 From: Anthony Mahanna <43019056+aMahanna@users.noreply.github.com> Date: Thu, 26 Oct 2023 08:09:55 -0400 Subject: [PATCH 35/37] DGL Refactor Updates (#31) * initial commit * bump * cleanup workflows * Update build.yml * Update build.yml * parameter renaming, new `use_async` param * update release action --- .github/workflows/analyze.yml | 2 +- .github/workflows/build.yml | 24 +- .github/workflows/release.yml | 70 +-- adbdgl_adapter/abc.py | 10 +- adbdgl_adapter/adapter.py | 1062 +++++++++++++++++++++------------ adbdgl_adapter/utils.py | 41 +- tests/test_adapter.py | 6 +- 7 files changed, 759 insertions(+), 456 deletions(-) diff --git a/.github/workflows/analyze.yml b/.github/workflows/analyze.yml index 25ddf32..c4c5db7 100644 --- a/.github/workflows/analyze.yml +++ b/.github/workflows/analyze.yml @@ -37,7 +37,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v2 + uses: actions/checkout@v4 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d6b1742..bc3f9ff 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,9 +1,8 @@ name: build on: workflow_dispatch: - push: - branches: [ master ] pull_request: + push: branches: [ master ] env: PACKAGE_DIR: adbdgl_adapter @@ -16,31 +15,44 @@ jobs: python: ["3.8", "3.9", "3.10", "3.11"] name: Python ${{ matrix.python }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 + - name: Setup Python ${{ matrix.python }} - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: python-version: ${{ matrix.python }} + cache: 'pip' + cache-dependency-path: setup.py + - name: Set up ArangoDB Instance via Docker - run: docker create --name adb -p 8529:8529 -e ARANGO_ROOT_PASSWORD= arangodb/arangodb:3.9.1 + run: docker create --name adb -p 8529:8529 -e ARANGO_ROOT_PASSWORD= arangodb/arangodb + - name: Start ArangoDB Instance run: docker start adb + - name: Setup pip run: python -m pip install --upgrade pip setuptools wheel + - name: Install packages run: pip install .[dev] + - name: Run black run: black --check --verbose --diff --color ${{env.PACKAGE_DIR}} ${{env.TESTS_DIR}} + - name: Run flake8 run: flake8 ${{env.PACKAGE_DIR}} ${{env.TESTS_DIR}} + - name: Run isort run: isort --check --profile=black ${{env.PACKAGE_DIR}} ${{env.TESTS_DIR}} + - name: Run mypy run: mypy ${{env.PACKAGE_DIR}} ${{env.TESTS_DIR}} + - name: Run pytest run: pytest --cov=${{env.PACKAGE_DIR}} --cov-report xml --cov-report term-missing -v --color=yes --no-cov-on-fail --code-highlight=yes + - name: Publish to coveralls.io - if: matrix.python == '3.8' + if: matrix.python == '3.10' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: coveralls --service=github \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 553150f..ac040fc 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -3,76 +3,34 @@ on: workflow_dispatch: release: types: [published] -env: - PACKAGE_DIR: adbdgl_adapter - TESTS_DIR: tests jobs: - build: - runs-on: ubuntu-latest - strategy: - matrix: - python: ["3.8", "3.9", "3.10", "3.11"] - name: Python ${{ matrix.python }} - steps: - - uses: actions/checkout@v2 - - name: Setup Python ${{ matrix.python }} - uses: actions/setup-python@v2 - with: - python-version: ${{ matrix.python }} - - name: Set up ArangoDB Instance via Docker - run: docker create --name adb -p 8529:8529 -e ARANGO_ROOT_PASSWORD= arangodb/arangodb:3.9.1 - - name: Start ArangoDB Instance - run: docker start adb - - name: Setup pip - run: python -m pip install --upgrade pip setuptools wheel - - name: Install packages - run: pip install .[dev] - - name: Run black - run: black --check --verbose --diff --color ${{env.PACKAGE_DIR}} ${{env.TESTS_DIR}} - - name: Run flake8 - run: flake8 ${{env.PACKAGE_DIR}} ${{env.TESTS_DIR}} - - name: Run isort - run: isort --check --profile=black ${{env.PACKAGE_DIR}} ${{env.TESTS_DIR}} - - name: Run mypy - run: mypy ${{env.PACKAGE_DIR}} ${{env.TESTS_DIR}} - - name: Run pytest - run: pytest --cov=${{env.PACKAGE_DIR}} --cov-report xml --cov-report term-missing -v --color=yes --no-cov-on-fail --code-highlight=yes - - name: Publish to coveralls.io - if: matrix.python == '3.8' - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: coveralls --service=github - release: - needs: build runs-on: ubuntu-latest name: Release package steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Fetch complete history for all tags and branches run: git fetch --prune --unshallow - - name: Setup python - uses: actions/setup-python@v2 + - name: Setup Python + uses: actions/setup-python@v4 with: - python-version: "3.8" + python-version: "3.10" - name: Install release packages run: pip install setuptools wheel twine setuptools-scm[toml] - - name: Install dependencies - run: pip install .[dev] - - name: Build distribution run: python setup.py sdist bdist_wheel - - name: Publish to PyPI Test + - name: Publish to Test PyPi env: TWINE_USERNAME: __token__ TWINE_PASSWORD: ${{ secrets.TWINE_PASSWORD_TEST }} run: twine upload --repository testpypi dist/* #--skip-existing - - name: Publish to PyPI + + - name: Publish to PyPi env: TWINE_USERNAME: __token__ TWINE_PASSWORD: ${{ secrets.TWINE_PASSWORD }} @@ -83,7 +41,7 @@ jobs: runs-on: ubuntu-latest name: Update Changelog steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 with: fetch-depth: 0 @@ -95,10 +53,10 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - name: Setup python - uses: actions/setup-python@v2 + - name: Setup Python + uses: actions/setup-python@v4 with: - python-version: "3.8" + python-version: "3.10" - name: Install release packages run: pip install wheel gitchangelog pystache @@ -110,12 +68,12 @@ jobs: run: gitchangelog ${{env.VERSION}} > CHANGELOG.md - name: Make commit for auto-generated changelog - uses: EndBug/add-and-commit@v7 + uses: EndBug/add-and-commit@v9 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: add: "CHANGELOG.md" - branch: actions/changelog + new_branch: actions/changelog message: "!gitchangelog" - name: Create pull request for the auto generated changelog @@ -128,4 +86,4 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Alert developer of open PR - run: echo "Changelog $PR_URL is ready to be merged by developer." \ No newline at end of file + run: echo "Changelog $PR_URL is ready to be merged by developer." diff --git a/adbdgl_adapter/abc.py b/adbdgl_adapter/abc.py index 9f2b4e3..12d1746 100644 --- a/adbdgl_adapter/abc.py +++ b/adbdgl_adapter/abc.py @@ -15,16 +15,18 @@ def __init__(self) -> None: raise NotImplementedError # pragma: no cover def arangodb_to_dgl( - self, name: str, metagraph: ADBMetagraph, **query_options: Any + self, name: str, metagraph: ADBMetagraph, **adb_export_kwargs: Any ) -> DGLHeteroGraph: raise NotImplementedError # pragma: no cover def arangodb_collections_to_dgl( - self, name: str, v_cols: Set[str], e_cols: Set[str], **query_options: Any + self, name: str, v_cols: Set[str], e_cols: Set[str], **adb_export_kwargs: Any ) -> DGLHeteroGraph: raise NotImplementedError # pragma: no cover - def arangodb_graph_to_dgl(self, name: str, **query_options: Any) -> DGLHeteroGraph: + def arangodb_graph_to_dgl( + self, name: str, **adb_export_kwargs: Any + ) -> DGLHeteroGraph: raise NotImplementedError # pragma: no cover def dgl_to_arangodb( @@ -34,7 +36,7 @@ def dgl_to_arangodb( metagraph: DGLMetagraph = {}, explicit_metagraph: bool = True, overwrite_graph: bool = False, - **import_options: Any, + **adb_import_kwargs: Any, ) -> ArangoDBGraph: raise NotImplementedError # pragma: no cover diff --git a/adbdgl_adapter/adapter.py b/adbdgl_adapter/adapter.py index ac9ff1a..71a3092 100644 --- a/adbdgl_adapter/adapter.py +++ b/adbdgl_adapter/adapter.py @@ -3,14 +3,17 @@ import logging from collections import defaultdict from math import ceil -from typing import Any, DefaultDict, Dict, List, Optional, Set, Tuple, Union +from typing import Any, Callable, DefaultDict, Dict, List, Optional, Set, Tuple, Union from arango.cursor import Cursor -from arango.database import Database +from arango.database import StandardDatabase from arango.graph import Graph as ADBGraph from dgl import DGLGraph, DGLHeteroGraph, graph, heterograph from dgl.view import EdgeSpace, HeteroEdgeDataView, HeteroNodeDataView, NodeSpace from pandas import DataFrame, Series +from rich.console import Group +from rich.live import Live +from rich.progress import Progress from torch import Tensor, cat, tensor from .abc import Abstract_ADBDGL_Adapter @@ -28,7 +31,14 @@ DGLMetagraphValues, Json, ) -from .utils import logger, progress, validate_adb_metagraph, validate_dgl_metagraph +from .utils import ( + get_bar_progress, + get_export_spinner_progress, + get_import_spinner_progress, + logger, + validate_adb_metagraph, + validate_dgl_metagraph, +) class ADBDGL_Adapter(Abstract_ADBDGL_Adapter): @@ -49,14 +59,14 @@ class ADBDGL_Adapter(Abstract_ADBDGL_Adapter): def __init__( self, - db: Database, + db: StandardDatabase, controller: ADBDGL_Controller = ADBDGL_Controller(), logging_lvl: Union[str, int] = logging.INFO, ): self.set_logging(logging_lvl) - if not isinstance(db, Database): - msg = "**db** parameter must inherit from arango.database.Database" + if not isinstance(db, StandardDatabase): + msg = "**db** parameter must inherit from arango.database.StandardDatabase" raise TypeError(msg) if not isinstance(controller, ADBDGL_Controller): @@ -64,12 +74,13 @@ def __init__( raise TypeError(msg) self.__db = db + self.__async_db = db.begin_async_execution(return_result=False) self.__cntrl = controller logger.info(f"Instantiated ADBDGL_Adapter with database '{db.name}'") @property - def db(self) -> Database: + def db(self) -> StandardDatabase: return self.__db # pragma: no cover @property @@ -79,11 +90,15 @@ def cntrl(self) -> ADBDGL_Controller: def set_logging(self, level: Union[int, str]) -> None: logger.setLevel(level) + ########################### + # Public: ArangoDB -> DGL # + ########################### + def arangodb_to_dgl( - self, name: str, metagraph: ADBMetagraph, **query_options: Any + self, name: str, metagraph: ADBMetagraph, **adb_export_kwargs: Any ) -> Union[DGLGraph, DGLHeteroGraph]: - """Create a DGL graph from ArangoDB data. DOES carry - over node/edge features/labels, via the **metagraph**. + """Create a DGL graph from an ArangoDB Metagraph. Carries + over node/edge data via the **metagraph**. :param name: The DGL graph name. :type name: str @@ -113,10 +128,10 @@ def arangodb_to_dgl( See below for examples of **metagraph**. :type metagraph: adbdgl_adapter.typings.ADBMetagraph - :param query_options: Keyword arguments to specify AQL query options when + :param adb_export_kwargs: Keyword arguments to specify AQL query options when fetching documents from the ArangoDB instance. Full parameter list: https://docs.python-arango.com/en/main/specs.html#arango.aql.AQL.execute - :type query_options: Any + :type adb_export_kwargs: Any :return: A DGL Homogeneous or Heterogeneous graph object :rtype: dgl.DGLGraph | dgl.DGLHeteroGraph :raise adbdgl_adapter.exceptions.ADBMetagraphError: If invalid metagraph. @@ -250,89 +265,58 @@ def udf_v1_x(v1_df): for v_col, meta in metagraph["vertexCollections"].items(): logger.debug(f"Preparing '{v_col}' vertices") - dgl_id = 0 - cursor = self.__fetch_adb_docs(v_col, meta, query_options) - while not cursor.empty(): - cursor_batch = len(cursor.batch()) # type: ignore - df = DataFrame([cursor.pop() for _ in range(cursor_batch)]) - - # 1. Map each ArangoDB _key to a DGL node id - for adb_id in df["_key"]: - adb_map[v_col][adb_id] = dgl_id - dgl_id += 1 - - # 2. Set the DGL Node Data - self.__set_dgl_data(v_col, meta, ndata, df) - - if cursor.has_more(): - cursor.fetch() + # 1. Fetch ArangoDB vertices + v_col_cursor, v_col_size = self.__fetch_adb_docs( + v_col, meta, **adb_export_kwargs + ) - df.drop(df.index, inplace=True) + # 2. Process ArangoDB vertices + self.__process_adb_cursor( + "#319BF5", + v_col_cursor, + v_col_size, + self.__process_adb_vertex_df, + v_col, + adb_map, + meta, + ndata=ndata, + ) #################### # Edge Collections # #################### - # et = Edge Type - et_df: DataFrame - et_blacklist: List[DGLCanonicalEType] = [] # A list of skipped edge types + # The set of skipped edge types + edge_type_blacklist: Set[DGLCanonicalEType] = set() for e_col, meta in metagraph["edgeCollections"].items(): logger.debug(f"Preparing '{e_col}' edges") - cursor = self.__fetch_adb_docs(e_col, meta, query_options) - while not cursor.empty(): - cursor_batch = len(cursor.batch()) # type: ignore - df = DataFrame([cursor.pop() for _ in range(cursor_batch)]) - - # 1. Split the ArangoDB _from & _to IDs into two columns - df[["from_col", "from_key"]] = self.__split_adb_ids(df["_from"]) - df[["to_col", "to_key"]] = self.__split_adb_ids(df["_to"]) - - # 2. Iterate over each edge type - for (from_col, to_col), count in ( - df[["from_col", "to_col"]].value_counts().items() - ): - edge_type: DGLCanonicalEType = (from_col, e_col, to_col) - - # 3. Check for partial Edge Collection import - if from_col not in v_cols or to_col not in v_cols: - logger.debug(f"Skipping {edge_type}") - et_blacklist.append(edge_type) - continue - - logger.debug(f"Preparing {count} '{edge_type}' edges") - - # 4. Get the edge data corresponding to the current edge type - et_df = df[(df["from_col"] == from_col) & (df["to_col"] == to_col)] - - # 5. Map each ArangoDB from/to _key to the corresponding DGL node id - from_nodes = et_df["from_key"].map(adb_map[from_col]).tolist() - to_nodes = et_df["to_key"].map(adb_map[to_col]).tolist() - - # 6. Set/Update the DGL Edge Index - if edge_type not in data_dict: - data_dict[edge_type] = (tensor(from_nodes), tensor(to_nodes)) - else: - previous_from_nodes, previous_to_nodes = data_dict[edge_type] - data_dict[edge_type] = ( - cat((previous_from_nodes, tensor(from_nodes))), - cat((previous_to_nodes, tensor(to_nodes))), - ) - - # 7. Set the DGL Edge Data - self.__set_dgl_data(edge_type, meta, edata, df) - - if cursor.has_more(): - cursor.fetch() + # 1. Fetch ArangoDB edges + e_col_cursor, e_col_size = self.__fetch_adb_docs( + e_col, meta, **adb_export_kwargs + ) - df.drop(df.index, inplace=True) + # 2. Process ArangoDB edges + self.__process_adb_cursor( + "#FCFDFC", + e_col_cursor, + e_col_size, + self.__process_adb_edge_df, + e_col, + adb_map, + meta, + edata=edata, + data_dict=data_dict, + v_cols=v_cols, + edge_type_blacklist=edge_type_blacklist, + ) if not data_dict: # pragma: no cover msg = f""" Can't create the DGL graph: no complete edge types found. The following edge types were skipped due to missing - vertex collection specifications: {et_blacklist} + vertex collection specifications: {edge_type_blacklist} """ raise ValueError(msg) @@ -348,10 +332,10 @@ def arangodb_collections_to_dgl( name: str, v_cols: Set[str], e_cols: Set[str], - **query_options: Any, + **adb_export_kwargs: Any, ) -> Union[DGLGraph, DGLHeteroGraph]: """Create a DGL graph from ArangoDB collections. Due to risk of - ambiguity, this method DOES NOT transfer ArangoDB attributes to DGL. + ambiguity, this method DOES NOT transfer ArangoDB attributes to DGL. :param name: The DGL graph name. :type name: str @@ -359,10 +343,10 @@ def arangodb_collections_to_dgl( :type v_cols: Set[str] :param e_cols: The set of ArangoDB edge collections to import to DGL. :type e_cols: Set[str] - :param query_options: Keyword arguments to specify AQL query options when + :param adb_export_kwargs: Keyword arguments to specify AQL query options when fetching documents from the ArangoDB instance. Full parameter list: https://docs.python-arango.com/en/main/specs.html#arango.aql.AQL.execute - :type query_options: Any + :type adb_export_kwargs: Any :return: A DGL Homogeneous or Heterogeneous graph object :rtype: dgl.DGLGraph | dgl.DGLHeteroGraph :raise adbdgl_adapter.exceptions.ADBMetagraphError: If invalid metagraph. @@ -372,19 +356,19 @@ def arangodb_collections_to_dgl( "edgeCollections": {col: dict() for col in e_cols}, } - return self.arangodb_to_dgl(name, metagraph, **query_options) + return self.arangodb_to_dgl(name, metagraph, **adb_export_kwargs) def arangodb_graph_to_dgl( - self, name: str, **query_options: Any + self, name: str, **adb_export_kwargs: Any ) -> Union[DGLGraph, DGLHeteroGraph]: """Create a DGL graph from an ArangoDB graph. :param name: The ArangoDB graph name. :type name: str - :param query_options: Keyword arguments to specify AQL query options when + :param adb_export_kwargs: Keyword arguments to specify AQL query options when fetching documents from the ArangoDB instance. Full parameter list: https://docs.python-arango.com/en/main/specs.html#arango.aql.AQL.execute - :type query_options: Any + :type adb_export_kwargs: Any :return: A DGL Homogeneous or Heterogeneous graph object :rtype: dgl.DGLGraph | dgl.DGLHeteroGraph :raise adbdgl_adapter.exceptions.ADBMetagraphError: If invalid metagraph. @@ -394,7 +378,13 @@ def arangodb_graph_to_dgl( edge_definitions: List[Json] = graph.edge_definitions() # type: ignore e_cols: Set[str] = {c["edge_collection"] for c in edge_definitions} - return self.arangodb_collections_to_dgl(name, v_cols, e_cols, **query_options) + return self.arangodb_collections_to_dgl( + name, v_cols, e_cols, **adb_export_kwargs + ) + + ########################### + # Public: DGL -> ArangoDB # + ########################### def dgl_to_arangodb( self, @@ -404,7 +394,8 @@ def dgl_to_arangodb( explicit_metagraph: bool = True, overwrite_graph: bool = False, batch_size: Optional[int] = None, - **import_options: Any, + use_async: bool = False, + **adb_import_kwargs: Any, ) -> ADBGraph: """Create an ArangoDB graph from a DGL graph. @@ -437,7 +428,7 @@ def dgl_to_arangodb( See below for an example of **metagraph**. :type metagraph: adbdgl_adapter.typings.DGLMetagraph :param explicit_metagraph: Whether to take the metagraph at face value or not. - If False, node & edge types OMITTED from the metagraph will be + If False, node & edge types OMITTED from the metagraph will still be brought over into ArangoDB. Also applies to node & edge attributes. Defaults to True. :type explicit_metagraph: bool @@ -448,10 +439,13 @@ def dgl_to_arangodb( **batch_size**. Defaults to `None`, which processes each NodeStorage & EdgeStorage in one batch. :type batch_size: int - :param import_options: Keyword arguments to specify additional + :param use_async: Performs asynchronous ArangoDB ingestion if enabled. + Defaults to False. + :type use_async: bool + :param adb_import_kwargs: Keyword arguments to specify additional parameters for ArangoDB document insertion. Full parameter list: https://docs.python-arango.com/en/main/specs.html#arango.collection.Collection.import_bulk - :type import_options: Any + :type adb_import_kwargs: Any :return: The ArangoDB Graph API wrapper. :rtype: arango.graph.Graph :raise adbdgl_adapter.exceptions.DGLMetagraphError: If invalid metagraph. @@ -496,23 +490,27 @@ def y_tensor_to_2_column_dataframe(dgl_tensor): validate_dgl_metagraph(metagraph) - is_explicit_metagraph = metagraph != {} and explicit_metagraph is_custom_controller = type(self.__cntrl) is not ADBDGL_Controller + is_explicit_metagraph = metagraph != {} and explicit_metagraph has_one_ntype = len(dgl_g.ntypes) == 1 has_one_etype = len(dgl_g.canonical_etypes) == 1 + # Get the Node & Edge types node_types, edge_types = self.__get_node_and_edge_types( name, dgl_g, metagraph, is_explicit_metagraph ) + # Create the ArangoDB Graph adb_graph = self.__create_adb_graph( name, overwrite_graph, node_types, edge_types ) - ############## - # Node Types # - ############## + spinner_progress = get_import_spinner_progress(" ") + + ############# + # DGL Nodes # + ############# n_meta = metagraph.get("nodeTypes", {}) for n_type in node_types: @@ -520,6 +518,7 @@ def y_tensor_to_2_column_dataframe(dgl_tensor): n_key = None if has_one_ntype else n_type + ndata = dgl_g.nodes[n_key].data ndata_size = dgl_g.num_nodes(n_key) ndata_batch_size = batch_size or ndata_size @@ -527,45 +526,45 @@ def y_tensor_to_2_column_dataframe(dgl_tensor): end_index = min(ndata_batch_size, ndata_size) batches = ceil(ndata_size / ndata_batch_size) - # For each batch of nodes - for _ in range(batches): - # 1. Map each DGL node id to an ArangoDB _key - adb_keys = [{"_key": str(i)} for i in range(start_index, end_index)] - - # 2. Set the ArangoDB Node Data - df = self.__set_adb_data( - DataFrame(adb_keys, index=range(start_index, end_index)), - meta, - dgl_g.nodes[n_key].data, - ndata_size, - start_index, - end_index, - is_explicit_metagraph, - ) + bar_progress = get_bar_progress(f"(DGL → ADB): '{n_type}'", "#97C423") + bar_progress_task = bar_progress.add_task(n_type, total=ndata_size) + + with Live(Group(bar_progress, spinner_progress)): + for _ in range(batches): + # 1. Process the Node batch + df = self.__process_dgl_node_batch( + n_type, + ndata, + ndata_size, + meta, + is_explicit_metagraph, + is_custom_controller, + start_index, + end_index, + ) - # 3. Apply the ArangoDB Node Controller (if provided) - if is_custom_controller: - f = lambda n: self.__cntrl._prepare_dgl_node(n, n_type) - df = df.apply(f, axis=1) + bar_progress.advance(bar_progress_task, advance=len(df)) - # 4. Insert the ArangoDB Node Documents - self.__insert_adb_docs(n_type, df, import_options) + # 2. Insert the ArangoDB Node Documents + self.__insert_adb_docs( + spinner_progress, df, n_type, use_async, **adb_import_kwargs + ) - # 5. Update the batch indices - start_index = end_index - end_index = min(end_index + ndata_batch_size, ndata_size) + # 3. Update the batch indices + start_index = end_index + end_index = min(end_index + ndata_batch_size, ndata_size) - ############## - # Edge Types # - ############## + ############# + # DGL Edges # + ############# e_meta = metagraph.get("edgeTypes", {}) for e_type in edge_types: meta = e_meta.get(e_type, {}) - from_col, _, to_col = e_type e_key = None if has_one_etype else e_type + edata = dgl_g.edges[e_key].data edata_size = dgl_g.num_edges(e_key) edata_batch_size = batch_size or edata_size @@ -573,93 +572,371 @@ def y_tensor_to_2_column_dataframe(dgl_tensor): end_index = min(edata_batch_size, edata_size) batches = ceil(edata_size / edata_batch_size) + bar_progress = get_bar_progress(f"(DGL → ADB): {e_type}", "#994602") + bar_progress_task = bar_progress.add_task(str(e_type), total=edata_size) + from_nodes, to_nodes = dgl_g.edges(etype=e_key) - # For each batch of edges - for _ in range(batches): - # 1. Map the DGL edges to ArangoDB _from & _to IDs - data = zip( - *( - from_nodes[start_index:end_index].tolist(), - to_nodes[start_index:end_index].tolist(), + with Live(Group(bar_progress, spinner_progress)): + for _ in range(batches): + # 1. Process the Edge batch + df = self.__process_dgl_edge_batch( + e_type, + edata, + edata_size, + meta, + from_nodes, + to_nodes, + is_explicit_metagraph, + is_custom_controller, + start_index, + end_index, ) - ) - # 2. Set the ArangoDB Edge Data - df = self.__set_adb_data( - DataFrame( - data, - index=range(start_index, end_index), - columns=["_from", "_to"], - ), - meta, - dgl_g.edges[e_key].data, - edata_size, - start_index, - end_index, - is_explicit_metagraph, + bar_progress.advance(bar_progress_task, advance=len(df)) + + # 2. Insert the ArangoDB Edge Documents + self.__insert_adb_docs( + spinner_progress, df, e_type[1], use_async, **adb_import_kwargs + ) + + # 3. Update the batch indices + start_index = end_index + end_index = min(end_index + edata_batch_size, edata_size) + + logger.info(f"Created ArangoDB '{name}' Graph") + return adb_graph + + ############################ + # Private: ArangoDB -> DGL # + ############################ + + def __fetch_adb_docs( + self, + col: str, + meta: Union[Set[str], Dict[str, ADBMetagraphValues]], + **adb_export_kwargs: Any, + ) -> Tuple[Cursor, int]: + """ArangoDB -> DGL: Fetches ArangoDB documents within a collection. + Returns the documents in a DataFrame. + + :param col: The ArangoDB collection. + :type col: str + :param meta: The MetaGraph associated to **col** + :type meta: Set[str] | Dict[str, adbdgl_adapter.typings.ADBMetagraphValues] + :param adb_export_kwargs: Keyword arguments to specify AQL query options + when fetching documents from the ArangoDB instance. + :type adb_export_kwargs: Any + :return: A DataFrame representing the ArangoDB documents. + :rtype: pandas.DataFrame + """ + + def get_aql_return_value( + meta: Union[Set[str], Dict[str, ADBMetagraphValues]] + ) -> str: + """Helper method to formulate the AQL `RETURN` value based on + the document attributes specified in **meta** + """ + attributes = [] + + if type(meta) is set: + attributes = list(meta) + + elif type(meta) is dict: + for value in meta.values(): + if type(value) is str: + attributes.append(value) + elif type(value) is dict: + attributes.extend(list(value.keys())) + elif callable(value): + # Cannot determine which attributes to extract if UDFs are used + # Therefore we just return the entire document + return "doc" + + return f""" + MERGE( + {{ _key: doc._key, _from: doc._from, _to: doc._to }}, + KEEP(doc, {list(attributes)}) ) + """ + + col_size: int = self.__db.collection(col).count() # type: ignore - df["_from"] = from_col + "/" + df["_from"].astype(str) - df["_to"] = to_col + "/" + df["_to"].astype(str) + with get_export_spinner_progress(f"ADB Export: '{col}' ({col_size})") as p: + p.add_task(col) - # 3. Apply the ArangoDB Edge Controller (if provided) - if is_custom_controller: - f = lambda e: self.__cntrl._prepare_dgl_edge(e, e_type) - df = df.apply(f, axis=1) + cursor: Cursor = self.__db.aql.execute( # type: ignore + f"FOR doc IN @@col RETURN {get_aql_return_value(meta)}", + bind_vars={"@col": col}, + **{**adb_export_kwargs, **{"stream": True}}, + ) - # 4. Insert the ArangoDB Edge Documents - self.__insert_adb_docs(e_type, df, import_options) + return cursor, col_size - # 5. Update the batch indices - start_index = end_index - end_index = min(end_index + edata_batch_size, edata_size) + def __process_adb_cursor( + self, + progress_color: str, + cursor: Cursor, + col_size: int, + process_adb_df: Callable[..., int], + col: str, + adb_map: ADBMap, + meta: Union[Set[str], Dict[str, ADBMetagraphValues]], + **kwargs: Any, + ) -> None: + """ArangoDB -> DGL: Processes the ArangoDB Cursors for vertices and edges. + + :param progress_color: The progress bar color. + :type progress_color: str + :param cursor: The ArangoDB cursor for the current **col**. + :type cursor: arango.cursor.Cursor + :param col_size: The size of **col**. + :type col_size: int + :param process_adb_df: The function to process the cursor data + (in the form of a Dataframe). + :type process_adb_df: Callable + :param col: The ArangoDB collection for the current **cursor**. + :type col: str + :param adb_map: The ArangoDB -> DGL map. + :type adb_map: adbdgl_adapter.typings.ADBMap + :param meta: The metagraph for the current **col**. + :type meta: Set[str] | Dict[str, ADBMetagraphValues] + :param kwargs: Additional keyword arguments to pass to **process_adb_df**. + :type args: Any + """ - logger.info(f"Created ArangoDB '{name}' Graph") - return adb_graph + progress = get_bar_progress(f"(ADB → DGL): '{col}'", progress_color) + progress_task_id = progress.add_task(col, total=col_size) - def __create_adb_graph( + with Live(Group(progress)): + i = 0 + while not cursor.empty(): + cursor_batch = len(cursor.batch()) # type: ignore + df = DataFrame([cursor.pop() for _ in range(cursor_batch)]) + + i = process_adb_df(i, df, col, adb_map, meta, **kwargs) + progress.advance(progress_task_id, advance=len(df)) + + df.drop(df.index, inplace=True) + + if cursor.has_more(): + cursor.fetch() + + def __process_adb_vertex_df( self, - name: str, - overwrite_graph: bool, - node_types: List[str], - edge_types: List[DGLCanonicalEType], - ) -> ADBGraph: - """Creates an ArangoDB graph. + i: int, + df: DataFrame, + v_col: str, + adb_map: ADBMap, + meta: Union[Set[str], Dict[str, ADBMetagraphValues]], + ndata: DGLData, + ) -> int: + """ArangoDB -> DGL: Process the ArangoDB Vertex DataFrame + into the DGL NData object. + + :param i: The last DGL Node id value. + :type i: int + :param df: The ArangoDB Vertex DataFrame. + :type df: pandas.DataFrame + :param v_col: The ArangoDB Vertex Collection. + :type v_col: str + :param adb_map: The ArangoDB -> DGL map. + :type adb_map: adbdgl_adapter.typings.ADBMap + :param meta: The metagraph for the current **v_col**. + :type meta: Set[str] | Dict[str, ADBMetagraphValues] + :param node_data: The node data view for storing node features + :type node_data: adbdgl_adapter.typings.DGLData + :return: The last DGL Node id value. + :rtype: int + """ + # 1. Map each ArangoDB _key to a DGL node id + for adb_id in df["_key"]: + adb_map[v_col][adb_id] = i + i += 1 - :param name: The ArangoDB graph name. - :type name: str - :param overwrite_graph: Overwrites the graph if it already exists. - Does not drop associated collections. Defaults to False. - :type overwrite_graph: bool - :param node_types: A list of strings representing the DGL node types. - :type node_types: List[str] - :param edge_types: A list of string triplets (str, str, str) for - source node type, edge type and destination node type. - :type edge_types: List[adbdgl_adapter.typings.DGLCanonicalEType] - :return: The ArangoDB Graph API wrapper. - :rtype: arango.graph.Graph + # 2. Set the DGL Node Data + self.__set_dgl_data(v_col, meta, ndata, df) + + return i + + def __process_adb_edge_df( + self, + _: int, + df: DataFrame, + e_col: str, + adb_map: ADBMap, + meta: Union[Set[str], Dict[str, ADBMetagraphValues]], + edata: DGLData, + data_dict: DGLDataDict, + v_cols: List[str], + edge_type_blacklist: Set[DGLCanonicalEType], + ) -> int: + """ArangoDB -> DGL: Process the ArangoDB Edge DataFrame + into the DGL EdgeData object. + + :param _: Not used. + :type _: int + :param df: The ArangoDB Edge DataFrame. + :type df: pandas.DataFrame + :param e_col: The ArangoDB Edge Collection. + :type e_col: str + :param adb_map: The ArangoDB -> DGL map. + :type adb_map: adbdgl_adapter.typings.ADBMap + :param meta: The metagraph for the current **e_col**. + :type meta: Set[str] | Dict[str, ADBMetagraphValues] + :param edata: The edge data view for storing edge features + :type edata: adbdgl_adapter.typings.DGLData + :param data_dict: The data for constructing a graph, + which takes the form of (U, V). + (U[i], V[i]) forms the edge with ID i in the graph. + :type data_dict: adbdgl_adapter.typings.DGLDataDict + :param v_cols: The list of ArangoDB Vertex Collections. + :type v_cols: List[str] + :param edge_type_blacklist: The set of skipped edge types + :type edge_type_blacklist: Set[DGLCanonicalEType] + :return: The last DGL Edge id value. This is a useless return value, + but is needed for type hinting. + :rtype: int """ - if overwrite_graph: - logger.debug("Overwrite graph flag is True. Deleting old graph.") - self.__db.delete_graph(name, ignore_missing=True) + # 1. Split the ArangoDB _from & _to IDs into two columns + df[["from_col", "from_key"]] = self.__split_adb_ids(df["_from"]) + df[["to_col", "to_key"]] = self.__split_adb_ids(df["_to"]) + + # 2. Iterate over each edge type + for (from_col, to_col), count in ( + df[["from_col", "to_col"]].value_counts().items() + ): + edge_type: DGLCanonicalEType = (from_col, e_col, to_col) + + # 3. Check for partial Edge Collection import + if from_col not in v_cols or to_col not in v_cols: + logger.debug(f"Skipping {edge_type}") + edge_type_blacklist.add(edge_type) + continue + + logger.debug(f"Preparing {count} {edge_type} edges") + + # 4. Get the edge data corresponding to the current edge type + et_df = df[(df["from_col"] == from_col) & (df["to_col"] == to_col)] + + # 5. Map each ArangoDB from/to _key to the corresponding DGL node id + from_nodes = et_df["from_key"].map(adb_map[from_col]).tolist() + to_nodes = et_df["to_key"].map(adb_map[to_col]).tolist() + + # 6. Set/Update the DGL Edge Index + if edge_type not in data_dict: + data_dict[edge_type] = (tensor(from_nodes), tensor(to_nodes)) + else: + previous_from_nodes, previous_to_nodes = data_dict[edge_type] + data_dict[edge_type] = ( + cat((previous_from_nodes, tensor(from_nodes))), + cat((previous_to_nodes, tensor(to_nodes))), + ) - if self.__db.has_graph(name): - return self.__db.graph(name) + # 7. Set the DGL Edge Data + self.__set_dgl_data(edge_type, meta, edata, df) - edge_definitions = self.__etypes_to_edefinitions(edge_types) - orphan_collections = self.__ntypes_to_ocollections(node_types, edge_types) + return 1 # Useless return value, but needed for type hinting - return self.__db.create_graph( # type: ignore[return-value] - name, - edge_definitions, - orphan_collections, + def __split_adb_ids(self, s: Series) -> Series: + """AranogDB -> DGL: Helper method to split the ArangoDB IDs + within a Series into two columns + + :param s: The Series containing the ArangoDB IDs. + :type s: pandas.Series + :return: A DataFrame with two columns: the ArangoDB Collection, + and the ArangoDB _key. + :rtype: pandas.Series + """ + return s.str.split(pat="/", n=1, expand=True) + + def __set_dgl_data( + self, + data_type: DGLDataTypes, + meta: Union[Set[str], Dict[str, ADBMetagraphValues]], + dgl_data: DGLData, + df: DataFrame, + ) -> None: + """AranogDB -> DGL: A helper method to build the DGL NodeSpace or + EdgeSpace object for the DGL graph. Is responsible for preparing the + input **meta** such that it becomes a dictionary, and building DGL-ready + tensors from the ArangoDB DataFrame **df**. + + :param data_type: The current node or edge type of the soon-to-be DGL graph. + :type data_type: str | tuple[str, str, str] + :param meta: The metagraph associated to the current ArangoDB vertex or + edge collection. e.g metagraph['vertexCollections']['Users'] + :type meta: Set[str] | Dict[str, adbdgl_adapter.typings.ADBMetagraphValues] + :param dgl_data: The (currently empty) DefaultDict object storing the node or + edge features of the soon-to-be DGL graph. + :type dgl_data: adbdgl_adapter.typings.DGLData + :param df: The DataFrame representing the ArangoDB collection data + :type df: pandas.DataFrame + """ + valid_meta: Dict[str, ADBMetagraphValues] + valid_meta = meta if type(meta) is dict else {m: m for m in meta} + + for k, v in valid_meta.items(): + t = self.__build_tensor_from_dataframe(df, k, v) + dgl_data[k][data_type] = cat((dgl_data[k][data_type], t)) + + def __build_tensor_from_dataframe( + self, + adb_df: DataFrame, + meta_key: str, + meta_val: ADBMetagraphValues, + ) -> Tensor: + """AranogDB -> DGL: Constructs a DGL-ready Tensor from a Pandas + Dataframe, based on the nature of the user-defined metagraph. + + :param adb_df: The Pandas Dataframe representing ArangoDB data. + :type adb_df: pandas.DataFrame + :param meta_key: The current ArangoDB-DGL metagraph key + :type meta_key: str + :param meta_val: The value mapped to **meta_key** to + help convert **df** into a DGL-ready Tensor. + e.g the value of `metagraph['vertexCollections']['users']['x']`. + :type meta_val: adbdgl_adapter.typings.ADBMetagraphValues + :return: A DGL-ready tensor equivalent to the dataframe + :rtype: torch.Tensor + :raise adbdgl_adapter.exceptions.ADBMetagraphError: If invalid **meta_val**. + """ + logger.debug( + f"__build_tensor_from_dataframe(df, '{meta_key}', {type(meta_val)})" ) + if type(meta_val) is str: + return tensor(adb_df[meta_val].to_list()) + + if type(meta_val) is dict: + data = [] + for attr, encoder in meta_val.items(): + if encoder is None: + data.append(tensor(adb_df[attr].to_list())) + elif callable(encoder): + data.append(encoder(adb_df[attr])) + else: # pragma: no cover + msg = f"Invalid encoder for ArangoDB attribute '{attr}': {encoder}" + raise ADBMetagraphError(msg) + + return cat(data, dim=-1) + + if callable(meta_val): + # **meta_val** is a user-defined that returns a tensor + user_defined_result = meta_val(adb_df) + + if type(user_defined_result) is not Tensor: # pragma: no cover + msg = f"Invalid return type for function {meta_val} ('{meta_key}')" + raise ADBMetagraphError(msg) + + return user_defined_result + + raise ADBMetagraphError(f"Invalid {meta_val} type") # pragma: no cover + def __create_dgl_graph( self, data_dict: DGLDataDict, adb_map: ADBMap, metagraph: ADBMetagraph ) -> Union[DGLGraph, DGLHeteroGraph]: - """Creates a DGL graph from the given DGL data. + """AranogDB -> DGL: Creates a DGL graph from the given DGL data. :param data_dict: The data for constructing a graph, which takes the form of (U, V). @@ -686,6 +963,35 @@ def __create_dgl_graph( num_nodes_dict = {v_col: len(adb_map[v_col]) for v_col in adb_map} return heterograph(data_dict, num_nodes_dict) + def __link_dgl_data( + self, + dgl_data: Union[HeteroNodeDataView, HeteroEdgeDataView], + dgl_data_temp: DGLData, + has_one_type: bool, + ) -> None: + """Links **dgl_data_temp** to **dgl_data**. This method is (unfortunately) + required, since a dgl graph's `ndata` and `edata` properties can't be + manually set (i.e `g.ndata = ndata` is not possible). + + :param dgl_data: The (empty) ndata or edata instance attribute of a dgl graph, + which is about to receive **dgl_data_temp**. + :type dgl_data: Union[dgl.view.HeteroNodeDataView, dgl.view.HeteroEdgeDataView] + :param dgl_data_temp: A temporary place to store the ndata or edata features. + :type dgl_data_temp: adbdgl_adapter.typings.DGLData + :param has_one_type: Set to True if the DGL graph only has one + node type or edge type. + :type has_one_type: bool + """ + for feature_name, feature_map in dgl_data_temp.items(): + for data_type, dgl_tensor in feature_map.items(): + dgl_data[feature_name] = ( + dgl_tensor if has_one_type else {data_type: dgl_tensor} + ) + + ############################ + # Private: DGL -> ArangoDB # + ############################ + def __get_node_and_edge_types( self, name: str, @@ -693,8 +999,8 @@ def __get_node_and_edge_types( metagraph: DGLMetagraph, is_explicit_metagraph: bool, ) -> Tuple[List[str], List[DGLCanonicalEType]]: - """Returns the node & edge types of the DGL graph, based on the - metagraph and whether the graph has default canonical etypes. + """DGL -> ArangoDB: Returns the node & edge types of the DGL graph, + based on the metagraph and whether the graph has default canonical etypes. :param name: The DGL graph name. :type name: str @@ -795,152 +1101,171 @@ def __ntypes_to_ocollections( orphan_collections = set(node_types) ^ non_orphan_collections return list(orphan_collections) - def __fetch_adb_docs( + def __create_adb_graph( self, - col: str, - meta: Union[Set[str], Dict[str, ADBMetagraphValues]], - query_options: Any, - ) -> Cursor: - """Fetches ArangoDB documents within a collection. Returns the - documents in a DataFrame. + name: str, + overwrite_graph: bool, + node_types: List[str], + edge_types: List[DGLCanonicalEType], + ) -> ADBGraph: + """Creates an ArangoDB graph. - :param col: The ArangoDB collection. - :type col: str - :param meta: The MetaGraph associated to **col** - :type meta: Set[str] | Dict[str, adbdgl_adapter.typings.ADBMetagraphValues] - :param query_options: Keyword arguments to specify AQL query options - when fetching documents from the ArangoDB instance. - :type query_options: Any - :return: A DataFrame representing the ArangoDB documents. - :rtype: pandas.DataFrame + :param name: The ArangoDB graph name. + :type name: str + :param overwrite_graph: Overwrites the graph if it already exists. + Does not drop associated collections. Defaults to False. + :type overwrite_graph: bool + :param node_types: A list of strings representing the DGL node types. + :type node_types: List[str] + :param edge_types: A list of string triplets (str, str, str) for + source node type, edge type and destination node type. + :type edge_types: List[adbdgl_adapter.typings.DGLCanonicalEType] + :return: The ArangoDB Graph API wrapper. + :rtype: arango.graph.Graph """ + if overwrite_graph: + logger.debug("Overwrite graph flag is True. Deleting old graph.") + self.__db.delete_graph(name, ignore_missing=True) - def get_aql_return_value( - meta: Union[Set[str], Dict[str, ADBMetagraphValues]] - ) -> str: - """Helper method to formulate the AQL `RETURN` value based on - the document attributes specified in **meta** - """ - attributes = [] - - if type(meta) is set: - attributes = list(meta) - - elif type(meta) is dict: - for value in meta.values(): - if type(value) is str: - attributes.append(value) - elif type(value) is dict: - attributes.extend(list(value.keys())) - elif callable(value): - # Cannot determine which attributes to extract if UDFs are used - # Therefore we just return the entire document - return "doc" - - return f""" - MERGE( - {{ _key: doc._key, _from: doc._from, _to: doc._to }}, - KEEP(doc, {list(attributes)}) - ) - """ + if self.__db.has_graph(name): + return self.__db.graph(name) - with progress( - f"(ADB → DGL): {col}", - text_style="#319BF5", - spinner_style="#FCFDFC", - ) as p: - p.add_task("__fetch_adb_docs") - return self.__db.aql.execute( # type: ignore - f"FOR doc IN @@col RETURN {get_aql_return_value(meta)}", - bind_vars={"@col": col}, - **{**{"stream": True}, **query_options}, - ) + edge_definitions = self.__etypes_to_edefinitions(edge_types) + orphan_collections = self.__ntypes_to_ocollections(node_types, edge_types) - def __insert_adb_docs( - self, doc_type: Union[str, DGLCanonicalEType], df: DataFrame, kwargs: Any - ) -> None: - """Insert ArangoDB documents into their ArangoDB collection. + return self.__db.create_graph( # type: ignore[return-value] + name, + edge_definitions, + orphan_collections, + ) - :param doc_type: The node or edge type of the soon-to-be ArangoDB documents - :type doc_type: str | tuple[str, str, str] - :param df: To-be-inserted ArangoDB documents, formatted as a DataFrame - :type df: pandas.DataFrame - :param kwargs: Keyword arguments to specify additional - parameters for ArangoDB document insertion. Full parameter list: - https://docs.python-arango.com/en/main/specs.html#arango.collection.Collection.import_bulk + def __process_dgl_node_batch( + self, + n_type: str, + ndata: NodeSpace, + ndata_size: int, + meta: Union[Set[str], Dict[Any, DGLMetagraphValues]], + is_explicit_metagraph: bool, + is_custom_controller: bool, + start_index: int, + end_index: int, + ) -> DataFrame: + """DGL -> ArangoDB: Processes the DGL Node batch + into an ArangoDB DataFrame. + + :param n_type: The DGL node type. + :type n_type: str + :param ndata: The DGL Node Space for the current **n_type**. + :type ndata: dgl.view.NodeSpace + :param ndata_size: The size of **ndata**. + :param ndata_size: int + :param meta: The metagraph for the current **n_type**. + :type meta: Set[str] | Dict[Any, adbdgl_adapter.typings.DGLMetagraphValues] + :param is_explicit_metagraph: Take the metagraph at face value or not. + :type is_explicit_metagraph: bool + :param is_custom_controller: Whether a custom controller is used. + :type is_custom_controller: bool + :param start_index: The start index of the current batch. + :type start_index: int + :param end_index: The end index of the current batch. + :type end_index: int + :return: The ArangoDB DataFrame representing the DGL Node batch. + :rtype: pandas.DataFrame """ - col = doc_type if type(doc_type) is str else doc_type[1] - - with progress( - f"(DGL → ADB): {doc_type} ({len(df)})", - text_style="#97C423", - spinner_style="#994602", - ) as p: - p.add_task("__insert_adb_docs") + # 1. Map each DGL node id to an ArangoDB _key + adb_keys = [{"_key": str(i)} for i in range(start_index, end_index)] + + # 2. Set the ArangoDB Node Data + df = self.__set_adb_data( + DataFrame(adb_keys, index=range(start_index, end_index)), + meta, + ndata, + ndata_size, + is_explicit_metagraph, + start_index, + end_index, + ) - docs = df.to_dict("records") - result = self.__db.collection(col).import_bulk(docs, **kwargs) - logger.debug(result) - df.drop(df.index, inplace=True) + # 3. Apply the ArangoDB Node Controller (if provided) + if is_custom_controller: + f = lambda n: self.__cntrl._prepare_dgl_node(n, n_type) + df = df.apply(f, axis=1) - def __split_adb_ids(self, s: Series) -> Series: - """Helper method to split the ArangoDB IDs within a Series into two columns""" - return s.str.split(pat="/", n=1, expand=True) + return df - def __set_dgl_data( + def __process_dgl_edge_batch( self, - data_type: DGLDataTypes, - meta: Union[Set[str], Dict[str, ADBMetagraphValues]], - dgl_data: DGLData, - df: DataFrame, - ) -> None: - """A helper method to build the DGL NodeSpace or EdgeSpace object - for the DGL graph. Is responsible for preparing the input **meta** such - that it becomes a dictionary, and building DGL-ready tensors from the - ArangoDB DataFrame **df**. - - :param data_type: The current node or edge type of the soon-to-be DGL graph. - :type data_type: str | tuple[str, str, str] - :param meta: The metagraph associated to the current ArangoDB vertex or - edge collection. e.g metagraph['vertexCollections']['Users'] - :type meta: Set[str] | Dict[str, adbdgl_adapter.typings.ADBMetagraphValues] - :param dgl_data: The (currently empty) DefaultDict object storing the node or - edge features of the soon-to-be DGL graph. - :type dgl_data: adbdgl_adapter.typings.DGLData - :param df: The DataFrame representing the ArangoDB collection data - :type df: pandas.DataFrame + e_type: DGLCanonicalEType, + edata: EdgeSpace, + edata_size: int, + meta: Union[Set[str], Dict[Any, DGLMetagraphValues]], + from_nodes: Tensor, + to_nodes: Tensor, + is_explicit_metagraph: bool, + is_custom_controller: bool, + start_index: int, + end_index: int, + ) -> DataFrame: + """DGL -> ArangoDB: Processes the DGL Edge batch + into an ArangoDB DataFrame. + + :param e_type: The DGL edge type. + :type e_type: adbdgl_adapter.typings.DGLCanonicalEType + :param edata: The DGL EdgeSpace for the current **e_type**. + :type edata: dgl.view.EdgeSpace + :param edata_size: The size of **edata**. + :param edata_size: int + :param meta: The metagraph for the current **e_type**. + :type meta: Set[str] | Dict[Any, adbdgl_adapter.typings.DGLMetagraphValues] + :param from_nodes: Tensor representing the Source Nodes of the **e_type**. + :type from_nodes: torch.Tensor + :param to_nodes: Tensor representing the Destination Nodes of the **e_type**. + :type to_nodes: torch.Tensor + :param is_explicit_metagraph: Take the metagraph at face value or not. + :type is_explicit_metagraph: bool + :param is_custom_controller: Whether a custom controller is used. + :type is_custom_controller: bool + :param start_index: The start index of the current batch. + :type start_index: int + :param end_index: The end index of the current batch. + :type end_index: int + :return: The ArangoDB DataFrame representing the DGL Edge batch. + :rtype: pandas.DataFrame """ - valid_meta: Dict[str, ADBMetagraphValues] - valid_meta = meta if type(meta) is dict else {m: m for m in meta} + from_col, _, to_col = e_type - for k, v in valid_meta.items(): - t = self.__build_tensor_from_dataframe(df, k, v) - dgl_data[k][data_type] = cat((dgl_data[k][data_type], t)) + # 1. Map the DGL edges to ArangoDB _from & _to IDs + data = zip( + *( + from_nodes[start_index:end_index].tolist(), + to_nodes[start_index:end_index].tolist(), + ) + ) - def __link_dgl_data( - self, - dgl_data: Union[HeteroNodeDataView, HeteroEdgeDataView], - dgl_data_temp: DGLData, - has_one_type: bool, - ) -> None: - """Links **dgl_data_temp** to **dgl_data**. This method is (unfortunately) - required, since a dgl graph's `ndata` and `edata` properties can't be - manually set (i.e `g.ndata = ndata` is not possible). + # 2. Set the ArangoDB Edge Data + df = self.__set_adb_data( + DataFrame( + data, + index=range(start_index, end_index), + columns=["_from", "_to"], + ), + meta, + edata, + edata_size, + is_explicit_metagraph, + start_index, + end_index, + ) - :param dgl_data: The (empty) ndata or edata instance attribute of a dgl graph, - which is about to receive **dgl_data_temp**. - :type dgl_data: Union[dgl.view.HeteroNodeDataView, dgl.view.HeteroEdgeDataView] - :param dgl_data_temp: A temporary place to store the ndata or edata features. - :type dgl_data_temp: adbdgl_adapter.typings.DGLData - :param has_one_type: Set to True if the DGL graph only has one - node type or edge type. - :type has_one_type: bool - """ - for feature_name, feature_map in dgl_data_temp.items(): - for data_type, dgl_tensor in feature_map.items(): - dgl_data[feature_name] = ( - dgl_tensor if has_one_type else {data_type: dgl_tensor} - ) + df["_from"] = from_col + "/" + df["_from"].astype(str) + df["_to"] = to_col + "/" + df["_to"].astype(str) + + # 3. Apply the ArangoDB Edge Controller (if provided) + if is_custom_controller: + f = lambda e: self.__cntrl._prepare_dgl_edge(e, e_type) + df = df.apply(f, axis=1) + + return df def __set_adb_data( self, @@ -948,9 +1273,9 @@ def __set_adb_data( meta: Union[Set[str], Dict[Any, DGLMetagraphValues]], dgl_data: Union[NodeSpace, EdgeSpace], dgl_data_size: int, + is_explicit_metagraph: bool, start_index: int, end_index: int, - is_explicit_metagraph: bool, ) -> DataFrame: """A helper method to build the ArangoDB Dataframe for the given collection. Is responsible for creating "sub-DataFrames" from DGL tensors, @@ -970,12 +1295,12 @@ def __set_adb_data( :param dgl_data_size: The size of the NodeStorage or EdgeStorage of the current DGL node or edge type. :type dgl_data_size: int + :param is_explicit_metagraph: Take the metagraph at face value or not. + :type is_explicit_metagraph: bool :param start_index: The starting index of the current batch to process. :type start_index: int :param end_index: The ending index of the current batch to process. :type end_index: int - :param is_explicit_metagraph: Take the metagraph at face value or not. - :type is_explicit_metagraph: bool :return: The completed DataFrame for the (soon-to-be) ArangoDB collection. :rtype: pandas.DataFrame :raise ValueError: If an unsupported DGL data value is found. @@ -1005,59 +1330,6 @@ def __set_adb_data( return df - def __build_tensor_from_dataframe( - self, - adb_df: DataFrame, - meta_key: str, - meta_val: ADBMetagraphValues, - ) -> Tensor: - """Constructs a DGL-ready Tensor from a Pandas Dataframe, based on - the nature of the user-defined metagraph. - - :param adb_df: The Pandas Dataframe representing ArangoDB data. - :type adb_df: pandas.DataFrame - :param meta_key: The current ArangoDB-DGL metagraph key - :type meta_key: str - :param meta_val: The value mapped to **meta_key** to - help convert **df** into a DGL-ready Tensor. - e.g the value of `metagraph['vertexCollections']['users']['x']`. - :type meta_val: adbdgl_adapter.typings.ADBMetagraphValues - :return: A DGL-ready tensor equivalent to the dataframe - :rtype: torch.Tensor - :raise adbdgl_adapter.exceptions.ADBMetagraphError: If invalid **meta_val**. - """ - logger.debug( - f"__build_tensor_from_dataframe(df, '{meta_key}', {type(meta_val)})" - ) - - if type(meta_val) is str: - return tensor(adb_df[meta_val].to_list()) - - if type(meta_val) is dict: - data = [] - for attr, encoder in meta_val.items(): - if encoder is None: - data.append(tensor(adb_df[attr].to_list())) - elif callable(encoder): - data.append(encoder(adb_df[attr])) - else: # pragma: no cover - msg = f"Invalid encoder for ArangoDB attribute '{attr}': {encoder}" - raise ADBMetagraphError(msg) - - return cat(data, dim=-1) - - if callable(meta_val): - # **meta_val** is a user-defined that returns a tensor - user_defined_result = meta_val(adb_df) - - if type(user_defined_result) is not Tensor: # pragma: no cover - msg = f"Invalid return type for function {meta_val} ('{meta_key}')" - raise ADBMetagraphError(msg) - - return user_defined_result - - raise ADBMetagraphError(f"Invalid {meta_val} type") # pragma: no cover - def __build_dataframe_from_tensor( self, dgl_tensor: Tensor, @@ -1130,3 +1402,39 @@ def __build_dataframe_from_tensor( return user_defined_result raise DGLMetagraphError(f"Invalid {meta_val} type") # pragma: no cover + + def __insert_adb_docs( + self, + spinner_progress: Progress, + df: DataFrame, + col: str, + use_async: bool, + **adb_import_kwargs: Any, + ) -> None: + """DGL -> ArangoDB: Insert ArangoDB documents into their ArangoDB collection. + + :param spinner_progress: The spinner progress bar. + :type spinner_progress: rich.progress.Progress + :param df: To-be-inserted ArangoDB documents, formatted as a DataFrame + :type df: pandas.DataFrame + :param col: The ArangoDB collection name. + :type col: str + :param use_async: Performs asynchronous ArangoDB ingestion if enabled. + :type use_async: bool + :param adb_import_kwargs: Keyword arguments to specify additional + parameters for ArangoDB document insertion. Full parameter list: + https://docs.python-arango.com/en/main/specs.html#arango.collection.Collection.import_bulk + :param adb_import_kwargs: Any + """ + action = f"ADB Import: '{col}' ({len(df)})" + spinner_progress_task = spinner_progress.add_task("", action=action) + + docs = df.to_dict("records") + db = self.__async_db if use_async else self.__db + result = db.collection(col).import_bulk(docs, **adb_import_kwargs) + logger.debug(result) + + df.drop(df.index, inplace=True) + + spinner_progress.stop_task(spinner_progress_task) + spinner_progress.update(spinner_progress_task, visible=False) diff --git a/adbdgl_adapter/utils.py b/adbdgl_adapter/utils.py index cd5e4b3..b88dc73 100644 --- a/adbdgl_adapter/utils.py +++ b/adbdgl_adapter/utils.py @@ -2,7 +2,14 @@ import os from typing import Any, Dict, Set, Union -from rich.progress import Progress, SpinnerColumn, TextColumn, TimeElapsedColumn +from rich.progress import ( + BarColumn, + Progress, + SpinnerColumn, + TaskProgressColumn, + TextColumn, + TimeElapsedColumn, +) from .exceptions import ADBMetagraphError, DGLMetagraphError @@ -16,18 +23,34 @@ logger.addHandler(handler) -def progress( +def get_export_spinner_progress( text: str, - text_style: str = "none", - spinner_name: str = "aesthetic", - spinner_style: str = "#5BC0DE", - transient: bool = False, ) -> Progress: return Progress( - TextColumn(text, style=text_style), - SpinnerColumn(spinner_name, spinner_style), + TextColumn(text), + SpinnerColumn("aesthetic", "#5BC0DE"), + TimeElapsedColumn(), + transient=True, + ) + + +def get_import_spinner_progress(text: str) -> Progress: + return Progress( + TextColumn(text), + TextColumn("{task.fields[action]}"), + SpinnerColumn("aesthetic", "#5BC0DE"), + TimeElapsedColumn(), + transient=True, + ) + + +def get_bar_progress(text: str, color: str) -> Progress: + return Progress( + TextColumn(text), + BarColumn(complete_style=color, finished_style=color), + TaskProgressColumn(), + TextColumn("({task.completed}/{task.total})"), TimeElapsedColumn(), - transient=transient, ) diff --git a/tests/test_adapter.py b/tests/test_adapter.py index 51db111..4d913e4 100644 --- a/tests/test_adapter.py +++ b/tests/test_adapter.py @@ -237,7 +237,7 @@ def test_validate_dgl_metagraph(bad_metagraph: Dict[Any, Any]) -> None: @pytest.mark.parametrize( "adapter, name, dgl_g, metagraph, \ - explicit_metagraph, overwrite_graph, batch_size, import_options", + explicit_metagraph, overwrite_graph, batch_size, adb_import_kwargs", [ ( adbdgl_adapter, @@ -356,7 +356,7 @@ def test_dgl_to_adb( explicit_metagraph: bool, overwrite_graph: bool, batch_size: Optional[int], - import_options: Any, + adb_import_kwargs: Any, ) -> None: db.delete_graph(name, drop_collections=True, ignore_missing=True) adapter.dgl_to_arangodb( @@ -366,7 +366,7 @@ def test_dgl_to_adb( explicit_metagraph, overwrite_graph, batch_size, - **import_options + **adb_import_kwargs ) assert_dgl_to_adb(name, dgl_g, metagraph, explicit_metagraph) db.delete_graph(name, drop_collections=True) From ca4000ed6ec521474c3e0d545524e1a010b436d6 Mon Sep 17 00:00:00 2001 From: Anthony Mahanna Date: Thu, 26 Oct 2023 09:33:18 -0400 Subject: [PATCH 36/37] Update README.md --- README.md | 131 +++++++++++++++++++++++++++++++++--------------------- 1 file changed, 81 insertions(+), 50 deletions(-) diff --git a/README.md b/README.md index 8cd5489..e16f11c 100644 --- a/README.md +++ b/README.md @@ -46,18 +46,21 @@ pip install git+https://github.com/arangoml/dgl-adapter.git Also available as an ArangoDB Lunch & Learn session: [Graph & Beyond Course #2.8](https://www.arangodb.com/resources/lunch-sessions/graph-beyond-lunch-break-2-8-dgl-adapter/) ```py -import pandas -import torch import dgl +import torch +import pandas -from arango import ArangoClient # Python-Arango driver - +from arango import ArangoClient from adbdgl_adapter import ADBDGL_Adapter, ADBDGL_Controller from adbdgl_adapter.encoders import IdentityEncoder, CategoricalEncoder -# Let's assume that the ArangoDB "IMDB" dataset is imported to this endpoint -db = ArangoClient(hosts="http://localhost:8529").db("_system", username="root", password="") +# Connect to ArangoDB +db = ArangoClient().db() + +# Instantiate the adapter +adbdgl_adapter = ADBDGL_Adapter(db) +# Create a DGL Heterogeneous Graph fake_hetero = dgl.heterograph({ ("user", "follows", "user"): (torch.tensor([0, 1]), torch.tensor([1, 2])), ("user", "follows", "topic"): (torch.tensor([1, 1]), torch.tensor([1, 2])), @@ -67,37 +70,21 @@ fake_hetero.nodes["user"].data["features"] = torch.tensor([21, 44, 16, 25]) fake_hetero.nodes["user"].data["label"] = torch.tensor([1, 2, 0, 1]) fake_hetero.nodes["game"].data["features"] = torch.tensor([[0, 0], [0, 1], [1, 0], [1, 1], [1, 1]]) fake_hetero.edges[("user", "plays", "game")].data["features"] = torch.tensor([[6, 1], [1000, 0]]) - -adbdgl_adapter = ADBDGL_Adapter(db) ``` ### DGL to ArangoDB ```py -# 1.1: DGL to ArangoDB -adb_g = adbdgl_adapter.dgl_to_arangodb("FakeHetero", fake_hetero) - -# 1.2: DGL to ArangoDB with a (completely optional) metagraph for customized adapter behaviour -def label_tensor_to_2_column_dataframe(dgl_tensor, adb_df): - """ - A user-defined function to create two - ArangoDB attributes out of the 'user' label tensor +############################# +# 1.1: without a Metagraph # +############################# - :param dgl_tensor: The DGL Tensor containing the data - :type dgl_tensor: torch.Tensor - :param adb_df: The ArangoDB DataFrame to populate, whose - size is preset to the length of **dgl_tensor**. - :type adb_df: pandas.DataFrame - - NOTE: user-defined functions must return the modified **adb_df** - """ - label_map = {0: "Class A", 1: "Class B", 2: "Class C"} - - adb_df["label_num"] = dgl_tensor.tolist() - adb_df["label_str"] = adb_df["label_num"].map(label_map) - - return adb_df +adb_g = adbdgl_adapter.dgl_to_arangodb("FakeHetero", fake_hetero) +######################### +# 1.2: with a Metagraph # +######################### +# Specifying a Metagraph provides customized adapter behaviour metagraph = { "nodeTypes": { "user": { @@ -115,15 +102,39 @@ metagraph = { }, } +def label_tensor_to_2_column_dataframe(dgl_tensor: torch.Tensor, adb_df: pandas.DataFrame) -> pandas.DataFrame: + """A user-defined function to create two + ArangoDB attributes out of the 'user' label tensor + + :param dgl_tensor: The DGL Tensor containing the data + :type dgl_tensor: torch.Tensor + :param adb_df: The ArangoDB DataFrame to populate, whose + size is preset to the length of **dgl_tensor**. + :type adb_df: pandas.DataFrame + :return: The populated ArangoDB DataFrame + :rtype: pandas.DataFrame + """ + label_map = {0: "Class A", 1: "Class B", 2: "Class C"} + + adb_df["label_num"] = dgl_tensor.tolist() + adb_df["label_str"] = adb_df["label_num"].map(label_map) + + return adb_df + adb_g = adbdgl_adapter.dgl_to_arangodb("FakeHetero", fake_hetero, metagraph, explicit_metagraph=False) -# 1.3: DGL to ArangoDB with the same (optional) metagraph, but with `explicit_metagraph=True` +####################################################### +# 1.3: with a Metagraph and `explicit_metagraph=True` # +####################################################### + # With `explicit_metagraph=True`, the node & edge types omitted from the metagraph will NOT be converted to ArangoDB. -# Only 'user', 'game', and ('user', 'plays', 'game') will be brought over (i.e 'topic', ('user', 'follows', 'user'), ... are ignored) adb_g = adbdgl_adapter.dgl_to_arangodb("FakeHetero", fake_hetero, metagraph, explicit_metagraph=True) -# 1.4: DGL to ArangoDB with a Custom Controller (more user-defined behavior) +######################################## +# 1.4: with a custom ADBDGL Controller # +######################################## + class Custom_ADBDGL_Controller(ADBDGL_Controller): def _prepare_dgl_node(self, dgl_node: dict, node_type: str) -> dict: """Optionally modify a DGL node object before it gets inserted into its designated ArangoDB collection. @@ -156,13 +167,25 @@ adb_g = ADBDGL_Adapter(db, Custom_ADBDGL_Controller()).dgl_to_arangodb("FakeHete db.delete_graph("FakeHetero", drop_collections=True, ignore_missing=True) adbdgl_adapter.dgl_to_arangodb("FakeHetero", fake_hetero) -# 2.1: ArangoDB to DGL via Graph name (does not transfer attributes) +####################### +# 2.1: via Graph name # +####################### + +# Due to risk of ambiguity, this method does not transfer attributes dgl_g = adbdgl_adapter.arangodb_graph_to_dgl("FakeHetero") -# 2.2: ArangoDB to DGL via Collection names (does not transfer attributes) +############################# +# 2.2: via Collection names # +############################# + +# Due to risk of ambiguity, this method does not transfer attributes dgl_g = adbdgl_adapter.arangodb_collections_to_dgl("FakeHetero", v_cols={"user", "game"}, e_cols={"plays"}) -# 2.3: ArangoDB to DGL via Metagraph v1 (transfer attributes "as is", meaning they are already formatted to DGL data standards) +###################### +# 2.3: via Metagraph # +###################### + +# Transfers attributes "as is", meaning they are already formatted to DGL data standards. # Learn more about the DGL Data Standards here: https://docs.dgl.ai/guide/graph.html#guide-graph metagraph_v1 = { "vertexCollections": { @@ -176,10 +199,14 @@ metagraph_v1 = { "follows": {} }, } + dgl_g = adbdgl_adapter.arangodb_to_dgl("FakeHetero", metagraph_v1) -# 2.4: ArangoDB to DGL via Metagraph v2 (transfer attributes via user-defined encoders) -# For more info on user-defined encoders, see https://pytorch-geometric.readthedocs.io/en/latest/notes/load_csv.html +################################################# +# 2.4: via Metagraph with user-defined encoders # +################################################# + +# Transforms attributes via user-defined encoders metagraph_v2 = { "vertexCollections": { "Movies": { @@ -198,21 +225,14 @@ metagraph_v2 = { }, "edgeCollections": {"Ratings": {"weight": "Rating"}}, } -dgl_g = adbdgl_adapter.arangodb_to_dgl("IMDB", metagraph_v2) - -# 2.5: ArangoDB to DGL via Metagraph v3 (transfer attributes via user-defined functions) -def udf_user_features(user_df): - # process the user_df Pandas DataFrame to return a feature matrix in a tensor - # user_df["features"] = ... - return torch.tensor(user_df["features"].to_list()) +dgl_g = adbdgl_adapter.arangodb_to_dgl("imdb", metagraph_v2) -def udf_game_features(game_df): - # process the game_df Pandas DataFrame to return a feature matrix in a tensor - # game_df["features"] = ... - return torch.tensor(game_df["features"].to_list()) - +################################################## +# 2.5: via Metagraph with user-defined functions # +################################################## +# Transforms attributes via user-defined functions metagraph_v3 = { "vertexCollections": { "user": { @@ -225,6 +245,17 @@ metagraph_v3 = { "plays": {"features": (lambda df: torch.tensor(df["features"].to_list()))}, }, } + +def udf_user_features(user_df: pandas.DataFrame) -> torch.Tensor: + # user_df["features"] = ... + return torch.tensor(user_df["features"].to_list()) + + +def udf_game_features(game_df: pandas.DataFrame) -> torch.Tensor: + # game_df["features"] = ... + return torch.tensor(game_df["features"].to_list()) + + dgl_g = adbdgl_adapter.arangodb_to_dgl("FakeHetero", metagraph_v3) ``` From 6ed60929dbf35326185b42597ef9a0ca4d5400d7 Mon Sep 17 00:00:00 2001 From: Anthony Mahanna Date: Thu, 26 Oct 2023 09:40:24 -0400 Subject: [PATCH 37/37] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index e16f11c..301b4c8 100644 --- a/README.md +++ b/README.md @@ -74,9 +74,9 @@ fake_hetero.edges[("user", "plays", "game")].data["features"] = torch.tensor([[6 ### DGL to ArangoDB ```py -############################# -# 1.1: without a Metagraph # -############################# +############################ +# 1.1: without a Metagraph # +############################ adb_g = adbdgl_adapter.dgl_to_arangodb("FakeHetero", fake_hetero)