【问题标题】:Scala Sparql query with Apache Jena使用 Apache Jena 进行 Scala Sparql 查询
【发布时间】:2016-11-26 16:00:18
【问题描述】:

我正在尝试在 scala 中构建一个 sparql 查询。我在使用适用于 java 的 apache arq 库时遇到问题。依赖项似乎都很好,但 Intellij 无法解析 ParameterizedSparqlString 构造函数并导致 QueryEngineHTTP 构造函数。我正在运行 jdk 1.8。有任何想法吗?赞赏!!

val sparqlentities = namedEntitiesByDocument
  .mapPartitions(iter => {
    val sparqlEndpoint = "localhost:1643";
    iter.map( t => {
      t._1, t._2.map(namedEntity => {
        val sparqlQuery = "" + "SELECT  ?s { \n ?s rdfs:label" + namedEntity.surfaceForm + " . \n }"
        val query = QueryFactory.create(sparqlQuery, Syntax.syntaxARQ)
        // val querySolutionMap = new QuerySolutionMap()
        val parameterizedSparqlString = new ParameterizedSparqlString(query.toString(), new QuerySolutionMap())
        val httpQuery = new QueryEngineHTTP(sparqlEndpoint,parameterizedSparqlString.asQuery())
        val results = httpQuery.execSelect()
        while (results.hasNext()) {
          val solution = results.next()
          val fin_result = solution.get("s").asLiteral().getLexicalForm()
          (namedEntity.surfaceForm, fin_result)
        }
      })
    })
  })

【问题讨论】:

  • 耶拿的哪个版本?你使用 Maven 吗?如果是这样,请显示 Maven 依赖项。最后,你真的会遇到编译器错误吗?

标签: scala intellij-idea sparql jena arq


【解决方案1】:

(cmets 不适用于复杂的文本,因此这个答案)

如果您自己进行字符串构建,则不需要ParameterizedSparqlString。创建一个查询字符串,解析它,然后调用.toString 有点复杂。您可以使用QueryFactory,然后使用QueryExecutionFactory

注意在

val sparqlQuery = "" + "SELECT ?s { \n ?s rdfs:label" + namedEntity.surfaceForm + " . \n }" namedEntity.surfaceForm 必须是 SPARQL 语法,例如字符串需要 "" 围绕它,否则在 SPARQL 中会出现解析错误。

【讨论】:

    【解决方案2】:

    @Becher,根据@AKSW 的问题,我们需要知道您是如何尝试解决依赖关系的。 IntelliJ 为您提供了一些选择——我使用 SBT,我认为这很常见,与 Ivy(通过 IvyIDEA 插件)一起使用。但是,您可以直接使用 Maven,或者只是将 jars 添加到库中。

    无论如何这是一个非常有用的页面https://mvnrepository.com/artifact/org.apache.jena/jena-arq/3.1.1

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多