-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/111274/
-----------------------------------------------------------

(Updated Sept. 23, 2013, 5:39 p.m.)


Status
------

This change has been marked as submitted.


Review request for Nepomuk.


Description
-------

This patch adds two fields to Nepomuk2::Query::Term: "position" and "length". 
By default, they are zero and everything works as before. This change is 
binary- and source-compatible.

The in-development Nepomuk query parser (GSoC 2013 project) uses these fields 
to map parsed terms to the original user query string. By traversing the parse 
tree (a tree of And, Or and Comparison terms), it is therefore possible to 
match every term with a piece of input, that can be highlighted accordingly. 
For instance, each ComparisonTerm can have a different color, its subTerm being 
rendered using a bold font (like in "sent to *Jimmy*").

This patch also makes the QuerySerializer serialize the positional information, 
for debug purposes. This information is not read-back by the deserializer, as 
the modification would be fairly intrusive, and there is no need to deserialize 
positional information if the original user query is lost.


Diffs
-----

  libnepomukcore/query/term.h 114baa3 
  libnepomukcore/query/term.cpp cfb41f4 
  libnepomukcore/query/term_p.h 6d92b48 

Diff: http://git.reviewboard.kde.org/r/111274/diff/


Testing
-------

The query parser (https://github.com/steckdenis/nepomukqueryparser) is able to 
store positional information into terms, and this information is valid. The 
query "files related to mails sent by John, dated of last week" produces the 
following term tree:

<and position="0" length="55">
    <type position="0" length="5" uri="FileDataObject"/>
    <comparison position="6" length="30" property="relatedTo" comparator="=" 
inverted="false">
        <and position="0" length="35">
            <type position="17" length="5" uri="Message"/>
            <comparison position="23" length="12" property="messageFrom" 
comparator=":" inverted="false">
                <literal position="31" length="4" datatype="string">
                    John
                </literal>
            </comparison>
        </and>
    </comparison>
    <and position="46" length="9">
        <comparison position="46" length="9" property="fileLastModified" 
comparator="&gt;=" inverted="false">
            <literal position="46" length="9" datatype="dateTime">
                2013-06-16T22:00:00.002Z
            </literal>
        </comparison>
        <comparison position="46" length="9" property="fileLastModified" 
comparator="&lt;=" inverted="false">
            <literal position="46" length="9" datatype="dateTime">
                2013-06-23T20:00:00.002Z
            </literal>
        </comparison>
    </and>
</and>


Thanks,

Denis Steckelmacher

_______________________________________________
Nepomuk mailing list
[email protected]
https://mail.kde.org/mailman/listinfo/nepomuk

Reply via email to