Open Know How (OKH) ontology
type: Ontology
preferred namespace prefix: okh
preferred namespace uri: https://w3id.org/oseg/ont/okh#
version info: 1.1.0
version IRI: okh
description: Used for indexing, searching and comparing Open Source Hardware projects
comment: Regarding the use of `schema:domainIncludes` and `schema:rangeIncludes` in this ontology: Looking at the definitions for the RDFS version of the two, `rdfs:domain` and `rdfs:range`: * https://www.w3.org/TR/rdf-schema/#ch_domain * https://www.w3.org/TR/rdf-schema/#ch_range and as described in this StackOverflow answer: <https://stackoverflow.com/a/74782257/586229>, multiple objects for the two RDFS properties mean, that *all of them* apply, simultaneously, not *one of them*. You may think of this as an `AND` coupling. We want the *one of them* meaning though (`OR`). The `schema:*` properties give us just that.
language: en
creator: Martin Häuer <martin.haeuer@ose-germany.de>
creator: https://orcid.org/0000-0002-1611-7129
creator: Robin Vobruba <hoijui.quaero@gmail.com>
creator: https://orcid.org/0009-0004-3559-6542
publisher: Robin Vobruba (Open Source Ecology Germany e.V.) <hoijui.quaero@gmail.com>
issued: 2021-08-24 16:32:33
modified: 2022-02-22 12:01:28
license: gpl-3.0.txt
listed license: GPL-3.0-or-later
source: https://github.com/OPEN-NEXT/OKH-LOSH/master/OKH-LOSH.ttl

Component
type: Class
comment: Either a module (MOSH) or Part (POSH); more component types may be added in the future
term status: unstable

Module
type: Class
comment: Module of Open Source Hardware (MOSH)
subclass of: Component
term status: unstable

Part
type: Class
comment: Piece of Open Source Hardware (POSH)
subclass of: Component
term status: unstable

Software
type: Class
comment: Software (including firmware) needed to run & use the OSH
subclass of: Component
term status: unstable

unambiguous reference
type: Class
term status: unstable

Scientific Publication
type: Class
comment: _scientific_ (that is: peer reviewed) publication that _contains_ the design files
subclass of: Publication
term status: unstable

Technical Standard
type: Class
comment: official standard used in the _design_ (not e.g. DIN SPEC 3105-1)
term status: unstable

Website URL
type: Class
subclass of: unambiguous reference
subclass of: URL
term status: unstable

permanent URL to file
type: Class
subclass of: Component Reference
subclass of: URL
term status: deprecated
deprecated: true
deprecated on: 2023-07-11
superseded by: File

File
type: Class
term status: unstable
comment: A file that forms part of the project, specified/located either by a URL (okh:url) or a repo-/project-relative path (okh:relativePath).

manifest file
type: Class
comment: file holding the metadata
subclass of: File
term status: unstable

Readme
type: Class
subclass of: File
term status: unstable

Contribution Guide
type: Class
subclass of: File
term status: unstable

Image
type: Class
term status: unstable
subclass of: File

Bill of Materials
type: Class
subclass of: File
term status: unstable

source file
type: Class
subclass of: File
term status: unstable

exported source file
type: Class
subclass of: File
term status: unstable

auxiliary file (neither source nor export)
type: Class
subclass of: File
term status: unstable

Manufacturing Instructions
type: Class
subclass of: File
term status: unstable

User Manual
type: Class
subclass of: File
term status: unstable

outer dimensions
type: Class
comment: …of a module or a part
term status: unstable

mass
type: Class
comment: …of a module or a part
term status: unstable

Component Reference
type: Class
subclass of: unambiguous reference
comment: others shall be able to identify/procure this component only by the given reference(s), MOSH → URL to corresponding release POSH → URL to containing folder STD → standard designation (preferably naming the _latest_ standard) BUY → unambiguous reference
term status: deprecated
deprecated: true
deprecated on: 2023-08-19

OKH version
type: DatatypeProperty
comment: version of OKH specification the metadata is following (different version → different data fields)
sub property of: version
term status: unstable
domain includes: manifest file
cardinality: 1

Metadata Source
type: DatatypeProperty
comment: platform, where the crawler found the metadata (e.g. GitHub, Wikifactory)
sub property of: url
term status: unstable
domain includes: Module
cardinality: 1

Repository Host
type: DatatypeProperty
comment: platform where the OSH documentation is located (e.g. GitLab, Wikifactory or any self-hosted website or wiki)
sub property of: url
term status: unstable
domain includes: Module
cardinality: 1

