Skip to content

Commit bf009ca

Browse files
authored
Merge pull request #109 from ichumuh/the-great-refactoring
searched and replaced all "semantic_world", "semantic world" and "Semantic World" with semantic digital twin equivalents
2 parents df53a2a + be47e0e commit bf009ca

137 files changed

Lines changed: 3214 additions & 2444 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/build_and_deploy_doc.yml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,23 +31,23 @@ jobs:
3131
steps:
3232
- uses: actions/checkout@v4
3333
with:
34-
path: "ros/src/semantic_world"
34+
path: "ros/src/semantic_digital_twin"
3535
repository: ${{ github.repository }}
3636
ref: ${{ github.ref }}
3737
submodules: 'false'
3838

39-
- name: Update semantic_world source files
39+
- name: Update semantic_digital_twin source files
4040
run: |
41-
rm -rf /opt/ros/semantic_world/*
42-
cd /opt/ros/semantic_world
41+
rm -rf /opt/ros/semantic_digital_twin/*
42+
cd /opt/ros/semantic_digital_twin
4343
rm -rf .git .github .gitignore .gitmodules .readthedocs.yaml
44-
cp -r /__w/${{ github.event.repository.name }}/${{ github.event.repository.name }}/ros/src/semantic_world /opt/ros
44+
cp -r /__w/${{ github.event.repository.name }}/${{ github.event.repository.name }}/ros/src/semantic_digital_twin /opt/ros
4545
4646
- name: Install dependencies
4747
run: |
4848
sudo apt-get update
49-
cd /opt/ros/semantic_world
50-
source /opt/ros/semantic_world-venv/bin/activate
49+
cd /opt/ros/semantic_digital_twin
50+
source /opt/ros/semantic_digital_twin-venv/bin/activate
5151
pip install -U pip && pip install -r requirements.txt && pip install . && pip install -r doc/requirements.txt
5252
5353
# (optional) Cache your executed notebooks between runs
@@ -63,17 +63,17 @@ jobs:
6363
# Build the book
6464
- name: Build the book
6565
run: |
66-
cd /opt/ros/semantic_world
66+
cd /opt/ros/semantic_digital_twin
6767
source /opt/ros/overlay_ws/install/setup.bash
68-
source /opt/ros/semantic_world-venv/bin/activate
68+
source /opt/ros/semantic_digital_twin-venv/bin/activate
6969
jupyter-book build doc
7070
7171
# Upload the book's HTML as an artifact
7272
- name: Upload artifact
7373
if: github.event_name == 'push'
7474
uses: actions/upload-pages-artifact@v3
7575
with:
76-
path: "/opt/ros/semantic_world/doc/_build/html"
76+
path: "/opt/ros/semantic_digital_twin/doc/_build/html"
7777

7878
# Deploy the book's HTML to GitHub Pages
7979
- name: Deploy to GitHub Pages

.github/workflows/ci.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424
repository: ${{ github.repository }}
2525
ref: ${{ github.ref }}
2626
submodules: 'false'
27-
- name: Update semantic_world source files
27+
- name: Update semantic_digital_twin source files
2828
run: |
2929
rm -rf /opt/ros/semantic_world/*
3030
cd /opt/ros//semantic_world
@@ -35,7 +35,7 @@ jobs:
3535
run: |
3636
sudo apt-get update
3737
cd /opt/ros/semantic_world
38-
source /opt/ros/semantic_world-venv/bin/activate
38+
source /opt/ros/semantic_digital_twin-venv/bin/activate
3939
git submodule init
4040
git submodule update
4141
pip install -U pip && pip install -r requirements.txt && pip install -e . && pip install pytest
@@ -47,6 +47,6 @@ jobs:
4747
- name: Run tests
4848
run: |
4949
source /opt/ros/overlay_ws/install/setup.bash
50-
source /opt/ros/semantic_world-venv/bin/activate
50+
source /opt/ros/semantic_digital_twin-venv/bin/activate
5151
cd /opt/ros/semantic_world
5252
python -m pytest -v test/

.github/workflows/notebook-test-ci.yml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,23 +20,23 @@ jobs:
2020
steps:
2121
- uses: actions/checkout@v4
2222
with:
23-
path: "ros/src/semantic_world"
23+
path: "ros/src/semantic_digital_twin"
2424
repository: ${{ github.repository }}
2525
ref: ${{ github.ref }}
2626
submodules: 'false'
27-
- name: Update semantic_world source files
27+
- name: Update semantic_digital_twin source files
2828
run: |
29-
rm -rf /opt/ros/semantic_world/*
30-
cd /opt/ros//semantic_world
29+
rm -rf /opt/ros/semantic_digital_twin/*
30+
cd /opt/ros//semantic_digital_twin
3131
rm -rf .git .github .gitignore .gitmodules .readthedocs.yaml
32-
cp -r /__w/${{ github.event.repository.name }}/${{ github.event.repository.name }}/ros/src/semantic_world /opt/ros/
32+
cp -r /__w/${{ github.event.repository.name }}/${{ github.event.repository.name }}/ros/src/semantic_digital_twin /opt/ros/
3333
3434
- name: Install dependencies
3535
run: |
3636
sudo apt-get update
3737
sudo apt install python3-cffi -y
38-
cd /opt/ros/semantic_world
39-
source /opt/ros/semantic_world-venv/bin/activate
38+
cd /opt/ros/semantic_digital_twin
39+
source /opt/ros/semantic_digital_twin-venv/bin/activate
4040
git submodule init
4141
git submodule update
4242
pip install -U pip && pip install -U -r requirements.txt && pip install -e . && pip install pytest
@@ -49,6 +49,6 @@ jobs:
4949
- name: Run tests
5050
run: |
5151
source /opt/ros/overlay_ws/install/setup.bash
52-
source /opt/ros/semantic_world-venv/bin/activate
53-
cd /opt/ros/semantic_world/scripts
52+
source /opt/ros/semantic_digital_twin-venv/bin/activate
53+
cd /opt/ros/semantic_digital_twin/scripts
5454
/bin/bash test_notebook_examples.sh

.github/workflows/publish-to-pypi.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ jobs:
3737
runs-on: ubuntu-latest
3838
environment:
3939
name: pypi
40-
url: https://pypi.org/p/semantic_world # Replace <package-name> with your PyPI project name
40+
url: https://pypi.org/p/semantic_digital_twin # Replace <package-name> with your PyPI project name
4141
permissions:
4242
id-token: write # IMPORTANT: mandatory for trusted publishing
4343

.github/workflows/update_docker.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ on:
55
- main
66
paths:
77
- 'docker/Dockerfile'
8-
- 'semantic_world_msgs'
8+
- 'semantic_digital_twin_msgs'
99
- 'docker/entrypoint.sh'
1010
# only run when a commit has changes in the requirements.txt file
1111

.junie/guidelines.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Semantic World Guidelines
1+
# Semantic Digital Twin Guidelines
22

33
## Testing
44
- If you need to run tests, execute them with pytest
@@ -9,7 +9,7 @@
99
- Do not use abbreviations
1010
- Create classes instead of using too many primitives
1111
- Minimize duplication of code
12-
- Use the semantic_world/doc/styleguide.md for naming transformation variables
12+
- Use the semantic_digital_twin/doc/styleguide.md for naming transformation variables
1313
- Do not wrap attribute access in try-except blocks
1414
- Always access attributes via ".", never via getattr
1515
- Use existing packages whenever possible
@@ -18,7 +18,7 @@
1818

1919
## Design Principles
2020
- Always apply the SOLID principles of object-oriented programming
21-
- If you have to create new view classes, stick to the design of existing views found in semantic_world.views.views
21+
- If you have to create new semantic annotation classes, stick to the design of existing semantic annotations found in semantic_digital_twin.semantic_annotations.semantic_annotations
2222
- Create meaningful custom exceptions
2323
- Eliminate YAGNI smells
2424
- Make interfaces hard to misuse

README.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
# Welcome to the Semantic World Package
2-
Introducing Semantic World: A unified interface for scene data and asserted meaning.
1+
# Welcome to the Semantic Digital Twin Package
2+
Introducing Semantic Digital Twin: A unified interface for scene data and asserted meaning.
33

4-
The Semantic World Python package streamlines the integration and management of scene graphs with explicit semantic assertions.
4+
The Semantic Digital Twin Python package streamlines the integration and management of scene graphs with explicit semantic assertions.
55
Agents and autonomous systems require more than just coordinates, they need contextual understanding.
6-
Semantic World bridges geometry, kinematics, and meaning, allowing systems for planning,
6+
Semantic Digital Twin bridges geometry, kinematics, and meaning, allowing systems for planning,
77
learning, and reasoning to process the environment through actionable, high-level concepts.
88

99
This enables the construction of environments that can be readily understood,
1010
queried, transformed, and shared across projects.
1111
Whether for research prototypes or robust data pipelines,
12-
Semantic World translates raw environment data into structured knowledge.
12+
Semantic Digital Twin translates raw environment data into structured knowledge.
1313

1414
## Assimilated Technologies
1515

@@ -53,11 +53,11 @@ real-time world synchronization.
5353
Structures can be created, merged, and updated at once,
5454
ensuring they are accurately reflected across all connected instances.
5555

56-
🚀 Get started with the [user-guide](https://cram2.github.io/semantic_world/user_guide.html#user-guide)!
56+
🚀 Get started with the [user-guide](https://cram2.github.io/semantic_digital_twin/user_guide.html#user-guide)!
5757

58-
📖 Read the full [documentation](https://cram2.github.io/semantic_world/intro.html)!
58+
📖 Read the full [documentation](https://cram2.github.io/semantic_digital_twin/intro.html)!
5959

60-
🤝 Contribute with the [developer-guide](https://cram2.github.io/semantic_world/developer_guide.html#developer-guide)!
60+
🤝 Contribute with the [developer-guide](https://cram2.github.io/semantic_digital_twin/developer_guide.html#developer-guide)!
6161

6262

6363
# User Installation
@@ -66,15 +66,15 @@ ensuring they are accurately reflected across all connected instances.
6666
You can install the package directly from PyPI:
6767

6868
```bash
69-
pip install -U semantic_world
69+
pip install -U semantic_digital_twin
7070
```
7171

7272
# Contributing
7373

7474
If you are interested in contributing, you can check out the source code from GitHub:
7575

7676
```bash
77-
git clone https://github.com/cram2/semantic_world.git
77+
git clone https://github.com/cram2/semantic_digital_twin.git
7878
```
7979

8080
### Development Dependencies
@@ -86,7 +86,7 @@ pip install -r requirements.txt
8686

8787

8888
# Tests
89-
The tests can be run with `pytest` directly in PyCharm or from the terminal after installing Semantic World as a python package.
89+
The tests can be run with `pytest` directly in PyCharm or from the terminal after installing Semantic Digital Twin as a python package.
9090

9191
```bash
9292
pip install -e .

doc/_config.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# Book settings
22
# Learn more at https://jupyterbook.org/customize/config.html
33

4-
title: Semantic World
4+
title: Semantic Digital Twin
55
author: AICOR Institute for Artificial Intelligence
6-
logo: "images/semantic_world_logo.png"
6+
logo: "images/semantic_digital_twin_logo.png"
77

88
# Force re-execution of notebooks on each build.
99
# See https://jupyterbook.org/content/execute.html
@@ -41,13 +41,13 @@ sphinx:
4141
html_static_path: ["_static"]
4242
html_theme_options:
4343
logo:
44-
image_light: "_static/images/semantic_world_logo.png"
45-
image_dark: "_static/images/semantic_world_logo_dark_mode.png"
44+
image_light: "_static/images/semantic_digital_twin_logo.png"
45+
image_dark: "_static/images/semantic_digital_twin_logo_dark_mode.png"
4646

4747

4848
# Information about where the book exists on the web
4949
repository:
50-
url: https://github.com/cram2/semantic_world # Online location of your book
50+
url: https://github.com/cram2/semantic_digital_twin # Online location of your book
5151
path_to_book: doc # Optional path to your book, relative to the repository root
5252
branch: main # Which branch of the repository should be used when creating links (optional)
5353

doc/conf.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@
1515
import os
1616
import sys
1717

18-
sys.path.insert(0, os.path.abspath(os.path.join("..", "src", "semantic_world")))
18+
sys.path.insert(0, os.path.abspath(os.path.join("..", "src", "semantic_digital_twin")))
1919

2020
# -- Project information -----------------------------------------------------
2121

22-
project = "semantic_world"
22+
project = "semantic_digital_twin"
2323
copyright = "2025, AICOR Institute for Artificial Intelligence"
2424
author = "AICOR Institute for Artificial Intelligence"
2525

doc/developer_guide.rst

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
Developer Guide
44
===============
55

6-
This guide explains how to effectively contribute to the semantic world.
6+
This guide explains how to effectively contribute to the semantic digital twin.
77
General code style related guidelines that can also be used for your AI assistant are found in the
8-
`junie guidelines <https://github.com/cram2/semantic_world/tree/main/.junie/guidelines.md>`_.
8+
`junie guidelines <https://github.com/cram2/semantic_digital_twin/tree/main/.junie/guidelines.md>`_.
99

1010
Environment Setup
1111
-----------------
@@ -23,30 +23,29 @@ You can locally install the package with
2323

2424
.. code-block:: bash
2525
26-
mkvirtualenv semantic_world --system-site-packages
27-
cd /path/to/semantic_world
26+
mkvirtualenv semantic_digital_twin --system-site-packages
27+
cd /path/to/semantic_digital_twin
2828
pip install -e .
2929
3030
Core Parts
3131
----------
3232

33-
- :py:mod:`semantic_world.adapters`: Bridges between the World and external ecosystems and file formats. They import/export world data and keep it in sync with tools like ROS2, simulators, and mesh/robot formats.
33+
- :py:mod:`semantic_digital_twin.adapters`: Bridges between the World and external ecosystems and file formats. They import/export world data and keep it in sync with tools like ROS2, simulators, and mesh/robot formats.
3434

35-
- :py:mod:`semantic_world.world`: The central scene-graph/kinematic container you interact with. It owns bodies, connections, and degrees of freedom; validates and updates the kinematic structure; provides forward/inverse kinematics, collision-related utilities, callbacks for state/model changes, and orchestration of higher-level semantics like views.
35+
- :py:mod:`semantic_digital_twin.world`: The central scene-graph/kinematic container you interact with. It owns bodies, connections, and degrees of freedom; validates and updates the kinematic structure; provides forward/inverse kinematics, collision-related utilities, callbacks for state/model changes, and orchestration of higher-level semantics like semantic annotations.
3636

37-
- :py:mod:`semantic_world.orm`: The database layer. It maps world entities and relationships to SQL databases via SQLAlchemy (auto-generated with `ormatic`), enabling serialization, persistence, and retrieval of complete worlds. It defines the SQL types and a thin interface to store/load worlds reproducibly. If you are unhappy with the storage and retrieval of data from databases you most likely have to change something here
37+
- :py:mod:`semantic_digital_twin.orm`: The database layer. It maps world entities and relationships to SQL databases via SQLAlchemy (auto-generated with `ormatic`), enabling serialization, persistence, and retrieval of complete worlds. It defines the SQL types and a thin interface to store/load worlds reproducibly. If you are unhappy with the storage and retrieval of data from databases you most likely have to change something here
3838

39-
- :py:mod:`semantic_world.spatial_types`: Numeric/symbolic geometric primitives and transformations used across the package (e.g., `TransformationMatrix`, points, vectors, expressions, derivatives). They support composing poses, doing kinematics, and differentiating expressions for solvers.
39+
- :py:mod:`semantic_digital_twin.spatial_types`: Numeric/symbolic geometric primitives and transformations used across the package (e.g., `TransformationMatrix`, points, vectors, expressions, derivatives). They support composing poses, doing kinematics, and differentiating expressions for solvers.
4040

41-
- :py:mod:`semantic_world.views`: Semantic abstractions built on top of raw bodies and connections. A `View` represents a higher-level concept (e.g., a drawer composed of a handle and a prismatic container) and can be inferred by rules. Views provide task-relevant groupings and behaviors without changing the underlying kinematic graph.
42-
43-
- :py:mod:`semantic_world.world_description`: The domain model for kinematic structure and geometry: `Body`, `Region`, `Connection` (fixed, passive/active joints, 6-DoF), `DegreeOfFreedom`, geometry/mesh types, state and modification objects. These classes define the structure and editable state that the `World` manages and reasoners and adapters consume.
41+
- :py:mod:`semantic_digital_twin.semantic_annotations`: Semantic abstractions built on top of raw bodies and connections. A `SemanticAnnotation` represents a higher-level concept (e.g., a drawer composed of a handle and a prismatic container) and can be inferred by rules. semantic annotations provide task-relevant groupings and behaviors without changing the underlying kinematic graph.
42+
- :py:mod:`semantic_digital_twin.world_description`: The domain model for kinematic structure and geometry: `Body`, `Region`, `Connection` (fixed, passive/active joints, 6-DoF), `DegreeOfFreedom`, geometry/mesh types, state and modification objects. These classes define the structure and editable state that the `World` manages and reasoners and adapters consume.
4443

4544
Testing
4645
-------
4746

4847
The tests are all contained in the test folder and further grouped by topics and written with `pytest <https://docs.pytest.org/en/7.1.x/index.html>`_.
49-
The semantic world contains a module :py:mod:`semantic_world.testing` for useful fixtures that shorten your boilerplate code.
48+
The semantic digital twin contains a module :py:mod:`semantic_digital_twin.testing` for useful fixtures that shorten your boilerplate code.
5049
We aim for a test coverage > 95% and generally test everything we write.
5150
Naturally, there are some exceptions, mainly including printing and visualization functionality.
5251

@@ -55,7 +54,7 @@ You can execute them with
5554

5655
.. code-block:: bash
5756
58-
cd /path/to/semantic_world
57+
cd /path/to/semantic_digital_twin
5958
pytest test
6059
6160
Documentation
@@ -66,7 +65,7 @@ You can build it locally using
6665

6766
.. code-block:: bash
6867
69-
cd /path/to/semantic_world/doc
68+
cd /path/to/semantic_digital_twin/doc
7069
jb build .
7170
7271
@@ -85,7 +84,7 @@ You can test the entirety of notebooks using treon with
8584

8685
.. code-block:: bash
8786
88-
cd /path/to/semantic_world/scripts
87+
cd /path/to/semantic_digital_twin/scripts
8988
bash test_notebooks.sh
9089
9190
Contribution Guidelines
@@ -108,7 +107,7 @@ If you are a fellow pycharm enjoyer, there are a couple of hints I want to hand
108107

109108
Help, people are unhappy with my PR
110109
-----------------------------------
111-
We only accept clean code that does something useful and feels like it belongs inside the semantic world.
110+
We only accept clean code that does something useful and feels like it belongs inside the semantic digital twin.
112111
If the reviews address the quality/cleanness of your code, here are resources to improve your python object-oriented programming skills:
113112

114113
- `SOLID Principles <https://realpython.com/solid-principles-python/>`_

0 commit comments

Comments
 (0)