Skip to content

SKG‐IF API

Dragan Ivanovic edited this page Feb 24, 2026 · 5 revisions

Documentation

Overview

TeslaRIS provides full support for the SKG-IF (Scientific Knowledge Graph Interoperability Framework) API specification, enabling seamless data exchange with other research information systems.

Compliance Notes

  • Fully compliant with SKG-IF specification v1.1.0
  • Supports both JSON-LD and RDF/Turtle serializations
  • Implements proper content negotiation
  • Follows SKG-IF context and vocabulary standards
  • Additional TeslaRIS extensions are backward compatible

Authentication

The public SKG-IF endpoints are open and do not require authentication. Administrative endpoints for configuration and harvesting require appropriate permissions.

For more information about the SKG-IF standard, visit the official documentation.

Export API

Available Entity Sets

Set Name Description Entity Type
product Research products (publications, datasets, software, etc.) Research Product
person Researchers and contributors Person (Agent)
organisation Institutions and organizations Organisation (Agent)
venue Journals, conference proceedings, and monographs Venue

Supported Filters

All endpoints support filtering using the filter parameter with the following attribute filters:

Research Product Filters

  • "identifiers.scheme" - Filters by identifier type (doi, url, openalex, eissn, issn) and checks if documents have identifiers of that scheme
  • "identifiers.value" - Searches for specific identifier values across ORCID, Scopus Author ID, and OpenAlex ID fields
  • "titles" - Matches exact title content in multilingual title fields
  • "abstracts" - Performs case-insensitive regex search in abstract content fields
  • "product_type" - Filters by research product category (literature, research data, research software) and maps to internal publication types
  • "contributions.by" - Finds documents where specific persons (by database ID) contributed as authors, editors, or advisors
  • "contributions.declared_affiliations" - Filters by organization affiliations using declared contributions references
  • "contributions.role" - Checks for documents that have contributors in specific roles (author, editor, advisor)
  • "contributions.contribution_types" - Filters by CRediT contribution types like writing, conceptualization, supervision, etc.
  • "manifestations.type.class" - Searches for specific resource types using FABIO ontology classes (preprint, article, supplementary files, etc.)
  • "manifestations.dates.modified" - Filters by last modification date of document files
  • "manifestations.dates.distribution" - Filters by creation date of document files
  • "manifestations.license" - Searches for specific Creative Commons licenses applied to document files
  • "biblio.issue" - Matches exact journal or proceedings issue numbers
  • "biblio.volume" - Matches exact journal or proceedings volume numbers
  • "biblio.pages.first" - Filters by starting page number in publications
  • "biblio.pages.last" - Filters by ending page number in publications
  • "biblio.in" - Performs case-insensitive search in journal, proceedings, or monograph titles
  • "contributions.by.identifiers.value" - Searches for contributors by their external identifiers (ORCID, Scopus ID, OpenAlex ID)
  • "relevant_organisations" - Filters by related institution IDs associated with the research product

Venue Filters

  • "identifiers.scheme" - Filters by identifier type (doi, url, openalex, eissn, issn, isbn) and checks if venues have identifiers of that scheme
  • "identifiers.value" - Searches for specific identifier values across ORCID, Scopus Author ID, and OpenAlex ID fields
  • "title" - Matches exact title content in multilingual title fields
  • "acronym" - Matches exact name abbreviations in multilingual abbreviation fields
  • "type" - Filters by venue type (conference, book, journal) and maps to internal publication types
  • "series" - Performs case-insensitive search in event names or publisher names
  • "access_rights.status" - Filters by open access status (open, closed, embargoed, restricted, unavailable)
  • "creation_date" - Filters by document creation date using date range queries
  • "contributions.by" - Finds venues where specific persons (by database ID) contributed as editors or scientific board members
  • "contributions.role" - Checks for venues that have contributors in specific roles (editor, scientific board member)

Person Filters

  • "identifiers.scheme" - Filters by identifier type (orcid, url) and checks if persons have identifiers of that scheme
  • "identifiers.value" - Searches for specific identifier values across ORCID and Scopus ID fields
  • "given_name" - Matches exact first name in person name fields
  • "family_name" - Matches exact last name in person name fields
  • "name" - Performs smart name search that handles both single names (searches first or last name) and full names (searches first and last name combination)
  • "affiliations.affiliation" - Filters by specific organization affiliations using institution database IDs
  • "affiliations.role" - Performs case-insensitive search in employment role descriptions
  • "affiliations.period.start" - Filters by employment start dates using date range queries
  • "affiliations.period.end" - Filters by employment end dates using date range queries

