Well, theoretically, yes. The logical syntax allows such, but after it didn't work when I tried, the Lucene FAQ says:

Leading wildcards (e.g. /*ook/) are *not* supported by the QueryParser by default. As of Lucene 2.1, they can be enabled by calling QueryParser.setAllowLeadingWildcard( true ). Note that this can be an expensive operation: it requires scanning the list of tokens in the index in its entirety to look for those that match the pattern.

So, it might take some flags to be flipped and an eval of the performance.

Troy


On 07/12/2012 07:12 PM, Daniel Owens wrote:
Troy,

I am excited about this kind of search capability. This is great work.

I have a question. Will this solution also cover searching for a morph value for any lemma? It might look like:

morph:*@mor1

instead of

morph:lem1@mor1

In other words, if I want to find all the masculine, singular nouns, regardless of lemma.

Daniel

On 07/12/2012 10:01 AM, Troy A. Griffitts wrote:
Hey Chris,

A relational database will not contribute more to a solution than what we have available in lucene. What I failed to get across in my last email, due to too much caffeine, was that a verse's declension data by itself is useless without being attached to the lemma which each morph code in the declension data modifies.

We have 2 things for each word:

root@declension

we refer to these as:

lemma@morph

root, stem, lemma, in this discussion are all synonyms.


Currently in our lucene index we have a field called 'lemma', so for a verse with 5 words, this field might look something like this:

lem1 lem2 lem3 lem4

and we can do searches for all verses with lem3

lemma:lem3

great, but this ignores the declension data; e.g., was lem3 a 1st person or 2nd person noun? Ignoring declension is usually desired when doing word studies, and why we have the 'lemma' lucene index in the first place. You don't want to have to search for all forms of a word to do a word study.

... but sometimes you only care about 1 form of a word when doing a study, so how do we incorporate the declension information?

It would be useless to create a 'morph' field with contents for the same verse as:

mor1 mor2 mor3 mor4

In this scenario, you could construct a clucene search using both fields like this:

lemma:lem2 morph:mor2

but this would not return what you desire. This would return all verses which have a lem2 in the lemma field and a mor2 in the morph field, but not necessarily together.

So... the proposed solution...
++++++++++++++++++++++++++

We have created a new field called 'morph' which will probably replace the lemma field and has data as:

lem1@mor1 lem2@mor2 lem3@mor3 lem4@mor4

This allows a lucene search to be create like this:

morph:lem2@mor2

or to get the functionality of the current 'lemma' field-- which ignores declension, the equiv search using the 'morph' field would be:

morph:lem2@*

this allows all kinds of queries, like: give me all verses which have lem1 and lem2 within 4 words of each other and lem2 must have the declension mor2

morph:"lem1@* lem2@mor2"~4

Hope this make things clearer if there were any clouds :)

Troy








On 07/12/2012 02:17 PM, Chris Burrell wrote:
Thanks Troy. That helps put the task in perspective... An alternative would possibly be to store both strong and morphology indexes in a relational database. Then have a table mapping all the data together. I guess the mapping table would be based on one version of the Bible only.

Cheers
Chris


On 11 July 2012 01:09, Troy A. Griffitts <[email protected] <mailto:[email protected]>> wrote:

    Chris,

    We're toyed around with the best way to add lemma+morph searching
    in SWORD but haven't finalized anything yet.

    Indexing Morphology codes won't helps.  This would give you 2
    fields which need to be used together.

    For example, if you wish to find λογος only in the nominative
    within 3 words of any present, active, indicative, 2 persons
    singular or plural verb, you could not satisfy your search.

    Believe it or not, end users of tools like Bibleworks seem quite
    happy to learn odd syntax like:


    "λογος@* *@PAI2?"~3


    Of course GUI tools to help build that syntax for them is also
    desired.

    This it the direction we're heading, but would require lemma
    encoding changed from strongs to lexical form.

    Presently we could nearly obtain this by building an index as
    (from the start of John 1.1):

    G1722@PREP G746@N-DSF G2258@V-IXI-3S

    But this would require users to know strongs numbers rather than
    lexical form, which would almost certainly need a GUI to help
    them build the search syntax.

    Hope this helps,

    Troy





    On 07/10/2012 11:41 PM, Chris Burrell wrote:
    Hello

    Does anyone know/tried some kind of stem search with JSword? Is
    it implemented? Or would we need to do a bit more work there?

    Chris



    _______________________________________________
    jsword-devel mailing list
    [email protected] <mailto:[email protected]>
    http://www.crosswire.org/mailman/listinfo/jsword-devel





_______________________________________________
jsword-devel mailing list
[email protected]
http://www.crosswire.org/mailman/listinfo/jsword-devel




_______________________________________________
sword-devel mailing list: [email protected]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page



_______________________________________________
sword-devel mailing list: [email protected]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page


_______________________________________________
sword-devel mailing list: [email protected]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page

Reply via email to