{"id":20189625,"url":"https://github.com/molgenis/graph2vr","last_synced_at":"2025-03-03T07:23:11.394Z","repository":{"id":163093079,"uuid":"561376331","full_name":"molgenis/Graph2VR","owner":"molgenis","description":"Visualising / Exploring Linked Data (SPARQL Construct queries) in Virtual Reality.","archived":false,"fork":false,"pushed_at":"2024-02-25T20:31:36.000Z","size":217173,"stargazers_count":2,"open_issues_count":21,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-04-13T17:13:57.713Z","etag":null,"topics":["graph-visualization","phd-project","prototype","querying","sparql","virtual-reality"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/molgenis.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-11-03T14:58:17.000Z","updated_at":"2024-05-01T13:34:46.217Z","dependencies_parsed_at":null,"dependency_job_id":"ad9a0cd9-c3a1-4781-9c2f-65276c2ec3c6","html_url":"https://github.com/molgenis/Graph2VR","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/molgenis%2FGraph2VR","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/molgenis%2FGraph2VR/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/molgenis%2FGraph2VR/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/molgenis%2FGraph2VR/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/molgenis","download_url":"https://codeload.github.com/molgenis/Graph2VR/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241623962,"owners_count":19992766,"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":["graph-visualization","phd-project","prototype","querying","sparql","virtual-reality"],"created_at":"2024-11-14T03:38:17.549Z","updated_at":"2025-03-03T07:23:11.326Z","avatar_url":"https://github.com/molgenis.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Graph2VR\n\nGraph2VR is a PhD project, a prototype for a VR application to visualize graphs (SPARQL), as 3D graphs in Virtual Reality. The idea is to explore, analyze, and interact with the data in the graph using gesture control. Graph2VR has been built in Unity and is able to connect to a SPARQL endpoint using [dotNetRDF](https://dotnetrdf.org/). We got inspired by many different tools to work with Linked data and to visualize Graphs. Virtual Reality offers the user way more space to expand the graph than a 2D computer screen.\n\n## Documentation\n\n- For detailed instructions on how to use Graph2VR, refer to the [Graph2VR User Manual](https://doi.org/10.5281/zenodo.8040594).\n- Our research paper on Graph2VR is available [here](https://doi.org/10.1093/database/baae008).\u003cbr\u003e\n  The paper compares similar tools, provides insights into the design process of Graph2VR and contains the results from our usability study.\n\n## Features\n\nHere is an example of a query that shows the results in form of stacked 2D graphs behind each other:\n\n\u003cimg src=\"https://github.com/molgenis/Graph2VR/assets/49238704/aa144a7e-96c6-474b-b8b4-a807d1b3e6b1\" width=\"400\"\u003e\n\nWe tried to write a GUI to explore and interact with the graph in Virtual Reality. \nA few simple operations to do so are:\n\n- Getting information about the current node\n- Expanding the graph at a node using incoming or outgoing predicates\n- Deleting a node or collapsing unconnected nodes\n- Comparing different parts of the graph side by side\n- Building visual query patterns for SPARQL queries\n- Adding new nodes and edges\n- Interacting with the graph (zoom, move, rotate)\n- Using visual queries or a search function to add specific nodes\n- Saving results in ntriple format for reuse in other programs\n\n\u003cimg src=\"https://github.com/molgenis/Graph2VR/assets/49238704/45a87902-f7f3-43d7-8e38-d05b2a12bb35\" width=\"400\"\u003e\n\nDifferent Layout Algorithms can help to visualize the data.\n\n\u003cimg src=\"https://github.com/molgenis/Graph2VR/assets/49238704/673d2008-c93b-4e8f-9505-3cdcb2ba52cd\" width=\"400\"\u003e\n\n## Getting Started\n\nFor a hands-on introduction to Graph2VR, we have created a video tutorial series that covers everything from basic navigation to advanced features. \nThe tutorial is designed to help both beginners and experienced users get the most out of Graph2VR.\n\nCheck out the [Graph2VR Tutorial Series on YouTube](https://www.youtube.com/playlist?list=PLRQCsKSUyhNIdUzBNRTmE-_JmuiOEZbdH). \n\nFor those new to Linked Data and SPARQL, we recommend Sir Tim Berners Lee's [Ted talk \"The next Web\"](https://www.ted.com/talks/tim_berners_lee_the_next_web) for some basics.\n\n### Installation Instructions\n\nThe newest release can be found [here](https://github.com/molgenis/Graph2VR/releases).\nIt includes a Windows version (`Graph2VR_windows.zip`), and a standalone version for the Quest 2 or Quest 3 headset.\n\nFor the **Windows Version**: \n- Download the `Graph2VR_windows.zip` file from the [latest release](https://github.com/molgenis/Graph2VR/releases), unzip it, and execute the application.\n\nFor the **Quest 2/3 Standalone Version**:\n- Ensure your Oculus Quest 2 or Quest 3 is in [developer mode](https://developer.oculus.com/documentation/native/android/mobile-device-setup/) for installing the standalone version via SideQuest.\n- We recommend [SideQuest](https://sidequestvr.com/download) for loading the application onto the Quest2/3 VR headset. When the .apk file is uploaded to the Quest headset, Graph2VR will appear under 'Unknown Sources' in the applications menu.\n\n### Setting up a local Virtuoso Server using Docker \n\nTo interact with your own dataset with Graph2VR a Virtuoso Server can be used as backend for Graph2VR.\nA Virtuoso server can efficiently host large amounts of triples and serve as a backend for Graph2VR.\nIt can be used to load and expose Linked Data via a SPARQL Endpoint. \nWe did not explicitly implement support for other servers, although DotNetRDF does offer the functions to connect to them.\n\nA Virtuoso can for example be set up via Docker through the Docker GUI or by using the following commands:\n\n```\ndocker pull tenforce/virtuoso\ndocker build -t virtuoso .\ndocker run -p 8890:8890 -p 1111:1111 --name virtuoso -d virtuoso\n```\n\nThe SPARQL Endpoint can be reached at the selected port, in this case at [localhost:8890/sparql](http://localhost:8890/sparql). \nThe web interface to configure the server can be found at [localhost:8890/conductor](http://localhost:8890/conductor). \nThe web interface can also be used to upload small `.owl` or `.rdf` files. Larger files must be loaded via the Virtuoso bulk loader. \nWhen using the bulk loader, a \"checkpoint\" needs to be created; otherwise, the database might be gone once the Docker container is restarted. \n\nIt could be necessary to adjust the Virtuoso server via the Virtuoso.ini file.\nUsually, the \"NumberOfBuffers\" and \"MaxDirtyBuffers\" need to be increased, and the directories that the server is allowed to access \"DirsAllowed\" should be specified, when applicable. \nFor large databases, it may also be necessary to extend the time limit for timeouts.\n\n### Configuring Graph2VR\n\nThe file settings.txt file can be used to specify the SPARQL Endpoint(s) and the starting query.\n\nFor the standalone version, the settings file needs to be stored in the folder `sdcard/Android/data/com.Graph2VR.Graph2VR/files` on the headset.\nGraph2VR creates this folder when a save state is created.\n\nFor the Windows version, the settings file can be put in the same folder as the `Graph2VR.exe` file.\n\nIn case of a missing settings file, internal default settings will be used.\nThe file can be placed next to the Graph2VR.exe for the Windows version. \n\nFor the Quest 2/3 version, the settings.txt can be placed in the folder 'sdcard/Android/data/com.Graph2VR.Graph2VR/files'.\nThis path is created once a savestate is made.\n- For Graph2VR versions 1.23 - 1.26, you can find a sample `Settings.txt` [here](https://github.com/molgenis/Graph2VR/releases/download/1.2.3/Settings.txt).\n- For Graph2VR version 1.27 and above, you can find a sample `Settings.txt` [here](https://github.com/molgenis/Graph2VR/releases/download/1.2.7/Settings.txt).\n\nTo access a specific SPARQL Endpoint, the `Virtuoso.ini` can be used to specify the server, the graph within the server and a starting query.\nNote that only CONSTRUCT queries can be used as initial queries, and they need to be JSON-encoded\nWhile certain functionalities (such as BIND, MINUS, or subqueries) are not yet implemented as options within Graph2VR's GUI, these can still be used within the initial query.\n\n## System Requirements\n\n### Hardware Requirements\n- **VR Headset**: Graph2VR is designed for Virtual Reality headsets, with dedicated support for the HTC Vive and Oculus Quest series (Quest 2 and Quest 3). \nCompatibility with other VR headsets has not been verified. However, at least two controllers are required to control the app.\nWe used OpenXR to set the controls, which makes the application less likely to run on other headsets as if it was built with SteamVR.\nHowever, it supported us in building a standalone version of the application for the Quest 2/3.\n\n### PC Specifications\n  - **Memory**: 8GB+ RAM\n  - **Graphics**: NVIDIA GTX 1060 / AMD Radeon RX 480 or greater - Better graphics cards are able to handle more nodes and improve the fonts' readability.\n  - **Storage**: At least 4GB of free space is recommended.\n\n### Software Requirements\n- **Operating System**: Windows 10 or later for PC version; The standalone version is available for Oculus Quest 2/3.\n- **Unity Engine**: For development, Unity version 2021.2.15f is recommended.\n\n## License Information\n\n**GNU Lesser General Public License v3.0 (LGPL-v3)**: The source code created by our team is licensed under LGPL-v3, which permits use, modification, and distribution, including for commercial purposes, as long as changes to our code are also shared under LGPL-v3. For more details, see the [LICENSE file](https://github.com/molgenis/Graph2VR/blob/master/LICENSE) in this repository.\n\nThe LGPL-v3 does not apply to third-party components, which may have their own licenses.\nThe Software makes use of third-party libraries and software, including but not limited to DotNetRDF and Unity.\nIf you plan to use Graph2VR, ensure compliance with all relevant licenses, including obtaining a commercial Unity license if applicable.\n\nThe binaries of Graph2VR provided on this website were developed using an Educational License from Unity and are therefore intended only for non-commercial, educational use.\n\n**As-Is**: This software is provided \"as is\" without warranty of any kind. \nPlease check the issues pages for known bugs and missing features.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmolgenis%2Fgraph2vr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmolgenis%2Fgraph2vr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmolgenis%2Fgraph2vr/lists"}