Hi,
we haven't made any configuration files, so configuration folder is
empty. Everything is working fine except text search so are there some
advances for doing custom config? I understand now that for text search
we need the config and about that I asked for help.
On 21/01/2019 19:24, Chris Tomlinson wrote:
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
--
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