Change Password

Please enter the password.
Please enter the password. Between 8-64 characters. Not identical to your email address. Contain at least 3 of: uppercase, lowercase, numbers, and special characters.
Please enter the password.
Submit

Change Nickname

Current Nickname:
Submit

Apply New License

License Detail

Please complete this required field.

  • Ultipa Graph V4

Standalone

Please complete this required field.

Please complete this required field.

The MAC address of the server you want to deploy.

Please complete this required field.

Please complete this required field.

Cancel
Apply
ID
Product
Status
Cores
Applied Validity Period(days)
Effective Date
Excpired Date
Mac Address
Apply Comment
Review Comment
Close
Profile
  • Full Name:
  • Phone:
  • Company:
  • Company Email:
  • Country:
  • Language:
Change Password
Apply

You have no license application record.

Apply
Certificate Issued at Valid until Serial No. File
Serial No. Valid until File

Not having one? Apply now! >>>

Product Created On ID Amount (USD) Invoice
Product Created On ID Amount (USD) Invoice

No Invoice

Search
    English

      Path Finding Template

      A path template n().e()...n() can apply filters on each node and edge of a path independently. It is a very flexible way of path query.

      Syntax:

      • Statement alias: supported (PATH)
      • Prefix: OPTIOANL (returns a pseudo path for any subquery that finds no result, with empty string as _id and 0 as _uuid for all nodes and edges in the path)
      • Optional parameters:
      Parameter Type Specification Description Structure of Custom Alias
      no_circle() / / To dismiss the paths with circles; see Basic Concept - Terminologies for the definition of circle Not supported
      limit() Int -1 or >=0 Number of results to return for each subquery, -1 means to return all results Not supported

      1 step

      Example: as the path structure shown below, find transactions from a customer's card to another customer's card, return 10 paths and their properties

      n({@customer}).re({@has}).n({@card})
        .re({@transfer}).n({@card})
        .le({@has}).n({@customer}) as p
      limit 10 
      return p{*}
      

      N steps

      Example: as the path structure shown below, find 3-step transaction paths from Customer CU001's card, return 10 paths and their properties

      n({_id == "CU001"}).re({@has}).n({@card})
        .re({@transfer})[3].n({@card}) as p
      limit 10 
      return p{*}
      

      1~N steps

      Example: find 1 to 3 steps' transaction paths from Customer CU001's card, return 10 paths and their properties

      n({_id == "CU001"}).re({@has}).n({@card})
        .re({@transfer})[:3].n({@card})
        .le({@has}).n({@customer}) as p
      limit 10 
      return p{*}
      

      M~N steps

      Example: find 2 to 3 steps' transaction paths from Customer CU001's card, return 10 paths and their properties

      n({_id == "CU001"}).re({@has}).n({@card})
        .re({@transfer})[2:3].n({@card})
        .le({@has}).n({@customer}) as p
      limit 10 
      return p{*}
      

      Non-weighted Shortest Path

      Example: as the path structure shown below, find the shortest transaction paths from Customer CU001's card to Customer CU002's card within 3 steps, return 10 paths and their properties.

      n({_id == "CU001"}).re({@has}).n({@card} as n1)
      n({_id == "CU002"}).re({@has}).n({@card} as n2)
      with n1, n2
      n(n1).re({@transfer})[*:3].n(n2) as p 
      limit 10
      return p{*}
      

      Analysis: in this example, two path templates are first applied to find Customer CU001 and Customer CU002's cards respectively, then one card is used as scr and another as dest in a third transaction path template to find the shortest path between them.

      Circle

      Example: as the path structure shown below, find the circular single-direction transaction paths from Customer CU001's card within 4 steps, return 10 paths and their properties

      n({_id == "CU001"}).re({@has}).n({@card} as n)
        .re({@transfer})[:4].n(n) as p
      limit 10
      return p{*}
      

      no_circle()

      Example: find the non-circular single-direction transaction paths from Customer CU001's card within 4 steps, return 10 paths and their properties

      n({_id == "CU001"}).re({@has}).n({@card})
        .re({@transfer})[:4].n({@card})
        .no_circle() as p
      limit 10
      return p{*}
      

      limit

      Example: find the transaction paths from Card CA001, CA002, and CA005 to Card CA016 within 3 steps, return 2 paths for each pair and their properties

      find().nodes({_id in ["CA001", "CA002", "CA005"]}) as n
      n(n).e()[:3].n({_id == "CA016"})
        .limit(2) as p
      return p{*}
      

      OPTIONAL

      Example: find the transaction paths from Card CA001, CA002, and CA005 to Card CA016 within 3 steps, return 2 paths for each pair and their properties; if no paths returned, return optional paths

      find().nodes({_id in ["CA001", "CA002", "CA005"]}) as n
      optional n(n).e()[:3].n({_id == "CA016"})
        .limit(2) as p
      return p{*}
      

      0~N steps

      Example: find customers who viewed or purchased Product P001, then find other customers 0 to 2 steps away from those customers, return all secondary customers' properties.

      n({_id == "P001"}).e().n({@customer})
        .e()[0:2].n({@customer}) as p
      return p{*}
      

      Inter-step Filter

      Example: find the outbound @transfer paths from Card CA001 to Card CA002 within 4 steps, with each @transfer time greater than the previous one within the same path, return 10 paths and their properties.

      n({_id == "CA001"}).re({@transfer.time > prev_e.time})[:4].n({_id == "CA002"}) as p
      limit 10
      return p{*}
      
      Please complete the following information to download this book
      *
      公司名称不能为空
      *
      公司邮箱必须填写
      *
      你的名字必须填写
      *
      你的电话必须填写