diff --git a/.github/workflows/develop.yml b/.github/workflows/develop.yml new file mode 100644 index 0000000..f0a9ff6 --- /dev/null +++ b/.github/workflows/develop.yml @@ -0,0 +1,135 @@ +name: Publish dev ontologies and doc in docs/dev +run-name: Publish dev ontologies and doc +on: + push: + branches: + - develop + paths: + - 'ontology/**/*.owl' + - 'ontology/**/*.ttl' + - 'ontology/**/*.rdf' + workflow_dispatch: + +permissions: + contents: write + +jobs: + generate-dev-documentation: + runs-on: ubuntu-latest + + steps: + - name: Checkout develop branch + uses: actions/checkout@v4 + with: + ref: develop + fetch-depth: 0 + + - name: Set up Java + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.x' + + - name: Install Python dependencies + run: pip install -r requirements.txt + + - name: Generate documentation on develop + run: | + # Clean old dev documentation before generating new ones + echo "Cleaning old dev documentation..." + rm -rf docs/dev + mkdir -p docs/dev + + find ontology -type f \( -name "*.owl" -o -name "*.ttl" -o -name "*.rdf" \) | while read ontology_file; do + echo "Processing $ontology_file (development version)" + + # Extract relative path from ontology/ + # Example: ontology/modules/core/0.1/core.owl -> modules/core/0.1 + relative_path="${ontology_file#ontology/}" + + # Get directory path (preserves modules/ or demo/) + dir_path=$(dirname "$relative_path") + + # Get filename without extension + file_name=$(basename "$ontology_file") + base_name="${file_name%.*}" + + # Dev docs preserve full structure: docs/dev/modules/core/0.1/ + output_dir="docs/dev/$dir_path" + mkdir -p "$output_dir" + + echo " Path: $dir_path" + echo " Ontology name: $base_name" + echo " Output directory: $output_dir" + + java -jar tools/widoco-1.4.25.jar \ + -ontFile "$ontology_file" \ + -outFolder "$output_dir" \ + -rewriteAll \ + -webVowl \ + -licensius + + echo "Development documentation generated for $ontology_file in $output_dir" + + if [ -f "$output_dir/index-en.html" ]; then + mv "$output_dir/index-en.html" "$output_dir/index.html" + echo "Renamed index-en.html to index.html" + fi + + echo "---" + done + + # Create 'latest' folders for each module in dev/modules/ and dev/demo/ + echo "Creating dev/latest folders..." + for category_dir in docs/dev/*/; do + if [ -d "$category_dir" ]; then + category_name=$(basename "$category_dir") + + echo "Processing dev category: $category_name" + + # Process each module within the category + for module_dir in "$category_dir"*/; do + if [ -d "$module_dir" ]; then + module_name=$(basename "$module_dir") + + # Find the highest version number (semantic versioning) + # Exclude 'latest' folder explicitly + latest_version=$(find "$module_dir" -mindepth 1 -maxdepth 1 -type d -not -name 'latest' | \ + grep -E '/[0-9]+\.[0-9]+' | \ + sort -V | \ + tail -1) + + if [ -n "$latest_version" ]; then + echo " Creating dev/latest folder for $category_name/$module_name" + echo " Latest version: $(basename $latest_version)" + + # Copy the latest version to 'latest' folder + rm -rf "$module_dir/latest" + cp -r "$latest_version" "$module_dir/latest" + + echo " Created: $module_dir/latest" + fi + fi + done + fi + done + + # Build index page and copy to dev folder + echo "Building index page for dev..." + python build_index.py docs/dev/index.html + #cp docs/index.html docs/dev/index.html + #echo "Copied index.html to docs/dev/" + + - name: Commit and push to main + run: | + git checkout main + git config --local user.email "action@github.com" + git config --local user.name "GitHub Action" + git add -f docs/dev/ + git commit -m "publish dev ontologies [skip ci]" + git push origin main diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..e3e4868 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,141 @@ +name: Publish main ontologies and doc in docs +run-name: Publish main ontologies and doc +on: + push: + branches: + - main + paths: + - 'ontology/**/*.owl' + - 'ontology/**/*.ttl' + - 'ontology/**/*.rdf' + workflow_dispatch: + +permissions: + contents: write + +jobs: + generate-documentation: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + ref: ${{ github.ref }} + fetch-depth: 0 + + - name: Set up Java + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.x' + + - name: Install Python dependencies + run: pip install -r requirements.txt + + #- name: Download WIDOCO + # run: | + # wget https://github.com/dgarijo/Widoco/releases/download/v1.4.25/widoco-1.4.25-jar-with-dependencies_JDK-17.jar -O widoco.jar + + - name: Generate documentation + run: | + find ontology -type f \( -name "*.owl" -o -name "*.ttl" -o -name "*.rdf" \) | while read ontology_file; do + echo "Processing $ontology_file" + + # Extract the relative path from ontology/ + # Example: ontology/modules/core/0.1/myonto.owl -> modules/core/0.1/myonto.owl + relative_path="${ontology_file#ontology/}" + + # Get the directory path without the filename + # Example: modules/core/0.1/myonto.owl -> modules/core/0.1 + dir_path=$(dirname "$relative_path") + + # Get the filename without extension for logging + file_name=$(basename "$ontology_file") + base_name="${file_name%.*}" + + # Create output directory maintaining the full structure + # Example: docs/modules/core/0.1/ + output_dir="docs/$dir_path" + mkdir -p "$output_dir" + + echo " Path: $dir_path" + echo " Ontology name: $base_name" + echo " Output directory: $output_dir" + + java -jar tools/widoco-1.4.25.jar \ + -ontFile "$ontology_file" \ + -outFolder "$output_dir" \ + -rewriteAll \ + -webVowl \ + -licensius + + echo "Documentation generated for $ontology_file in $output_dir" + + if [ -f "$output_dir/index-en.html" ]; then + mv "$output_dir/index-en.html" "$output_dir/index.html" + echo "Renamed index-en.html to index.html" + fi + + echo "---" + done + + # Create 'latest' folders for each module in modules/ and demo/ + echo "Creating latest folders..." + for category_dir in docs/*/; do + if [ -d "$category_dir" ]; then + category_name=$(basename "$category_dir") + + # Skip 'dev' folder + if [ "$category_name" = "dev" ]; then + continue + fi + + echo "Processing category: $category_name" + + # Process each module within the category + for module_dir in "$category_dir"*/; do + if [ -d "$module_dir" ]; then + module_name=$(basename "$module_dir") + + # Find the highest version number (semantic versioning) + latest_version=$(find "$module_dir" -mindepth 1 -maxdepth 1 -type d | \ + grep -E '/[0-9]+\.[0-9]+' | \ + sort -V | \ + tail -1) + + if [ -n "$latest_version" ]; then + echo " Creating latest folder for $category_name/$module_name" + echo " Latest version: $(basename $latest_version)" + + # Copy the latest version to 'latest' folder + rm -rf "$module_dir/latest" + cp -r "$latest_version" "$module_dir/latest" + + echo " Created: $module_dir/latest" + fi + fi + done + fi + done + + - name: Build index page + run: python build_index.py + + - name: Commit files + run: | + git config --local user.email "action@github.com" + git config --local user.name "GitHub Action" + git add -f docs/ + git commit -m "update docs" -a + + - name: Push changes + uses: ad-m/github-push-action@master + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + branch: ${{ github.ref }} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7147ae7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,39 @@ +# WIDOCO jar file (downloaded by workflow) +#widoco*.jar + +# Temporary files +*.tmp +*.temp +*.log + +# OS generated files +.DS_Store +.DS_Store? +._* +.Spotlight-V100 +.Trashes +ehthumbs.db +Thumbs.db + +# Editor files +.vscode/ +.idea/ +*.swp +*.swo +*~ + +# Python (if using scripts) +__pycache__/ +*.py[cod] +*$py.class +*.so +.Python + +# Node (if using JavaScript tools) +node_modules/ +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +#docs +docs/ diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..2730021 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Huanyu Li + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md index 86b7415..700d585 100644 --- a/README.md +++ b/README.md @@ -1 +1,99 @@ -# PLCO \ No newline at end of file +# PLCO: Product LifeCycle Ontology + +The Product LifeCycle Ontology (PLCO) provides a shared vocabulary in the form of a network of ontologies to support efficient decentralized sharing of industry data in product lifecycle and its context in circular economies. + +## Developer guidelines + +The PLCO repository uses GitHub Actions to automate the the generation of ontology documentation and to publish content to https://liusemweb.github.io/PLCO/. The action is configured to trigger whenever a pull request is merged into the `main` branch. + +The code on the `main` branch is stable, properly tested and should be viewed as the latest realease of the code. No changes should be made directly on the `main` branch (see below). + +Development happens primarily on the development branch (`develop`), which should ideally always be working, although this is not always realistic. When the development branch has undergone proper testing, a pull request is created, and the changes are merged into `main`. + +When developing or adding a new feature, a specific feature branch should be branched off from the development branch (e.g. `feature/awesome_new_feauture`). A new feature should be regarded as any logically connected set of changes or additions, regardless of how many files are being changed. A feature branch can also be created directly from an issue using the web interface. When the feature branch has undergone sufficient testing, a pull request is created and the changes are merged into `develop`. + +When working on an issue it's good to also reference to them in your commit messages. For example: +```bash +$ git commit -m "resolve issue #123" +``` + +## Adding a ontology pattern or module +The easiest way to publish a new ontology or ontology module is to follow the steps below: + +1. Checkout the `develop` branch and pull the latest changes +```bash +$ git checkout develop +$ git pull +``` +2. Create a new branch (e.g., `update-product-module-to-version-1.0`) +```bash +$ git checkout -b update-product-module-to-version-1.0 +``` +3. Add your ontology or ontology module to the `ontology/` directory, e.g. `ontology/modules/product/1.0/product.ttl` + +4. Add, commit and push: +```bash +$ git commit -m "update product module to version 1.0" +$ git push origin update-product-module-to-version-1.0 +``` +5. From the GitHub page, create a pull request from your branch to `develop`. +6. Done! + +## Building locally +Building the documentation locally is a great way to verify that you don't have any obvious errors in your ontology, and that nothing is missing. The same files are generated in the in `main` branch automatically. + +### Requirements +- Git +- Python 3 +- Java 8 (or higher) + +### Setup +1. Clone the project: +```bash +$ git@github.com:LiUSemWeb/PLCO.git +``` +__Note__: Support for password authentication is no longer supported on GitHub. Instead, you should use a personal access token. Please see [instructions](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account) for more info. + +2. Create a virtual environment for Python and install the requirements: +```bash +$ python3 -m venv PLCO-venv +$ source PLCO-venv/bin/activate +$ pip3 install -r requirements.txt +``` + +3. Build the documentation +```bash +$ python build_local.py +``` + +4. __(optional)__ Host the generated documentation locally: +```bash +$ python3 -m "http.server" -d ./docs/dev +# navigate to http://localhost:8000/ +``` + +## Versioning +Releases are deployable iterations of the repo that can be packaged and made available for download and use. The project uses semantic version numbering for releases following the pattern: MAJOR.MINOR.PATCH: +- Patch releases (e.g., going from version v1.0.1 to version v1.0.2) indicate bug fixes or trivial updates) +- Minor releases (e.g. going from version v1.0.2 to v1.1.0) indicate a change to functionality. This can be any functionality change or new functionality but should not break backward compatability +- Major releases (e.g. going from version v1.1.0 to version v2.0.0) indicate changes that significantly alter functionality or might break backward compatibility + +Releases are created by adding a release tag in the GitHub web interface, which marks a specific commit as meaningful in some way. Each new release should be accompanied by release notes: +- A patch release should contain a list of bugfixes +- A minor release should contain a list of changes and usage details +- A major release should contain a list of removals, a list of additions, and instructions on how to upgrade from the previous version (if needed) + +## Pre-releases +It sometimes useful to be able to publish a release before all the features are developed and tested. In these cases, the use of semantic versioning still applies; however, the release should be tagged with, e.g., a `beta` suffix. In the GitHub web interface, define the new tag name (e.g. `v1.0.0-beta`) and then check the radio button `Set as a pre-release` prior to publishing the release. When the release has been tested, create a new release without the beta suffix. + +## Initial development +Any release with major version zero (e.g., `v0.1.0`) is part of initial development. This indicates that the ontologies should not be considered stable, and that anything may change at any time. This also means that nothing is considered a *breaking change* until the first non-zero major release. Developers are free to add alternative tags with suffixes to add meaning to these early releases (e.g. release `v0.1.0` could at the same time be tagged with `v1.0.0-prototype1`). + + + +## Contact +* Huanyu Li +* Eva Blomqvist +* Dainel de Leng +* Robin Keskisärkkä + diff --git a/build_index.py b/build_index.py new file mode 100644 index 0000000..392f5d9 --- /dev/null +++ b/build_index.py @@ -0,0 +1,112 @@ +#!/usr/bin/env python3 +from pybars import Compiler +from glob import glob +import re +import logging +import sys +#from bs4 import BeautifulSoup, formatter +#import os +#import urllib.request +#import zipfile +#from pylode.profiles.vocpub import VocPub +#from rdflib import Graph + +#from playwright.sync_api import sync_playwright +#import xml.etree.ElementTree +#import xml.dom.minidom + +# Configure root logger +logger = logging.getLogger() +logger.setLevel(logging.INFO) +logging.basicConfig(format='%(levelname)-8s [%(filename)s:%(lineno)d] %(message)s', level=logging.DEBUG) + + +def create_index_file(index_file): + print("Generating index file") + compiler = Compiler() + template_file = "index.hbs" + #index_file = "docs/index.html" + + core = ["actorODP", "observation", "processODP", "product", "resourceODP", "location"] + + core_actor = ["actorODP"] + core_process = ["processODP"] + core_resource = ["resourceODP", "product"] + core_obsrvation = ["observation"] + core_supplementary = ["location"] + + data = { + "core": [], + "other": [], + "demo": [], + "actor": [], + "observation": [], + "process": [], + "resource": [], + "supplementary": [] + } + + for type in ["modules", "demo"]: + ontologies = {} + for source in glob(f"ontology/{type}/*/*/*", recursive=True): + if not source.endswith(".ttl"): + continue + parts = re.match(f"ontology/{type}/([^/]*)/([^/]*)", source) + name = parts.group(1) + version = parts.group(2) + + if not ontologies.get(name): + ontologies[name] = { + "name": name, + "versions": [] + } + + ontologies[name]["versions"].append(version) + ontologies[name]["versions"].sort(reverse=True) + + # Split into core, other and demo + for name in ontologies: + ontology = { + "name": name, + "versions": ontologies[name]["versions"] + } + if type == "demo": + data["demo"].append(ontology) + else: + if name in core: + data["core"].append(ontology) + # New added code below + if name in core_actor: + data["actor"].append(ontology) + if name in core_process: + data["process"].append(ontology) + if name in core_resource: + data["resource"].append(ontology) + if name in core_obsrvation: + data["observation"].append(ontology) + if name in core_supplementary: + data["supplementary"].append(ontology) + else: + data["other"].append(ontology) + + for list in data.values(): + list.sort(key=lambda x: x["name"]) + + # sort by name ascending, version descending + with open(template_file, "r") as f: + template = compiler.compile(f.read()) + + with open(index_file, "w") as f: + f.write(template({"data": data})) + + +def main(): + if len(sys.argv) > 1: + index_file = sys.argv[1] + else: + index_file = 'docs/index.html' + + create_index_file(index_file) + +if __name__ == "__main__": + main() diff --git a/build_local.py b/build_local.py new file mode 100644 index 0000000..7702acf --- /dev/null +++ b/build_local.py @@ -0,0 +1,383 @@ +#!/usr/bin/env python3 +""" +Local WIDOCO Documentation Generator with Index Page Creation +Simulates the GitHub Actions workflow for testing purposes +""" +import os +import subprocess +import sys +from pathlib import Path +from pybars import Compiler +from glob import glob +import re +import logging + +# Configure logging +logger = logging.getLogger() +logger.setLevel(logging.INFO) +logging.basicConfig(format='%(levelname)-8s [%(filename)s:%(lineno)d] %(message)s', level=logging.DEBUG) + +# Configuration +WIDOCO_VERSION = "1.4.25" +WIDOCO_JAR_PATH = f"tools/widoco-{WIDOCO_VERSION}.jar" +ONTOLOGY_DIR = "ontology" +DOCS_DIR = "docs/dev" + +# WIDOCO options +WIDOCO_OPTIONS = [ + "-rewriteAll", + "-includeImportedOntologies", + "-webVowl", + "-licensius" +] + +def check_widoco(): + """Check if WIDOCO jar exists in tools/ folder""" + if os.path.exists(WIDOCO_JAR_PATH): + print(f"✓ WIDOCO jar found: {WIDOCO_JAR_PATH}") + return True + else: + print(f"✗ WIDOCO jar not found: {WIDOCO_JAR_PATH}") + print(f" Please ensure widoco-{WIDOCO_VERSION}.jar is in the tools/ folder") + return False + +def check_java(): + """Check if Java 17+ is installed""" + try: + result = subprocess.run( + ["java", "-version"], + capture_output=True, + text=True + ) + version_output = result.stderr # Java outputs version to stderr + print(f"✓ Java is installed") + print(f" {version_output.split(chr(10))[0]}") + return True + except FileNotFoundError: + print("✗ Java is not installed or not in PATH") + print(" Please install Java 17 or higher") + return False + +def find_ontology_files(): + """Find all ontology files in the ontology directory (modules/ and demo/)""" + ontology_path = Path(ONTOLOGY_DIR) + if not ontology_path.exists(): + print(f"✗ Ontology directory not found: {ONTOLOGY_DIR}") + return [] + + # Check for modules/ and demo/ subdirectories + modules_path = ontology_path / "modules" + demo_path = ontology_path / "demo" + + extensions = ['*.owl', '*.ttl', '*.rdf'] + ontology_files = [] + + # Search in modules/ folder + if modules_path.exists(): + for ext in extensions: + ontology_files.extend(modules_path.rglob(ext)) + + # Search in demo/ folder + if demo_path.exists(): + for ext in extensions: + ontology_files.extend(demo_path.rglob(ext)) + + return sorted(ontology_files) + +def generate_documentation(ontology_file): + """Generate documentation for a single ontology file""" + print(f"\nProcessing: {ontology_file}") + + # Extract relative path from ontology/ + # Example: ontology/modules/core/0.1/core.owl -> modules/core/0.1 + relative_path = ontology_file.relative_to(ONTOLOGY_DIR) + + # Get directory path (e.g., modules/core/0.1 or demo/example/0.1) + dir_path = relative_path.parent + + # Get filename without extension + base_name = ontology_file.stem + + # Create output directory (preserves modules/ or demo/ structure) + output_dir = Path(DOCS_DIR) / dir_path + output_dir.mkdir(parents=True, exist_ok=True) + + print(f" Path: {dir_path}") + print(f" Ontology name: {base_name}") + print(f" Output directory: {output_dir}") + + # Build WIDOCO command using tools/widoco jar + cmd = [ + "java", "-jar", WIDOCO_JAR_PATH, + "-ontFile", str(ontology_file), + "-outFolder", str(output_dir) + ] + WIDOCO_OPTIONS + + print(f" Running WIDOCO...") + try: + # Run WIDOCO + result = subprocess.run( + cmd, + capture_output=True, + text=True, + timeout=300 # 5 minute timeout + ) + + if result.returncode == 0: + print(f" ✓ Documentation generated successfully") + + # Rename index-en.html to index.html + index_en = output_dir / "index-en.html" + index_html = output_dir / "index.html" + if index_en.exists(): + index_en.rename(index_html) + print(f" ✓ Renamed index-en.html to index.html") + + return True + else: + print(f" ✗ WIDOCO failed with return code {result.returncode}") + if result.stderr: + print(f" Error output: {result.stderr}") + return False + + except subprocess.TimeoutExpired: + print(f" ✗ WIDOCO timed out after 5 minutes") + return False + except Exception as e: + print(f" ✗ Error running WIDOCO: {e}") + return False + +def create_latest_folders(): + """Create 'latest' folders for each module (matching the workflow behavior)""" + print("\n5. Creating 'latest' folders...") + print("-" * 60) + + docs_path = Path(DOCS_DIR) + + # Process each category (modules/, demo/) + for category_dir in docs_path.iterdir(): + if not category_dir.is_dir() or category_dir.name == 'dev': + continue + + print(f"\nProcessing category: {category_dir.name}") + + # Process each module within the category + for module_dir in category_dir.iterdir(): + if not module_dir.is_dir(): + continue + + # Find version directories (e.g., 0.1, 0.2, 1.0) + version_dirs = [ + d for d in module_dir.iterdir() + if d.is_dir() and d.name != 'latest' and d.name[0].isdigit() + ] + + if not version_dirs: + continue + + # Sort versions and get the latest + version_dirs.sort(key=lambda x: [int(p) for p in x.name.split('.')]) + latest_version = version_dirs[-1] + + print(f" Creating latest for {category_dir.name}/{module_dir.name}") + print(f" Latest version: {latest_version.name}") + + # Copy latest version to 'latest' folder + latest_dir = module_dir / "latest" + if latest_dir.exists(): + import shutil + shutil.rmtree(latest_dir) + + import shutil + shutil.copytree(latest_version, latest_dir) + print(f" ✓ Created: {latest_dir}") + +def create_index_file(): + """Generate index.html from template""" + print("\n6. Generating index file...") + print("-" * 60) + + compiler = Compiler() + template_file = "index.hbs" + index_file = "docs/dev/index.html" + + # Updated core categories to match your ontology structure + core = ["actorODP", "observation", "processODP", "product", "resourceODP", "location"] + core_actor = ["actorODP"] + core_process = ["processODP"] + core_resource = ["resourceODP", "product"] + core_observation = ["observation"] # Fixed typo: obsrvation -> observation + core_supplementary = ["location"] + + data = { + "core": [], + "other": [], + "demo": [], + "actor": [], + "observation": [], + "process": [], + "resource": [], + "supplementary": [] + } + + for type in ["modules", "demo"]: + ontologies = {} + + # Updated pattern to match new structure: ontology/modules/name/version/*.ttl + for source in glob(f"ontology/{type}/*/*/*", recursive=True): + if not source.endswith(".ttl"): + continue + + parts = re.match(f"ontology/{type}/([^/]*)/([^/]*)", source) + name = parts.group(1) + version = parts.group(2) + + if not ontologies.get(name): + ontologies[name] = { + "name": name, + "versions": [] + } + + ontologies[name]["versions"].append(version) + ontologies[name]["versions"].sort(reverse=True) + + # Split into core, other and demo + for name in ontologies: + ontology = { + "name": name, + "versions": ontologies[name]["versions"] + } + + if type == "demo": + data["demo"].append(ontology) + else: + if name in core: + data["core"].append(ontology) + + # Categorize core modules + if name in core_actor: + data["actor"].append(ontology) + if name in core_process: + data["process"].append(ontology) + if name in core_resource: + data["resource"].append(ontology) + if name in core_observation: # Fixed typo + data["observation"].append(ontology) + if name in core_supplementary: + data["supplementary"].append(ontology) + else: + data["other"].append(ontology) + + # Sort all lists by name + for list in data.values(): + list.sort(key=lambda x: x["name"]) + + # Generate index.html from template + try: + with open(template_file, "r") as f: + template = compiler.compile(f.read()) + + with open(index_file, "w") as f: + f.write(template({"data": data})) + + print(f"✓ Index file generated: {index_file}") + return True + except Exception as e: + print(f"✗ Failed to generate index file: {e}") + return False + +def main(): + """Main execution function""" + print("=" * 60) + print("Local WIDOCO Documentation Generator") + print("=" * 60) + + # Check prerequisites + print("\n1. Checking prerequisites...") + if not check_java(): + sys.exit(1) + + # Check WIDOCO jar + print("\n2. Checking WIDOCO jar...") + if not check_widoco(): + sys.exit(1) + + # Find ontology files + print(f"\n3. Finding ontology files in '{ONTOLOGY_DIR}/'...") + ontology_files = find_ontology_files() + + if not ontology_files: + print(f"✗ No ontology files found in '{ONTOLOGY_DIR}/'") + print(f" Please add .owl, .ttl, or .rdf files to:") + print(f" - '{ONTOLOGY_DIR}/modules/module-name/version/'") + print(f" - '{ONTOLOGY_DIR}/demo/demo-name/version/'") + print(f" Expected structure: {ONTOLOGY_DIR}/modules/core/0.1/ontology.owl") + sys.exit(1) + + print(f"✓ Found {len(ontology_files)} ontology file(s):") + for f in ontology_files: + print(f" - {f}") + + # Generate documentation + print(f"\n4. Generating documentation...") + print("-" * 60) + + success_count = 0 + fail_count = 0 + + for ontology_file in ontology_files: + if generate_documentation(ontology_file): + success_count += 1 + else: + fail_count += 1 + + # Create latest folders + if success_count > 0: + create_latest_folders() + + # Generate index page + if not create_index_file(): + print("⚠️ Index file generation failed") + + # Summary + print("\n" + "=" * 60) + print("Summary") + print("=" * 60) + print(f"Total files processed: {len(ontology_files)}") + print(f"✓ Successful: {success_count}") + print(f"✗ Failed: {fail_count}") + + if success_count > 0: + print(f"\n📁 Documentation generated in '{DOCS_DIR}/' directory") + print(f"\nStructure:") + print(f" {DOCS_DIR}/") + print(f" ├── index.html (main landing page)") + print(f" ├── modules/") + print(f" │ └── module-name/") + print(f" │ ├── version/") + print(f" │ └── latest/") + print(f" └── demo/") + print(f" └── demo-name/") + print(f" ├── version/") + print(f" └── latest/") + print(f"\nTo view the documentation:") + print(f" 1. Open the main index page:") + print(f" open {DOCS_DIR}/index.html") + print(f"\n 2. Or browse individual modules:") + # Find first generated index.html + docs_path = Path(DOCS_DIR) + index_files = [f for f in docs_path.rglob("index.html") if f != docs_path / "index.html"] + if index_files: + # Prioritize showing a 'latest' index if available + latest_indexes = [f for f in index_files if 'latest' in str(f)] + example_file = latest_indexes[0] if latest_indexes else index_files[0] + print(f" open {example_file}") + + if fail_count > 0: + print(f"\n⚠️ Some documentation generation failed. Check the output above.") + sys.exit(1) + + print("\n✓ All documentation generated successfully!") + +if __name__ == "__main__": + main() diff --git a/index.hbs b/index.hbs new file mode 100644 index 0000000..c645642 --- /dev/null +++ b/index.hbs @@ -0,0 +1,426 @@ + + + + + + Product LifeCycle Ontology Network (PLCO) + + + + +
+
+

