jena-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andy Seaborne <a...@apache.org>
Subject Re: Case study for Jena Text: Thesaurus-augmented search
Date Sat, 10 Aug 2013 14:00:53 GMT
On 09/08/13 09:12, Neubert Joachim wrote:
> I just published a blog post:
>
> http://zbw.eu/labs/en/blog/thesaurus-augmented-search-with-jena-text
>

Nice.

I think you can rewrite to avoid multiple text:query using a temporary 
variable ?x, say, and BIND:

...
?x text:query ('telework' 2)
{ BIND ( ?x AS ?concept ) }
UNION { ?x skos:exactMatch ?concept }
UNION { BIND ( ?x AS ?concept )  ?concept skos:narrower ?narrower }
UNION { ?x skos:narrower ?concept }
UNION { BIND ( ?x AS ?concept )  skos:related ?related }
UNION { ?x skos:related ?concept }
...

but if you observe it making no difference, it could be that internal 
Lucene caching means repeat use of the same query is fast.


Is ?altLabel intended, it's in the SELECT but not in the query.  If it's 
?label every where you could use more property paths:

# To specifically get ?prefLabel
{ ?concept skos:prefLabel ?prefLabel }
UNION
{ ?concept (skos:prefLabel |
             skos:altLabel |
             skos:hiddenLabel ) ?label . }
UNION { ?concept skos:exactMatch / (skos:prefLabel |
                                     skos:altLabel |
                                     skos:hiddenLabel ) ?label .

because | in property paths is the same as a UNION.

In the extreme: ? is "zero or one of" so ....

?concept skos:exactMatch? /
            (skos:prefLabel |
             skos:altLabel |
             skos:hiddenLabel ) ?label .

but there comes a point where just because you can, does not mean that 
you should :-)

	Andy


Mime
View raw message