<div dir="ltr">No, definitely won&#39;t ;)</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Aug 7, 2014 at 3:05 PM, Jess Sightler <span dir="ltr">&lt;<a href="mailto:jsightle@redhat.com" target="_blank">jsightle@redhat.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000">
    I don&#39;t think that will be faster than just returning all of the
    elements and manually filtering in code, though. A positive search
    will hit the lucene index and is generally much faster.<div><div class="h5"><br>
    <br>
    <div>On 08/07/2014 02:52 PM, Lincoln Baxter,
      III wrote:<br>
    </div>
    <blockquote type="cite">
      <div dir="ltr">I think that negative queries could be added, just
        like I added multi-queries in WINDUP-133: <a href="https://github.com/lincolnthree/windup/blob/WINDUP-133/config/api/src/main/java/org/jboss/windup/config/query/QueryPropertyCriterion.java#L33" target="_blank">https://github.com/lincolnthree/windup/blob/WINDUP-133/config/api/src/main/java/org/jboss/windup/config/query/QueryPropertyCriterion.java#L33</a></div>

      <div class="gmail_extra"><br>
        <br>
        <div class="gmail_quote">On Thu, Aug 7, 2014 at 2:47 PM, Jess
          Sightler <span dir="ltr">&lt;<a href="mailto:jsightle@redhat.com" target="_blank">jsightle@redhat.com</a>&gt;</span>
          wrote:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
            <div><br>
              On 07/31/2014 04:29 PM, Ondrej Zizka wrote:<br>
              &gt; When talking to Robb, we discussed the ability to
              query for POJO classes<br>
              &gt; - i.e. those which do not have any vendor-specific
              extension, do not use<br>
              &gt; blacklisted classes, do not extend something &quot;dirty&quot;,
              etc.<br>
              &gt;<br>
              &gt; Which brings us to interesting concept - querying for
              something &quot;not<br>
              &gt; being a lot of things&quot;.<br>
              &gt;<br>
              &gt; We have discussed this briefly on F2F with Brad.<br>
              &gt; The first shot could be:<br>
              &gt;<br>
              &gt; * creating a method which will query for vertexes
              that have some frame<br>
              &gt; type (JavaClass), but not any other, or a set of
              other types<br>
              &gt; (WebLogicContextListener).<br>
              <br>
            </div>
            One issue here is that the Titan Text predicate does not
            directly<br>
            support negations. I am not sure how easy it would be to add
            this in a<br>
            performant manner for a negated type search.<br>
            <br>
            I agree that this is a need, though for certain types of
            queries.<br>
            <div><br>
              &gt;<br>
              &gt; * querying for vertices which are not linked to
              vertices in sevral<br>
              &gt; blacklists<br>
              &gt;       For example, querying for JavaClass&#39;es not
              linked to a list of<br>
              &gt; other JavaClass&#39;es by an &quot;extends&quot; edge.<br>
              &gt;       This will need some way to keep the blacklists
              in the graph, and<br>
              &gt; then, I can imagine Gremlin taking the part in
              filtering out the<br>
              &gt; vertices linked to them by a set of edge types
              (&quot;extends&quot;, &quot;implements&quot;,<br>
              &gt; &quot;annotatedBy&quot;, &quot;calls&quot;, &quot;imports&quot;, ...)<br>
              &gt;<br>
              &gt; And creating a disjunction of all these results, by
              narrowing the set of<br>
              &gt; candidate vertices, step by step.<br>
              <br>
            </div>
            I think that things like require gremlin queries. It would
            be logical<br>
            for us to build some building blocks for complex queries
            like this so<br>
            that users don&#39;t have to fully understand gremlin (and the
            rather<br>
            complex graph structure) for more common operations. For an
            example, see<br>
            the FindClassifiedFilesGremlinCriterion class.<br>
            <div><br>
              &gt; What I think is a BAD approach, is this kind of rules
              (outside of Java<br>
              &gt; basic analysis):<br>
              &gt;<br>
              &gt;          
              Query.find(JavaClassModel.class).as(&quot;javaClasses&quot;)<br>
              &gt;<br>
              &gt;          
              Iteration.over(&quot;javaClasses&quot;).as(&quot;javaClass&quot;).perform(<br>
              &gt;                   ...<br>
              &gt;           )<br>
              &gt;<br>
              &gt;<br>
              <br>
            </div>
            I don&#39;t think that anyone has advocated for that type of
            approach,<br>
            outside of the cases where you actually want to iterate over
            all of the<br>
            JavaClassModels in the graph.<br>
            <div>
              <div><br>
                _______________________________________________<br>
                windup-dev mailing list<br>
                <a href="mailto:windup-dev@lists.jboss.org" target="_blank">windup-dev@lists.jboss.org</a><br>
                <a href="https://lists.jboss.org/mailman/listinfo/windup-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/windup-dev</a><br>
              </div>
            </div>
          </blockquote>
        </div>
        <br>
        <br clear="all">
        <div><br>
        </div>
        -- <br>
        Lincoln Baxter, III<br>
        <a href="http://ocpsoft.org" target="_blank">http://ocpsoft.org</a><br>
        &quot;Simpler is better.&quot;
      </div>
      <br>
      <fieldset></fieldset>
      <br>
      <pre>_______________________________________________
windup-dev mailing list
<a href="mailto:windup-dev@lists.jboss.org" target="_blank">windup-dev@lists.jboss.org</a>
<a href="https://lists.jboss.org/mailman/listinfo/windup-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/windup-dev</a></pre>
    </blockquote>
    <br>
  </div></div></div>

<br>_______________________________________________<br>
windup-dev mailing list<br>
<a href="mailto:windup-dev@lists.jboss.org">windup-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/windup-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/windup-dev</a><br></blockquote></div><br><br clear="all"><div><br></div>-- <br>Lincoln Baxter, III<br>
<a href="http://ocpsoft.org" target="_blank">http://ocpsoft.org</a><br>&quot;Simpler is better.&quot;
</div>