Upload Method
type: DatatypeProperty
comment: e.g. auto (fully integrated platforms) or manifest file (for connected platforms)
term status: unstable
range includes: string
domain includes: Component
cardinality: 1

repository
type: ObjectProperty
comment: URL to the place where development happens (typically the repository)" ; following this link people shall be able to contribute to the development (reporting issues, suggesting changes, connecting to the team etc.)"
sub property of: codeRepository
term status: unstable
range includes: Website URL
cardinality: 1
domain includes: Module

respository snapshot
type: ObjectProperty
comment: Repoistory snapshot (=specific version) URL
sub property of: repository
term status: unstable
range includes: Website URL
cardinality: 1
domain includes: Module

version
type: DatatypeProperty
comment: version of this Component, preferably in the semantic versioning scheme (semver.org)
sub property of: version
term status: unstable
domain includes: Module
cardinality: 1

fork of
type: ObjectProperty
sub property of: isBasedOn
term status: unstable
cardinality: 1
domain includes: Module
domain includes: Part

version of
type: ObjectProperty
comment: connects specific versions of Modules with their versionless superclass
term status: unstable
range includes: Module
domain includes: Module

documentation language
type: DatatypeProperty
comment: IETF language tag following the BCP 47 standard e.g. en-GB denotes the language of the documentation for the component subject
sub property of: inLanguage
term status: unstable
cardinality: 1
domain includes: Module
domain includes: Part

licensor
type: ObjectProperty
comment: organization/individual behind the hardware design (holder of intellectual property)
sub property of: copyrightHolder
term status: unstable
range includes: Organization
range includes: Person
domain includes: Module
cardinality: 1

organization
type: ObjectProperty
comment: organization representing (most) contributors of this project
term status: unstable
range includes: Organization
domain includes: Module

SPDX license identifier
type: ObjectProperty
comment: view complete list under https://spdx.org/licenses/
term status: unstable
domain includes: Module
range includes: ListedLicense
cardinality: 1

non-SPDX license
type: ObjectProperty
comment: URL to legal code of a license without SPDX identifier, hence OSHWA-compliance is to be checked manually
term status: unstable
domain includes: Module
range includes: File
cardinality: 1

Technology Readiness Level (TRL)
type: ObjectProperty
comment: …using the OTRL definitions
term status: unstable
cardinality: 1
range includes: OTRL
domain includes: Module

Documentation Readiness Level (DLR)
type: ObjectProperty
comment: …using the ODRL definitions
term status: unstable
cardinality: 1
range includes: ODRL
domain includes: Module

attestation
type: ObjectProperty
comment: permanent URL to evidence of compliance (OSHWA, FSF, DIN SPEC 3105)
term status: unstable
range includes: Website URL
domain includes: Module

has Publication
type: ObjectProperty
comment: design files of this OSH modules have been peer reviewed in a scientific publication
term status: unstable
sub property of: hasPublication
domain includes: Module

Patent Class
type: ObjectProperty
comment: International Patent Classification (IPC)
sub property of: classificationIPCInventive
term status: unstable
domain includes: Module
range includes: string

complies with a technical standard
type: ObjectProperty
term status: unstable
domain includes: Component
range includes: Technical Standard

Document identifier for the technical standard
type: DatatypeProperty
term status: unstable
range includes: string
domain includes: Technical Standard

functional description
type: DatatypeProperty
comment: functional description, e.g. what it actually does, what problem it solves, for whom, under which conditions etc. so if you wish that someone finds & uses your okh specifically e.g. for COVID-19-crisis response, include relevant keywords in this field optional: description of input, output and interfaces
sub property of: BFO_0000016
term status: unstable
cardinality: 1
domain includes: Module
range includes: string

has Readme
type: ObjectProperty
comment: links to the corresponding Readme
term status: unstable
range includes: Readme
domain includes: Module

has Contribution Guide
type: ObjectProperty
comment: links to the corresponding Contribution Guide
term status: unstable
range includes: Contribution Guide
domain includes: Module

has Bill of Materials
type: ObjectProperty
comment: links to the corresponding Bill of Materials
term status: unstable
range includes: Bill of Materials
domain includes: Module

has Component
type: ObjectProperty
comment: Links to sub-components of the Module. In the case of that sub-component being an external Module, it has to refer to a snapshot of the RDF object representing that OKH Module. Each sub-component should also appear in the BoM.
term status: unstable
range includes: Part
range includes: Module
range includes: Website URL
domain includes: Module