Product LifeCycle Ontology Network (PLCO)

+

+ The Product LifeCycle Ontology Network (PLCO) provides a shared vocabulary for representing information about product lifecycle in the form of a network of ontology modules. +

+

+ The figure below shows an overview of the topics covered. The lines between the boxes represent some common-sense relations between the topics, which are represented as formal relations within the actual modules, such as owl:imports or specific object properties connecting concepts inside the modules. +

+
+ +
+
+ +
+

Core Modules

+

+ The set of core modules that are in this release of PLCO forms a set of generic reusable ontology building blocks and include Actor, Process, Resource, and Observation. + +

+

Actor

+ + + + + + + + + + + + {{#each data.actor}} + + + + + + {{/each}} +
+ Ontology + + Version + + Docs +
+ {{name}} + (ttl, + owl, + ntriple, + json-ld) + + {{versions.0}} + + html +
+ +

Process

+ + + + + + + + + + + + {{#each data.process}} + + + + + + {{/each}} +
+ Ontology + + Version + + Docs +
+ {{name}} + (ttl, + owl, + ntriple, + json-ld) + + {{versions.0}} + + html +
+ +

Resource

+ + + + + + + + + + + + {{#each data.resource}} + + + + + + {{/each}} +
+ Ontology + + Version + + Docs +
+ {{name}} + (ttl, + owl, + ntriple, + json-ld) + + {{versions.0}} + + html +
+ +

Observation

+ + + + + + + + + + + + {{#each data.observation}} + + + + + + {{/each}} +
+ Ontology + + Version + + Docs +
+ {{name}} + (ttl, + owl, + ntriple, + json-ld) + + {{versions.0}} + + html +
+ +

Supplementary

+

+ The following modules are supplemental to the core modules as shown in Figure 1. +

+ + + + + + + + + + + + {{#each data.supplementary}} + + + + + + {{/each}} +
+ Ontology + + Version + + Docs +
+ {{name}} + (ttl, + owl, + ntriple, + json-ld) + + {{versions.0}} + + html +
+ + + + + + +

Use Case Ontologies

+

+ The use case ontologies reuse the core modules of PLCO and focus on representing use case data about products' lifecycle operations. +

+ + + + + + + + + + + + {{#each data.demo}} + + + + + + {{/each}} +
+ Ontology + + Version + + Docs +
+ {{name}} + (ttl, + owl, + json-ld) + + {{versions.0}} + + html +
+ +

Other Reused Ontologies

+

The following ontologies are not included directly in PLCO, but are reused or referenced.

+ + + + + + + + + + + + {{#each data.other}} + + + + + + {{/each}} +
+ Ontology + + Version + + Docs +
+ {{name}} + (ttl, + owl, + ntriple, + json-ld) + + {{versions.0}} + + html +
+ + +
+
+ + diff --git a/ontology/modules/actorODP/0.1/actorODP.ttl b/ontology/modules/actorODP/0.1/actorODP.ttl new file mode 100644 index 0000000..26c1dec --- /dev/null +++ b/ontology/modules/actorODP/0.1/actorODP.ttl @@ -0,0 +1,287 @@ +@prefix : . +@prefix owl: . +@prefix rdf: . +@prefix xml: . +@prefix xsd: . +@prefix rdfs: . +@prefix vann: . +@prefix dcterms: . +@prefix processODP: . +@prefix resourceODP: . +@base . + + rdf:type owl:Ontology ; + owl:versionIRI ; + dcterms:created "2026-02-05" ; + dcterms:creator "Huanyu Li" ; + dcterms:description "A ODP module of the PLCO ontology network, defining aspects of the actor concept." ; + dcterms:license "https://creativecommons.org/licenses/by/4.0/" ; + dcterms:title "PLCO Ontology Network - Product Module" ; + vann:preferredNamespacePrefix "plco-product" ; + vann:preferredNamespaceUri "http://w3id.org/PLCO/ontology/product" ; + rdfs:seeAlso ; + owl:versionInfo 0.1 . + +################################################################# +# Annotation properties +################################################################# + +### http://purl.org/dc/terms/contributor +dcterms:contributor rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/created +dcterms:created rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/creator +dcterms:creator rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/description +dcterms:description rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/issued +dcterms:issued rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/license +dcterms:license rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/publisher +dcterms:publisher rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/title +dcterms:title rdf:type owl:AnnotationProperty . + + +### http://purl.org/vocab/vann/preferredNamespacePrefix +vann:preferredNamespacePrefix rdf:type owl:AnnotationProperty . + + +### http://purl.org/vocab/vann/preferredNamespaceUri +vann:preferredNamespaceUri rdf:type owl:AnnotationProperty . + + +################################################################# +# Datatypes +################################################################# + + +### http://www.w3.org/2001/XMLSchema#date +xsd:date rdf:type rdfs:Datatype . + + +### http://www.w3.org/2001/XMLSchema#gMonthYear +xsd:gMonthYear rdf:type rdfs:Datatype . + + +### http://www.w3.org/2001/XMLSchema#gYear +xsd:gYear rdf:type rdfs:Datatype . + + +################################################################# +# Object Properties +################################################################# + +### http://w3id.org/PLCO/ontology/actorODP/basedOnCapability +:basedOnCapability rdf:type owl:ObjectProperty ; + rdfs:domain :CollaborationParticipation ; + rdfs:range :Capability ; + rdfs:comment "An actor participates in a collaboration based on that it has some capability that is useful for the collaboration." ; + rdfs:label "based on capability" . + + +### http://w3id.org/PLCO/ontology/actorODP/capabilityOf +:capabilityOf rdf:type owl:ObjectProperty ; + rdfs:domain :Capability ; + rdfs:range [ rdf:type owl:Class ; + owl:unionOf ( :Actor + :Infrastructure + ) + ] ; + rdfs:comment "Relates to the actor holding the capability." ; + rdfs:label "capability of" . + + +### http://w3id.org/PLCO/ontology/actorODP/capabilityProperty +:capabilityProperty rdf:type owl:ObjectProperty ; + rdfs:domain :Capability ; + rdfs:comment "Relates some properties to the capability, such as the parameters of it, or the needed resources." ; + rdfs:label "capability property" . + + +### http://w3id.org/PLCO/ontology/actorODP/participantRole +:participantRole rdf:type owl:ObjectProperty ; + rdfs:domain :Participation ; + rdfs:range :Role ; + rdfs:comment "Holds the value of the role of the participant in this participation relation." ; + rdfs:label "participant role" . + + +### http://w3id.org/PLCO/ontology/actorODP/participatingActor +:participatingActor rdf:type owl:ObjectProperty ; + rdfs:domain :Participation ; + rdfs:range :Actor ; + rdfs:comment "Holds the value of the actor involved in this participation relation." ; + rdfs:label "participating actor" . + + +### http://w3id.org/PLCO/ontology/actorODP/participatingInfrastructure +:participatingInfrastructure rdf:type owl:ObjectProperty ; + rdfs:domain :Participation ; + rdfs:range :Infrastructure ; + rdfs:comment "Holds the value of the infrastructure involved in this participation relation." ; + rdfs:label "participating infrastructure" . + + +### http://w3id.org/PLCO/ontology/actorODP/participatingObject +:participatingObject rdf:type owl:ObjectProperty ; + rdfs:domain :ResourceParticipation ; + rdfs:range resourceODP:Resource ; + rdfs:comment "Participating object in a resource participation. This is part of a resource participation that can be a directional relation, and the participating object is the end point of the relation." ; + rdfs:label "participating object" . + + +### http://w3id.org/PLCO/ontology/actorODP/participatingResource +:participatingResource rdf:type owl:ObjectProperty ; + rdfs:domain :ResourceRelation ; + rdfs:range resourceODP:Resource ; + rdfs:comment "The resource that this participation relation relates to, i.e. for which the actor holds the specified role." ; + rdfs:label "participating resource" . + + +### http://w3id.org/PLCO/ontology/actorODP/participatingSubject +:participatingSubject rdf:type owl:ObjectProperty ; + rdfs:domain :ResourceParticipation ; + rdfs:range resourceODP:Resource ; + rdfs:comment "Participating subject in a resource participation. This is part of a resource participation that can be a directional relation, and the participating subject is the starting point of the relation." ; + rdfs:label "participating subject" . + + +### http://w3id.org/PLCO/ontology/actorODP/participationIn +:participationIn rdf:type owl:ObjectProperty ; + rdfs:domain :CollaborationParticipation ; + rdfs:range processODP:Process ; + rdfs:comment "The collaboration or process that this participation relates to." ; + rdfs:label "participation in" . + + +################################################################# +# Data properties +################################################################# + +### http://w3id.org/PLCO/ontology/actorODP/participationEndTime +:participationEndTime rdf:type owl:DatatypeProperty ; + rdfs:domain :Participation ; + rdfs:range [ rdf:type rdfs:Datatype ; + owl:unionOf ( xsd:date + xsd:dateTime + xsd:gMonthYear + xsd:gYear + ) + ] ; + rdfs:comment "The end of a time interval." ; + rdfs:label "participation end time" . + + +### http://w3id.org/PLCO/ontology/actorODP/participationStartTime +:participationStartTime rdf:type owl:DatatypeProperty ; + rdfs:domain :Participation ; + rdfs:range [ rdf:type rdfs:Datatype ; + owl:unionOf ( xsd:date + xsd:dateTime + xsd:gMonthYear + xsd:gYear + ) + ] ; + rdfs:comment "The start of a time interval." ; + rdfs:label "participation start time" . + + +### http://w3id.org/PLCO/ontology/actorODP/participationTimePoint +:participationTimePoint rdf:type owl:DatatypeProperty ; + rdfs:domain :Participation ; + rdfs:range [ rdf:type rdfs:Datatype ; + owl:unionOf ( xsd:date + xsd:dateTime + xsd:gMonthYear + xsd:gYear + ) + ] ; + rdfs:comment "The point in time when something took place or was valid." ; + rdfs:label "participation time point" . + + +################################################################# +# Classes +################################################################# + +### http://w3id.org/PLCO/ontology/actorODP/Actor +:Actor rdf:type owl:Class ; + rdfs:comment "An agent able to act in the context of a circular value network, e.g. an organisation, person." ; + rdfs:label "Actor" . + + +### http://w3id.org/PLCO/ontology/actorODP/Capability +:Capability rdf:type owl:Class ; + rdfs:comment "Something that the actor is capable of doing, e.g. perfomring a certain role in a process, based on some properties, such as access to infrastructure, resources and know-how." ; + rdfs:label "Capability" . + +### http://w3id.org/PLCO/ontology/actorODP/CollaborationParticipation +:CollaborationParticipation rdf:type owl:Class ; + rdfs:subClassOf :Participation ; + rdfs:comment "The relation involving the role of a certain actor with respect to a value network or a process in such a network, e.g. an organisation (actor) acting as the recycler (role) in a glass recycling value netowrk (network) at a specific point or period in time. Or an organisation (actor) acting as the dismantler (role) in a dismantling step of a building deconstruction process (process step) at a specific point or period in time." ; + rdfs:label "Collaboration Participation" . + + +### http://w3id.org/PLCO/ontology/actorODP/Infrastructure +:Infrastructure rdf:type owl:Class ; + rdfs:comment "An infrastructure refers to facilities, services, or systems for participations to function." ; + rdfs:label "Infrastructure" . + +### http://w3id.org/PLCO/ontology/actorODP/Participation +:Participation rdf:type owl:Class ; + rdfs:subClassOf [ rdf:type owl:Class ; + owl:unionOf ( [ rdf:type owl:Restriction ; + owl:onProperty :participationStartTime ; + owl:cardinality "1"^^xsd:nonNegativeInteger + ] + [ rdf:type owl:Restriction ; + owl:onProperty :participationTimePoint ; + owl:cardinality "1"^^xsd:nonNegativeInteger + ] + ) + ] ; + rdfs:comment "Represents the participation of objects in some situation." ; + rdfs:label "Participation" . + +### http://w3id.org/PLCO/ontology/actorODP/ResourceParticipation +:ResourceParticipation rdf:type owl:Class ; + rdfs:subClassOf :Participation ; + rdfs:comment "The generic relation representing the particpation of a resource in some relation. For example, it can be specialized to represent a reified version of an object or data property." ; + rdfs:label "Resource Participation" . + +### http://w3id.org/PLCO/ontology/actorODP/ResourceRelation +:ResourceRelation rdf:type owl:Class ; + rdfs:subClassOf :Participation ; + rdfs:comment "The relation involving the role of a certain actor with respect to a certain resource, e.g. an organisation or individual (actor) owning (role) a specific product (resource) at a specific point or period in time." ; + rdfs:label "Resource Relation" . + +### http://w3id.org/PLCO/ontology/actorODP/Role +:Role rdf:type owl:Class ; + rdfs:comment "A role that an actor can take in a specific context. Applies both to roles in the context of resources, such as owner, manufacturer, reseller etc. of that resource, as well as roles in relation to a circular value network, such as recycler, dismantler, transporter etc., in relation to a material flow." ; + rdfs:label "Role" . + +### http://w3id.org/PLCO/ontology/processODP/Process +processODP:Process rdf:type owl:Class . + + +### http://w3id.org/PLCO/ontology/resourceODP/Resource +resourceODP:Resource rdf:type owl:Class . + + +### Generated by the OWL API (version 4.5.29.2024-05-13T12:11:03Z) https://github.com/owlcs/owlapi diff --git a/ontology/modules/location/0.1/location.ttl b/ontology/modules/location/0.1/location.ttl new file mode 100644 index 0000000..19b9d87 --- /dev/null +++ b/ontology/modules/location/0.1/location.ttl @@ -0,0 +1,221 @@ +@prefix : . +@prefix owl: . +@prefix rdf: . +@prefix xml: . +@prefix xsd: . +@prefix rdfs: . +@prefix vann: . +@prefix dcterms: . +@base . + + rdf:type owl:Ontology ; + owl:versionIRI ; + dcterms:created "2026-02-05" ; + dcterms:creator "Huanyu Li" ; + dcterms:description "A module of the PLCO ontology network, defining aspects of the location concept." ; + #dcterms:issued "2025-06-30"^^xsd:date ; + dcterms:license "https://creativecommons.org/licenses/by/4.0/" ; + dcterms:title "PLCO Ontology Network - Location Module" ; + vann:preferredNamespacePrefix "plco-location" ; + vann:preferredNamespaceUri "http://w3id.org/PLCO/ontology/location" ; + rdfs:seeAlso ; + owl:versionInfo 0.1 . + # "Huanyu Li" ; + # "PLCO Ontology - Location Module"@en ; + # "2026-02-02" ; + # owl:versionInfo 0.1 . + +################################################################# +# Annotation properties +################################################################# + +### http://purl.org/dc/terms/contributor +dcterms:contributor rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/created +dcterms:created rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/creator +dcterms:creator rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/description +dcterms:description rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/issued +dcterms:issued rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/license +dcterms:license rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/publisher +dcterms:publisher rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/title +dcterms:title rdf:type owl:AnnotationProperty . + + +### http://purl.org/vocab/vann/preferredNamespacePrefix +vann:preferredNamespacePrefix rdf:type owl:AnnotationProperty . + + +### http://purl.org/vocab/vann/preferredNamespaceUri +vann:preferredNamespaceUri rdf:type owl:AnnotationProperty . + + +### http://www.w3.org/2004/02/skos/core#definition + rdf:type owl:AnnotationProperty . + + +### http://www.w3.org/2004/02/skos/core#prefLabel + rdf:type owl:AnnotationProperty . + + +################################################################# +# Datatypes +################################################################# + +### http://www.opengis.net/ont/geosparql#geoJSONLiteral + rdf:type rdfs:Datatype . + + +### http://www.opengis.net/ont/geosparql#gmlLiteral + rdf:type rdfs:Datatype . + + +### http://www.opengis.net/ont/geosparql#wktLiteral + rdf:type rdfs:Datatype . + + +### http://www.w3.org/2001/XMLSchema#date +xsd:date rdf:type rdfs:Datatype . + + +### http://www.w3.org/2001/XMLSchema#gMonthYear +xsd:gMonthYear rdf:type rdfs:Datatype . + + +### http://www.w3.org/2001/XMLSchema#gYear +xsd:gYear rdf:type rdfs:Datatype . + + +################################################################# +# Object Properties +################################################################# + +### http://w3id.org/PLCO/ontology/location#hasLocation +:hasLocation rdf:type owl:ObjectProperty ; + rdfs:range :Location ; + rdfs:comment "Represents the location of an actor or resource." ; + rdfs:label "has location" . + + +################################################################# +# Data properties +################################################################# + +### http://w3id.org/PLCO/ontology/location#hasCity +:hasCity rdf:type owl:DatatypeProperty ; + rdfs:range xsd:string ; + rdfs:comment "Represents the name of a city." ; + rdfs:label "has city" . + + +### http://w3id.org/PLCO/ontology/location#hasCountry +:hasCountry rdf:type owl:DatatypeProperty ; + rdfs:domain :Location ; + rdfs:range xsd:string ; + rdfs:comment "Represents the name of a country." ; + rdfs:label "has country" . + + +### http://w3id.org/PLCO/ontology/location#hasCountryCode +:hasCountryCode rdf:type owl:DatatypeProperty ; + rdfs:range xsd:string ; + rdfs:comment "Represents the code of a country's name according to ISO 3166-1." ; + rdfs:label "has country code" ; + rdfs:seeAlso "ISO 3166-1 (Codes for the representation of names of countries and their subdivisions – Part 1: Country code)" . + + +### http://w3id.org/PLCO/ontology/location#hasGlobalLocationNumber +:hasGlobalLocationNumber rdf:type owl:DatatypeProperty ; + rdfs:range xsd:string ; + rdfs:comment "The Global Location Number (GLN) is part of the GS1 systems of standards." ; + rdfs:label "has global location number" ; + rdfs:seeAlso "https://www.gs1.org/standards/id-keys/gln" . + + +### http://w3id.org/PLCO/ontology/location#hasPostalCode +:hasPostalCode rdf:type owl:DatatypeProperty ; + rdfs:range xsd:string ; + rdfs:comment "Represent postal code" ; + rdfs:label "has postal code" ; + rdfs:seeAlso "Universal Postal Union (UPU) S42 standard" . + + +### http://w3id.org/PLCO/ontology/location#hasStreetAddress +:hasStreetAddress rdf:type owl:DatatypeProperty ; + rdfs:range xsd:string ; + rdfs:comment "Represents address of a street, including e.g., street number and name." ; + rdfs:label "has street address" . + + +### http://www.opengis.net/ont/geosparql#asGML + rdf:type owl:DatatypeProperty ; + rdfs:domain ; + rdfs:range ; + rdfs:isDefinedBy ; + "The GML serialization of a Geometry."@en ; + "as GML"@en . + + +### http://www.opengis.net/ont/geosparql#asGeoJSON + rdf:type owl:DatatypeProperty ; + rdfs:domain ; + rdfs:range ; + rdfs:isDefinedBy ; + "The GeoJSON serialization of a Geometry."@en ; + "as GeoJSON"@en . + + +### http://www.opengis.net/ont/geosparql#asWKT + rdf:type owl:DatatypeProperty ; + rdfs:domain ; + rdfs:range ; + rdfs:isDefinedBy ; + "The WKT serialization of a Geometry."@en ; + "as WKT"@en . + + +### http://www.w3.org/2003/01/geo/wgs84_pos#lat + rdf:type owl:DatatypeProperty . + + +### http://www.w3.org/2003/01/geo/wgs84_pos#long + rdf:type owl:DatatypeProperty . + + +################################################################# +# Classes +################################################################# + +### http://w3id.org/PLCO/ontology/location#Location +:Location rdf:type owl:Class ; + rdfs:subClassOf ; + rdfs:comment "From geography perspecive, a location represents a region which can be geometry point, line or area on Earth." ; + rdfs:label "Location" . + + +### http://www.opengis.net/ont/geosparql#Geometry + rdf:type owl:Class ; + "A coherent set of direct positions in space. The positions are held within a Spatial Reference System (SRS)."@en ; + "Geometry"@en . + + +### Generated by the OWL API (version 4.5.29.2024-05-13T12:11:03Z) https://github.com/owlcs/owlapi diff --git a/ontology/modules/observation/0.1/observation.ttl b/ontology/modules/observation/0.1/observation.ttl new file mode 100644 index 0000000..51d06de --- /dev/null +++ b/ontology/modules/observation/0.1/observation.ttl @@ -0,0 +1,212 @@ +@prefix : . +@prefix dc: . +@prefix owl: . +@prefix rdf: . +@prefix xml: . +@prefix xsd: . +@prefix rdfs: . +@prefix vann: . +@prefix dcterms: . +@base . + + rdf:type owl:Ontology ; + owl:versionIRI ; + owl:imports ; + dcterms:created "2026-02-05" ; + dcterms:creator "Huanyu Li" ; + dcterms:description "A module of the PLCO ontology network, defining aspects of the observation concept." ; + dcterms:license "https://creativecommons.org/licenses/by/4.0/" ; + dcterms:title "PLCO Ontology Network - Observation Module" ; + vann:preferredNamespacePrefix "plco-observation" ; + vann:preferredNamespaceUri "http://w3id.org/PLCO/ontology/observation" ; + rdfs:seeAlso ; + owl:versionInfo 0.1 . + +################################################################# +# Annotation properties +################################################################# + +### http://purl.org/dc/terms/contributor +dcterms:contributor rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/created +dcterms:created rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/creator +dcterms:creator rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/description +dcterms:description rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/issued +dcterms:issued rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/license +dcterms:license rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/publisher +dcterms:publisher rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/title +dcterms:title rdf:type owl:AnnotationProperty . + + +### http://purl.org/vocab/vann/preferredNamespacePrefix +vann:preferredNamespacePrefix rdf:type owl:AnnotationProperty . + + +### http://purl.org/vocab/vann/preferredNamespaceUri +vann:preferredNamespaceUri rdf:type owl:AnnotationProperty . + + +################################################################# +# Object Properties +################################################################# + +### http://w3id.org/PLCO/ontology/observation#consistsOf +:consistsOf rdf:type owl:ObjectProperty ; + rdfs:domain :ObservationCollection ; + rdfs:range :Observation ; + rdfs:label "consists of" . + + +### http://w3id.org/PLCO/ontology/observation#hasObservationParameter +:hasObservationParameter rdf:type owl:ObjectProperty ; + rdfs:domain :Observation ; + rdfs:range :ObservationParameter ; + rdfs:label "has observation parameter" . + + +### http://w3id.org/PLCO/ontology/observation#hasObservationValue +:hasObservationValue rdf:type owl:ObjectProperty ; + rdfs:domain :Observation ; + rdfs:range :ObservationValue ; + rdfs:label "has observation value" . + + +### http://w3id.org/PLCO/ontology/observation#hasValueForObservationParameter +:hasValueForObservationParameter rdf:type owl:ObjectProperty ; + rdfs:domain :ObservationParameter ; + rdfs:range :ObservationValue ; + rdfs:label "has value for observation parameter" . + + +### http://w3id.org/PLCO/ontology/observation#isObservedBy +:isObservedBy rdf:type owl:ObjectProperty ; + owl:inverseOf :observesOnProperty ; + rdfs:domain :ObservableProperty ; + rdfs:range :Observation ; + rdfs:label "is observed by" . + + +### http://w3id.org/PLCO/ontology/observation#observesOnFeatureOfInterest +:observesOnFeatureOfInterest rdf:type owl:ObjectProperty ; + rdfs:domain :Observation ; + rdfs:range :FeatureOfInterest ; + rdfs:label "observes on feature of interest" . + + +### http://w3id.org/PLCO/ontology/observation#observesOnProperty +:observesOnProperty rdf:type owl:ObjectProperty ; + rdfs:domain :Observation ; + rdfs:range :ObservableProperty ; + rdfs:label "observes on property" . + + +################################################################# +# Data properties +################################################################# + +### http://w3id.org/PLCO/ontology/observation#hasNumericValue +:hasNumericValue rdf:type owl:DatatypeProperty ; + rdfs:domain :ObservationValue ; + rdfs:range xsd:double ; + rdfs:label "has numeric value" . + + +### http://w3id.org/PLCO/ontology/observation#hasTextualValue +:hasTextualValue rdf:type owl:DatatypeProperty ; + rdfs:domain :ObservationValue ; + rdfs:range xsd:string ; + rdfs:label "has textual value" . + + +### http://w3id.org/PLCO/ontology/observation#observesAt +:observesAt rdf:type owl:DatatypeProperty ; + rdfs:subPropertyOf ; + rdfs:domain :Observation ; + rdfs:label "observes at" . + + +### http://w3id.org/PLCO/ontology/observation#observesDuring +:observesDuring rdf:type owl:DatatypeProperty ; + rdfs:subPropertyOf ; + rdfs:domain :Observation ; + rdfs:label "observes during" . + + +################################################################# +# Classes +################################################################# + +### http://w3id.org/PLCO/ontology/observation#FeatureOfInterest +:FeatureOfInterest rdf:type owl:Class ; + rdfs:label "Feature Of Interest" . + + +### http://w3id.org/PLCO/ontology/observation#ObservableProperty +:ObservableProperty rdf:type owl:Class ; + rdfs:label "Observable Property" . + + +### http://w3id.org/PLCO/ontology/observation#Observation +:Observation rdf:type owl:Class ; + rdfs:label "Observation" . + + +### http://w3id.org/PLCO/ontology/observation#ObservationCollection +:ObservationCollection rdf:type owl:Class ; + rdfs:label "Observation Collection" . + + +### http://w3id.org/PLCO/ontology/observation#ObservationParameter +:ObservationParameter rdf:type owl:Class ; + rdfs:label "Observation Parameter" . + + +### http://w3id.org/PLCO/ontology/observation#ObservationValue +:ObservationValue rdf:type owl:Class ; + rdfs:label "Observation Value" . + + +### http://w3id.org/PLCO/ontology/resourceODP#StateProperty + rdf:type owl:Class . + + +################################################################# +# General axioms +################################################################# + +[ owl:intersectionOf ( + [ rdf:type owl:Restriction ; + owl:onProperty :isObservedBy ; + owl:someValuesFrom :Observation + ] + [ rdf:type owl:Restriction ; + owl:onProperty :isObservedBy ; + owl:allValuesFrom :Observation + ] + ) ; + rdf:type owl:Class ; + rdfs:subClassOf :ObservableProperty +] . + + +### Generated by the OWL API (version 4.5.29.2024-05-13T12:11:03Z) https://github.com/owlcs/owlapi diff --git a/ontology/modules/processODP/0.1/processODP.ttl b/ontology/modules/processODP/0.1/processODP.ttl new file mode 100644 index 0000000..1b84084 --- /dev/null +++ b/ontology/modules/processODP/0.1/processODP.ttl @@ -0,0 +1,218 @@ +@prefix : . +@prefix owl: . +@prefix rdf: . +@prefix xml: . +@prefix xsd: . +@prefix rdfs: . +@prefix vann: . +@prefix dcterms: . +@base . + + rdf:type owl:Ontology ; + owl:versionIRI ; + dcterms:created "2026-02-05" ; + dcterms:creator "Huanyu Li" ; + dcterms:description "A ODP of the PLCO ontology network, defining aspects of the process concept." ; + dcterms:license "https://creativecommons.org/licenses/by/4.0/" ; + dcterms:title "PLCO Ontology Network - ProcessODP Module" ; + vann:preferredNamespacePrefix "plco-processODP" ; + vann:preferredNamespaceUri "http://w3id.org/PLCO/ontology/processODP" ; + rdfs:seeAlso ; + owl:versionInfo 0.1 . + +################################################################# +# Annotation properties +################################################################# + +### http://purl.org/dc/terms/contributor +dcterms:contributor rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/created +dcterms:created rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/creator +dcterms:creator rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/description +dcterms:description rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/issued +dcterms:issued rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/license +dcterms:license rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/publisher +dcterms:publisher rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/title +dcterms:title rdf:type owl:AnnotationProperty . + + +### http://purl.org/vocab/vann/preferredNamespacePrefix +vann:preferredNamespacePrefix rdf:type owl:AnnotationProperty . + + +### http://purl.org/vocab/vann/preferredNamespaceUri +vann:preferredNamespaceUri rdf:type owl:AnnotationProperty . + + +################################################################# +# Datatypes +################################################################# + +### http://www.w3.org/2001/XMLSchema#date +xsd:date rdf:type rdfs:Datatype . + + +################################################################# +# Object Properties +################################################################# + +### http://w3id.org/PLCO/ontology/processODP#duringTime +:duringTime rdf:type owl:ObjectProperty ; + rdfs:range :TimeInterval ; + rdfs:comment "The time interval during which something, e.g. a process or event, takes place." ; + rdfs:label "during time" . + + +### http://w3id.org/PLCO/ontology/processODP#hasInput +:hasInput rdf:type owl:ObjectProperty ; + rdfs:domain :Process ; + rdfs:comment "The inputs to a process or event." ; + rdfs:label "has input" . + + +### http://w3id.org/PLCO/ontology/processODP#hasOutput +:hasOutput rdf:type owl:ObjectProperty ; + rdfs:domain :Process ; + rdfs:comment "The output of a process or event." ; + rdfs:label "has output" . + + +### http://w3id.org/PLCO/ontology/processODP#isPerformedOn +:isPerformedOn rdf:type owl:ObjectProperty ; + rdfs:domain :Activity ; + rdfs:range ; + rdfs:label "is performed on" . + + +### http://w3id.org/PLCO/ontology/processODP#isSettingFor +:isSettingFor rdf:type owl:ObjectProperty ; + rdfs:domain :Situation ; + rdfs:comment "The thing(s) that this situation is the setting for, e.g. a resource that is in a certain state." ; + rdfs:label "is the setting for" . + + +################################################################# +# Data properties +################################################################# + +### http://w3id.org/PLCO/ontology/processODP#endTime +:endTime rdf:type owl:DatatypeProperty ; + rdfs:domain :TimeInterval ; + rdfs:range xsd:dateTime ; + rdfs:comment "Represents the end time of a time interval." ; + rdfs:label "end time" . + + +### http://w3id.org/PLCO/ontology/processODP#hasActivityDate +:hasActivityDate rdf:type owl:DatatypeProperty ; + rdfs:domain :Activity ; + rdfs:range xsd:date ; + rdfs:label "had activity date" . + + +### http://w3id.org/PLCO/ontology/processODP#hasActivityID +:hasActivityID rdf:type owl:DatatypeProperty ; + rdfs:domain :Activity ; + rdfs:range xsd:string ; + rdfs:label "has activity ID" . + + +### http://w3id.org/PLCO/ontology/processODP#hasActivityType +:hasActivityType rdf:type owl:DatatypeProperty ; + rdfs:domain :Activity ; + rdfs:range xsd:string ; + rdfs:label "has activity type" . + + +### http://w3id.org/PLCO/ontology/processODP#startTime +:startTime rdf:type owl:DatatypeProperty ; + rdfs:domain :TimeInterval ; + rdfs:range xsd:dateTime ; + rdfs:comment "Represents the start time of a time interval." ; + rdfs:label "start time" . + + +################################################################# +# Classes +################################################################# + +### http://w3id.org/PLCO/ontology/processODP#Activity +:Activity rdf:type owl:Class ; + rdfs:label "Activity" . + + +### http://w3id.org/PLCO/ontology/processODP#Event +:Event rdf:type owl:Class ; + rdfs:subClassOf [ owl:intersectionOf ( [ rdf:type owl:Restriction ; + owl:onProperty :hasInput ; + owl:someValuesFrom owl:Thing + ] + [ rdf:type owl:Restriction ; + owl:onProperty :hasOutput ; + owl:someValuesFrom owl:Thing + ] + ) ; + rdf:type owl:Class + ] ; + rdfs:comment "Something that happens within a given context or (short) timeframe." ; + rdfs:label "Event" . + + +### http://w3id.org/PLCO/ontology/processODP#Process +:Process rdf:type owl:Class ; + rdfs:subClassOf [ owl:intersectionOf ( [ rdf:type owl:Restriction ; + owl:onProperty :hasInput ; + owl:someValuesFrom owl:Thing + ] + [ rdf:type owl:Restriction ; + owl:onProperty :hasOutput ; + owl:someValuesFrom owl:Thing + ] + ) ; + rdf:type owl:Class + ] ; + rdfs:comment "Something that takes place over a (longer) period of time and changes some state of affairs."@en ; + rdfs:label "Process" . + + +### http://w3id.org/PLCO/ontology/processODP#Situation +:Situation rdf:type owl:Class ; + rdfs:subClassOf [ rdf:type owl:Restriction ; + owl:onProperty :isSettingFor ; + owl:someValuesFrom owl:Thing + ] ; + rdfs:comment "A situation that may involve some resources and actors, i.e. a state of affairs at a certain point in time." ; + rdfs:label "Situation" . + + +### http://w3id.org/PLCO/ontology/processODP#TimeInterval +:TimeInterval rdf:type owl:Class ; + rdfs:comment "A temporal entity has a starting time and an ending time." ; + rdfs:label "Time Interval" . + + +### http://w3id.org/PLCO/ontology/resourceODP#Resource + rdf:type owl:Class . + + +### Generated by the OWL API (version 4.5.29.2024-05-13T12:11:03Z) https://github.com/owlcs/owlapi diff --git a/ontology/modules/product/0.1/product.ttl b/ontology/modules/product/0.1/product.ttl new file mode 100644 index 0000000..1618d49 --- /dev/null +++ b/ontology/modules/product/0.1/product.ttl @@ -0,0 +1,223 @@ +@prefix : . +@prefix owl: . +@prefix rdf: . +@prefix xml: . +@prefix xsd: . +@prefix rdfs: . +@prefix vann: . +@prefix dcterms: . +@base . + + rdf:type owl:Ontology ; + owl:versionIRI ; + owl:imports ; + dcterms:created "2026-02-05" ; + dcterms:creator "Huanyu Li" ; + dcterms:description "A module of the PLCO ontology network, defining aspects of the product concept." ; + dcterms:license "https://creativecommons.org/licenses/by/4.0/" ; + dcterms:title "PLCO Ontology Network - Product Module" ; + vann:preferredNamespacePrefix "plco-product" ; + vann:preferredNamespaceUri "http://w3id.org/PLCO/ontology/product" ; + rdfs:seeAlso ; + owl:versionInfo 0.1 . + +################################################################# +# Annotation properties +################################################################# + +### http://purl.org/dc/terms/contributor +dcterms:contributor rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/created +dcterms:created rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/creator +dcterms:creator rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/description +dcterms:description rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/issued +dcterms:issued rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/license +dcterms:license rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/publisher +dcterms:publisher rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/title +dcterms:title rdf:type owl:AnnotationProperty . + + +### http://purl.org/vocab/vann/preferredNamespacePrefix +vann:preferredNamespacePrefix rdf:type owl:AnnotationProperty . + + +### http://purl.org/vocab/vann/preferredNamespaceUri +vann:preferredNamespaceUri rdf:type owl:AnnotationProperty . + + +### http://www.w3.org/2004/02/skos/core#definition + rdf:type owl:AnnotationProperty . + + +### http://www.w3.org/2004/02/skos/core#prefLabel + rdf:type owl:AnnotationProperty . + + +################################################################# +# Datatypes +################################################################# + +### http://www.w3.org/2001/XMLSchema#date +xsd:date rdf:type rdfs:Datatype . + + +################################################################# +# Object Properties +################################################################# + +### http://w3id.org/PLCO/ontology/product#describes +:describes rdf:type owl:ObjectProperty ; + rdfs:domain :ProductDesignSpecification ; + rdfs:range [ rdf:type owl:Class ; + owl:unionOf ( :Product + :ProductItem + ) + ] ; + rdfs:label "describes" . + + +### http://w3id.org/PLCO/ontology/product#hasStateProperty +:hasStateProperty rdf:type owl:ObjectProperty ; + rdfs:domain :ProductItem ; + rdfs:range :StateProperty ; + rdfs:label "has state property" . + + +### http://w3id.org/PLCO/ontology/product#isModelledBy +:isModelledBy rdf:type owl:ObjectProperty ; + rdfs:domain :ProductItem ; + rdfs:range :Product ; + rdfs:label "is modelled by" . + + +### http://w3id.org/PLCO/ontology/product#isStoredAt +:isStoredAt rdf:type owl:ObjectProperty ; + rdfs:domain :ProductItem ; + rdfs:range ; + rdfs:label "is stored at" . + + +################################################################# +# Data properties +################################################################# + +### http://w3id.org/PLCO/ontology/product#hadDesignDescription +:hadDesignDescription rdf:type owl:DatatypeProperty ; + rdfs:domain :ProductDesignSpecification ; + rdfs:label "had design description" . + + +### http://w3id.org/PLCO/ontology/product#hasApplianceType +:hasApplianceType rdf:type owl:DatatypeProperty ; + rdfs:domain :ProductItem ; + rdfs:range xsd:string ; + rdfs:label "has appliance type" . + + +### http://w3id.org/PLCO/ontology/product#hasBrand +:hasBrand rdf:type owl:DatatypeProperty ; + rdfs:domain :ProductItem ; + rdfs:range xsd:string ; + rdfs:label "has brand" . + + +### http://w3id.org/PLCO/ontology/product#hasDesignID +:hasDesignID rdf:type owl:DatatypeProperty ; + rdfs:domain :ProductDesignSpecification ; + rdfs:label "has design id" . + + +### http://w3id.org/PLCO/ontology/product#hasDocumentID +:hasDocumentID rdf:type owl:DatatypeProperty ; + rdfs:domain :Document ; + rdfs:range xsd:string ; + rdfs:label "has document id" . + + +### http://w3id.org/PLCO/ontology/product#hasFileName +:hasFileName rdf:type owl:DatatypeProperty ; + rdfs:domain :Document ; + rdfs:range xsd:string ; + rdfs:label "has file name" . + + +### http://w3id.org/PLCO/ontology/product#hasFileType +:hasFileType rdf:type owl:DatatypeProperty ; + rdfs:domain :Document ; + rdfs:range xsd:string ; + rdfs:label "has file type" . + + +### http://w3id.org/PLCO/ontology/product#hasStatePropertyValue +:hasStatePropertyValue rdf:type owl:DatatypeProperty ; + rdfs:domain :StateProperty ; + rdfs:label "has state property value" . + + +### http://w3id.org/PLCO/ontology/product#hasVersionNumber +:hasVersionNumber rdf:type owl:DatatypeProperty ; + rdfs:domain :ProductItem ; + rdfs:range xsd:string ; + rdfs:label "has version number" . + + +################################################################# +# Classes +################################################################# + +### http://w3id.org/PLCO/ontology/location#Location + rdf:type owl:Class . + + +### http://w3id.org/PLCO/ontology/product#Document +:Document rdf:type owl:Class ; + rdfs:subClassOf ; + rdfs:label "Document" . + + +### http://w3id.org/PLCO/ontology/product#Product +:Product rdf:type owl:Class ; + rdfs:subClassOf ; + rdfs:comment "An abstarct concept represent a product in general." ; + rdfs:label "Product" . + + +### http://w3id.org/PLCO/ontology/product#ProductDesignSpecification +:ProductDesignSpecification rdf:type owl:Class ; + rdfs:subClassOf ; + rdfs:label "Product Design Specification" . + + +### http://w3id.org/PLCO/ontology/product#ProductItem +:ProductItem rdf:type owl:Class ; + rdfs:subClassOf ; + rdfs:label "Product Item" . + + +### http://w3id.org/PLCO/ontology/product#StateProperty +:StateProperty rdf:type owl:Class ; + rdfs:subClassOf ; + rdfs:label "State Property" . + + +### Generated by the OWL API (version 4.5.29.2024-05-13T12:11:03Z) https://github.com/owlcs/owlapi diff --git a/ontology/modules/qudt/2.1/qudt.ttl b/ontology/modules/qudt/2.1/qudt.ttl new file mode 100644 index 0000000..24684bf --- /dev/null +++ b/ontology/modules/qudt/2.1/qudt.ttl @@ -0,0 +1,135 @@ +@prefix : . +@prefix dc: . +@prefix owl: . +@prefix rdf: . +@prefix xml: . +@prefix xsd: . +@prefix qudt: . +@prefix rdfs: . +@prefix vann: . +@prefix voag: . +@prefix dcterms: . +@base . + + rdf:type owl:Ontology ; + owl:versionIRI ; + dcterms:creator "Robin Keskisärkkä" ; + dcterms:description """

The QUDT, or \"Quantity, Unit, Dimension and Type\" schema defines the base classes properties, and restrictions used for modeling physical quantities, units of measure, and their dimensions in various measurement systems. The goal of the QUDT ontology is to provide a unified model of, measurable quantities, units for measuring different kinds of quantities, the numerical values of quantities in different units of measure and the data structures and data types used to store and manipulate these objects in software.

+ +

Except for unit prefixes, all units are specified in separate vocabularies. Descriptions are provided in both HTML and LaTeX formats. A quantity is a measure of an observable phenomenon, that, when associated with something, becomes a property of that thing; a particular object, event, or physical system.

+ +

A quantity has meaning in the context of a measurement (i.e. the thing measured, the measured value, the accuracy of measurement, etc.) whereas the underlying quantity kind is independent of any particular measurement. Thus, length is a quantity kind while the height of a rocket is a specific quantity of length; its magnitude that may be expressed in meters, feet, inches, etc. Or, as stated at Wikipedia, in the language of measurement, quantities are quantifiable aspects of the world, such as time, distance, velocity, mass, momentum, energy, and weight, and units are used to describe their measure. Many of these quantities are related to each other by various physical laws, and as a result the units of some of the quantities can be expressed as products (or ratios) of powers of other units (e.g., momentum is mass times velocity and velocity is measured in distance divided by time).

"""^^rdf:HTML ; + dcterms:license "https://creativecommons.org/licenses/by/4.0/" ; + dcterms:rights "The QUDT Ontologies are issued under a Creative Commons Attribution 4.0 International License (CC BY 4.0), available at https://creativecommons.org/licenses/by/4.0/. Attribution should be made to QUDT.org" ; + dcterms:title "Product LifeCycle Ontology (PLCO) - Subset of the QUDT Schema" ; + vann:preferredNamespacePrefix "qudt" ; + vann:preferredNamespaceUri "http://qudt.org/2.1/schema/qudt#" ; + rdfs:isDefinedBy ; + rdfs:seeAlso . + + +################################################################# +# Datatypes +################################################################# + +### http://qudt.org/schema/qudt/LatexString +qudt:LatexString rdf:type rdfs:Datatype . + + +### http://www.w3.org/1999/02/22-rdf-syntax-ns#HTML +rdf:HTML rdf:type rdfs:Datatype . + + +################################################################# +# Object Properties +################################################################# + +### http://qudt.org/schema/qudt/hasQuantityKind +qudt:hasQuantityKind rdf:type owl:ObjectProperty ; + rdfs:range qudt:QuantityKind ; + rdfs:isDefinedBy ; + rdfs:label "has quantity kind" , + "has quantity kind"@en . + + +### http://qudt.org/schema/qudt/hasUnit +qudt:hasUnit rdf:type owl:ObjectProperty ; + rdfs:range qudt:Unit ; + dcterms:description "This property relates a system of units with a unit of measure that is either a) defined by the system, or b) accepted for use by the system and is convertible to a unit of equivalent dimension that is defined by the system. Systems of units may distinguish between base and derived units. Base units are the units which measure the base quantities for the corresponding system of quantities. The base units are used to define units for all other quantities as products of powers of the base units. Such units are called derived units for the system."^^rdf:HTML , + "This property relates a system of units with a unit of measure that is either a) defined by the system, or b) accepted for use by the system and is convertible to a unit of equivalent dimension that is defined by the system. Systems of units may distinguish between base and derived units. Base units are the units which measure the base quantities for the corresponding system of quantities. The base units are used to define units for all other quantities as products of powers of the base units. Such units are called derived units for the system."@en ; + rdfs:isDefinedBy ; + rdfs:label "has unit" , + "has unit"@en . + + +### http://qudt.org/schema/qudt/quantityValue +qudt:quantityValue rdf:type owl:ObjectProperty ; + rdfs:range qudt:QuantityValue ; + rdfs:isDefinedBy ; + rdfs:label "quantity value" . + + +################################################################# +# Data properties +################################################################# + +### http://qudt.org/schema/qudt/numericValue +qudt:numericValue rdf:type owl:DatatypeProperty ; + rdfs:isDefinedBy ; + rdfs:label "numeric value" . + + +################################################################# +# Classes +################################################################# + +### http://qudt.org/schema/qudt/Quantity +qudt:Quantity rdf:type owl:Class ; + rdfs:subClassOf [ rdf:type owl:Restriction ; + owl:onProperty qudt:hasQuantityKind ; + owl:allValuesFrom qudt:QuantityKind + ] , + [ rdf:type owl:Restriction ; + owl:onProperty qudt:quantityValue ; + owl:allValuesFrom qudt:QuantityValue + ] , + [ rdf:type owl:Restriction ; + owl:onProperty qudt:hasQuantityKind ; + owl:minCardinality "0"^^xsd:nonNegativeInteger + ] ; + rdfs:comment """

A quantity is the measurement of an observable property of a particular object, event, or physical system. A quantity is always associated with the context of measurement (i.e. the thing measured, the measured value, the accuracy of measurement, etc.) whereas the underlying quantity kind is independent of any particular measurement. Thus, length is a quantity kind while the height of a rocket is a specific quantity of length; its magnitude that may be expressed in meters, feet, inches, etc. Examples of physical quantities include physical constants, such as the speed of light in a vacuum, Planck's constant, the electric permittivity of free space, and the fine structure constant.

+ +

In other words, quantities are quantifiable aspects of the world, such as the duration of a movie, the distance between two points, velocity of a car, the pressure of the atmosphere, and a person's weight; and units are used to describe their numerical measure. + +

Many quantity kinds are related to each other by various physical laws, and as a result, the associated units of some quantity kinds can be expressed as products (or ratios) of powers of other quantity kinds (e.g., momentum is mass times velocity and velocity is defined as distance divided by time). In this way, some quantities can be calculated from other measured quantities using their associations to the quantity kinds in these expressions. These quantity kind relationships are also discussed in dimensional analysis. Those that cannot be so expressed can be regarded as \"fundamental\" in this sense.

+

A quantity is distinguished from a \"quantity kind\" in that the former carries a value and the latter is a type specifier.

"""^^rdf:HTML ; + rdfs:isDefinedBy ; + rdfs:label "Quantity" . + + +### http://qudt.org/schema/qudt/QuantityKind +qudt:QuantityKind rdf:type owl:Class ; + dc:description "A Quantity Kind is any observable property that can be measured and quantified numerically. Familiar examples include physical properties such as length, mass, time, force, energy, power, electric charge, etc. Less familiar examples include currency, interest rate, price to earning ratio, and information capacity." ; + rdfs:comment "A Quantity Kind is any observable property that can be measured and quantified numerically. Familiar examples include physical properties such as length, mass, time, force, energy, power, electric charge, etc. Less familiar examples include currency, interest rate, price to earning ratio, and information capacity."^^rdf:HTML ; + rdfs:isDefinedBy ; + rdfs:label "Quantity Kind" . + + +### http://qudt.org/schema/qudt/QuantityValue +qudt:QuantityValue rdf:type owl:Class ; + dc:description "A Quantity Value expresses the magnitude and kind of a quantity and is given by the product of a numerical value n and a unit of measure U. The number multiplying the unit is referred to as the numerical value of the quantity expressed in that unit." ; + rdfs:label "Quantity Value" . + + +### http://qudt.org/schema/qudt/Unit +qudt:Unit rdf:type owl:Class ; + rdfs:subClassOf [ rdf:type owl:Restriction ; + owl:onProperty qudt:hasQuantityKind ; + owl:allValuesFrom qudt:QuantityKind + ] ; + dcterms:description "A unit of measure, or unit, is a particular quantity value that has been chosen as a scale for measuring other quantities the same kind (more generally of equivalent dimension). For example, the meter is a quantity of length that has been rigorously defined and standardized by the BIPM (International Board of Weights and Measures). Any measurement of the length can be expressed as a number multiplied by the unit meter. More formally, the value of a physical quantity Q with respect to a unit (U) is expressed as the scalar multiple of a real number (n) and U, as \\(Q = nU\\)."^^qudt:LatexString ; + rdfs:isDefinedBy ; + rdfs:label "Unit" . + + +### Generated by the OWL API (version 4.5.29.2024-05-13T12:11:03Z) https://github.com/owlcs/owlapi diff --git a/ontology/modules/qudtunit/2.1/qudtunit.ttl b/ontology/modules/qudtunit/2.1/qudtunit.ttl new file mode 100644 index 0000000..41def3e --- /dev/null +++ b/ontology/modules/qudtunit/2.1/qudtunit.ttl @@ -0,0 +1,782 @@ +@prefix : . +@prefix owl: . +@prefix rdf: . +@prefix sou: . +@prefix xml: . +@prefix xsd: . +@prefix qudt: . +@prefix rdfs: . +@prefix skos: . +@prefix unit: . +@prefix vaem: . +@prefix vann: . +@prefix prefix: . +@prefix dcterms: . +@prefix quantitykind: . +@base . + + rdf:type owl:Ontology ; + owl:versionIRI ; + owl:imports ; + dcterms:creator "Robin Keskisärkkä" ; + dcterms:rights "The QUDT Ontologies are issued under a Creative Commons Attribution 4.0 International License (CC BY 4.0), available at https://creativecommons.org/licenses/by/4.0/. Attribution should be made to QUDT.org" ; + dcterms:title "Product LifeCycle Ontology (PLCO) - Subset of the QUDT Unit Schema"^^xsd:string ; + vann:preferredNamespacePrefix "qudt-unit"^^xsd:string ; + vann:preferredNamespaceUri "http://qudt.org/vocab/unit"^^xsd:string ; + vaem:description "Standard units of measure for all units." ; + dcterms:license "https://creativecommons.org/licenses/by/4.0/"^^xsd:string ; + rdfs:isDefinedBy ; + rdfs:seeAlso . + +################################################################# +# Annotation properties +################################################################# + +### http://qudt.org/schema/qudt/dbpediaMatch +qudt:dbpediaMatch rdf:type owl:AnnotationProperty . + + +### http://qudt.org/schema/qudt/guidance +qudt:guidance rdf:type owl:AnnotationProperty . + + +### http://qudt.org/schema/qudt/informativeReference +qudt:informativeReference rdf:type owl:AnnotationProperty . + + +### http://qudt.org/schema/qudt/omUnit +qudt:omUnit rdf:type owl:AnnotationProperty . + + +### http://qudt.org/schema/qudt/plainTextDescription +qudt:plainTextDescription rdf:type owl:AnnotationProperty . + + +### http://qudt.org/schema/qudt/prefix +qudt:prefix rdf:type owl:AnnotationProperty . + + +### http://qudt.org/schema/qudt/symbol +qudt:symbol rdf:type owl:AnnotationProperty . + + +### http://qudt.org/schema/qudt/ucumCode +qudt:ucumCode rdf:type owl:AnnotationProperty . + + +### http://qudt.org/schema/qudt/udunitsCode +qudt:udunitsCode rdf:type owl:AnnotationProperty . + + +### http://qudt.org/schema/qudt/uneceCommonCode +qudt:uneceCommonCode rdf:type owl:AnnotationProperty . + + +### http://www.linkedmodel.org/schema/vaem#description +vaem:description rdf:type owl:AnnotationProperty . + + +### http://www.w3.org/2004/02/skos/core#altLabel +skos:altLabel rdf:type owl:AnnotationProperty . + + +################################################################# +# Datatypes +################################################################# + +### http://qudt.org/schema/qudt/LatexString +qudt:LatexString rdf:type rdfs:Datatype . + + +### http://qudt.org/schema/qudt/UCUMcs +qudt:UCUMcs rdf:type rdfs:Datatype . + + +### http://www.w3.org/1999/02/22-rdf-syntax-ns#HTML +rdf:HTML rdf:type rdfs:Datatype . + + +################################################################# +# Classes +################################################################# + +### http://qudt.org/schema/qudt/Unit +qudt:Unit rdf:type owl:Class . + + +################################################################# +# Individuals +################################################################# + +### http://qudt.org/vocab/quantitykind/Area +quantitykind:Area rdf:type owl:NamedIndividual . + + +### http://qudt.org/vocab/quantitykind/Density +quantitykind:Density rdf:type owl:NamedIndividual . + + +### http://qudt.org/vocab/quantitykind/Dimensionless +quantitykind:Dimensionless rdf:type owl:NamedIndividual . + + +### http://qudt.org/vocab/quantitykind/Length +quantitykind:Length rdf:type owl:NamedIndividual . + + +### http://qudt.org/vocab/quantitykind/LiquidVolume +quantitykind:LiquidVolume rdf:type owl:NamedIndividual . + + +### http://qudt.org/vocab/quantitykind/Mass +quantitykind:Mass rdf:type owl:NamedIndividual . + + +### http://qudt.org/vocab/quantitykind/Resistance +quantitykind:Resistance rdf:type owl:NamedIndividual . + + +### http://qudt.org/vocab/quantitykind/Time +quantitykind:Time rdf:type owl:NamedIndividual . + + +### http://qudt.org/vocab/quantitykind/Volume +quantitykind:Volume rdf:type owl:NamedIndividual . + + +### http://qudt.org/vocab/unit/CentiM +unit:CentiM rdf:type owl:NamedIndividual , + qudt:Unit ; + qudt:hasQuantityKind quantitykind:Length ; + dcterms:description "A centimetre is a unit of length in the metric system, equal to one hundredth of a metre, which is the SI base unit of length. Centi is the SI prefix for a factor of 10. The centimetre is the base unit of length in the now deprecated centimetre-gram-second (CGS) system of units."^^rdf:HTML ; + qudt:dbpediaMatch "http://dbpedia.org/resource/Centimetre"^^xsd:anyURI ; + qudt:informativeReference "http://en.wikipedia.org/wiki/Centimetre?oldid=494931891"^^xsd:anyURI ; + qudt:prefix prefix:Centi ; + qudt:symbol "cm" ; + qudt:ucumCode "cm"^^qudt:UCUMcs ; + qudt:uneceCommonCode "CMT" ; + rdfs:isDefinedBy ; + rdfs:label "Centimeter"@en-us , + "Centimetre"@en . + + +### http://qudt.org/vocab/unit/CentiM2 +unit:CentiM2 rdf:type owl:NamedIndividual , + qudt:Unit ; + qudt:hasQuantityKind quantitykind:Area ; + dcterms:description "A unit of area equal to that of a square, of sides 1cm"^^rdf:HTML ; + qudt:prefix prefix:Centi ; + qudt:symbol "cm²" ; + qudt:ucumCode "cm2"^^qudt:UCUMcs ; + qudt:uneceCommonCode "CMK" ; + rdfs:isDefinedBy ; + rdfs:label "Square Centimeter"@en-us , + "Square Centimetre"@en . + + +### http://qudt.org/vocab/unit/DAY +unit:DAY rdf:type owl:NamedIndividual , + qudt:Unit ; + qudt:hasQuantityKind quantitykind:Time ; + dcterms:description "Mean solar day"^^rdf:HTML ; + qudt:dbpediaMatch "http://dbpedia.org/resource/Day"^^xsd:anyURI ; + qudt:informativeReference "http://en.wikipedia.org/wiki/Day?oldid=494970012"^^xsd:anyURI ; + qudt:omUnit ; + qudt:symbol "day" ; + qudt:ucumCode "d"^^qudt:UCUMcs ; + qudt:udunitsCode "d" ; + qudt:uneceCommonCode "DAY" ; + rdfs:isDefinedBy ; + rdfs:label "Day"@en . + + +### http://qudt.org/vocab/unit/DEG_C +unit:DEG_C rdf:type owl:NamedIndividual , + qudt:Unit ; + dcterms:description "\\(\\textit{Celsius}\\), also known as centigrade, is a scale and unit of measurement for temperature. It can refer to a specific temperature on the Celsius scale as well as a unit to indicate a temperature interval, a difference between two temperatures or an uncertainty. This definition fixes the magnitude of both the degree Celsius and the kelvin as precisely 1 part in 273.16 (approximately 0.00366) of the difference between absolute zero and the triple point of water. Thus, it sets the magnitude of one degree Celsius and that of one kelvin as exactly the same. Additionally, it establishes the difference between the two scales' null points as being precisely \\(273.15\\,^{\\circ}{\\rm C}\\).

"^^qudt:LatexString ; + qudt:dbpediaMatch "http://dbpedia.org/resource/Celsius"^^xsd:anyURI ; + qudt:guidance "

See NIST section SP811 section 4.2.1.1

"^^rdf:HTML , + "

See NIST section SP811 section 6.2.8

"^^rdf:HTML ; + qudt:informativeReference "http://en.wikipedia.org/wiki/Celsius?oldid=494152178"^^xsd:anyURI ; + qudt:omUnit ; + qudt:symbol "°C" ; + qudt:ucumCode "Cel"^^qudt:UCUMcs ; + qudt:udunitsCode "°C" , + "℃" ; + qudt:uneceCommonCode "CEL" ; + rdfs:isDefinedBy ; + rdfs:label "Celsius-fok"@hu , + "Grad Celsius"@de , + "celsius"@tr , + "darjah celsius"@ms , + "degree Celsius"@en , + "degré celsius"@fr , + "grad celsius"@ro , + "grado celsius"@es , + "grado celsius"@it , + "gradus celsii"@la , + "grau celsius"@pt , + "stopień celsjusza"@pl , + "stopinja Celzija"@sl , + "stupně celsia"@cs , + "βαθμός Κελσίου"@el , + "градус Целзий"@bg , + "градус Цельсия"@ru , + "צלזיוס"@he , + "درجة مئوية"@ar , + "درجه سانتی گراد/سلسیوس"@fa , + "सेल्सियस"@hi , + "セルシウス度"@ja , + "摄氏度"@zh ; + skos:altLabel "degree-centigrade" . + + +### http://qudt.org/vocab/unit/DeciL +unit:DeciL rdf:type owl:NamedIndividual , + qudt:Unit ; + qudt:hasQuantityKind quantitykind:Volume ; + qudt:plainTextDescription "0.1-fold of the unit litre" ; + qudt:symbol "dL" ; + qudt:ucumCode "dL"^^qudt:UCUMcs ; + qudt:uneceCommonCode "DLT" ; + rdfs:isDefinedBy ; + rdfs:label "Decilitre"@en , + "Decilitre"@en-us . + + +### http://qudt.org/vocab/unit/DeciM +unit:DeciM rdf:type owl:NamedIndividual , + qudt:Unit ; + qudt:hasQuantityKind quantitykind:Length ; + dcterms:description "A decimeter is a tenth of a meter."^^rdf:HTML ; + qudt:prefix prefix:Deci ; + qudt:symbol "dm" ; + qudt:ucumCode "dm"^^qudt:UCUMcs ; + qudt:uneceCommonCode "DMT" ; + rdfs:isDefinedBy ; + rdfs:label "Decimeter"@en-us , + "Decimetre"@en . + + +### http://qudt.org/vocab/unit/DeciM2 +unit:DeciM2 rdf:type owl:NamedIndividual , + qudt:Unit ; + qudt:hasQuantityKind quantitykind:Area ; + qudt:plainTextDescription "0.1-fold of the power of the SI base unit metre with the exponent 2" ; + qudt:prefix prefix:Deci ; + qudt:symbol "dm²" ; + qudt:ucumCode "dm2"^^qudt:UCUMcs ; + qudt:uneceCommonCode "DMK" ; + rdfs:isDefinedBy ; + rdfs:label "Square Decimeter"@en-us , + "Square Decimetre"@en . + + +### http://qudt.org/vocab/unit/GM +unit:GM rdf:type owl:NamedIndividual , + qudt:Unit ; + qudt:hasQuantityKind quantitykind:Mass ; + dcterms:description "A unit of mass in the metric system. The name comes from the Greek gramma, a small weight identified in later Roman and Byzantine times with the Latin scripulum or scruple (the English scruple is equal to about 1.3 grams). The gram was originally defined to be the mass of one cubic centimeter of pure water, but to provide precise standards it was necessary to construct physical objects of specified mass. One gram is now defined to be 1/1000 of the mass of the standard kilogram, a platinum-iridium bar carefully guarded by the International Bureau of Weights and Measures in Paris for more than a century. (The kilogram, rather than the gram, is considered the base unit of mass in the SI.) The gram is a small mass, equal to about 15.432 grains or 0.035 273 966 ounce. "^^rdf:HTML ; + qudt:dbpediaMatch "http://dbpedia.org/resource/Gram"^^xsd:anyURI ; + qudt:informativeReference "http://en.wikipedia.org/wiki/Gram?oldid=493995797"^^xsd:anyURI ; + qudt:omUnit ; + qudt:symbol "g" ; + qudt:ucumCode "g"^^qudt:UCUMcs ; + qudt:udunitsCode "g" ; + qudt:uneceCommonCode "GRM" ; + rdfs:isDefinedBy ; + rdfs:label "Gram"@en . + + +### http://qudt.org/vocab/unit/GM-PER-L +unit:GM-PER-L rdf:type owl:NamedIndividual , + qudt:Unit ; + qudt:hasQuantityKind quantitykind:Density ; + qudt:plainTextDescription "0,001-fold of the SI base unit kilogram divided by the unit litre" ; + qudt:symbol "g/L" ; + qudt:ucumCode "g.L-1"^^qudt:UCUMcs ; + qudt:uneceCommonCode "GL" ; + rdfs:isDefinedBy ; + rdfs:label "Gram Per Liter"@en-us , + "Gram Per Litre"@en . + + +### http://qudt.org/vocab/unit/GM-PER-M3 +unit:GM-PER-M3 rdf:type owl:NamedIndividual , + qudt:Unit ; + qudt:hasQuantityKind quantitykind:Density ; + qudt:plainTextDescription "0,001-fold of the SI base unit kilogram divided by the power of the SI base unit metre with the exponent 3" ; + qudt:symbol "g/m³" ; + qudt:ucumCode "g.m-3"^^qudt:UCUMcs , + "g/m3"^^qudt:UCUMcs ; + qudt:uneceCommonCode "A93" ; + rdfs:isDefinedBy ; + rdfs:label "Gram Per Cubic Meter"@en-us , + "Gram Per Cubic Metre"@en . + + +### http://qudt.org/vocab/unit/HR +unit:HR rdf:type owl:NamedIndividual , + qudt:Unit ; + qudt:hasQuantityKind quantitykind:Time ; + dcterms:description "The hour (common symbol: h or hr) is a unit of measurement of time. In modern usage, an hour comprises 60 minutes, or 3,600 seconds. It is approximately 1/24 of a mean solar day. An hour in the Universal Coordinated Time (UTC) time standard can include a negative or positive leap second, and may therefore have a duration of 3,599 or 3,601 seconds for adjustment purposes. Although it is not a standard defined by the International System of Units, the hour is a unit accepted for use with SI, represented by the symbol h."^^rdf:HTML ; + qudt:dbpediaMatch "http://dbpedia.org/resource/Hour"^^xsd:anyURI ; + qudt:informativeReference "http://en.wikipedia.org/wiki/Hour?oldid=495040268"^^xsd:anyURI ; + qudt:omUnit ; + qudt:symbol "hr" ; + qudt:ucumCode "h"^^qudt:UCUMcs ; + qudt:udunitsCode "h" ; + qudt:uneceCommonCode "HUR" ; + rdfs:isDefinedBy ; + rdfs:label "Hour"@en . + + +### http://qudt.org/vocab/unit/KiloGM +unit:KiloGM rdf:type owl:NamedIndividual , + qudt:Unit ; + qudt:hasQuantityKind quantitykind:Mass ; + qudt:dbpediaMatch "http://dbpedia.org/resource/Kilogram"^^xsd:anyURI ; + qudt:informativeReference "http://en.wikipedia.org/wiki/Kilogram?oldid=493633626"^^xsd:anyURI ; + qudt:plainTextDescription "The kilogram or kilogramme (SI symbol: kg), also known as the kilo, is the base unit of mass in the International System of Units and is defined as being equal to the mass of the International Prototype Kilogram (IPK), which is almost exactly equal to the mass of one liter of water. The avoirdupois (or international) pound, used in both the Imperial system and U.S. customary units, is defined as exactly 0.45359237 kg, making one kilogram approximately equal to 2.2046 avoirdupois pounds." ; + qudt:symbol "kg" ; + qudt:ucumCode "kg"^^qudt:UCUMcs ; + qudt:udunitsCode "kg" ; + qudt:uneceCommonCode "KGM" ; + rdfs:isDefinedBy ; + rdfs:label "Kilogramm"@de , + "chiliogramma"@la , + "chilogrammo"@it , + "kilogram"@cs , + "kilogram"@en , + "kilogram"@ms , + "kilogram"@pl , + "kilogram"@ro , + "kilogram"@sl , + "kilogram"@tr , + "kilogramm*"@hu , + "kilogramme"@fr , + "kilogramo"@es , + "quilograma"@pt , + "χιλιόγραμμο"@el , + "килограм"@bg , + "килограмм"@ru , + "קילוגרם"@he , + "كيلوغرام"@ar , + "کیلوگرم"@fa , + "किलोग्राम"@hi , + "キログラム"@ja , + "公斤"@zh . + + +### http://qudt.org/vocab/unit/KiloGM-PER-L +unit:KiloGM-PER-L rdf:type owl:NamedIndividual , + qudt:Unit ; + qudt:hasQuantityKind quantitykind:Density ; + qudt:plainTextDescription "SI base unit kilogram divided by the unit litre" ; + qudt:symbol "kg/L" ; + qudt:ucumCode "kg.L-1"^^qudt:UCUMcs , + "kg/L"^^qudt:UCUMcs ; + qudt:uneceCommonCode "B35" ; + rdfs:isDefinedBy ; + rdfs:label "Kilogram Per Liter"@en-us , + "Kilogram Per Litre"@en . + + +### http://qudt.org/vocab/unit/KiloGM-PER-M2 +unit:KiloGM-PER-M2 rdf:type owl:NamedIndividual , + qudt:Unit ; + dcterms:description "Kilogram Per Square Meter (kg/m2) is a unit in the category of Surface density. It is also known as kilograms per square meter, kilogram per square metre, kilograms per square metre, kilogram/square meter, kilogram/square metre. This unit is commonly used in the SI unit system. Kilogram Per Square Meter (kg/m2) has a dimension of ML-2 where M is mass, and L is length. This unit is the standard SI unit in this category."^^rdf:HTML ; + qudt:symbol "kg/m²" ; + qudt:ucumCode "kg.m-2"^^qudt:UCUMcs , + "kg/m2"^^qudt:UCUMcs ; + qudt:uneceCommonCode "28" ; + rdfs:isDefinedBy ; + rdfs:label "Kilogram per Square Meter"@en-us , + "Kilogram per Square Metre"@en . + + +### http://qudt.org/vocab/unit/KiloGM-PER-M3 +unit:KiloGM-PER-M3 rdf:type owl:NamedIndividual , + qudt:Unit ; + qudt:hasQuantityKind quantitykind:Density ; + dcterms:description "Kilogram per cubic metre is an SI derived unit of density, defined by mass in kilograms divided by volume in cubic metres. The official SI symbolic abbreviation is \\(kg \\cdot m^{-3}\\), or equivalently either \\(kg/m^3\\)."^^qudt:LatexString ; + qudt:plainTextDescription "Kilogram per cubic metre is an SI derived unit of density, defined by mass in kilograms divided by volume in cubic metres. The official SI symbolic abbreviation is kg . m^-3, or equivalently either kg/m^3." ; + qudt:symbol "kg/m³" ; + qudt:ucumCode "kg.m-3"^^qudt:UCUMcs , + "kg/m3"^^qudt:UCUMcs ; + qudt:uneceCommonCode "KMQ" ; + rdfs:isDefinedBy ; + rdfs:label "Kilogramm je Kubikmeter"@de , + "chilogrammo al metro cubo"@it , + "kilogram bölü metre küp"@tr , + "kilogram na kubični meter"@sl , + "kilogram na metr krychlový"@cs , + "kilogram na metr sześcienny"@pl , + "kilogram pe metru cub"@ro , + "kilogram per cubic meter"@en-us , + "kilogram per cubic metre"@en , + "kilogram per meter kubik"@ms , + "kilogramme par mètre cube"@fr , + "kilogramo por metro cúbico"@es , + "quilograma por metro cúbico"@pt , + "χιλιόγραμμο ανά κυβικό μέτρο"@el , + "килограм на кубичен метър"@bg , + "килограмм на кубический метр"@ru , + "كيلوغرام لكل متر مكعب"@ar , + "کیلوگرم بر متر مکعب"@fa , + "किलोग्राम प्रति घन मीटर"@hi , + "キログラム毎立方メートル"@ja , + "千克每立方米"@zh . + + +### http://qudt.org/vocab/unit/KiloM +unit:KiloM rdf:type owl:NamedIndividual , + qudt:Unit ; + qudt:hasQuantityKind quantitykind:Length ; + dcterms:description "A common metric unit of length or distance. One kilometer equals exactly 1000 meters, about 0.621 371 19 mile, 1093.6133 yards, or 3280.8399 feet. Oddly, higher multiples of the meter are rarely used; even the distances to the farthest galaxies are usually measured in kilometers. "^^rdf:HTML ; + qudt:dbpediaMatch "http://dbpedia.org/resource/Kilometre"^^xsd:anyURI ; + qudt:informativeReference "http://en.wikipedia.org/wiki/Kilometre?oldid=494821851"^^xsd:anyURI ; + qudt:prefix prefix:Kilo ; + qudt:symbol "km" ; + qudt:ucumCode "km"^^qudt:UCUMcs ; + qudt:uneceCommonCode "KMT" ; + rdfs:isDefinedBy ; + rdfs:label "Kilometer"@en-us , + "Kilometre"@en . + + +### http://qudt.org/vocab/unit/KiloOHM +unit:KiloOHM rdf:type owl:NamedIndividual , + qudt:Unit ; + qudt:hasQuantityKind quantitykind:Resistance ; + qudt:plainTextDescription "1 000-fold of the SI derived unit ohm" ; + qudt:prefix prefix:Kilo ; + qudt:symbol "kΩ" ; + qudt:ucumCode "kOhm"^^qudt:UCUMcs ; + qudt:uneceCommonCode "B49" ; + rdfs:isDefinedBy ; + rdfs:label "Kiloohm"@en . + + +### http://qudt.org/vocab/unit/L +unit:L rdf:type owl:NamedIndividual , + qudt:Unit ; + qudt:hasQuantityKind quantitykind:LiquidVolume , + quantitykind:Volume ; + dcterms:description "The \\(litre\\) (American spelling: \\(\\textit{liter}\\); SI symbol \\(l\\) or \\(L\\)) is a non-SI metric system unit of volume equal to \\(1 \\textit{cubic decimetre}\\) (\\(dm^3\\)), 1,000 cubic centimetres (\\(cm^3\\)) or \\(1/1000 \\textit{cubic metre}\\). If the lower case \"L\" is used as the symbol, it is sometimes rendered as a cursive \"l\" to help distinguish it from the capital \"I\", although this usage has no official approval by any international bureau."^^qudt:LatexString ; + qudt:dbpediaMatch "http://dbpedia.org/resource/Litre"^^xsd:anyURI ; + qudt:informativeReference "http://en.wikipedia.org/wiki/Litre?oldid=494846400"^^xsd:anyURI ; + qudt:omUnit ; + qudt:symbol "L" ; + qudt:ucumCode "L"^^qudt:UCUMcs , + "l"^^qudt:UCUMcs ; + qudt:udunitsCode "L" ; + qudt:uneceCommonCode "LTR" ; + rdfs:isDefinedBy ; + rdfs:label "Liter"@en-us , + "Litre"@en ; + skos:altLabel "litre" . + + +### http://qudt.org/vocab/unit/M +unit:M rdf:type owl:NamedIndividual , + qudt:Unit ; + qudt:hasQuantityKind quantitykind:Length ; + dcterms:description "The metric and SI base unit of distance. The 17th General Conference on Weights and Measures in 1983 defined the meter as that distance that makes the speed of light in a vacuum equal to exactly 299 792 458 meters per second. The speed of light in a vacuum, \\(c\\), is one of the fundamental constants of nature. The meter is equal to approximately 1.093 613 3 yards, 3.280 840 feet, or 39.370 079 inches."^^qudt:LatexString ; + qudt:dbpediaMatch "http://dbpedia.org/resource/Metre"^^xsd:anyURI ; + qudt:informativeReference "http://en.wikipedia.org/wiki/Metre?oldid=495145797"^^xsd:anyURI ; + qudt:omUnit ; + qudt:plainTextDescription "The metric and SI base unit of distance. The meter is equal to approximately 1.093 613 3 yards, 3.280 840 feet, or 39.370 079 inches." ; + qudt:symbol "m" ; + qudt:ucumCode "m"^^qudt:UCUMcs ; + qudt:udunitsCode "m" ; + qudt:uneceCommonCode "MTR" ; + rdfs:isDefinedBy ; + rdfs:label "Meter"@de , + "Meter"@en-us , + "meter"@ms , + "meter"@sl , + "metr"@cs , + "metr"@pl , + "metre"@en , + "metre"@tr , + "metro"@es , + "metro"@it , + "metro"@pt , + "metru"@ro , + "metrum"@la , + "mètre"@fr , + "méter"@hu , + "μέτρο"@el , + "метр"@ru , + "метър"@bg , + "מטר"@he , + "متر"@ar , + "متر"@fa , + "मीटर"@hi , + "メートル"@ja , + "米"@zh . + + +### http://qudt.org/vocab/unit/M2 +unit:M2 rdf:type owl:NamedIndividual , + qudt:Unit ; + qudt:hasQuantityKind quantitykind:Area ; + dcterms:description "The S I unit of area is the square metre."^^rdf:HTML ; + qudt:dbpediaMatch "http://dbpedia.org/resource/Square_metre"^^xsd:anyURI ; + qudt:informativeReference "http://en.wikipedia.org/wiki/Square_metre?oldid=490945508"^^xsd:anyURI ; + qudt:symbol "m²" ; + qudt:ucumCode "m2"^^qudt:UCUMcs ; + qudt:uneceCommonCode "MTK" ; + rdfs:isDefinedBy ; + rdfs:label "Quadratmeter"@de , + "Square Meter"@en-us , + "kvadratni meter"@sl , + "meter persegi"@ms , + "metr kwadratowy"@pl , + "metrekare"@tr , + "metro cuadrado"@es , + "metro quadrado"@pt , + "metro quadrato"@it , + "metru pătrat"@ro , + "metrum quadratum"@la , + "mètre carré"@fr , + "négyzetméter"@hu , + "square metre"@en , + "čtvereční metr"@cs , + "τετραγωνικό μέτρο"@el , + "квадратен метър"@bg , + "квадратный метр"@ru , + "מטר רבוע"@he , + "متر مربع"@ar , + "متر مربع"@fa , + "वर्ग मीटर"@hi , + "平方メートル"@ja , + "平方米"@zh . + + +### http://qudt.org/vocab/unit/M3 +unit:M3 rdf:type owl:NamedIndividual , + qudt:Unit ; + qudt:hasQuantityKind quantitykind:Volume ; + dcterms:description "The SI unit of volume, equal to 1.0e6 cm3, 1000 liters, 35.3147 ft3, or 1.30795 yd3. A cubic meter holds about 264.17 U.S. liquid gallons or 219.99 British Imperial gallons."^^rdf:HTML ; + qudt:dbpediaMatch "http://dbpedia.org/resource/Cubic_metre"^^xsd:anyURI ; + qudt:informativeReference "http://en.wikipedia.org/wiki/Cubic_metre?oldid=490956678"^^xsd:anyURI ; + qudt:symbol "m³" ; + qudt:ucumCode "m3"^^qudt:UCUMcs ; + qudt:uneceCommonCode "MTQ" ; + rdfs:isDefinedBy ; + rdfs:label "Cubic Meter"@en-us , + "Kubikmeter"@de , + "cubic metre"@en , + "kubični meter"@sl , + "meter kubik"@ms , + "metr krychlový"@cs , + "metr sześcienny"@pl , + "metreküp"@tr , + "metro cubo"@it , + "metro cúbico"@es , + "metro cúbico"@pt , + "metru cub"@ro , + "metrum cubicum"@la , + "mètre cube"@fr , + "κυβικό μετρο"@el , + "кубичен метър"@bg , + "кубический метр"@ru , + "מטר מעוקב"@he , + "متر مكعب"@ar , + "متر مکعب"@fa , + "घन मीटर"@hi , + "立方メートル"@ja , + "立方米"@zh . + + +### http://qudt.org/vocab/unit/MIN +unit:MIN rdf:type owl:NamedIndividual , + qudt:Unit ; + qudt:hasQuantityKind quantitykind:Time ; + dcterms:description "A minute is a unit of measurement of time. The minute is a unit of time equal to 1/60 (the first sexagesimal fraction of an hour or 60 seconds. In the UTC time scale, a minute on rare occasions has 59 or 61 seconds; see leap second. The minute is not an SI unit; however, it is accepted for use with SI units. The SI symbol for minute or minutes is min (for time measurement) or the prime symbol after a number, e.g. 5' (for angle measurement, even if it is informally used for time)."^^rdf:HTML ; + qudt:omUnit ; + qudt:symbol "min" ; + qudt:ucumCode "min"^^qudt:UCUMcs ; + qudt:udunitsCode "min" ; + qudt:uneceCommonCode "MIN" ; + rdfs:isDefinedBy ; + rdfs:label "Minute"@en . + + +### http://qudt.org/vocab/unit/MegaOHM +unit:MegaOHM rdf:type owl:NamedIndividual , + qudt:Unit ; + qudt:hasQuantityKind quantitykind:Resistance ; + qudt:plainTextDescription "1,000,000-fold of the derived unit ohm" ; + qudt:prefix prefix:Mega ; + qudt:symbol "MΩ" ; + qudt:ucumCode "MOhm"^^qudt:UCUMcs ; + qudt:uneceCommonCode "B75" ; + rdfs:isDefinedBy ; + rdfs:label "Megaohm"@en . + + +### http://qudt.org/vocab/unit/MilliL +unit:MilliL rdf:type owl:NamedIndividual , + qudt:Unit ; + qudt:hasQuantityKind quantitykind:Volume ; + qudt:plainTextDescription "0.001-fold of the unit litre" ; + qudt:symbol "mL" ; + qudt:ucumCode "mL"^^qudt:UCUMcs ; + qudt:uneceCommonCode "MLT" ; + rdfs:isDefinedBy ; + rdfs:label "Millilitre"@en , + "Millilitre"@en-us . + + +### http://qudt.org/vocab/unit/MilliM +unit:MilliM rdf:type owl:NamedIndividual , + qudt:Unit ; + qudt:hasQuantityKind quantitykind:Length ; + dcterms:description "The millimetre (International spelling as used by the International Bureau of Weights and Measures) or millimeter (American spelling) (SI unit symbol mm) is a unit of length in the metric system, equal to one thousandth of a metre, which is the SI base unit of length. It is equal to 1000 micrometres or 1000000 nanometres. A millimetre is equal to exactly 5/127 (approximately 0.039370) of an inch."^^rdf:HTML ; + qudt:dbpediaMatch "http://dbpedia.org/resource/Millimetre"^^xsd:anyURI ; + qudt:informativeReference "http://en.wikipedia.org/wiki/Millimetre?oldid=493032457"^^xsd:anyURI ; + qudt:prefix prefix:Milli ; + qudt:symbol "mm" ; + qudt:ucumCode "mm"^^qudt:UCUMcs ; + qudt:uneceCommonCode "MMT" ; + rdfs:isDefinedBy ; + rdfs:label "Millimeter"@en-us , + "Millimetre"@en ; + skos:altLabel "mil"@en-gb . + + +### http://qudt.org/vocab/unit/MilliM2 +unit:MilliM2 rdf:type owl:NamedIndividual , + qudt:Unit ; + qudt:hasQuantityKind quantitykind:Area ; + qudt:plainTextDescription "0.000001-fold of the power of the SI base unit metre with the exponent 2" ; + qudt:prefix prefix:Milli ; + qudt:symbol "mm²" ; + qudt:ucumCode "mm2"^^qudt:UCUMcs ; + qudt:uneceCommonCode "MMK" ; + rdfs:isDefinedBy ; + rdfs:label "Square Millimeter"@en-us , + "Square Millimetre"@en . + + +### http://qudt.org/vocab/unit/NUM +unit:NUM rdf:type owl:NamedIndividual , + qudt:Unit ; + qudt:hasQuantityKind quantitykind:Dimensionless ; + dcterms:description "\"Number\" is a unit for 'Dimensionless' expressed as (\\#\\)."^^rdf:HTML ; + qudt:symbol "#" ; + qudt:ucumCode "1"^^qudt:UCUMcs , + "{#}"^^qudt:UCUMcs ; + rdfs:isDefinedBy ; + rdfs:label "Number"@en . + + +### http://qudt.org/vocab/unit/OHM +unit:OHM rdf:type owl:NamedIndividual , + qudt:Unit ; + qudt:hasQuantityKind quantitykind:Resistance ; + dcterms:description "The \\textit{ohm} is the SI derived unit of electrical resistance, named after German physicist Georg Simon Ohm. \\(\\Omega \\equiv\\ \\frac{\\text{V}}{\\text{A}}\\ \\equiv\\ \\frac{\\text{volt}}{\\text{amp}}\\ \\equiv\\ \\frac{\\text{W}}{\\text {A}^{2}}\\ \\equiv\\ \\frac{\\text{watt}}{\\text{amp}^{2}}\\ \\equiv\\ \\frac{\\text{H}}{\\text {s}}\\ \\equiv\\ \\frac{\\text{henry}}{\\text{second}}\\)"^^qudt:LatexString ; + qudt:dbpediaMatch "http://dbpedia.org/resource/Ohm"^^xsd:anyURI ; + qudt:informativeReference "http://en.wikipedia.org/wiki/Ohm?oldid=494685555"^^xsd:anyURI ; + qudt:omUnit ; + qudt:symbol "Ω" ; + qudt:ucumCode "Ohm"^^qudt:UCUMcs ; + qudt:udunitsCode "Ω" ; + qudt:uneceCommonCode "OHM" ; + rdfs:isDefinedBy ; + rdfs:label "Ohm"@de , + "ohm"@cs , + "ohm"@en , + "ohm"@fr , + "ohm"@hu , + "ohm"@it , + "ohm"@ms , + "ohm"@pt , + "ohm"@ro , + "ohm"@sl , + "ohm"@tr , + "ohmio"@es , + "ohmium"@la , + "om"@pl , + "ωμ"@el , + "ом"@bg , + "ом"@ru , + "אוהם"@he , + "أوم"@ar , + "اهم"@fa , + "ओह्म"@hi , + "オーム"@ja , + "欧姆"@zh . + + +### http://qudt.org/vocab/unit/SEC +unit:SEC rdf:type owl:NamedIndividual , + qudt:Unit ; + qudt:hasQuantityKind quantitykind:Time ; + dcterms:description """The \\(Second\\) (symbol: \\(s\\)) is the base unit of time in the International System of Units (SI) and is also a unit of time in other systems of measurement. Between the years1000 (when al-Biruni used seconds) and 1960 the second was defined as \\(1/86400\\) of a mean solar day (that definition still applies in some astronomical and legal contexts). Between 1960 and 1967, it was defined in terms of the period of the Earth's orbit around the Sun in 1900, but it is now defined more precisely in atomic terms. +Under the International System of Units (via the International Committee for Weights and Measures, or CIPM), since 1967 the second has been defined as the duration of \\({9192631770}\\) periods of the radiation corresponding to the transition between the two hyperfine levels of the ground state of the caesium 133 atom.In 1997 CIPM added that the periods would be defined for a caesium atom at rest, and approaching the theoretical temperature of absolute zero, and in 1999, it included corrections from ambient radiation."""^^qudt:LatexString ; + qudt:dbpediaMatch "http://dbpedia.org/resource/Second"^^xsd:anyURI ; + qudt:informativeReference "http://en.wikipedia.org/wiki/Second?oldid=495241006"^^xsd:anyURI ; + qudt:omUnit ; + qudt:symbol "s" ; + qudt:ucumCode "s"^^qudt:UCUMcs ; + qudt:udunitsCode "s" ; + qudt:uneceCommonCode "SEC" ; + rdfs:isDefinedBy ; + rdfs:label "Sekunde"@de , + "másodperc"@hu , + "saat"@ms , + "saniye"@tr , + "second"@en , + "seconde"@fr , + "secondo"@it , + "secundum"@la , + "secundă"@ro , + "segundo"@es , + "segundo"@pt , + "sekunda"@cs , + "sekunda"@pl , + "sekunda"@sl , + "δευτερόλεπτο"@el , + "секунда"@bg , + "секунда"@ru , + "שנייה"@he , + "ثانية"@ar , + "ثانیه"@fa , + "सैकण्ड"@hi , + "秒"@ja , + "秒"@zh . + + +### http://qudt.org/vocab/unit/TONNE +unit:TONNE rdf:type owl:NamedIndividual , + qudt:Unit ; + qudt:hasQuantityKind quantitykind:Mass ; + qudt:plainTextDescription "1,000-fold of the SI base unit kilogram" ; + qudt:symbol "t" ; + qudt:ucumCode "t"^^qudt:UCUMcs ; + qudt:udunitsCode "t" ; + qudt:uneceCommonCode "TNE" ; + rdfs:isDefinedBy ; + rdfs:label "Tonne"@en . + + +### http://qudt.org/vocab/unit/YR +unit:YR rdf:type owl:NamedIndividual , + qudt:Unit ; + qudt:hasQuantityKind quantitykind:Time ; + dcterms:description "A year is any of the various periods equated with one passage of Earth about the Sun, and hence of roughly 365 days. The familiar calendar has a mixture of 365- and 366-day years, reflecting the fact that the time for one complete passage takes about 365¼ days; the precise value for this figure depends on the manner of defining the year."^^rdf:HTML ; + qudt:informativeReference "http://www.oxfordreference.com/view/10.1093/acref/9780198605225.001.0001/acref-9780198605225-e-1533?rskey=b94Fd6"^^xsd:anyURI ; + qudt:omUnit ; + qudt:symbol "yr" ; + qudt:ucumCode "a"^^qudt:UCUMcs ; + qudt:udunitsCode "yr" ; + qudt:uneceCommonCode "ANN" ; + rdfs:isDefinedBy ; + rdfs:label "Year"@en . + + +### Generated by the OWL API (version 4.5.9.2019-02-01T07:24:44Z) https://github.com/owlcs/owlapi diff --git a/ontology/modules/resourceODP/0.1/resourceODP.ttl b/ontology/modules/resourceODP/0.1/resourceODP.ttl new file mode 100644 index 0000000..49fa103 --- /dev/null +++ b/ontology/modules/resourceODP/0.1/resourceODP.ttl @@ -0,0 +1,228 @@ +@prefix : . +@prefix dc: . +@prefix owl: . +@prefix rdf: . +@prefix xml: . +@prefix xsd: . +@prefix rdfs: . +@prefix vann: . +@prefix dcterms: . +@base . + + rdf:type owl:Ontology ; + owl:versionIRI ; + vann:preferredNamespacePrefix "plco-resourceODP" ; + vann:preferredNamespaceUri "http://w3id.org/PLCO/ontology/resourceODP" ; + dcterms:created "2026-02-05" ; + dcterms:creator "Huanyu Li" ; + dcterms:description "A ODP of the PLCO ontology network, defining aspects of the resource concept." ; + dcterms:license "https://creativecommons.org/licenses/by/4.0/" ; + dcterms:title "PLCO Ontology Network - resourceODP Module" ; + rdfs:seeAlso ; + owl:versionInfo 0.1 . + +################################################################# +# Annotation properties +################################################################# + +### http://purl.org/dc/terms/contributor +dcterms:contributor rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/created +dcterms:created rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/creator +dcterms:creator rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/description +dcterms:description rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/issued +dcterms:issued rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/license +dcterms:license rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/publisher +dcterms:publisher rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/title +dcterms:title rdf:type owl:AnnotationProperty . + + +### http://purl.org/vocab/vann/preferredNamespacePrefix +vann:preferredNamespacePrefix rdf:type owl:AnnotationProperty . + + +### http://purl.org/vocab/vann/preferredNamespaceUri +vann:preferredNamespaceUri rdf:type owl:AnnotationProperty . + + +################################################################# +# Datatypes +################################################################# + +### http://www.opengis.net/ont/geosparql#geoJSONLiteral + rdf:type rdfs:Datatype . + + +### http://www.opengis.net/ont/geosparql#gmlLiteral + rdf:type rdfs:Datatype . + + +### http://www.opengis.net/ont/geosparql#wktLiteral + rdf:type rdfs:Datatype . + + +### http://www.w3.org/2001/XMLSchema#date +xsd:date rdf:type rdfs:Datatype . + + +################################################################# +# Object Properties +################################################################# + +### http://w3id.org/PLCO/ontology/resourceODP#hasPhysicalObject +:hasPhysicalObject rdf:type owl:ObjectProperty ; + rdfs:range :PhysicalObject ; + rdfs:comment "hasPhysicalObject intends to represent that a batch of objects or a set of objects can have composing components of physical objects." ; + rdfs:label "has physical object" . + + +### http://w3id.org/PLCO/ontology/resourceODP#hasResourceCondition +:hasResourceCondition rdf:type owl:ObjectProperty ; + rdfs:domain :Resource ; + rdfs:range :ResourceCondition ; + rdfs:comment "A resource can has specifc conditions." ; + rdfs:label "has resource condition" . + + +### http://w3id.org/PLCO/ontology/resourceODP#hasResourceProperty +:hasResourceProperty rdf:type owl:ObjectProperty ; + rdfs:domain :Resource ; + rdfs:range :ResourceProperty ; + rdfs:comment "A resource can has specifc properties." ; + rdfs:label "has resource property" . + + +### http://w3id.org/PLCO/ontology/resourceODP#hasResourceQuality +:hasResourceQuality rdf:type owl:ObjectProperty ; + rdfs:domain :Resource ; + rdfs:range :ResourceQuality ; + rdfs:comment "A resource can has specifc qualities." ; + rdfs:label "has resource quality" . + + +### http://w3id.org/PLCO/ontology/resourceODP#isAbout +:isAbout rdf:type owl:ObjectProperty ; + rdfs:domain :Information ; + rdfs:comment "Connecting the information to the object (physical, virtual, imaginary) that the information is about." ; + rdfs:label "is about" . + + +### http://w3id.org/PLCO/ontology/resourceODP#isRealizationOf +:isRealizationOf rdf:type owl:ObjectProperty ; + rdfs:range :Information ; + rdfs:comment "Relates a thing, e.g. a digital object, or a physical object, to the information it is a realization of. C.f. a physical book that is the realization of a novel, or a pdf or Excel-file that is a realization of a certain data sheet." ; + rdfs:label "is realization of" . + + +################################################################# +# Classes +################################################################# + +### http://w3id.org/PLCO/ontology/resourceODP#Asset +:Asset rdf:type owl:Class ; + rdfs:comment "Asset is sth that is valuable and useful to be used in activities, or owned by actors." ; + rdfs:label "Asset" . + + +### http://w3id.org/PLCO/ontology/resourceODP#DigitalObject +:DigitalObject rdf:type owl:Class ; + rdfs:subClassOf :Resource ; + rdfs:comment "A digital object, e.g. a computer file, that is located on some server, hard drive, or on the web. Most often the digital object is the realization of some piece of information." ; + rdfs:label "Digital object" . + + +### http://w3id.org/PLCO/ontology/resourceODP#Information +:Information rdf:type owl:Class ; + rdfs:subClassOf :Asset ; + rdfs:comment "Information is an abstract concept that represents any kind of interpretations. For instance, information can be data generated by software systems or data used by people for communications." ; + rdfs:label "Information" ; + rdfs:seeAlso "http://emmo.info/emmo#EMMO_64c72d00_7582_44ea_a0b5_3a14e50acc36" . + + +### http://w3id.org/PLCO/ontology/resourceODP#PhysicalObject +:PhysicalObject rdf:type owl:Class ; + rdfs:subClassOf :Resource ; + rdfs:comment "A physical object is a collection of matter." ; + rdfs:label "Physical object" . + + +### http://w3id.org/PLCO/ontology/resourceODP#Resource +:Resource rdf:type owl:Class ; + rdfs:subClassOf :Asset , + [ owl:intersectionOf ( [ rdf:type owl:Restriction ; + owl:onProperty :hasResourceCondition ; + owl:someValuesFrom :ResourceCondition + ] + [ rdf:type owl:Restriction ; + owl:onProperty :hasResourceCondition ; + owl:allValuesFrom :ResourceCondition + ] + ) ; + rdf:type owl:Class + ] , + [ owl:intersectionOf ( [ rdf:type owl:Restriction ; + owl:onProperty :hasResourceProperty ; + owl:someValuesFrom :ResourceProperty + ] + [ rdf:type owl:Restriction ; + owl:onProperty :hasResourceProperty ; + owl:allValuesFrom :ResourceProperty + ] + ) ; + rdf:type owl:Class + ] , + [ owl:intersectionOf ( [ rdf:type owl:Restriction ; + owl:onProperty :hasResourceQuality ; + owl:someValuesFrom :ResourceQuality + ] + [ rdf:type owl:Restriction ; + owl:onProperty :hasResourceQuality ; + owl:allValuesFrom :ResourceQuality + ] + ) ; + rdf:type owl:Class + ] ; + rdfs:comment "Asset from which a solution is created or implemented. Depending on the context, reference to “resource” includes “raw material”, “feedstock”, “material” or “component”. Resource includes any energy type (e.g. the energy content or energy potential of materials). Note 4 to entry: Resources can be considered concerning both stocks and flows." ; + rdfs:isDefinedBy "ISO 59004:2024 - 3.1.5 resource" ; + rdfs:label "Resource" . + + +### http://w3id.org/PLCO/ontology/resourceODP#ResourceCondition +:ResourceCondition rdf:type owl:Class ; + rdfs:comment "The status of a resource." ; + rdfs:label "Resource Condition" . + + +### http://w3id.org/PLCO/ontology/resourceODP#ResourceProperty +:ResourceProperty rdf:type owl:Class ; + rdfs:comment "The characteristics or attribuets of a resource." ; + rdfs:label "Resource Property" . + + +### http://w3id.org/PLCO/ontology/resourceODP#ResourceQuality +:ResourceQuality rdf:type owl:Class ; + rdfs:comment "Resource quality is derived based on assessments of resources considering the conditions and properties." ; + rdfs:label "Resource Quality" . + + +### Generated by the OWL API (version 4.5.29.2024-05-13T12:11:03Z) https://github.com/owlcs/owlapi diff --git a/ontology/modules/time/0.1/time.ttl b/ontology/modules/time/0.1/time.ttl new file mode 100644 index 0000000..75f2e6e --- /dev/null +++ b/ontology/modules/time/0.1/time.ttl @@ -0,0 +1,122 @@ +@prefix : . +@prefix owl: . +@prefix rdf: . +@prefix xml: . +@prefix xsd: . +@prefix rdfs: . +@prefix vann: . +@prefix dcterms: . +@base . + + rdf:type owl:Ontology ; + owl:versionIRI ; + dcterms:created "2026-02-05" ; + dcterms:creator "Huanyu Li" ; + dcterms:description "A module of the PLCO ontology network, defining aspects of the time concept." ; + dcterms:license "https://creativecommons.org/licenses/by/4.0/" ; + dcterms:title "PLCO Ontology Network - time Module" ; + vann:preferredNamespacePrefix "plco-time" ; + vann:preferredNamespaceUri "http://w3id.org/PLCO/ontology/time" ; + rdfs:seeAlso ; + owl:versionInfo 0.1 . + +################################################################# +# Annotation properties +################################################################# + +### http://purl.org/dc/terms/contributor +dcterms:contributor rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/created +dcterms:created rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/creator +dcterms:creator rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/description +dcterms:description rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/issued +dcterms:issued rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/license +dcterms:license rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/publisher +dcterms:publisher rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/title +dcterms:title rdf:type owl:AnnotationProperty . + + +### http://purl.org/vocab/vann/preferredNamespacePrefix +vann:preferredNamespacePrefix rdf:type owl:AnnotationProperty . + + +### http://purl.org/vocab/vann/preferredNamespaceUri +vann:preferredNamespaceUri rdf:type owl:AnnotationProperty . + + +### http://www.w3.org/2004/02/skos/core#definition + rdf:type owl:AnnotationProperty . + + +### http://www.w3.org/2004/02/skos/core#prefLabel + rdf:type owl:AnnotationProperty . + + +################################################################# +# Datatypes +################################################################# + +### http://www.w3.org/2001/XMLSchema#duration +xsd:duration rdf:type rdfs:Datatype . + + +################################################################# +# Data properties +################################################################# + +### http://w3id.org/PLCO/ontology/time#hasTimeStamp +:hasTimeStamp rdf:type owl:DatatypeProperty ; + rdfs:range xsd:string . + + +### http://www.w3.org/2006/time#hasXSDDuration + rdf:type owl:DatatypeProperty ; + rdfs:domain ; + rdfs:range xsd:duration . + + +### http://www.w3.org/2006/time#inXSDDateTimeStamp + rdf:type owl:DatatypeProperty ; + rdfs:domain ; + rdfs:range xsd:dateTimeStamp . + + +################################################################# +# Classes +################################################################# + +### http://www.w3.org/2006/time#Instant + rdf:type owl:Class ; + rdfs:subClassOf . + + +### http://www.w3.org/2006/time#Interval + rdf:type owl:Class ; + rdfs:subClassOf . + + +### http://www.w3.org/2006/time#TemporalEntity + rdf:type owl:Class . + + +### Generated by the OWL API (version 4.5.29.2024-05-13T12:11:03Z) https://github.com/owlcs/owlapi diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..22d6ba2 --- /dev/null +++ b/requirements.txt @@ -0,0 +1 @@ +pybars3 diff --git a/tools/widoco-1.4.25.jar b/tools/widoco-1.4.25.jar new file mode 100644 index 0000000..79a7397 Binary files /dev/null and b/tools/widoco-1.4.25.jar differ