-
Notifications
You must be signed in to change notification settings - Fork 1
SKG‐IF API
TeslaRIS provides full support for the SKG-IF (Scientific Knowledge Graph Interoperability Framework) API specification, enabling seamless data exchange with other research information systems.
- 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
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.
| 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 |
All endpoints support filtering using the filter parameter with the following attribute 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
- "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)
- "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
- "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
-
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)
-
format=json(default): JSON-LD format -
format=ttlorformat=rdf: Turtle RDF format
TeslaRIS can also harvest data from other SKG-IF compliant systems.
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
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
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.
This project has received funding from the European Union's Horizon Europe research and innovation programme under grant agreement No 101094406.