Java 可以在查询SPARQL中进行文本预处理吗?

Java 可以在查询SPARQL中进行文本预处理吗?,java,text,sparql,rdf,preprocessor,Java,Text,Sparql,Rdf,Preprocessor,我在使用自然语言搜索长文本时遇到问题,但我也应该使用SPARQL处理它,因为我希望从RDF返回所有值。例如: String query = "SELECT ?x ?z " + "WHERE { " + "?x rdfs:label ?z ." + "FILTER CONTAINS (LCASE(str(?z)), LCASE('the apple is red')) ."+ " }"; 因此,它应该给出结果

我在使用自然语言搜索长文本时遇到问题,但我也应该使用SPARQL处理它,因为我希望从RDF返回所有值。例如:

String query = "SELECT ?x ?z " +
           "WHERE { " +
           "?x rdfs:label ?z  ." +
          "FILTER CONTAINS (LCASE(str(?z)), LCASE('the apple is red')) ."+
           " }";
因此,它应该给出结果“apple”(一个关键字),并且它可以引用我的RDF中的“fruit”


有人能告诉我怎么做吗?谢谢。

现在有什么问题?我的意思是,什么不起作用?@UninformedUser我的意思是,我们如何预处理“”中的文本,就像上面的示例一样。要求听起来更像文本搜索。大多数SPARQL引擎都提供文本搜索功能(ApacheJena:)。文本搜索会找到?x,然后可以从RDF中提取其他信息。“我们如何在中预处理文本”-不确定预处理是什么意思,但它显然发生在执行SPARQL查询之前。所以,我不确定你到底在问什么。SPARQL及其标准函数只执行它所执行的操作,通过contains、regex或相等性检查匹配数据。正如Andy指出的,一些三联书店支持信息检索中更复杂的全文搜索功能。但即使这些都是有限的,如果你希望通过“苹果”找到“水果”,你需要更多的知识,比如WordNet等——所有这些都还在进行研究,显然同音词、同义词、美人鱼、多义词等都必须考虑。这是NLP。如果您只想在知识库中标记实体的文本,您还应该考虑现有的工作并检查SOTA是否重新创建了车轮。只要我的两分钱。。。