Hello, According to turtle syntax document(https://www.w3.org/TR/turtle) “:My_index_ES” with prefix “@prefix : <http://localhost/jena_example/#<http://localhost/jena_example/>> .” will be parsed as “<http://localhost/jena_example/#My_index_ES>”
But , Relative IRIs like <#indexES> are resolved relative to the current base IRI. A new base IRI can be defined using the '@base' or 'BASE' directive. If <#indexES> is used, it should be defined as follow: @base <http://localhost/jena_example/#> . <#indexES> a text:TextIndexES ; Sent from Mail<https://go.microsoft.com/fwlink/?LinkId=550986> for Windows 10 From: vincent ventresque<mailto:[email protected]> Sent: Thursday, July 25, 2019 14:48 To: [email protected]<mailto:[email protected]> Subject: Re: Can't use ES in jena's text_dataset Hello I've spent hours with a similar problem (with Lucene, not ES). Maybe you should provide a fixed uri for your index ? :My_index_ES instead of <#indexES> It worked for me. I wrote a small tuto where you can find working examples of assembler files and text queries (for Lucene) https://sourceforge.net/projects/ffl-misc/files/TUTORIEL_Fuseki_BnF.pdf The tuto is in French but you will find code samples and commands. On 25/07/2019 05:02, 刑天 wrote: > Actually, even using text-config-es.ttl in jena-text-es module wouldn't > work... > > > > > > > > > At 2019-07-25 09:50:30, "刑天" <[email protected]> wrote: >> I followed the instruction in wiki and example in text-es module. The >> assembler's source code is here: >> @prefix : >> <http://localhost/jena_example/#<http://localhost/jena_example/>> . >> @prefix rdf: >> <http://www.w3.org/1999/02/22-rdf-syntax-ns#<http://www.w3.org/1999/02/22-rdf-syntax-ns>> >> . >> @prefix rdfs: >> <http://www.w3.org/2000/01/rdf-schema#<http://www.w3.org/2000/01/rdf-schema>> >> . >> @prefix tdb: >> <http://jena.hpl.hp.com/2008/tdb#<http://jena.hpl.hp.com/2008/tdb>> . >> @prefix ja: >> <http://jena.hpl.hp.com/2005/11/Assembler#<http://jena.hpl.hp.com/2005/11/Assembler>> >> . >> @prefix text: <http://jena.apache.org/text#<http://jena.apache.org/text>> >> . >> @prefix skos: >> <http://www.w3.org/2004/02/skos/core#<http://www.w3.org/2004/02/skos/core>> >> @prefix fuseki: >> <http://jena.apache.org/fuseki#<http://jena.apache.org/fuseki>> . >> >> >> :service_tdb_all a fuseki:Service ; >> rdfs:label "TDB music" ; >> fuseki:dataset :text_dataset ; >> fuseki:name "movie_entities_es" ; >> fuseki:serviceQuery "query" , "sparql" ; >> fuseki:serviceReadGraphStore "get" ; >> fuseki:serviceReadWriteGraphStore >> "data" ; >> fuseki:serviceUpdate "update" ; >> fuseki:serviceUpload "upload" . >> >> >> >> >> # TDB >> [] ja:loadClass "org.apache.jena.tdb.TDB" . >> tdb:DatasetTDB rdfs:subClassOf ja:RDFDataset . >> tdb:GraphTDB rdfs:subClassOf ja:Model . >> >> >> # Text >> [] ja:loadClass "org.apache.jena.query.text.TextQuery" . >> text:TextDataset rdfs:subClassOf ja:RDFDataset . >> text:TextIndexES rdfs:subClassOf text:TextIndex . >> >> >> ## --------------------------------------------------------------- >> ## This URI must be fixed - it's used to assemble the text dataset. >> >> >> :text_dataset rdf:type text:TextDataset ; >> text:dataset :movie_entities_es ; >> text:index <#indexES> ; >> . >> >> >> <#indexES> a text:TextIndexES ; >> text:serverList "127.0.0.1:9300" ; # A comma-separated list of Host:Port >> values of the ElasticSearch Cluster nodes. >> text:clusterName "elasticsearch" ; # Name of the ElasticSearch Cluster. >> If not specified defaults to 'elasticsearch' >> text:shards "1" ; # The number of shards for the index. >> Defaults to 1 >> text:replicas "1" ; # The number of replicas for the >> index. Defaults to 1 >> text:indexName "jena-text" ; # Name of the Index. defaults to >> jena-text >> text:entityMap <#entMap> ; >> . >> >> >> <#entMap> a text:EntityMap ; >> text:entityField "uri" ; # Defines the Document Type in the ES Index >> text:defaultField "text" ; ## Must be defined in the text:maps >> text:map ( >> [ text:field "label" ; >> text:predicate <http://ai.sankuai.com/KnowledgeGraph/Property/name> >> ] >> ) . >> >> >> >> >> :movie_entities_es >> a tdb:DatasetTDB ; >> tdb:location "/Users/gaozhixin/data/movie_entities_20190723" . >> >> >> And it gives me this error: >> >> >> [2019-07-24 19:06:18] WebAppContext WARN Failed startup of context >> o.e.j.w.WebAppContext@5eeedb60{Apache Jena Fuseki >> Server,/,file:///Users/gaozhixin/Programs/apache-jena-fuseki-3.12.0/webapp/,UNAVAILABLE} >> org.apache.jena.assembler.exceptions.NoSpecificTypeException: the root >> file:///Users/gaozhixin/Programs/apache-jena-fuseki-3.12.0/run/configuration/movie_entities_es.ttl#indexES >> has no most specific type that is a subclass of ja:Object >> doing: >> root: http://localhost/jena_example/#text_dataset with type: >> http://jena.apache.org/text#TextDataset assembler class: class >> org.apache.jena.query.text.assembler.TextDatasetAssembler >> >> >> at >> org.apache.jena.assembler.assemblers.AssemblerGroup$PlainAssemblerGroup.open(AssemblerGroup.java:139) >> at >> org.apache.jena.assembler.assemblers.AssemblerGroup$ExpandingAssemblerGroup.open(AssemblerGroup.java:93) >> at >> org.apache.jena.assembler.assemblers.AssemblerBase.open(AssemblerBase.java:39) >> at >> org.apache.jena.assembler.assemblers.AssemblerBase.open(AssemblerBase.java:35) >> at >> org.apache.jena.query.text.assembler.TextDatasetAssembler.open(TextDatasetAssembler.java:62) >> at >> org.apache.jena.query.text.assembler.TextDatasetAssembler.open(TextDatasetAssembler.java:42) >> at >> org.apache.jena.assembler.assemblers.AssemblerGroup$PlainAssemblerGroup.openBySpecificType(AssemblerGroup.java:157) >> at >> org.apache.jena.assembler.assemblers.AssemblerGroup$PlainAssemblerGroup.open(AssemblerGroup.java:144) >> at >> org.apache.jena.assembler.assemblers.AssemblerGroup$ExpandingAssemblerGroup.open(AssemblerGroup.java:93) >> at >> org.apache.jena.assembler.assemblers.AssemblerBase.open(AssemblerBase.java:39) >> at >> org.apache.jena.assembler.assemblers.AssemblerBase.open(AssemblerBase.java:35) >> at >> org.apache.jena.fuseki.build.FusekiConfig.getDataset(FusekiConfig.java:353) >> at >> org.apache.jena.fuseki.build.FusekiConfig.buildDataService(FusekiConfig.java:303) >> at >> org.apache.jena.fuseki.build.FusekiConfig.buildDataAccessPoint(FusekiConfig.java:292) >> at >> org.apache.jena.fuseki.build.FusekiConfig.readConfiguration(FusekiConfig.java:275) >> at >> org.apache.jena.fuseki.build.FusekiConfig.readConfigurationDirectory(FusekiConfig.java:254) >> at >> org.apache.jena.fuseki.webapp.FusekiWebapp.initializeDataAccessPoints(FusekiWebapp.java:226) >> at >> org.apache.jena.fuseki.webapp.FusekiServerListener.serverInitialization(FusekiServerListener.java:99) >> at >> org.apache.jena.fuseki.webapp.FusekiServerListener.contextInitialized(FusekiServerListener.java:56) >> at >> org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:952) >> at >> org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:558) >> at >> org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:917) >> at >> org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:370) >> at >> org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1497) >> at >> org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1459) >> at >> org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:847) >> at >> org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:287) >> at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:545) >> at >> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) >> at >> org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:138) >> at >> org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:108) >> at >> org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:113) >> at >> org.eclipse.jetty.server.handler.gzip.GzipHandler.doStart(GzipHandler.java:410) >> at >> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) >> at >> org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:138) >> at org.eclipse.jetty.server.Server.start(Server.java:416) >> at >> org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:108) >> at >> org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:113) >> at org.eclipse.jetty.server.Server.doStart(Server.java:383) >> at >> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) >> at >> org.apache.jena.fuseki.cmd.JettyFusekiWebapp.start(JettyFusekiWebapp.java:138) >> at org.apache.jena.fuseki.cmd.FusekiCmd.runFuseki(FusekiCmd.java:372) >> at >> org.apache.jena.fuseki.cmd.FusekiCmd$FusekiCmdInner.exec(FusekiCmd.java:356) >> at jena.cmd.CmdMain.mainMethod(CmdMain.java:93) >> at jena.cmd.CmdMain.mainRun(CmdMain.java:58) >> at jena.cmd.CmdMain.mainRun(CmdMain.java:45) >> at >> org.apache.jena.fuseki.cmd.FusekiCmd$FusekiCmdInner.innerMain(FusekiCmd.java:104) >> at org.apache.jena.fuseki.cmd.FusekiCmd.main(FusekiCmd.java:67) >> [2019-07-24 19:06:18] Server INFO Started 2019/07/24 19:06:18 CST on >> port 3030 >> >> >> Is there anything wrong in my code?
