The ISSA project focuses on the semantic indexing of scientific publications in an open archive.
This repository is the backend part of a web application that demonstrates the interest and use of such a semantic index for researchers and librarians. It provides a set of Web APIs (services) used by the frontend application available in the visualization repository.
The services exposed by the server are defined in routes/index.js.
With the exception of service autoComplete
, the services submit SPARQL SELECT queries to the ISSA SPARQL endpoint (property SEMANTIC_INDEX_SPARQL_ENDPOINT in .env)
using the d3-sparql library.
The response of the services is the output of the d3-sparql library itself, that only returns the "results.bindings" part
of the SPARQL response in JSON format, following this format:
{
"result": [
{
"var1": "value1",
"var2": "value2",
...
},
...
]}
Therefore, the SELECT clause of the SPARQL queries are the de facto documentation of the services since they give the names of the variables (var1 and var2 in the example above).
Pre-requisite: node.js 17, yarn.
Install the dependencies with yarn install
.
Run the application: yarn start
By default, the node.js server listens on port 3000. This can be changed in file .env.
Make sure the server is properly started by pointing your browser to:
http://localhost:3000/getArticleMetadata?uri=http://data-issa.cirad.fr/document/592919
http://localhost:3000/getArticleAuthors/?uri=http://data-issa.cirad.fr/document/592919
http://localhost:3000/getAbstractNamedEntities/?uri=http://data-issa.cirad.fr/document/592919
http://localhost:3000/getGeographicNamedEntities/?uri=http://data-issa.cirad.fr/document/592919
http://localhost:3000/autoComplete/?input=forestry
http://localhost:3000/autoComplete/?input=forestry&entityType=All
http://localhost:3000/autoComplete/?input=forestry&entityType=Agrovoc
http://localhost:3000/autoComplete/?input=forestry&entityType=Agrovoc,Wikidata
http://localhost:3000/searchDocumentByConcept/?uri=http://www.wikidata.org/entity/Q234173,http://aims.fao.org/aos/agrovoc/c_423ff1cb
http://localhost:3000/searchDocumentBySubConcept/?uri=http://www.wikidata.org/entity/Q234173,http://aims.fao.org/aos/agrovoc/c_423ff1cb
http://localhost:3000/searchDocumentByRelatedConcept/?uri=http://aims.fao.org/aos/agrovoc/c_423ff1cb
The repository comes with a Dockerfile and a docker-compose file. After cloning, build the application with this command:
docker-compose build
Then start the services with:
docker-compose up -d
Log traces are printed out in file log/application.log
.
This can be changed by customizing file config/log4js.json. Refer to the Log4JS documentation.
See the LICENSE file.
Franck MICHEL, Youssef MEKOUAR, ISSA Project (2023). ISSA Web Application Backend Services. https://github.com/issa-project/web-backend/.
ISSA: Generic Pipeline, Knowledge Model and Visualization tools to Help Scientists Search and Make Sense of a Scientific Archive. Anne Toulet, Franck Michel, Anna Bobasheva, Aline Menin, Sébastien Dupré, Marie-Claude Deboin, Marco Winckler, Andon Tchechmedjiev. 21st International Semantic Web Conference (ISWC), Oct 2022, Hangzhou, China. DOI: ⟨10.1007/978-3-031-19433-7_38⟩. HAL