java -cp fuseki-server.jar jena.textindexer --desc = run / cguration / FAIR.ttl Нет такого типа: <http://jena.apache.org/text#TextDataset> - PullRequest
0 голосов
/ 22 января 2020

Я пытаюсь включить полнотекстовый поиск в экземпляре Fuseki v3.12, но я получаю сообщение об ошибке, показанное ниже. FAIR.ttl уже существует в каталоге run / configuration /. Я только что добавил индексную часть Lucene в файл ttl (в моем случае FAIR.ttl).

FAIR.ttl выглядит так:

@prefix :      <http://base/#> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix tdb2:  <http://jena.apache.org/2016/tdb#> .
@prefix ja:    <http://jena.hpl.hp.com/2005/11/Assembler#> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
@prefix fuseki: <http://jena.apache.org/fuseki#> .
@prefix skos:  <http://www.w3.org/2004/02/skos/core#> .

tdb2:DatasetTDB  rdfs:subClassOf  ja:RDFDataset .

ja:DatasetTxnMem  rdfs:subClassOf  ja:RDFDataset .

<http://jena.hpl.hp.com/2008/tdb#DatasetTDB>
        rdfs:subClassOf  ja:RDFDataset .

<http://jena.hpl.hp.com/2008/tdb#GraphTDB>
        rdfs:subClassOf  ja:Model .

tdb2:GraphTDB2  rdfs:subClassOf  ja:Model .

ja:MemoryDataset  rdfs:subClassOf  ja:RDFDataset .

ja:RDFDatasetZero  rdfs:subClassOf  ja:RDFDataset .

<http://jena.apache.org/text#TextDataset> 
rdfs:subClassof  ja:RDFDataset .


:service_tdb_all  a                   fuseki:Service ;
        rdfs:label                    "TDB2 FAIR" ;
        fuseki:dataset                :tdb_dataset_readwrite ;
        fuseki:name                   "FAIR" ;
        fuseki:serviceQuery           "query" , "sparql" ;
        fuseki:serviceReadGraphStore  "get" ;
        fuseki:serviceReadWriteGraphStore
                "data" ;
        fuseki:serviceUpdate          "update" ;
        fuseki:serviceUpload          "upload" .

:tdb_dataset_readwrite
        a              tdb2:DatasetTDB2 ;
        tdb2:location  "../applications/apache-jena-fuseki-3.12.0/run/databases/FAIR" .

tdb2:GraphTDB  rdfs:subClassOf  ja:Model .

<http://jena.apache.org/spatial#SpatialDataset>
        rdfs:subClassOf  ja:RDFDataset .

ja:RDFDatasetOne  rdfs:subClassOf  ja:RDFDataset .

ja:RDFDatasetSink  rdfs:subClassOf  ja:RDFDataset .

tdb2:DatasetTDB2  rdfs:subClassOf  ja:RDFDataset .

###############################################
## below is what I added to for the Lucene index

# Text index description
<#indexLucene> a text:TextIndexLucene ;
    text:directory <file:../applications/apache-jena-fuseki-3.12.0/LuceneIndexing"> ;
    text:entityMap <#entMap> ;
    .

<#entMap> a text:EntityMap ;
    text:defaultField     "text" ;
    text:entityField      "uri" ;
       text:map (
           #RDF label abstracts
         [ text:field "text" ; 
           text:predicate <http://www.w3.org/2000/01/rdf-schema#label> ;
           text:analyzer [
                a text:StandardAnalyzer
             ]  
           ]
          ) .

<#service_text_tdb> rdf:type fuseki:Service ;
    fuseki:name                     "ds" ;
    fuseki:serviceQuery             "query" ;
    fuseki:serviceQuery             "sparql" ;
    fuseki:serviceUpdate            "update" ;
    fuseki:serviceUpload            "upload" ;
    fuseki:serviceReadGraphStore    "get" ;
    fuseki:serviceReadWriteGraphStore    "data" ;
    fuseki:dataset                  :text_dataset ;
    .

Затем я запускаю команду:

 java -cp fuseki-server.jar jena.textindexer --desc=run/cguration/FAIR.ttl 

Я получил ошибку, как показано ниже:

org.apache.jena.sparql.ARQException: No such type: <http://jena.apache.org/text#TextDataset>
    at org.apache.jena.sparql.core.assembler.AssemblerUtils.build(AssemblerUtils.java:134)
    at org.apache.jena.query.text.TextDatasetFactory.create(TextDatasetFactory.java:38)
    at jena.textindexer.processModulesAndArgs(textindexer.java:90)
    at jena.cmd.CmdArgModule.process(CmdArgModule.java:52)
    at jena.cmd.CmdMain.mainMethod(CmdMain.java:92)
    at jena.cmd.CmdMain.mainRun(CmdMain.java:58)
    at jena.cmd.CmdMain.mainRun(CmdMain.java:45)
    at jena.textindexer.main(textindexer.java:52)

С помощью Google я могу найти очень ограниченное решение. Единственную проблему, которую я обнаружил, можно найти по ссылке ниже, но этот вопрос не получил ответа. http://mail-archives.apache.org/mod_mbox/jena-users/201910.mbox/%3Ctrinity-9a681d06-863f-43f4-beb3-24b8b03d8be0-1570382817685@3c-app-mailcom-lxa16%3E

Я попытался отладить, но эта проблема все еще остается. Кажется, это не имеет никакого отношения к описанию индекса # Text, которое я добавил в конце FAIR.ttl. Потому что, если я удалю эту часть, проблема все еще возникает.

Речь идет о линии

<http://jena.apache.org/text#TextDataset> 
rdfs:subClassof  ja:RDFDataset .

У кого-нибудь есть идея? Заранее спасибо.

1 Ответ

0 голосов
/ 22 января 2020

Описание на ассемблере не устанавливает текстовый набор данных - оно только упоминает, что «http://jena.apache.org/text#TextDataset rdfs: subClassof ja: RDFDataset» (на самом деле это не обязательно, ни тройки «rdfs: subClassOf») ).

Должен быть начальный раздел:

:text_dataset rdf:type     text:TextDataset ;
    text:dataset   :mydataset ; # <-- replace `:my_dataset` with the desired URI
    text:index     <#indexLucene> ;
.

Для получения полных инструкций см .:

https://jena.apache.org/documentation/query/text-query.html#text -Daseaset-сборщик

...