Scientific Knowledge Graph¶
The ANC Knowledge Graph provides a way to query metadata of ANC datasets using GraphQL.
The metadata is stored in a Neo4j graphql database and exposed through a GraphQL API.
This allows you to:
- explore datasets and their relationships
- query authors and affiliations
- access datatype metadata
- access HED metadata
- find datasets based on HED tags
What this tool provides¶
The API represents ANC metadata as a graph structure.
Main entities:
- Dataset — dataset in the ANC
- Author — dataset authors
- Affiliation — author institutions
- DatatypeItem — datatype metadata
- HedItem — HED annotations
Main relationships:
- Dataset → Authors
- Author → Affiliation
- Dataset → DatatypeItems
- Dataset → HedItems
Querying the Knowledge Graph¶
You can query the data using GraphQL.
Example:
Common use cases¶
1. Explore datasets¶
2. Get authors of a dataset¶
3. Get affiliations¶
4. Query datatype metadata¶
5. Query HED metadata¶
6. Find datasets by HED tag¶
How the data is structured¶
The Knowledge Graph follows this structure:
- datasets are connected to authors
- authors are connected to affiliations
- datasets are linked to datatype metadata
- datasets are linked to HED annotations
This allows flexible queries across datasets and metadata.
Technical overview¶
The system consists of:
- Neo4j — graph database
- GraphQL API — query interface
- Docker setup — deployment
The API is built using:
Setup (for developers)¶
The service is run using Docker:
This starts:
- the GraphQL API
- the Neo4j database
Data ingestion¶
Metadata is generated using the BIDS Indexer and imported into Neo4j.
The import process:
- Generate CSV files using BIDS Indexer
- Import into Neo4j using neo4j-admin
- Start services with Docker
Accessing the interfaces¶
After starting the services:
- Neo4j interface:
http://localhost:7474 - GraphQL interface:
http://localhost:4000
When should I use this?¶
Use the Knowledge Graph if you want to:
- explore available datasets
- search datasets by metadata
- find datasets with specific HED annotations
- integrate ANC data into analysis pipelines