You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tinkerpop.apache.org by "Stephen Mallette (Jira)" <ji...@apache.org> on 2021/11/18 18:09:00 UTC

[jira] [Updated] (TINKERPOP-2652) Add TextP.regex to the text predicate set

     [ https://issues.apache.org/jira/browse/TINKERPOP-2652?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Stephen Mallette updated TINKERPOP-2652:
----------------------------------------
    Issue Type: Improvement  (was: New Feature)

> Add TextP.regex to the text predicate set
> -----------------------------------------
>
>                 Key: TINKERPOP-2652
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-2652
>             Project: TinkerPop
>          Issue Type: Improvement
>          Components: process
>    Affects Versions: 3.6.0
>            Reporter: Kelvin Lawrence
>            Priority: Major
>
> We have over the years, going back to a discussion thread from January 2018 [https://lists.apache.org/thread/r76r47jjxmomz9hvsx96www6r8qnh60t] had discussions of various text predicates that Gremlin lacks but are commonly found in other query languages such as SPARQL and Cypher. We currently have some TextP predicates, but not a specific regex one. I propose we add TextP.regex and for the reference implementation leverage the Java Pattern and Matcher classes. It may be that other implementations will choose to use a different REGEX engine but at least this will get the support into the Gremlin language. As a first pass, I envision this can be something quite simple along these lines (from a small prototype I put together).
>  
> {code:java}
>          \,,,/
>          (o o)
> -----oOOo-(3)-oOOo-----
> plugin activated: tinkerpop.server
> plugin activated: tinkerpop.utilities
> plugin activated: tinkerpop.tinkergraph
> gremlin> g=traversal().withGraph(TinkerGraph.open())
> ==>graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
> gremlin> g.addV('test').property('k1','I like llamas')
> ==>v[0]
> gremlin> g.V().has('k1',TextP.regex("l[i|x]ke"))
> ==>v[0]
> gremlin> g.V().has('city',TextP.regex("^Dallas"))                                           
> ==>v[8]                                                                                     
> ==>v[186] {code}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)