Skip to content
Snippets Groups Projects
JenaQuery.js 846 B
Newer Older
esikkala's avatar
esikkala committed
import { runSelectQuery } from './SparqlApi'
esikkala's avatar
esikkala committed
import { fullTextQuery } from './SparqlQueriesGeneral'
import { makeObjectList } from './Mappers'

export const queryJenaIndex = async ({
esikkala's avatar
esikkala committed
  backendSearchConfig,
  queryTerm,
esikkala's avatar
esikkala committed
  resultClass,
esikkala's avatar
esikkala committed
  resultFormat
}) => {
esikkala's avatar
esikkala committed
  let q = fullTextQuery
  const perspectiveConfig = backendSearchConfig[resultClass]
  const { endpoint, propertiesQueryBlock } = perspectiveConfig
Henrik Askjer's avatar
Henrik Askjer committed
  q = q.replace('<QUERY>', `(result? ?score) <tag:stardog:api:property:textMatch> '${queryTerm.toLowerCase()}' .  ?id rdfs:label ?result .`)
  q = q.replace('<RESULT_SET_PROPERTIES>', propertiesQueryBlock)
Henrik Askjer's avatar
Henrik Askjer committed
  console.log("QUERY", q)
  const results = await runSelectQuery({
esikkala's avatar
esikkala committed
    endpoint: endpoint.url,
    useAuth: endpoint.useAuth,
    resultMapper: makeObjectList,
    resultFormat
  })
  return results
esikkala's avatar
esikkala committed
}