{"id":38274501,"url":"https://github.com/elsevierlabs-os/linked-data","last_synced_at":"2026-01-17T01:52:21.594Z","repository":{"id":58700971,"uuid":"532998186","full_name":"elsevierlabs-os/linked-data","owner":"elsevierlabs-os","description":"Linked Data Extension for VSCode","archived":false,"fork":false,"pushed_at":"2025-08-14T13:10:30.000Z","size":4509,"stargazers_count":34,"open_issues_count":3,"forks_count":3,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-08-14T14:26:56.766Z","etag":null,"topics":["code","education","json-ld","linked-data","nquads","query","rdf","rdfxml","shacl","sparql","turtle","visualisation","visualization","vscode","vscode-extension"],"latest_commit_sha":null,"homepage":"https://marketplace.visualstudio.com/items?itemName=Elsevier.linked-data","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/elsevierlabs-os.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-09-05T17:31:31.000Z","updated_at":"2025-08-14T13:03:21.000Z","dependencies_parsed_at":"2024-07-11T11:52:13.608Z","dependency_job_id":"70864207-a3c5-42c4-bae1-c8d0a8c191e3","html_url":"https://github.com/elsevierlabs-os/linked-data","commit_stats":{"total_commits":27,"total_committers":2,"mean_commits":13.5,"dds":0.03703703703703709,"last_synced_commit":"44b8e75780d9fcb4892c41103ae6a964d3a9c8b5"},"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/elsevierlabs-os/linked-data","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elsevierlabs-os%2Flinked-data","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elsevierlabs-os%2Flinked-data/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elsevierlabs-os%2Flinked-data/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elsevierlabs-os%2Flinked-data/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/elsevierlabs-os","download_url":"https://codeload.github.com/elsevierlabs-os/linked-data/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elsevierlabs-os%2Flinked-data/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28491694,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T00:50:05.742Z","status":"ssl_error","status_checked_at":"2026-01-17T00:43:11.982Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["code","education","json-ld","linked-data","nquads","query","rdf","rdfxml","shacl","sparql","turtle","visualisation","visualization","vscode","vscode-extension"],"created_at":"2026-01-17T01:52:21.435Z","updated_at":"2026-01-17T01:52:21.543Z","avatar_url":"https://github.com/elsevierlabs-os.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Linked Data Extension\n\nThe Elsevier Data Architecture Linked Data Extension (LDE) for Visual Studio Code brings a number of Linked Data related functionalities to a popular integrated development environment.\n\nIt's not industry-grade solid, but should be *good enough™*. For any questions, comments, please contact [Rinke Hoekstra](mailto:r.hoekstra@elsevier.com), or create an issue in the [GitHub repository](https://github.com/elsevierlabs-os/linked-data).\n\n## What it does\n\n* Visualise an RDF graph directly from a file.\n* Convert between JSON-LD, Turtle, RDF/XML and N-Quads (some quirks because not every format supports named graphs)\n* Convert between JSON-LD variants (compact, expanded, flattened)\n* Apply a JSON-LD frame to a JSON-LD file.\n* Validate your RDF against a SHACL file\n* Run a SPARQL query directly on a file and see the results in HTML and CSV\n\nThe JSON-LD operations can work with local context files. This overcomes the limitation in most JSON-LD libraries that interpret context references as URLs. See the `loadLocalContexts` setting below.\n \nDownload Linked Data Extension from \u003chttps://marketplace.visualstudio.com/items?itemName=Elsevier.linked-data\u003e or through the Extensions menu of VSCode.\n\nThis extension depends on the [Stardog Languages Extension Pack](https://marketplace.visualstudio.com/items?itemName=stardog-union.vscode-stardog-languages) from Stardog Union for file type recognition, syntax highlighting and syntax checking.\n \n## Screenshots\n\nFor the files used in the screenshots, see the [examples](examples) folder.\n\n### Conversion Between RDF Formats\n\n![RDF Formats](media/img/different_formats.png)\n\n### Visualisation and JSON-LD Variants\n\n![Visualization](media/img/jsonld_visualisation.png)\n\n### SPARQL and SHACL\n![Querying and Validation](media/img/shacl_and_sparql.png)\n\n## Commands\n\nYou can access the commands through the command palette: `Cmd-Shift-p` or `Ctrl-Shift-p` and then start typing \"Linked Data\", or use one of the following keyboard shortcuts.\n\n### Keyboard Shortcuts\n\n* Standard syntactic JSON-LD operations:\n  * `Ctrl-Option-e`/`Ctrl-Alt-e`: Convert a JSON-LD structure to the [expanded document form](https://www.w3.org/TR/json-ld11/#expanded-document-form)\n  * `Ctrl-Option-c`/`Ctrl-Alt-c`: Apply `@context` specifications to convert a JSON-LD structure to the [compacted document form](https://www.w3.org/TR/json-ld11/#compacted-document-form). Only works with an included context (not external files)\n  * `Ctrl-Option-l`/`Ctrl-Alt-l`: Convert a JSON-LD structure to the [flattened document form](https://www.w3.org/TR/json-ld11/#flattened-document-form)\n  * `Ctrl-Option-f`/`Ctrl-Alt-f`: Apply a JSON-LD frame file to convert a JSON-LD structure to the [framed document form](https://www.w3.org/TR/json-ld11/#framed-document-form) using the [framing algorithm](https://www.w3.org/TR/json-ld11-framing/).\n* Standard format conversions:\n  * `Ctrl-Option-n`/`Ctrl-Alt-n`: Convert an RDF file (any format) to N-Quads\n  * `Ctrl-Option-t`/`Ctrl-Alt-t`: Convert an RDF file (any format) to Turtle (may be lossy for files that contain multiple graphs)\n  * `Ctrl-Option-r`/`Ctrl-Alt-r`: Convert an RDF file (any format) to RDF/XML (may be lossy for files that contain multiple graphs)\n  * `Ctrl-Option-j`/`Ctrl-Alt-j`: Convert an RDF file (any format) to JSON-LD\n* View as a Graph:\n  * `Ctrl-Option-g`/`Ctrl-Alt-g`: Render an RDF file as a D3js force directed graph.\n* Validate against SHACL shapes:\n  * `Ctrl-Option-v`/`Ctrl-Alt-v`: Validate an RDF file against SHACL shapes (see below)\n* Query a Graph:\n  * `Ctrl-Option-q`/`Ctrl-Alt-q`: Run the SPARQL query against an RDF file (see below)\n\n## Extension Settings\n\nThis extension contributes the following settings:\n\n* `linked-data.loadLocalContexts`: Should the extension try to load local (non-URI) JSON-LD context files. This is especially useful when testing large context files that are intended to be shared across multiple JSON-LD files. It overcomes the problem that JSON-LD libraries interpret references to contexts as URIs, which would require running an HTTP server to test the context.\n\n## Tips and Recommendations\n\n### SHACL Validator\nThe SHACL Validator can be told what shapes file to use, by adding commented lines to the top of a Turtle file (does not work for JSON-LD) that refer to a (relative path) to the shapes file using the `shapes` attribute, e.g. the following will try to load the `my_excellent_shapes.ttl` file.\n\n```\n# shapes: my_excellent_shapes.ttl\n@prefix ex: \u003chttps://example.com/\u003e .\n\nex:Alice\n\ta ex:Person ;\n\tex:ssn \"987-65-432A\" .\n```\n\nIf there is no such instruction, or the instruction cannot be parsed as YAML, the extension will show a file open window for you to select the shapes file to use. \n\n\n### SPARQL Query\nYou can run a SPARQL Query only from valid SPARQL files (`*.rq`), and similar to the SHACL validator, you can specify the file against which you want to run the query by using the `file` attribute:\n\n```\n# file: example-1-transformed/source.json\nSELECT * WHERE  {\n    ?a ?b ?c .\n}\n```\n\nIf there is no such instruction, or the instruction cannot be parsed as YAMLM, the extension will show a file open window for you to select the RDF file to query against.\n\nSPARQL results are shown both as a web view with a table that supports sorting and search, as well as a CSV file for further processing.\n\n## Known Limitations\n\n* RDF format support is limited to the underlying libraries. E.g RDF/XML support is spotty as it doesn't deal with XML entity definitions very well.\n\n## Thanks go to:\n\n* Stardog VSCode Extensions, \u003chttps://github.com/stardog-union/stardog-vsc\u003e\n* rdflib.js, \u003chttps://github.com/linkeddata/rdflib.js/\u003e\n* Zazuko's SHACL validator, \u003chttps://github.com/zazuko/rdf-validate-shacl\u003e\n* Google's Schemarama, \u003chttps://github.com/google/schemarama\u003e\n* d3js, \u003chttps://d3js.org\u003e\n* ... and many others.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felsevierlabs-os%2Flinked-data","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felsevierlabs-os%2Flinked-data","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felsevierlabs-os%2Flinked-data/lists"}