Viki LibraRy, is a first implementation for generating and exploring online information based on hypertext systems in a three-dimensional environment using virtual reality. Thereby a virtual library, based on Wikipedia, is created, in which Rooms are dynamically created with data, which is provided via a RESTful backend. In these Rooms the user can browse through all kind of different articles of the category in the form of Books. In addition, users can access different Rooms, through virtual portals. Beyond that, the explorations can be done alone or collaboratively, using Ubiq.
- Clone this repository
- Get the latest release from GitHub. This contains the Unity project
- In the repository, direct to the Java/viki_library_apiserver folder. Open the maven project with an IDE of your liking, install the Maven dependencies with e.g.
mvn install
. - There are config files missing in the Java project since we cannot push credentials into the GitHub repo. You have to manually add them to fit your enviroment. To do so:
- Create a new folder under Java/viki_library_apiserver/src called 'resources'. The src folder should now contain 'resources' and 'java'. In the resources folder create the following files:
spark-swagger.conf
: Configures swagger. Refer to Default file values for default configurations.wikiApiConfig.properties
: Configures the API. If you didn't add a new API source and just use the default Wikipedia API, refer to Default file values for the default content.vikiLibraRyDbConfig.properties
: Configures the MongoDB used for caching fetched API calls. You need to provide your own MongoDB credentials and then fill the content in the scheme given under Default file values
- Now you can start the Java server. Default port should be 8080
- Open the Unity project in Unity downloaded from the Release tab in GitHub (Make sure you have version 2021.3.25f1 installed or a version that is compatible with it). Viki LibraRy works on Desktop as well, but was designed for VR so plug in your VR-Device as well.
- Open the
APISandbox
Scene. - There should be a gameobject
Enviroment\ScriptHolder
. In that gameobject, a script is attached with a property called "API Parameters". Make sure that the API Parameters 'Element 1' is correctly set. It should contain the base url for the afore started Java web server. If you started the Java server locally and didn't change the port, this should be correct by default. - Start the project in Unity and you are set to go!
spark-swagger {
# UI related configs
theme = "MATERIAL"
deepLinking = false
displayOperationId = false
defaultModelsExpandDepth = 1
defaultModelExpandDepth = 1
defaultModelRendering = "model"
displayRequestDuration = false
docExpansion = "LIST"
filter = true
operationsSorter = "alpha"
showExtensions = false
showCommonExtensions = false
tagsSorter = "alpha"
# API related configs
host = "localhost:8080"
basePath = "/swagger"
docPath = "/doc"
info {
description = "API designed to serve all network operations"
version = "1.0.0"
title = "VikiLibraRy API"
termsOfService = ""
schemes = ["HTTP", "HTTPS", "WS", "WSS"]
project {
groupId = "com.beerboy.thor"
artifactId = "thor-hammer"
version = "1.0.0"
}
contact {
name = "Example Team"
email = "example@team.com"
url = "example.team.com"
}
license {
name = "Apache 2.0"
url = "http://www.apache.org/licenses/LICENSE-2.0.html"
}
externalDoc {
description = "Example Doc"
url="com.example.doc"
}
}
}
default_query_parameters = action=query&generator=categorymembers&prop=categories|categoryinfo|revisions&cllimit=max&gcmlimit=max&format=json&gcmtitle=Category:{CATEGORY}
default_page_text_parse_parameters = action=parse&pageid={PAGEID}&formatversion=2&format=json&prop=wikitext|revid
base_url = https://en.wikipedia.org/w/api.php?
remote_host = MY_HOST
remote_database = MY_DATABASE
remote_user = MY_USER
remote_password = MY_PW
remote_port = MY_PORT
If you want to use the project please quote this as follows:
Shaduan Babbili, Kevin Bönisch, Yannick Heinrich, Philipp Stephan, Giuseppe Abrami and Alexander Mehler. (2023). "Viki LibraRy: A Virtual Reality Library for Collaborative Browsing and Navigation through Hypertext." Proceedings of the 34th ACM Conference on Hypertext and Social Media.
@inproceedings{Babbili:et:al:2023,
author = {Babbili, Shaduan and B\"{o}nisch, Kevin and Heinrich, Yannick
and Stephan, Philipp and Abrami, Giuseppe and Mehler, Alexander},
title = {Viki LibraRy: A Virtual Reality Library for Collaborative Browsing
and Navigation through Hypertext},
year = {2023},
isbn = {9798400702327},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3603163.3609079},
doi = {10.1145/3603163.3609079},
abstract = {We present Viki LibraRy, a virtual-reality-based system for generating
and exploring online information as a spatial hypertext. It creates
a virtual library based on Wikipedia in which Rooms are used to
make data available via a RESTful backend. In these Rooms, users
can browse through all articles of the corresponding Wikipedia
category in the form of Books. In addition, users can access different
Rooms, through virtual portals. Beyond that, the explorations
can be done alone or collaboratively, using Ubiq.},
booktitle = {Proceedings of the 34th ACM Conference on Hypertext and Social Media},
articleno = {6},
numpages = {3},
keywords = {virtual reality simulation, virtual reality, virtual hypertext, virtual museum},
location = {Rome, Italy},
series = {HT '23}
}