Organisation Filters

  • "identifiers.scheme" - Filters by identifier type (orcid, url, openalex) and checks if organisations have identifiers of that scheme
  • "identifiers.value" - Searches for specific identifier values across ORCID, Scopus Author ID, and OpenAlex ID fields
  • "country" - Matches exact country codes in organisation country fields
  • "short_name" - Matches exact name abbreviations in organisation abbreviation fields
  • "name" - Matches exact organisation name in multilingual name fields
  • "other_names" - Matches exact alternative organisation names in multilingual name fields
  • "website" - Searches for specific website URLs in organisation URI collections

TeslaRIS Extensions

Date Range Filtering

  • dateFrom: Filter entities created/modified in our system on or after this date (YYYY-MM-DD)
  • dateTo: Filter entities created/modified in our system on or before this date (YYYY-MM-DD)

Output Format Selection (for single entity export)

  • format=json (default): JSON-LD format
  • format=ttl or format=rdf: Turtle RDF format

Import API

TeslaRIS can also harvest data from other SKG-IF compliant systems.

Configuration

To enable harvesting from external SKG-IF sources, administrators need to configure source definitions in the system configuration file.

{
  "sources": [
    {
      "sourceName": "CRIS UNS",
      "baseUrl": "https://cris.uns.ac.rs/api/skg-if",
      "metadataFormatParameter": "format",
      "dateFromFilterParam": "dateFrom", 
      "dateToFilterParam": "dateTo",
      "additionalFilters": "product_type:literature",
      "converterClass": "SKGIFConverter",
      "sourceIdentifierPrefix": "TESLARIS"
    }
  ]
}
  • sourceName - Display name for the source in the admin interface
  • baseUrl - Base URL of the external SKG-IF API endpoint
  • metadataFormatParameter - Query parameter name for output format selection (typically "format")
  • dateFromFilterParam - Query parameter name for start date filtering (typically "dateFrom")
  • dateToFilterParam - Query parameter name for end date filtering (typically "dateTo")
  • additionalFilters - Optional static filters to apply to all requests (e.g., "product_type:literature")
  • converterClass - Internal converter class for data transformation (use "SKGIFConverter")
  • sourceIdentifierPrefix - Prefix for imported entity identifiers to avoid conflicts

Harvesting

To begin harvesting from external SKG-IF endpoints:

  • Navigate to the administration interface
  • Go to the harvester section -> 'SKG-IF sources' tab
  • Select one of the configured SKG-IF API sources
  • Insert the optional author or institution identifiers used for targeted harvesting (any supported identifier will do, e.g. ORCID, Scopus, OpenAlex, ROR...)
  • Set up automatic harvesting schedules that TeslaRIS enables
image

Once set-up, the scheduled task will appear in Scheduled Harvests tab. The result of this harvest will be temporarily stored in a MongoDB intermediate database. Every author from the publication that has an user profile on our platform will receive a notification stating that he/she can perform the loading process.

Once started (by clicking on Load documents), the loading process guides the researcher through a wizard that performs semi-automated loading of data. First, the user has to bind every author from the imported publication to an author in our system. The system tries to perform this step automatically using import platform’s unique identified (e.g. Scopus Author ID, ORCID ID etc.). If it fails to do so, our database is queried by author name and user is given a list of potential candidates to manually choose from. Should the user not find an adequate match or should our database query return no results, the new researcher is automatically created and process is continued to the next author until we reach an end of the list. The important detail here is that once this step is completed with a certain author, the platform’s unique ID will be automatically bound to said researcher, ensuring that next time this process is completed automatically by the system, without additional user’s interaction. After that, the same process is repeated for authors’ affiliations and journal/proceedings that the publication is published in. In the end, the user is presented with other publication metadata, such as description, keywords etc., so he/she can edit all other details about the publication. Submitting this last form means that publication will be successfully loaded into our system and the user can continue to the next one.

Acknowledgement

This project has received funding from the European Union's Horizon Europe research and innovation programme under grant agreement No 101094406.