Hi,

You’ve presented your system service configuration. We need to see the 
configuration file 
<http://jena.apache.org/documentation/fuseki2/fuseki-configuration.html> in:

    $FUSEKI_BASE/configuration/text_svc.ttl

It is a ttl file that is interpreted by the assembler system to build the 
endpoints and dataset components. This is where the jena-text configuration 
info will go. Here is a sample configuration based on info in your service defn:

> # Fuseki configuration for BDRC, configures two endpoints:
> #   - /bdrc is read-only
> #   - /bdrcrw is read-write
> #
> # This was painful to come up with but the web interface basically allows no 
> option
> # and there is no subclass inference by default so such a configuration file 
> is necessary.
> #
> # The main doc sources are:
> #  - https://jena.apache.org/documentation/fuseki2/fuseki-configuration.html
> #  - https://jena.apache.org/documentation/assembler/assembler-howto.html
> #  - https://jena.apache.org/documentation/assembler/assembler.ttl
> #
> # See https://jena.apache.org/documentation/fuseki2/fuseki-layout.html for 
> the destination of this file.
> 
> @prefix fuseki:  <http://jena.apache.org/fuseki#> .
> @prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
> @prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
> @prefix tdb:     <http://jena.hpl.hp.com/2008/tdb#> .
> @prefix ja:      <http://jena.hpl.hp.com/2005/11/Assembler#> .
> @prefix text:    <http://jena.apache.org/text#> .
> @prefix skos:    <http://www.w3.org/2004/02/skos/core#> .
> @prefix :        <http://base/#> .
> 
> [] rdf:type fuseki:Server ;
>    fuseki:services (
>      :text_svc
>    ) .
> 
> :text_svc rdf:type fuseki:Service ;
>     fuseki:name                       "text_svc" ;     # name of the dataset 
> in the url
>     fuseki:serviceQuery               "query" ;    # SPARQL query service
>     fuseki:serviceUpdate              "update" ;   # SPARQL update service
>     fuseki:serviceUpload              "upload" ;   # Non-SPARQL upload service
>     fuseki:serviceReadWriteGraphStore "data" ;     # SPARQL Graph store 
> protocol (read and write)
>     fuseki:dataset                    :text_dataset ;
>     .
> 
> :text_dataset rdf:type     text:TextDataset ;
>     text:dataset   :tdb_dataset ;
>     text:index     :lucene_index ;
>     .
> 
> # using TDB
> :tdb_dataset rdf:type tdb:DatasetTDB ;
>      tdb:location "/home/text/tools/apache-jena-fuseki-3.9.0/run/tdb_dataset" 
> ;
>      tdb:unionDefaultGraph true ;
>      .
> 
> # Text index description
> :lucene_index a text:TextIndexLucene ;
>     text:directory 
> <file:/home/text/tools/apache-jena-fuseki-3.9.0/run/lucene_index> ;
>     text:storeValues true ;
>     text:entityMap :entitymap ;
>     .
> 
> # Index mappings
> :entitymap a text:EntityMap ;
>     text:entityField      "uri" ;
>     text:uidField         "uid" ;
>     text:defaultField     "label" ;
>     text:langField        "lang" ;
>     text:graphField       "graph" ; ## enable graph-specific indexing
>     text:map (
>          [ text:field "label" ; 
>            text:predicate skos:prefLabel ]
>          ) ;
>     .

hth,
Chris




