{"id":23370129,"url":"https://github.com/maastrichtu-ids/into-the-graph","last_synced_at":"2025-04-10T16:20:21.450Z","repository":{"id":40292335,"uuid":"204430308","full_name":"MaastrichtU-IDS/into-the-graph","owner":"MaastrichtU-IDS","description":"🧭 Resolve, visualize and browse the content of any SPARQL endpoint","archived":false,"fork":false,"pushed_at":"2023-05-06T16:09:54.000Z","size":26540,"stargazers_count":14,"open_issues_count":24,"forks_count":4,"subscribers_count":17,"default_branch":"master","last_synced_at":"2025-03-24T14:07:42.531Z","etag":null,"topics":["knowledge-discovery","knowledge-graph","linked-data","linked-open-data","sparql-endpoints"],"latest_commit_sha":null,"homepage":"https://maastrichtu-ids.github.io/into-the-graph","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MaastrichtU-IDS.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-08-26T08:24:33.000Z","updated_at":"2024-11-24T19:31:43.000Z","dependencies_parsed_at":"2024-12-21T15:34:08.863Z","dependency_job_id":"cbf1e384-3aba-4227-af94-370f4b6afecc","html_url":"https://github.com/MaastrichtU-IDS/into-the-graph","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaastrichtU-IDS%2Finto-the-graph","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaastrichtU-IDS%2Finto-the-graph/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaastrichtU-IDS%2Finto-the-graph/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaastrichtU-IDS%2Finto-the-graph/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MaastrichtU-IDS","download_url":"https://codeload.github.com/MaastrichtU-IDS/into-the-graph/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248252661,"owners_count":21072699,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["knowledge-discovery","knowledge-graph","linked-data","linked-open-data","sparql-endpoints"],"created_at":"2024-12-21T15:34:01.252Z","updated_at":"2025-04-10T16:20:21.427Z","avatar_url":"https://github.com/MaastrichtU-IDS.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🧭 Lightweight linked data browser\n\n[![Deploy to GitHub Pages](https://github.com/MaastrichtU-IDS/into-the-graph/workflows/Deploy%20website%20to%20GitHub%20Pages/badge.svg)](https://github.com/MaastrichtU-IDS/into-the-graph/actions?query=workflow%3A%22Deploy+website+to+GitHub+Pages%22) [![CodeQL analysis](https://github.com/MaastrichtU-IDS/into-the-graph/workflows/CodeQL%20analysis/badge.svg)](https://github.com/MaastrichtU-IDS/into-the-graph/actions?query=workflow%3A%22CodeQL+analysis%22) \n\nLightweight and fast [RDF](https://www.w3.org/RDF/) browser that just need a SPARQL endpoint URL to give a comfortable experience when exploring differents graphs.\n\n**Browse a RDF triplestore by providing the SPARQL endpoint URL directly in the browser.** \n\n\u003e See an example deployment of into-the graph at [https://maastrichtu-ids.github.io/into-the-graph](https://maastrichtu-ids.github.io/into-the-graph).\n\nThis RDF linked data browser features:\n\n* A web-based UI to browse SPARQL endpoints content easily. Stateful URL to resolve a specific URI in a specific SPARQL endpoint can be defined using the `uri` and `endpoint` parameters. Tested with RDF4J (Ontotext GraphDB) and Virtuoso SPARQL endpoints.\n* Easily search for concepts in the triplestore. Possibility to change the SPARQL query to define the custom query to use the Search index of different triplestores in [settings](http://trek.semanticscience.org/settings) (Ontotext GraphDB and Virtuoso triplestores documented).\n* Work in progress: insights about the content of the triplestore and its different graphs, using precomputed [HCLS descriptives statistics](https://www.w3.org/TR/hcls-dataset/).\n\n\u003e [HCLS descriptive statistics](https://www.w3.org/TR/hcls-dataset/) for a graph can simply be computed and inserted running a `docker run` command. Follow [those instructions](https://github.com/MaastrichtU-IDS/data2services-transform-repository/tree/master/sparql/compute-hcls-stats) to run it. Or check the [`fair-metadata`](https://github.com/MaastrichtU-IDS/fair-metadata) Python library in development.\n\nInto-the-graph is built with [TypeScript](https://www.typescriptlang.org/) , [ReactJS](https://reactjs.org), and [Material-UI](https://material-ui.com/) to serve and explore RDF data from any SPARQL endpoint.\n\n\u003e This service has been developed and used as part of the [Data2Services](http://d2s.semanticscience.org/) framework.  [Data2Services](http://d2s.semanticscience.org/) provides tools and guideline to easily integrate multiple structured data sources (CSV, RDB, XML) to a RDF knowledge graph, complying with a defined data model. Checkout the documentation at [d2s.semanticscience.org](http://d2s.semanticscience.org/)\n\n# 👨‍💻 Contribute\n\nContributions are welcome! See the [guidelines to contribute](/CONTRIBUTING.md).\n\n# 🎬 Into-the-graph in action\n\n\u003e ⚠️ Trying to query a HTTP SPARQL endpoint from into-the-graph which is provided through HTTPS might cause issues.\n\nStart browsing various SPARQL endpoints using into-the-graph in one click:\n\n* A Clinical trial in [Bio2RDF](https://bio2rdf.org):\n  * http://maastrichtu-ids.github.io/into-the-graph/describe?uri=http://bio2rdf.org/clinicaltrials:NCT00209495\u0026endpoint=https://bio2rdf.org/sparql\n* A Pathway in [PathwayCommons](http://pathwaycommons.org/):\n  * http://maastrichtu-ids.github.io/into-the-graph/describe?uri=http://identifiers.org/reactome/R-HSA-8852135\u0026endpoint=http://rdf.pathwaycommons.org/sparql/\n* A Protein in [NextProt](https://www.nextprot.org/):\n  * http://maastrichtu-ids.github.io/into-the-graph/describe?uri=http://nextprot.org/rdf/entry/NX_Q96Q91\u0026endpoint=https://sparql.nextprot.org\n* A [Gene-Disease association](http://rdf.disgenet.org/resource/gda/DGN06012220986003d9ecac664f0865140b ) in the [DisGeNET SPARQL endpoint](http://rdf.disgenet.org/sparql/):\n  * http://maastrichtu-ids.github.io/into-the-graph/describe?uri=http://rdf.disgenet.org/resource/gda/DGN06012220986003d9ecac664f0865140b\u0026endpoint=http://rdf.disgenet.org/sparql/\n* A Protein (UniProt) in [AgroLD](http://agrold.southgreen.fr/agrold/):\n  * http://maastrichtu-ids.github.io/into-the-graph/describe?uri=http://purl.uniprot.org/uniprot/M7Y493\u0026endpoint=http://sparql.southgreen.fr\n* A City in DBpedia\n  * http://maastrichtu-ids.github.io/into-the-graph/describe?uri=http://dbpedia.org/resource/Menton\u0026endpoint=http://dbpedia.org/sparql\n* A Citation in the [EU Law OpenCitation](http://opencitations.net/) corpus\n  * http://maastrichtu-ids.github.io/into-the-graph/describe?uri=https://w3id.org/oc/index/coci/ci/020010000073609070863036303010963090209070963084905-02001000007362800000401006300010363000806006334\u0026endpoint=http://opencitations.net/index/sparql\n* A Publication in the [EU Cellar Law dataset](https://data.europa.eu/euodp/en/data/dataset/sparql-cellar-of-the-publications-office): \n  * http://maastrichtu-ids.github.io/into-the-graph/describe?uri=http://publications.europa.eu/resource/cellar/c721f802-9ce7-11e7-b92d-01aa75ed71a1\u0026endpoint=http://publications.europa.eu/webapi/rdf/sparql\n  * Browsing not really good due to the use of graphs for entities.\n* A City in the [LOD SPARQL endpoint](http://lod.openlinksw.com/sparql) \n  * http://maastrichtu-ids.github.io/into-the-graph/describe?uri=http://www.wikidata.org/entity/Q180083\u0026endpoint=http://lod.openlinksw.com/sparql\n  * Browsing not really good due to the use of graphs for entities.\n* A Dataset in OpenEuropa Joinup SPARQL\n  * http://maastrichtu-ids.github.io/into-the-graph/describe?uri=http://data.europa.eu/w21/dfba1169-806f-4c9e-a42e-a5c5830a2221\u0026endpoint=https://joinup.ec.europa.eu/sparql/\n* A Statistic in the EU Open Data Portal\n  * http://maastrichtu-ids.github.io/into-the-graph/describe?uri=http://data.lod2.eu/scoreboard/indicators/FOA_cit_Country__of_pub_serv_for_citizen\u0026endpoint=http://data.europa.eu/euodp/sparqlep\n\nYou can even directly use http://maastrichtu-ids.github.io/into-the-graph to browse a locally deployed endpoint! e.g. http://localhost:8890/sparql\n\n# 🏗️ Run in development\n\nRequirements:  [npm](https://www.npmjs.com/get-npm) and [yarn](https://classic.yarnpkg.com/en/docs/install/#debian-stable) installed.\n\nClone the repository:\n\n```bash\ngit clone https://github.com/MaastrichtU-IDS/into-the-graph\ncd into-the-graph\n```\n\nInstall dependencies :inbox_tray:\n\n```bash\nyarn\n```\n\nRun the web app in development at http://localhost:19006\n\n```bash\nyarn dev\n```\n\n\u003e The website should reload automatically at each changes to the code :arrows_clockwise:\n\nUpgrade the packages versions in `yarn.lock`\n\n```bash\nyarn upgrade perfect-graph unitx-ui unitx\n```\n\n# 🚀 Run in production \n\n\u003e This website is automatically deployed by a [GitHub Actions worklow](https://github.com/MaastrichtU-IDS/into-the-graph/actions?query=workflow%3A%22Deploy+to+GitHub+Pages%22) to GitHub Pages at https://maastrichtu-ids.github.io/into-the-graph\n\nYou can build locally in `/web-build` folder and serve on [http://localhost:5000 :package:](http://localhost:5000)\n\n```bash\nyarn build\nyarn serve\n```\n\nOr run directly using [Docker :whale:](https://docs.docker.com/get-docker/) (requires [docker installed](https://docs.docker.com/get-docker/))\n\n```bash\ndocker-compose up\n```\n\n\u003e Checkout the [docker-compose.yml](/docker-compose.yml) file to see how we run the Docker image.\n\n# 🔎 Search queries\n\nOptimized SPARQL query to perform full text search in different triplestores.\n\n### Generic\n\nSupport the [BioLink model](https://biolink.github.io/biolink-model/) (get [rdfs:label](http://www.w3.org/2000/01/rdf-schema#label) and [bl:name](https://biolink.github.io/biolink-model/docs/name.html))\n\n```SPARQL\nSELECT ?foundUri ?foundLabel WHERE {?foundUri ?p ?foundLabel . VALUES ?p {\u003chttp://www.w3.org/2000/01/rdf-schema#label\u003e \u003chttps://w3id.org/biolink/vocab/name\u003e} . FILTER(isLiteral(?foundLabel)) FILTER contains(?foundLabel, '$TEXT_TO_SEARCH')} LIMIT 5\n```\n\n### GraphDB\n\nSee [GraphDB full text search documentation](http://graphdb.ontotext.com/documentation/free/full-text-search.html) to create a search index (uses [Apache Lucene](https://lucene.apache.org/core/) under the hood).\n\n```SPARQL\nPREFIX luc: \u003chttp://www.ontotext.com/owlim/lucene#\u003e SELECT ?foundUri ?foundLabel { ?foundLabel luc:searchIndex '$TEXT_TO_SEARCH*' . ?foundUri ?p ?foundLabel . } LIMIT 100\n```\n\nOrder by Lucene score\n\n```SPARQL\nPREFIX luc: \u003chttp://www.ontotext.com/owlim/lucene#\u003e SELECT ?foundUri ?foundLabel { ?foundLabel luc:searchIndex '$TEXT_TO_SEARCH*' ; luc:score ?score . ?foundUri ?p ?foundLabel . } ORDER BY ?score LIMIT 100\n```\n\n### DBpedia Virtuoso\n\n```SPARQL\nSELECT ?foundUri ?foundLabel WHERE {?foundUri \u003chttp://www.w3.org/2000/01/rdf-schema#label\u003e ?foundLabel . ?foundLabel bif:contains '$TEXT_TO_SEARCH' . } LIMIT 200\n```\n\n### OpenCitation\n\n```SPARQL\nSELECT ?foundUri ?foundLabel WHERE {?foundUri ?p ?foundLabel . VALUES ?p {\u003chttp://purl.org/spar/cito/hasCitationCreationDate\u003e \u003chttp://purl.org/spar/cito/hasCitationTimeSpan\u003e} . FILTER(str(?foundLabel) =  '$TEXT_TO_SEARCH')} LIMIT 5\n```\n\n\u003e Text operations really slow on OpenCitation SPARQL, so we do a full match (for date mainly).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaastrichtu-ids%2Finto-the-graph","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaastrichtu-ids%2Finto-the-graph","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaastrichtu-ids%2Finto-the-graph/lists"}