You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tinkerpop.apache.org by "Kelvin Lawrence (Jira)" <ji...@apache.org> on 2021/11/18 17:44:00 UTC
[jira] [Created] (TINKERPOP-2652) Add TextP.regex to the text predicate set
Kelvin Lawrence created TINKERPOP-2652:
------------------------------------------
Summary: Add TextP.regex to the text predicate set
Key: TINKERPOP-2652
URL: https://issues.apache.org/jira/browse/TINKERPOP-2652
Project: TinkerPop
Issue Type: New Feature
Components: process
Affects Versions: 3.6.0
Reporter: Kelvin Lawrence
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)