> On Jan 21, 2019, at 5:21 AM, Mikael Pesonen <mikael.peso...@lingsoft.fi> 
> wrote:
> 
> 
> Hi,
> 
> 
> On 18/01/2019 18:13, Chris Tomlinson wrote:
>> Hi,
>> 
>> 1) If you’re using a default config, it does not have a working jena-text 
>> configuration. The config will need to  include skos:prefLabel in the entity 
>> map.
>> 
>> 2) when you change the jena-text in significant ways, such as changing what 
>> analyzer is used for a given property and so on, then you’ll need to rebuild 
>> the Lucene index via reloading the dataset or using the textIndexer 
>> <https://jena.apache.org/documentation/query/text-query.html#building-a-text-index>.
>>  I don’t recall this being mentioned as part of your testing
>> 
>> 3) Please indicate exactly which item you’re using jena-fuseki-war-3.9.0.war 
>> or jena-fuseki-webapp-3.9.0.jar etc, and the config file itself. The error 
>> you’ve mentioned previously:
> We are running Fuseki as service
> 
> -----
> [Unit]
> Description=Apache Jena Fuseki
> 
> [Service]
> Type=simple
> User=fuseki
> #Environment=JAVA_HOME=/usr/lib/jvm/java-8-oracle/
> Environment=FUSEKI_HOME=/home/text/tools/apache-jena-fuseki-3.9.0
> Environment=FUSEKI_BASE=/home/text/tools/apache-jena-fuseki-3.9.0/run
> ExecStart=/usr/bin/java 
> -Dlog4j.configuration=file:/home/text/tools/apache-jena-fuseki-3.9.0/log4j.properties
>  -Xmx5600M -jar /home/text/tools/apache-jena-fuseki-3.9.0/fuseki-server.jar 
> --update --port 3030  --loc=/home/text/tools/jena_data_test/ /ds
> 
> [Install]
> WantedBy=multi-user.target
> -----
> 
> All settings are default otherwise, we haven't changed any config file.
> 
> Are there some minimal settings to this example config so that I could get 
> skos:prefLabel working?
> 
> https://jena.apache.org/documentation/query/text-query.html#configuration
> 
> So when we have a working configuration/assembler file, all is needed is to 
> build the index
> 
> java  -cp  $FUSEKI_HOME/fuseki-server.jar  jena.textindexer  
> --desc=assembler_file ?
> 
> 
> Thank everyone for the help
>>> Jan 17 17:00:28 semantic-dev java[16800]: [2019-01-17 17:00:28] Config     
>>> INFO  Load configuration: 
>>> file:///home/text/tools/apache-jena-fuseki-3.9.0/run/configuration/text_index.ttl
>>>  
>>> <file:///home/text/tools/apache-jena-fuseki-3.9.0/run/configuration/text_index.ttl>
>>> Jan 17 17:00:28 semantic-dev java[16800]: [2019-01-17 17:00:28] 
>>> WebAppContext WARN  Failed startup of context 
>>> o.e.j.w.WebAppContext@4159e81b{Apache Jena Fuseki 
>>> Server,/,file:///home/text/tools/apache-jena-fuseki-3.9.0/webapp/,UNAVAILABLE
>>>  <file:///home/text/tools/apache-jena-fuseki-3.9.0/webapp/,UNAVAILABLE>}
>>> Jan 17 17:00:28 semantic-dev java[16800]:         at 
>>> org.apache.jena.fuseki.build.FusekiConfig.readAssemblerFile(FusekiConfig.java:148)
>> suggests to me that something in the config file is confusing the 
>> readAssemblerFile. It doesn’t look like it’s failing in the reading the 
>> jena-text portion of the config.
>> 
>> If http://api.finto.fi/download/mesh/mesh-skos.ttl 
>> <http://api.finto.fi/download/mesh/mesh-skos.ttl> the dataset, then can you 
>> cut it down to just a small test case with some concepts with “medi” and a 
>> few without? That along with the other information should help move this 
>> further along..
>> 
>> 4) Your query:
>> 
>>> PREFIX skos: <http://www.w3.org/2004/02/skos/core# 
>>> <http://www.w3.org/2004/02/skos/core#>>
>>> PREFIX text: <http://jena.apache.org/text# <http://jena.apache.org/text#>>
>>> SELECT *
>>> WHERE
>>> {
>>>   GRAPH <http://www.yso.fi/onto/mesh/ <http://www.yso.fi/onto/mesh/>>
>>>   {
>>>     ?concept text:query (skos:prefLabel "medi") .
>>>     ?concept skos:prefLabel ?prefLabel .
>>> 
>>>     # FILTER (  REGEX(?prefLabel, "\\bmedi", "i"))
>>>   }
>>> }
>>> limit 10
>> might effectively just be executing:
>> 
>>> ?concept skos:prefLabel ?prefLabel .
>> if there is actually no jena-text config - I haven’t checked what happens 
>> when there is no TextIndex configured and the text:query is invoked, but may 
>> be a noop
>> 
>> Thanks,
>> Chris
>> 
>> 
>>> On Jan 18, 2019, at 8:08 AM, Mikael Pesonen <mikael.peso...@lingsoft.fi> 
>>> wrote:
>>> 
>>> 
>>> 
>>> On 18/01/2019 13:40, Andy Seaborne wrote:
>>>> 
>>>> On 17/01/2019 15:45, Mikael Pesonen wrote:
>>>>> 
>>>>> On 17/01/2019 17:38, Andy Seaborne wrote:
>>>>>> 
>>>>>> On 17/01/2019 12:51, Mikael Pesonen wrote:
>>>>>>> 
>>>>>>> On 17/01/2019 13:58, Andy Seaborne wrote:
>>>>>>>> 
>>>>>>>> On 16/01/2019 12:50, Mikael Pesonen wrote:
>>>>>>>>> Hi,
>>>>>>>>> 
>>>>>>>>> I'm trying to get text search work. Sparql REGEX takes few seconds to 
>>>>>>>>> finish so hoping this would be faster. Application is term search 
>>>>>>>>> using SKOS ontology.
>>>>>>>>> 
>>>>>>>>>   First tested if it's enabled by default
>>>>>>>>> 
>>>>>>>>>   ?concept text:query (skos:prefLabel "medi") .
>>>>>>>>>    ?concept skos:prefLabel ?prefLabel
>>>>>>>>> 
>>>>>>>>> That returns all concepts so I guess it's not enabled.
>>>>>>>> If it returns all concepts, the first line matched (otherwise you get 
>>>>>>>> none). If so, there is a text index and "medi" (case insensitive) 
>>>>>>>> matches Lucene rules, everything.
>>>>>>> What does this mean then, why is it matching everything?
>>>>>> If zero matches, you don't get to ?concept skos:prefLabel ?prefLabel (if 
>>>>>> the text index is correct)
>>>>>> 
>>>>>> The query above, if the index is setup correctly,  gets all concepts 
>>>>>> where any skos:prefLabel matches "medi" (not just at the start), then 
>>>>>> gets all skos:prefLabel for those concepts. That does not mean 
>>>>>> ?prefLabel only matches "medi"
>>>>>> 
>>>>>> :c skos:prefLabel "medi" ;
>>>>>>    skos:prefLabel "Other" .
>>>>>> 
>>>>>> will return 2 matches including ?prefLabel="Other"
>>>>> Yes that is how I understood it. But  ?concept text:query (skos:prefLabel 
>>>>> "medi")  returns all concepts, also those that don't have any label 
>>>>> having "medi".
>>>> Then I don't understand what is going on.
>>>> 
>>>> Do you have a complete, minimal example that someone can use to recreate 
>>>> the situation?
>>>> 
>>> This is the query:
>>> 
>>> PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
>>> PREFIX text: <http://jena.apache.org/text#>
>>> SELECT *
>>> WHERE
>>> {
>>>   GRAPH <http://www.yso.fi/onto/mesh/>
>>>   {
>>>     ?concept text:query (skos:prefLabel "medi") .
>>>     ?concept skos:prefLabel ?prefLabel .
>>> 
>>>     # FILTER (  REGEX(?prefLabel, "\\bmedi", "i"))
>>>   }
>>> }
>>> limit 10
>>> 
>>> and graph is dump copied from here:  https://finto.fi/mesh/en/
>>> end of page "Download this vocabulary"
>>> 
>>> So to make clear, we have made zero configuration on jena/fuseki, all is 
>>> default from 3.9.0 package.
>>>> Andy
>>> -- 
>>> Lingsoft - 30 years of Leading Language Management
>>> 
>>> www.lingsoft.fi
>>> 
>>> Speech Applications - Language Management - Translation - Reader's and 
>>> Writer's Tools - Text Tools - E-books and M-books
>>> 
>>> Mikael Pesonen
>>> System Engineer
>>> 
>>> e-mail: mikael.peso...@lingsoft.fi
>>> Tel. +358 2 279 3300
>>> 
>>> Time zone: GMT+2
>>> 
>>> Helsinki Office
>>> Eteläranta 10
>>> FI-00130 Helsinki
>>> FINLAND
>>> 
>>> Turku Office
>>> Kauppiaskatu 5 A
>>> FI-20100 Turku
>>> FINLAND
>>> 
>> 
> 
> -- 
> Lingsoft - 30 years of Leading Language Management
> 
> www.lingsoft.fi
> 
> Speech Applications - Language Management - Translation - Reader's and 
> Writer's Tools - Text Tools - E-books and M-books
> 
> Mikael Pesonen
> System Engineer
> 
> e-mail: mikael.peso...@lingsoft.fi
> Tel. +358 2 279 3300
> 
> Time zone: GMT+2
> 
> Helsinki Office
> Eteläranta 10
> FI-00130 Helsinki
> FINLAND
> 
> Turku Office
> Kauppiaskatu 5 A
> FI-20100 Turku
> FINLAND
> 

Reply via email to