diff --git a/docs/source/_static/img/mergedlinkeddata.svg b/docs/source/_static/img/mergedlinkeddata.svg new file mode 100644 index 0000000..bddd379 --- /dev/null +++ b/docs/source/_static/img/mergedlinkeddata.svg @@ -0,0 +1,3 @@ + + +
Old city
Old city
Port district
Port distri...
Wang
Wang
Anne
Anne
Klaus
Klaus
Fabrizio
Fabrizio
livesIn
livesIn
livesIn
livesIn
livesIn
livesIn
livesIn
livesIn
hasWorkingHours
hasWorkingHours
08:30-14:00
08:30-14:00
09:00-12:00
09:00-12:00
08:30-14:00
08:30-14:00
08:00-13:00
08:00-13:00
hasWorkingHours
hasWorkingHours
hasWorkingHours
hasWorkingHours
hasWorkingHours
hasWorkingHours
St. NIcholas St.
St. NIcholas St.
Old market St.
Old market St.
adjacent
adjacent
Riverside St.
River...
Campus
Campus
adjacent
adjacent
adjacent
adjacent
adjacent
adjacent
adjacent
adjacent
hasLength
hasLength
3 km
3 km
hasLanes
hasLanes
3
3
hasSpeedLimit
hasSpeedLimit
50 kmh⁻¹
50 kmh⁻¹
hasLength
hasLength
5 km
5 km
hasLanes
hasLanes
2
2
hasSpeedLimit
hasSpeedLimit
80 kmh⁻¹
80 kmh⁻¹
2 km
2 km
1
1
30 kmh⁻¹
30 kmh⁻¹
hasLength
hasLength
hasSpeedLimit
hasSpeedLimit
hasLanes
hasLanes
adjacent
adjacent
Data from traffic authority
Data from traffic authority
Data from a city guide
Data from a city guide
Data from the university registry
Data from the university registry
Viewer does not support full SVG 1.1
\ No newline at end of file diff --git a/docs/source/_static/img/overview_slider.png b/docs/source/_static/img/overview_slider.png new file mode 100644 index 0000000..b193c10 Binary files /dev/null and b/docs/source/_static/img/overview_slider.png differ diff --git a/docs/source/_static/img/trafficsim.svg b/docs/source/_static/img/trafficsim.svg new file mode 100644 index 0000000..deef2bf --- /dev/null +++ b/docs/source/_static/img/trafficsim.svg @@ -0,0 +1,1253 @@ + + + + + + + + 2021-04-09T12:45:54.540360 + image/svg+xml + + + Matplotlib v3.4.1, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/source/_static/img/wrappers.svg b/docs/source/_static/img/wrappers.svg new file mode 100644 index 0000000..1aeaebd --- /dev/null +++ b/docs/source/_static/img/wrappers.svg @@ -0,0 +1,3 @@ + + +
Simulation engine wrapper
Simulation...
SQLite Database
SQLite Database
Traffic simulation engine
Traffic simulation engine
SQLite Wrapper
SQLite Wrap...
Transfer ontology
individuals (data)
Transfer ontology...
SQLite Database
SQLite Database
SQLite Wrapper
SQLite Wrap...
Transfer results back
Tran...
Simulation engine wrapper
Simulation...
Traffic simulation engine (finished)
Traffic simulation engine (finished)
Run simulation
Run simula...
Viewer does not support full SVG 1.1
\ No newline at end of file diff --git a/docs/source/_static/img/wrappers_coupled.svg b/docs/source/_static/img/wrappers_coupled.svg new file mode 100644 index 0000000..ea77b03 --- /dev/null +++ b/docs/source/_static/img/wrappers_coupled.svg @@ -0,0 +1,3 @@ + + +
Simulation engine wrapper
Simulation...
SQLite Database
SQLite Database
Molecular dynamics engine
Molecular dynamics engine
SQLite Wrapper
SQLite Wrap...
Transfer ontology individuals (data)
Transfer ontology individuals (data)
SQLite Database
SQLite Database
SQLite Wrapper
SQLite Wrap...
Transfer results back
Transfer results back
Simulation engine wrapper
Simulation...
Fluid dynamics engine
Fluid dynamics engine
Run some simulation steps,
transfer data
Run some simulation steps,...
Run some simulation steps, transfer data
Run some simulation steps, transfer data
Viewer does not support full SVG 1.1
\ No newline at end of file diff --git a/docs/source/overview.md b/docs/source/overview.md index 2a28cb4..10f4691 100644 --- a/docs/source/overview.md +++ b/docs/source/overview.md @@ -1,6 +1,93 @@ # Overview -One of SimPhoNy’s main tasks is to convert *opaque* data, whose semantics are hidden from an external user to the system, to *transparent* data, whose semantics are understood and easily accessible by means of a common language, specified by an ontology. +SimPhoNy is an ontology-based framework aimed at enabling interoperability between different simulation and data management tools, with a focus on materials science. + + + +## What can SimPhoNy be used for? + +### Manipulate ontology-based linked data, a format well suited for [FAIR data principles](https://en.wikipedia.org/wiki/FAIR_data) + + +[Linked data](https://en.wikipedia.org/wiki/Linked_data) is a format for structured data that facilitates the interoperability among different data sources. In particular, the data is structured as a directed graph, consistent of nodes and labeled arcs. With SimPhoNy, you can not only manipulate this linked data, **but also transform existing non-linked data into linked data**. + +To better understand the idea of linked data, take a quick glance at the toy example below. It shows data about a city from three different data sources: the city's traffic authority, a map from a city guide, and the university registry. As some of the concepts are present in multiple datasets, the linked data representation naturally joins all of them into a single one. + +
+ +![Sample linked data](./_static/img/mergedlinkeddata.svg) + +
+ +_Linked data about a city from three different sources: the city's traffic authority, a map from a city guide, and the university registry. Each data source is represented using a different color and column._ + +
+ +
+ +Although the example above shows just plain linked data, in SimPhoNy, the linked data is enhanced with [ontologies](https://en.wikipedia.org/wiki/Ontology_(information_science)), which give **meaning** to the data. Specifically, SimPhoNy works with ontologies based on the [Web Ontology Language](https://en.wikipedia.org/wiki/Web_Ontology_Language), making the data compatible with the [Semantic Web](https://en.wikipedia.org/wiki/Semantic_Web). + +### Fetch data from a database, run a simulation and immediately store the results + +Ontology-based linked data is not only well suited for the interoperability of data, but also of software tools. In SimPhoNy, one can instantiate individuals from special ontology classes called _wrappers_. These wrappers are in fact a software interface between the core of SimPhoNy (ontology based) and external software tools, disguised to the user as an ontology class. We have already developed wrappers for a few database backends and popular simulation engines for materials science. You can have a look at the existing wrappers on our [GitHub organization](https://github.com/simphony). If needed, you may even consider [developing your own](./wrapper_development.md)! + +As a SimPhoNy user, you can see the data stored in the external software tools transparently as ontology individuals through the wrappers. In this way, moving data between different software tools becomes as simple as moving or copying it from one wrapper to another. + +For example, linked data stored in a SQLite database can be used to run a simulation just by adding the ontology individuals contained in the SQLite wrapper to the Simulation Engine wrapper. Similarly, the ontology individuals representing the results can be simply added back into the database wrapper. + +
+ +![How wrappers work](./_static/img/wrappers.svg) + +
+ +
+ +At this point, the results could be fetched again and for example, visualized with the help of a plotting library. + +
+ +![Toy example of simulation results](./_static/img/trafficsim.svg) + + + +
+ +
+ +

+ +### Couple simulation engines easily + +Exactly in the same way that the data can be moved between a database and a simulation engine using their respective wrappers, it can also be moved between simulation engines. + +This functionality facilitates the coupling and linking between such simulation engines. For example, in the domain of materials science, a certain engine might be useful for representing structures made up of atomistic particles (molecular dynamics), while another software tool could be focussed on representing bodies of fluids (fluid dynamics). As SimPhoNy can enable communication between the two tools, they could both be run and synced simultaneously to create more complex scenarios. + +
+ + + +
+ +The concepts of coupling and linking illustrated in a video. + +
+ +
+ +In order achieve that, it would be necessary to translate the input and output formats of both simulation engines. However, given that the necessary wrappers exist, and their ontologies are compatible, this task becomes relatively simple thanks to SimPhoNy! At the end of the coupling process, just add the results to a database wrapper to store them. + +
+ +![Coupling](./_static/img/wrappers_coupled.svg) + +
+ +_Coupling of two simulation engines, one that handles free traffic and another that exclusively handles traffic lights._ + +
+ +
# Terminology The name ‘SimPhoNy’ stems from the SimPhoNy EU-project in which it was originally developed (see more details [here](https://www.simphony-project.eu/)).