I followed the instruction in wiki and example in text-es module. The assembler's source code is here: @prefix : <http://localhost/jena_example/#> . @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 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?