Skip to content

shubhangiat/Hygraph-Pattern-Matching

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HyGraph

Description

This package provides tools for managing and analyzing HyGraph data.

Installation

To install the package, use the following command: pip install hygraph-core

Usage

from hygraph_core import HyGraph, HyGraphQuery
      # Initialize HyGraph
    hygraph = HyGraph()

    # Sample data for nodes and edges
    # Creating nodes
    node1 = hygraph.add_pgnode(oid=1, label="Node1", start_time=pd.to_datetime("2023-01-01"))
    node2 = hygraph.add_pgnode(oid=2, label="Node2", start_time=pd.to_datetime("2023-01-01"))

    # Adding static properties to nodes
    node1.add_static_property("description", "This is node 1", hygraph)
    node2.add_static_property("description", "This is node 2", hygraph)

    # Create an edge with static and dynamic properties
    edge = hygraph.add_pgedge(
        oid=10,
        source=node1.getId(),
        target=node2.getId(),
        label="Edge1",
        start_time=pd.to_datetime("2023-01-01"),
        properties={"weight": 5}
    )
    # Define timestamps and values
    timestamps = pd.to_datetime(["2023-01-01", "2023-01-02", "2023-01-03"])
    values = [[1], [3], [5]]

    # Create the time series
    metadata = TimeSeriesMetadata(owner_id=edge.getId(), element_type='edge')  # or whatever the correct metadata is
    time_series = TimeSeries(tsid='traffic_series', timestamps=timestamps, variables=['traffic'], data=values,
                             metadata=metadata)
    # Add a dynamic property to the edge (if supported in your implementation)
    edge.add_temporal_property("traffic", time_series, hygraph)

    # Query example: retrieve all edges between `Node1` and `Node2`
    query = HyGraphQuery(hygraph) \
        .match_node(alias='node1', node_id=node1.getId()) \
        .match_edge(alias='edge') \
        .match_node(alias='node2', node_id=node2.getId()) \
        .connect('node1', 'edge', 'node2') \
        .return_(edge=lambda result: result['edge'])

    # Execute query and print results
    edges = query.execute()
    print("Edges between Node1 and Node2:", edges)

    # Display nodes, edges, and properties
    print("Nodes and their properties:")
    for node_id, data in hygraph.graph.nodes(data=True):
        print(f"Node ID: {node_id}, Data: {data}")

    print("\nEdges and their properties:")
    for u, v, data in hygraph.graph.edges(data=True):
        print(f"Edge from {u} to {v}, Data: {data}")

# Example usage here

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages