Если у меня есть подключение cxn
к пустому триплстору и я говорю:
val CheckSparql = "select (count(?s) as ?scount) where { ?s ?p ?o . }"
val PreparedSparql = cxn.prepareTupleQuery(QueryLanguage.SPARQL, CheckSparql)
val Result = PreparedSparql.evaluate()
val ResBindSet = Result.next()
val TripleCount = ResBindSet.getValue("scount")
println(TripleCount.toString())
я получил
"0"^^<http://www.w3.org/2001/XMLSchema#integer>
Существует ли метод RDF4J для получения только значения этого литерала?
Я просто хочу 0 или "0" без типа данных
Я решил, что должен попытаться сделать это без манипуляций со строками/регулярных выражений, если это возможно.
getValue
возвращает экземпляр типаValue
. Я думаю, вам нужно проверить тип и привести его к соответствующему типу. В вашем случае это должен быть Literal который предоставляет методintegerValue()
для получения целочисленного значения. Не проверено:TripleCount.asInstanceOf[Literal].integerValue()
- person UninformedUser   schedule 25.10.2017val tripleCountInt = tripleCount.stringValue().toInt
можете ли вы придумать какую-нибудь причину, чтобы этого не делать? - person Mark Miller   schedule 25.10.2017