has image
type: ObjectProperty
comment: links to the corresponding Image
term status: unstable
sub property of: image
range includes: Image
domain includes: Component

functionality metadata
type: DatatypeProperty
comment: Metadata addressing functionality, such as dimensions, material, weight, RPM,… (not standardized)
sub property of: value
term status: unstable
range includes: StructuredValue
domain includes: Module

production metadata
type: Property
comment: production-relevant metadata, such as material, manufacturing technology, outer dimensions, smallest tolerance, finest surface roughness
sub property of: value
term status: unstable
domain includes: Module
domain includes: Part

manufacturing process
type: DatatypeProperty
sub property of: production metadata
term status: unstable

material
type: DatatypeProperty
sub property of: production metadata
term status: unstable

outer dimensions using OpenSCAD primitives
type: ObjectProperty
comment: https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Primitive_Solids
range includes: outer dimensions
sub property of: production metadata
term status: unstable

mass of the component
type: ObjectProperty
sub property of: production metadata
term status: unstable
range includes: mass

OpenSCAD code defining a shape
type: DatatypeProperty
term status: unstable
domain includes: outer dimensions
range includes: string

openScad
term status: deprecated
deprecated: true
deprecated on: 2023-07-06
superseded by: OpenSCAD code defining a shape

unit
type: DatatypeProperty
comment: mm, cm, m, g, kg
term status: unstable
domain includes: mass
domain includes: outer dimensions

value
type: DatatypeProperty
term status: unstable
domain includes: mass

smallest tolerance class (following ISO 286)
type: ObjectProperty
sub property of: production metadata
term status: unstable
domain includes: Part

has manifest file
type: ObjectProperty
term status: unstable
range includes: manifest file
domain includes: Module
domain includes: Part

DOI
type: DatatypeProperty
comment: this publication has a digital object identifier (DOI)
domain includes: Scientific Publication
sub property of: doi
term status: unstable

Project-/Repo-relative file path, directly starting with the first path element, *NOT* with '/' or './'
type: ObjectProperty
sub property of: url
term status: unstable
domain includes: File
range includes: string

file URL
type: ObjectProperty
comment: Global file locator, using either the HTTP or the HTTPS protocol.
sub property of: url
term status: unstable
domain includes: File

file URL
type: ObjectProperty
sub property of: url
domain includes: File
term status: deprecated
deprecated: true
deprecated on: 2023-07-11
superseded by: file URL

permaURL
type: ObjectProperty
label: Permanent file URL - It was not 'permanent', but rather 'frozen in time', and it was alsoThis was used in the karwler, but badly. Things simply should not be done that way, but rather with a separate manifest file, where either everything is frozen, or nothing is, and the manifest file (internally) itsself being marked accordingly.
domain includes: File
term status: deprecated
deprecated: true
deprecated on: 2023-07-11

file format
type: ObjectProperty
sub property of: encodingFormat
term status: unstable
domain includes: File

timestamp
type: ObjectProperty
comment: following ISO 8601; see: <https://www.w3.org/TR/xmlschema11-2/#dateTimeStamp>
term status: unstable
domain includes: Module
range includes: dateTimeStamp

source file
type: ObjectProperty
comment: relative link to a source file
term status: unstable
range includes: source file
domain includes: Module
domain includes: Part

exported source file
type: ObjectProperty
comment: URL to a (generated) exported source file
term status: unstable
range includes: exported source file
domain includes: Module
domain includes: Part

has auxiliary file
type: ObjectProperty
comment: reference to an auxiliary file
term status: unstable
range includes: auxiliary file (neither source nor export)
domain includes: Module
domain includes: Part

has User Manual
type: ObjectProperty
term status: unstable
range includes: User Manual
domain includes: Module

has Manufacturing Instructions
type: ObjectProperty
term status: unstable
range includes: Manufacturing Instructions
domain includes: Module
domain includes: Part

TsDC
type: ObjectProperty
comment: Applicable Technology-specific Documentation Criteria, according to DIN SPEC 3105-1, e.g. `tsdc:3DP`
term status: unstable
range includes: OHTsDC
domain includes: Component

relatedTsdc
term status: deprecated
deprecated: true
deprecated on: 2023-07-10
superseded by: TsDC

has Software
type: ObjectProperty
term status: unstable
range includes: Software
domain includes: Module

release
type: DatatypeProperty
comment: URL to release
term status: unstable
domain includes: Module
domain includes: Software

Installation Guide
type: DatatypeProperty
term status: unstable
domain includes: Software