Merge branch 'master' of https://github.com/johnbeve/CommonCoreOntologies into johnbeve-master

This commit is contained in:
John Beverley
2024-08-18 17:21:23 -04:00
68 changed files with 1113 additions and 1295 deletions

11
.github/deployment/README.md vendored Normal file
View File

@@ -0,0 +1,11 @@
# CCO Deployment Files
This directory contains files used in the yml/makefile process for validation and release generation, as well as files to support translations from content in CCO to similar content in other ontologies.
## The Contents of this Repository
* **sparql** - This directory contains sparl files used in quality control checks during the development process.
* **ontology-diff-files** - This directory contains ontology-diff-files, which Mark can tell you more about.
* **mappings** - This directory contains mappings between content in CCO and other ontologies.

16
.github/deployment/sparql/README.md vendored Normal file
View File

@@ -0,0 +1,16 @@
# SPARQL Quality Control
This directory contains [SPARQL](https://www.w3.org/TR/sparql11-query/) files used to automate quality control checks against updates to CCO development branches and the CCO master branch.
## Quality Control Format
SPARQL Quality Control files should be named in a manner that illustrates their functionality, and must take the form of:
```
Title
(descriptive title of the query)
Constraint Description:
(description of the query functionality)
Severity:
(select "Warning" or "Error")
```
With respect to severity, a "Warning" will be some issue that should be addressed, but is not currently required to be addressed to maintain stability of bfo-core.owl. In constrast, "Error" indicates that the bfo-core.owl file must be corrected before it is usable.

View File

@@ -0,0 +1,18 @@
# Title:
# No Extra Annotation Whitespace
# Constraint Description:
# No annotation value may have leading or trailing whitespace.
# Severity:
# Error
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT DISTINCT ?entity ?property ?value
WHERE {
?property a owl:AnnotationProperty .
?entity ?property ?value .
FILTER (!isBlank(?entity) && (REGEX(str(?value), "^[\\s\r\n]+") || REGEX(str(?value), "[\\s\r\n]+$")))
}
ORDER BY ?entity

View File

@@ -0,0 +1,69 @@
# Title:
# Deprecated Ontology Elements in Axioms
# Constraint Description:
# The use of deprecated ontology elements in axioms is not allowed.
# Severity:
# Error
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT DISTINCT ?entity ?property ?value
WHERE {
{
VALUES ?property {rdfs:subClassOf owl:equivalentClass owl:disjointWith owl:ObjectProperty owl:DataProperty}
?entity a owl:Class ;
owl:deprecated true ;
?property ?value .
FILTER ( ?value NOT IN (owl:Thing) ||
?property IN (owl:equivalentClass, owl:disjointWith, owl:ObjectProperty, owl:DataProperty))
}
UNION
{
VALUES ?property {rdfs:subClassOf owl:equivalentClass owl:disjointWith}
?value ?property ?entity .
?entity a owl:Class ;
owl:deprecated true .
}
UNION
{
VALUES ?property {owl:someValuesFrom owl:allValuesFrom}
?value a owl:Class ;
owl:deprecated true .
?rest a owl:Restriction ;
?property ?value .
BIND("blank node" AS ?entity)
}
UNION
{
VALUES ?property {owl:equivalentProperty rdfs:subPropertyOf owl:inverseOf
}
?entity a owl:ObjectProperty ;
owl:deprecated true .
?value1 ?property ?entity .
}
UNION
{
VALUES ?property {owl:equivalentProperty rdfs:subPropertyOf}
?entity a owl:DatatypeProperty ;
owl:deprecated true .
?value1 ?property ?entity .
}
UNION
{
?property owl:deprecated true .
?entity ?property ?value1 .
BIND (IF(isIRI(?value1), ?value1, "blank node") AS ?value)
}
UNION
{
?property owl:deprecated true .
?entity ?x ?value1 .
?value1 a owl:Restriction ;
owl:onProperty ?property .
BIND (IF(isIRI(?value1), ?value1, "blank node") AS ?value)
}
}
ORDER BY ?entity

View File

@@ -0,0 +1,16 @@
# Title:
# No Duplicate Definitions
# Constraint Description:
# No two ontology elements may have the exact same definition.
# Severity:
# Error
PREFIX cco: <http://www.ontologyrepository.com/CommonCoreOntologies/>
SELECT DISTINCT ?entity ?definition
WHERE {
?entity cco:definition ?definition .
?entity2 cco:definition ?definition .
FILTER (?entity != ?entity2)
FILTER (!isBlank(?entity))
}

View File

@@ -0,0 +1,21 @@
# Title:
# No Duplicate Labels
# Constraint Description:
# Classes shall have no more than one rdfs:label.
# Severity:
# Warning
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT DISTINCT ?entity ?property ?value WHERE {
VALUES ?property {rdfs:label}
?entity ?property ?value .
?entity2 ?property ?value .
FILTER (?entity != ?entity2)
FILTER (!isBlank(?entity))
FILTER (!isBlank(?entity2))
FILTER NOT EXISTS { ?entity owl:deprecated true .
?entity2 owl:deprecated true }
}
ORDER BY DESC(UCASE(str(?value)))

View File

@@ -0,0 +1,31 @@
# Title:
# Ontology Elements Shall Have at Most One SKOS prefLabel per Language
# Constraint Description:
# Each ontology element shall have at most one skos:prefLabel per language.
# Severity:
# Warning
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
SELECT DISTINCT ?resource ?property ?value
WHERE
{
VALUES ?property { skos:prefLabel }
# Find items with different labels in the same language.
?resource ?property ?value .
?resource ?property ?value2 .
FILTER ((lang(?value) = lang(?value2)) && (?value != ?value2)) .
# Ignore deprecated resources
FILTER NOT EXISTS { ?resource owl:deprecated true }
# Ignore blank nodes
FILTER (!isBlank(?resource))
# Ignore labels without a language label
FILTER (lang(?value) != "")
}
ORDER BY ?resource

View File

@@ -0,0 +1,23 @@
# Title:
# Definition Required
# Constraint Description:
# Any class or object property must have a non-empty defintiion with an English language tag.
# Severity:
# Warning
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX cco: <http://www.ontologyrepository.com/CommonCoreOntologies/>
SELECT DISTINCT ?resource ?label
WHERE {
VALUES ?type {owl:Class owl:ObjectProperty}
?resource a ?type .
OPTIONAL {
?resource cco:definition ?englishDefinition .
FILTER (langMatches(lang(?englishDefinition), "en"))
}
FILTER(!bound(?englishDefinition))
FILTER(!isBlank(?resource))
}
ORDER BY ?resource

View File

@@ -0,0 +1,17 @@
# Title:
# Ontology Title Required
# Constraint Description:
# Any owl:Ontology must have a dcterms:title annotation property.
# Severity:
# Warning
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
SELECT DISTINCT ?resource
WHERE
{
?resource a owl:Ontology .
FILTER (!ISBLANK (?resource)) .
FILTER NOT EXISTS {?resource rdfs:label ?title}
}

32
.github/templates/bug-template.md vendored Normal file
View File

@@ -0,0 +1,32 @@
---
name: Bug Template
about: Create a report to help us improve
title: 'BUG: [TITLE SUMMARIZING ISSUE]'
labels: bug
assignees:
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Desktop (please complete the following information):**
- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]
- Version [e.g. 22]
**Additional context**
Add any other context about the problem here.

17
.github/templates/feature-template.md vendored Normal file
View File

@@ -0,0 +1,17 @@
---
name: Feature Template
about: Suggest updates to our repo
title: 'FEATURE: [SUMMARY TITLE OF FEATURE]'
labels: ''
assignees:
---
**Describe the feature you'd like added**
A clear and concise description of changes you'd like to see, with motivation for those changes.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

80
.github/workflows/manage_release.yml vendored Normal file
View File

@@ -0,0 +1,80 @@
name: Build, Test, Draft Release
on:
push:
branches: [ master ]
permissions:
contents: write
env:
cache-path: build/lib
artifacts-path: build/artifacts
release-build-content-type: application/ttl
cache-key: build-cache-dependencies
jobs:
ontology_release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Restore cached dependencies
id: restore-cache
uses: actions/cache/restore@v3
with:
path: ${{ env.cache-path }}
key: ${{ runner.os }}-${{ env.cache-key }}
- name: List directory contents
run: ls -la
- name: Build and test ontology release
run: make all
- name: Capture release information
id: build_release
run: |
make -d all
echo "RELEASE_FILE_PATH=$(make output-release-filepath)" >> $GITHUB_OUTPUT
echo "RELEASE_NAME=$(make output-release-name)" >> $GITHUB_OUTPUT
- name: Get basename of the release file
id: get_basename
run: echo "BASENAME=$(basename ${{ steps.build_release.outputs.RELEASE_FILE_PATH }})" >> $GITHUB_ENV
- name: Save artifacts
uses: actions/upload-artifact@v3
if: always()
with:
name: ontology_release_results
path: ${{ env.artifacts-path }}
- name: Save dependencies to cache
id: save-cache
uses: actions/cache/save@v3
if: always() && steps.restore-cache.outputs.cache-hit != 'true'
with:
path: ${{ env.cache-path }}
key: ${{ runner.os }}-${{ env.cache-key }}
- name: Draft GitHub Release
uses: actions/create-release@v1
id: draft_release
with:
draft: true
prerelease: false
release_name: ${{ steps.build_release.outputs.RELEASE_NAME }}
tag_name: ${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload GitHub release build
uses: actions/upload-release-asset@v1
with:
upload_url: ${{ steps.draft_release.outputs.upload_url }}
asset_path: ${{ steps.build_release.outputs.RELEASE_FILE_PATH }}
asset_name: ${{ steps.build_release.outputs.RELEASE_FILE_PATH }}
asset_content_type: ${{ env.release-build-content-type }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

29
LICENSE
View File

@@ -1 +1,28 @@
https://opensource.org/license/BSD-3-Clause
BSD 3-Clause License
Copyright (c) 2017, CUBRC, INC
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

171
Makefile Normal file
View File

@@ -0,0 +1,171 @@
# Common Core Ontology Pipeline
# Adapted from previous works; see header comments for full attribution.
# Contact - John Beverley <johnbeve@buffalo.edu>
### Explanation ###
# The workflow involves two major steps: first, individual ontology files are checked and tested.
# After passing, they are merged into a single file, which is then checked and tested again.
# ----------------------------------------
# Project essentials
config.ONTOLOGY_PREFIX := CCO
config.BASE_IRI := http://www.ontologyrepository.com/CommonCoreOntologies/Mid/
config.DEV_IRI := $(config.BASE_IRI)/dev
config.MODULES_IRI := $(config.DEV_IRI)/modules
# Local project directories
config.SOURCE_DIR := src/
config.TEMP_DIR := build/artifacts
config.RELEASE_DIR := /
config.REPORTS_DIR := $(config.TEMP_DIR)
config.QUERIES_DIR := .github/deployment/sparql
config.LIBRARY_DIR := build/lib
# Settings
config.FAIL_ON_TEST_FAILURES := false
config.REPORT_FAIL_ON := none
# Branch-specific configurations
BRANCH := $(shell git rev-parse --abbrev-ref HEAD)
# File names for dev branch
DEV_FILES = \
src/cco-modules/AgentOntology.ttl \
src/cco-modules/ArtifactOntology.ttl \
src/cco-modules/CurrencyUnitOntology.ttl \
src/cco-modules/EventOntology.ttl \
src/cco-modules/ExtendedRelationOntology.ttl \
src/cco-modules/FacilityOntology.ttl \
src/cco-modules/GeospatialOntology.ttl \
src/cco-modules/QualityOntology.ttl \
src/cco-modules/UnitsOfMeasureOntology.ttl \
src/cco-modules/TimeOntology.ttl \
src/cco-modules/InformationEntityOntology.ttl
# File for combined ontology
combined-file := $(config.SOURCE_DIR)/MergedAllCoreOntology.ttl
# Other constants
TODAY := $(shell date +%Y-%m-%d)
TIMESTAMP := $(shell date +'%Y-%m-%d %H:%M')
# Default name for release
config.RELEASE_NAME := $(config.ONTOLOGY_PREFIX) $(TIMESTAMP)
# Generic files
EDITOR_BUILD_FILE = $(combined-file) # "editors ontology module"
EDITOR_REPORT_FILE = $(config.REPORTS_DIR)/$(config.ONTOLOGY_PREFIX)-edit-report.tsv
# Generic directories to create if needed
REQUIRED_DIRS = $(config.LIBRARY_DIR) $(config.SOURCE_DIR) $(config.QUERIES_DIR) $(config.REPORTS_DIR)
# ----------------------------------------
#### Targets / main "goals" of this Makefile
.PHONY: all
all: setup reason-individual test-individual build-combined reason-combined test-combined
# Setup target for creating necessary directories
.PHONY: setup
setup:
mkdir -p $(REQUIRED_DIRS) src/ .github/deployment/sparql build/artifacts
# Targets for dev branch - QC individual files and the combined file
# Download ROBOT JAR
ROBOT_FILE := $(config.LIBRARY_DIR)/robot.jar
$(ROBOT_FILE): setup
curl -L -o $@ https://github.com/ontodev/robot/releases/download/v1.8.4/robot.jar
chmod +x $@
# Reason individual files
.PHONY: reason-individual
reason-individual: $(ROBOT_FILE)
for file in $(DEV_FILES); do \
echo "Reasoning on $$file..."; \
java -jar $(ROBOT_FILE) reason --input $$file --reasoner HermiT; \
done
# Test individual files
.PHONY: test-individual
test-individual: $(ROBOT_FILE)
for file in $(DEV_FILES); do \
echo "Testing $$file..."; \
java -jar $(ROBOT_FILE) verify --input $$file --output-dir $(config.REPORTS_DIR) --queries $(QUERIES) --fail-on-violation false || true; \
done
# Build combined file after individual files pass checks
$(combined-file): $(DEV_FILES)
cat $(DEV_FILES) > $@
# Build and QC combined file
.PHONY: build-combined
build-combined: $(combined-file)
.PHONY: reason-combined test-combined
reason-combined: $(combined-file) | $(ROBOT_FILE)
java -jar $(ROBOT_FILE) reason --input $(combined-file) --reasoner HermiT
test-combined: $(combined-file) | $(ROBOT_FILE)
java -jar $(ROBOT_FILE) verify --input $(combined-file) --output-dir $(config.REPORTS_DIR) --queries $(QUERIES) --fail-on-violation false || true
.PHONY: report-edit
report-edit: TEST_INPUT = $(EDITOR_BUILD_FILE)
report-edit: REPORT_FILE_INPUT = $(EDITOR_REPORT_FILE)
report-edit: report
.PHONY: output-release-filepath
output-release-filepath:
@echo $(combined-file)
.PHONY: output-release-name
output-release-name:
@echo $(config.RELEASE_NAME)
# ----------------------------------------
#### Test / test ontology with reasoners and queries
QUERIES = $(wildcard $(config.QUERIES_DIR)/*.sparql)
# Check for inconsistency
.PHONY: reason
reason: $(TEST_INPUT) | $(ROBOT_FILE)
java -jar $(ROBOT_FILE) reason --input $(TEST_INPUT) --reasoner HermiT
# Test using specific queries
.PHONY: verify
verify: $(TEST_INPUT) $(QUERIES) | $(config.QUERIES_DIR) $(config.REPORTS_DIR) $(ROBOT_FILE)
ifeq ($(QUERIES),)
$(warning No query files found in $(config.QUERIES_DIR))
else
java -jar $(ROBOT_FILE) verify --input $(TEST_INPUT) --output-dir $(config.REPORTS_DIR) --queries $(QUERIES) --fail-on-violation false || true
endif
# Report using built-in ROBOT queries
.PHONY: report
report: $(TEST_INPUT) | $(config.REPORTS_DIR) $(ROBOT_FILE)
java -jar $(ROBOT_FILE) report --input $(TEST_INPUT) \
--labels true \
--fail-on $(config.REPORT_FAIL_ON) \
--print 10 \
--output $(REPORT_FILE_INPUT)
# ----------------------------------------
#### Setup / configure Make to use with our project
MAKEFLAGS += --warn-undefined-variables
SHELL := bash
.SHELLFLAGS := -eu -o pipefail -c
.DEFAULT_GOAL := all
.DELETE_ON_ERROR:
.SUFFIXES:
.SECONDARY:
# Create any of these directories if they don't exist
$(REQUIRED_DIRS):
mkdir -p $@
# Cleanup - Remove build and release files
.PHONY: clean
clean:
@[ "${config.REPORTS_DIR}" ] || ( echo ">> config.REPORTS_DIR is not set"; exit 1 )
rm -rf $(config.REPORTS_DIR)
rm -rf $(combined-file)

View File

@@ -1,55 +1,69 @@
# Common Core Ontologies
The Common Core Ontologies (CCO) comprise twelve ontologies that are designed to represent and integrate taxonomies of generic classes and relations across all domains of interest.
# The Common Core Ontologies (CCO)
CCO is a mid-level extension of Basic Formal Ontology (BFO), an upper-level ontology framework widely used to structure and integrate ontologies in the biomedical domain (Arp, et al., 2015). BFO aims to represent the most generic categories of entity and the most generic types of relations that hold between them, by defining a small number of classes and relations. CCO then extends from BFO in the sense that every class in CCO is asserted to be a subclass of some class in BFO, and that CCO adopts the generic relations defined in BFO (e.g., has_part) (Smith and Grenon, 2004). Accordingly, CCO classes and relations are heavily constrained by the BFO framework, from which it inherits much of its basic semantic relationships.
## What is CCO?
The CCO provide semantics for concepts and relations that are used in most domains of interest. The utility of the CCO comes from preventing BFO-compliant domain-specific ontologies from needlessly duplicating common concepts or from forcing such ontologies to include concepts outside of their domain (e.g. organization in the Ontology of Biomedical Investigations).
The Common Core Ontologies (CCO) is a widely-used suite of eleven ontologies that consist of logically well-defined generic terms and relations among them reflecting entities across all domains of interest.
This utility has been realized by a number of U.S. Government sponsored projects in which either existing BFO compliant ontologies were aligned to the CCO or domain ontologies were created by using the CCO as a starting point and adding classes and properties as needed.
These eleven ontologies constitute a [mid-level ontology](https://arxiv.org/abs/2404.17757) that extends from the [Basic Formal Ontology (BFO)](https://github.com/bfo-ontology/BFO-2020), an [ISO-standard](https://www.iso.org/standard/71954.html) top-level ontology. Whereas BFO represents only the most generic entities and relations, CCO contains classes that users will find common across data sets in many domains. Such classes include, for example, person, facility, date, employment, nickname, and measurement.
The names of a sample of these domain ontologies are provided in the list below.
Leveraging CCO makes it easier to use the top-level ontology content provided by BFO, and it prevents BFO-compliant domain-specific ontologies from duplicating common concepts. Many organizations within the U.S. Government have found this useful as they seek a coordinated strategy among independent ontology efforts.
The U.S. Government holds Government Purpose Rights on all of these domain ontologies. To obtain one or more of these domain ontologies for a government purpose it will be necessary for a government representative to contact the government sponsor of the development of the ontology. CUBRC can facilitate these connections so if interested please use the contact link at the bottom of this [page](https://www.cubrc.org/data-science-information-fusion/specialized-data-ontology-development/).
CCO itself is not intended to be extended indefinitely into particular domains. Users are encouraged to create their own domain extensions with content particular to those domains and publish these ontologies for re-use by others.
# Sample of Common Core Domain Ontology Extensions
Aircraft Ontology
## Contributing
Airforce Aircraft Maintenance Ontology
Users may find the current release files for CCO [INSERT RELEASE LINK]()
Army Universal Task List Ontology
Developers may clone this repository and directly import AllCoreOntology.ttl in an ontology editor such as [Protégé](https://protege.stanford.edu/) to generate the merged version of the eleven CCO ontologies. Those who wish to forego managing imports may find a merged version of the files at src/cco-merged/
Atmospheric Feature Ontology
Users who wish to view the content of CCO in a web browser may view the current CCO release on the [Industrial Ontology Portal viewer](https://industryportal.enit.fr/ontologies/CCO)
Cyber Ontology
For information regarding the management of CCO, tutorials, lists of projects that extend CCO, associated research, standards activities in the IEEE, and more, please navigate to the [CCO home page](https://commoncoreontology.github.io/cco-webpage/)
Hydrographic Feature Ontology
For bug fixes, developed suggestions for improvement, or minor updates, please open an issue using the template [here](https://github.com/CommonCoreOntology/CommonCoreOntologies/issues)
Legal and Criminal Act Ontology
For more open-ended discussion, general questions, or compliments, please navigate to the discussion board [here](https://github.com/CommonCoreOntology/CommonCoreOntologies/discussions)
Marine Corps Task List Ontology
## Who Oversees CCO Today?
Military Operations Ontology
CCO is overseen by a governance board and a developers group. Our members come from academia, government, US national laboratories, and commercial industry. We offer multiple forums for feedback and discussion.
Mission Planning Ontology
For more information about the governance of CCO, please navigate to the [Common Core Ontologies home page.](https://commoncoreontology.github.io/cco-webpage/board/)
Occupation Ontology
## The Common Core Ontologies
Outerspace Ontology
- **Geospatial Ontology** - An ontology who scope is the representation of sites, spatial regions, and other entities, especially those that are located near the surface of Earth, as well as the relations that hold between them.
- **Information Entity Ontology** - An ontology who scope is the representation of generic types of information as well as the relationships between information and other entities.
- **Event Ontology** - An ontology who scope is the representation of processual entities, especially those performed by agents, that occur within multiple domains.
- **Time Ontology** - An ontology who scope is the representation of temporal regions and the relations that hold between them.
- **Agent Ontology** - An ontology who scope is the representation of represent agents, especially persons and organizations, and their roles.
- **Quality Ontology** - An ontology who scope is the representation of a range of attributes of entities especially qualities, realizable entities, and process profiles.
- **Units of Measure Ontology** - An ontology who scope is the representation of standard measurement units that are used when measuring various attributes of entities.
- **Currency Unit Ontology** - An ontology who scope is the representation of currencies that are issued and used by countries.
- **Facility Ontology** - An ontology who scope is the representation of buildings and campuses that are designed to serve some specific purpose, and which are common to multiple domains.
- **Artifact Ontology** - An ontology who scope is the representation of artifacts that are common to multiple domains along with their models, specifications, and functions.
- **Extended Relation Ontology** - An ontology who scope is the representation of the relations that hold between entities at the level of the mid-level Common Core Ontologies.
Physiographic Feature Ontology
## The Contents of this Repository
Sensor Ontology
Spacecraft Mission Ontology
Spacecraft Ontology
Space Event Ontology
Space Object Ontology
Transportation Infrastructure Ontology
Undersea Warfare Ontology
Watercraft Ontology
* **documentation** - This directory contains the ModalRelationOntology.ttl.
* **archive**
* **legacy documentation** - Contains documentation concerning previous versions of CCO, a list of obsoleted terms, changefiles for releases, as well as xlsx glossaries for each previous release.
* **previous-versions** - Contains previous releases of CCO, beginning with version 1.3.
* **contributing**
* **contributing** - Contains guidance for making contributions to the CCO repository.
* **github overview** - Contains guidance for using git and Github with Visual Studio Code, command lines, and GitHub Desktop.
* **design patterns** - Contains common design patterns for CCO, motivated by specific use cases, characterized by competency questions, and accompanied by serialization in RDF.
* **images** - Contains images used in this repository.
* **user guides** - Contains user guides for: ontology developers, software developers and subject matter experts.
* **src**
* **cco-merged** - Contains the current CCO merged release file and an import file that is used to generate the merged CCO file.
* **cco-modules** - Contains versions of the 11 CCO modules.
* **cco extensions** - Contains versions of CCO extensions maintained by the governance board, such as the Modal Relations Ontology.
* **.github** - This directory contains files needed to support automated GitHub actions.
* **deployment**
* **sparql** - Contains sparl files used in quality control checks during the development process.
* **ontology-diff-files** - Contains ontology-diff-files, which Mark can tell you more about.
* **mappings** - Contains mappings between content in CCO and other ontologies.
* **templates** - Contains templates used to create issues and discussion topics.
* **workflows** - Contains release management files needed for GitHub Actions.

View File

@@ -1,15 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<catalog prefer="public" xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
<uri id="User Entered Import Resolution" name="http://www.ontologyrepository.com/CommonCoreOntologies/Mid/AgentOntology" uri="AgentOntology.ttl"/>
<uri id="User Entered Import Resolution" name="http://www.ontologyrepository.com/CommonCoreOntologies/Mid/EventOntology" uri="EventOntology.ttl"/>
<uri id="User Entered Import Resolution" name="http://www.ontologyrepository.com/CommonCoreOntologies/Mid/ArtifactOntology" uri="ArtifactOntology.ttl"/>
<uri id="User Entered Import Resolution" name="http://www.ontologyrepository.com/CommonCoreOntologies/Mid/FacilityOntology" uri="FacilityOntology.ttl"/>
<uri id="User Entered Import Resolution" name="http://www.ontologyrepository.com/CommonCoreOntologies/Mid/QualityOntology" uri="QualityOntology.ttl"/>
<uri id="User Entered Import Resolution" name="http://www.ontologyrepository.com/CommonCoreOntologies/Mid/CurrencyUnitOntology" uri="CurrencyUnitOntology.ttl"/>
<uri id="User Entered Import Resolution" name="http://www.ontologyrepository.com/CommonCoreOntologies/Mid/GeospatialOntology" uri="GeospatialOntology.ttl"/>
<uri id="User Entered Import Resolution" name="http://purl.obolibrary.org/obo/bfo/2020/bfo-core.ttl" uri="imports/bfo-core.ttl"/>
<uri id="User Entered Import Resolution" name="http://www.ontologyrepository.com/CommonCoreOntologies/Mid/ExtendedRelationOntology" uri="ExtendedRelationOntology.ttl"/>
<uri id="User Entered Import Resolution" name="http://www.ontologyrepository.com/CommonCoreOntologies/Mid/TimeOntology" uri="TimeOntology.ttl"/>
<uri id="User Entered Import Resolution" name="http://www.ontologyrepository.com/CommonCoreOntologies/Mid/InformationEntityOntology" uri="InformationEntityOntology.ttl"/>
<uri id="User Entered Import Resolution" name="http://www.ontologyrepository.com/CommonCoreOntologies/Mid/UnitsOfMeasureOntology" uri="UnitsOfMeasureOntology.ttl"/>
</catalog>

View File

@@ -1,3 +0,0 @@
# Merged All Core Ontology
This directory contains a merged version of all eleven CCO ontologies plus BFO. The file represents a stable stand-alone snapshot release of all of CCO and its import dependancies. A sub-directory archives previous versions of Merged All Core.

View File

@@ -1 +1,15 @@
This folder contains user guides and supporting documents, some of which are specific to the current release. Previous versions of these documents are now stored in the Legacy subfolder.
# CCO Documentation
This directory contains files to promote user understanding and contributions:
## The Contents of this Repository
* **archive**
* **legacy documentation** - Contains documentation concerning previous versions of CCO, a list of obsoleted terms, changefiles for releases, as well as xlsx glossaries for each previous release.
* **previous-versions** - Contains previous releases of CCO, beginning with version 1.3.
* **contributing**
* **contributing** - Contains guidance for making contributions to the CCO repository.
* **github overview** - Contains guidance for using git and Github with Visual Studio Code, command lines, and GitHub Desktop.
* **design patterns** - Contains common design patterns for CCO, motivated by specific use cases, characterized by competency questions, and accompanied by serialization in RDF.
* **images** - Contains images used in this repository.
* **user guides** - Contains user guides for: ontology developers, software developers and subject matter experts.

View File

@@ -0,0 +1,8 @@
# CCO Archive
This directory serves as a home for outdated documentation regarding CCO and related projects. This documentation is not intended to be used as guidance in the development or application of current versions of CCO artifacts.
## The Contents of this Repository
* **legacy documentation** - This directory contains documentation concerning previous versions of CCO, a list of obsoleted terms, changefiles for releases, as well as xlsx glossaries for each previous release.
* **previous-versions** - This directory contains previous releases of CCO, beginning with version 1.3.

View File

@@ -0,0 +1,162 @@
# Contributing Guidelines and Code of Conduct
Branching:
`master` will always contain the latest release.
`develop` is where approved changes are merged into from patch and feature branches.
Instructions:
- All changes shall be made on a patch/feature branch that is created from an issue. Use the feature located to the right under Development to create branch. Make sure to select "Change Branch Source" and select 'develop'.
- If the changes are not based on an existing issue, create one.
- Make sure your preferred method of editing OWL files isn't generating spurious diffs. To prevent this, make a token change (e.g., add an annotation to the ontology) to the file and save it.
- Then use your favorite diff checker to confirm only that change is being rendered. Different versions of OWL API and Protégé will sometimes cause formatting issues.
- If you can't prevent the bogus diffs, then make commit the file with a message "Bogus change to render diffs correctly".
- Better to commit often rather than not enough. Ideally your commits will be have a unified objective. E.g., "changed language tags on all properties", "updated formatting for a few definitions", "deleted class Agent Identifier & fixed related axioms".
- When you've made changes as dictated by the issue, then perform a MR on `develop`.
- A set of checks will be run. Any failures need to be addressed before it can be accepted.
- Only Lead Developers can accept MRs.
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
overall community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
.
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series
of actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within
the community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.
### Branching:
`master` contain the latest release
`develop` where pull requests are made from patch and feature branches
### Instructions:
- If you do not have write privileges in the repo, then create a fork and work off that.
- All changes shall be made on an issue-specifc branch.
- Use the feature in the isseu tracker located to the right under "Development" to create the branch. Make sure to "Change Branch Source" and select 'develop'.
- If the changes are not based on an existing issue, create one first, assign yourself.
- Make sure your preferred method of editing OWL files isn't generating spurious diffs.
- To prevent this, make a token change to the file and save. E.g., add an annotation to the ontology "foo". Then use your favorite diff checker to confirm only that change is being rendered. Delete the change before making any other changes.
- If you can't prevent the bogus diffs, then make a change to the file with a message "Change to render diffs correctly."
- Delete the change and commit with message "Change for diffs deleted."
- Better to commit often rather than not enough. Ideally your commits will be have a unified objective. E.g., "changed language tags on all properties", "updated formatting for a few definitions", "deleted class Agent Identifier & fixed related axioms".
- Double check your work, make sure it loads in Protege, open All Core Ontology and confirm there are no bugs.
- Perform a PR on `develop`. Optionally, you may assign one or more reviewers, e.g., people that contributed to the issue.
<!--- TODO: IRI schema, fork procedure --->

View File

@@ -0,0 +1,286 @@
# Git and GitHub Overview
## Prerequisites
Prior to using GitHub in this repository, you will need to:
- **GitHub account** - [Register Here](https://github.com/join?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F&source=header-home)
- **Git Client** - Install a git client such as [GitHub Desktop](https://desktop.github.com/) or [Visual Studio Code](https://code.visualstudio.com/) with [necessary extensions](https://code.visualstudio.com/docs/sourcecontrol/github)
## Objectives
- [Introduction](#introduction)
- [Git and GitHub](#git-and-github)
- [GitHub Workflow](#github-workflow)
- [GitHub Issues](#issues)
- [GitHub Pull Requests](#pr)
- [Ontology Development Workflows](#workflow)
- [Open Source Etiquette](#etiquette)
- [Further Resources](#resource)
<a name="introduction"></a>
## Introduction
The content of this file is adapted from the Github Classroom starter assignment, which is designed to give you a brief introduction to Git and GitHub.
<a name="git-and-github"></a>
## Git and GitHub
**Git** is a system for tracking changes to your code, collaborating, and sharing. With Git you can track the changes you make to your project so you always have a record of what youve worked on and can easily revert back to an older version if need be.
**GitHub** is a web-based platform that builds on Git, by adding an intuitive interface, automating workflow actions, and allowing for transparent communication around projects.
<a name="github-workflow"></a>
## GitHub Workflow
The **GitHub Flow** is a workflow that allows you to experiment and collaborate on your projects easily, without the risk of losing your previous work.
A **repository** is where your project work happens--think of it as your project folder. It contains all of your projects files and revision history. You can work within a repository alone or invite others to collaborate with you on those files. Repositories also contain **README**s, which are used to explain to other people why your project is useful, what they can do with your project, and how they can use it.
A README is a text file that introduces and explains a project. It is intended for _everyone_, not just the software or ontology developers. Ideally, the README file will include detailed information about the ontology, how to get started with using any of the files, license information and other details. The README is usually on the front page of the GitHub repository.
Git repositories typically have a main branch that is not directly edited. Changes are made by creating a **branch** from main, which is essentially a complete copy of the main branch along with its entire history of updates.
You can copy (fork) any GitHub repo to some other location on GitHub without having to ask permission from the owners.  If you modify some files in that repo, e.g. to fix a bug in some code, or a typo in a document, you can then suggest to the owners (via a Pull Request) that they adopt (merge) you your changes back into their repo.
If you have permission from the owners, you can instead make a new branch. For this training, we gave you access to the repository. See the [Appendix](../howto/github-create-fork.md) for instructions on how to make a fork.
When a repository is created with GitHub, its stored remotely in the cloud. You can **clone** a repository to create a local copy on your computer and then use Git to sync the two. This makes it easier to fix issues, add or remove files, and push larger commits. Cloning a repository pulls down all the repository data that GitHub has at that point in time, including all versions of every file and folder for the project. This can be helpful if you experiment with your project and then realize you liked a previous version more.
A **fork** is another way to copy a repository, but is usually used when you want to contribute to someone elses project. Forking a repository allows you to freely experiment with changes without affecting the original project and is very popular when contributing to open source software projects.
**Committing** and **pushing** are how you can add the changes you made on your local machine to the main course repository so that your instructor can see your latest work. You should add a helpful **commit message** to remind yourself or your teammates what work you did. Once you have a commit or multiple commits that youre ready to add to your repository, you can use the push command to add those changes to your remote repository.
When working with branches, you can use a **pull request** to tell others about the changes you want to make and ask for their feedback. Once a pull request is opened, you can discuss and review the potential changes with collaborators and add more changes if need be. You can add specific people as reviewers of your pull request which shows you want their feedback on your changes! Once a pull request is ready-to-go, it can be merged into your main branch.
**Issues** are a way to track enhancements, tasks, or bugs for your work on GitHub. Issues are a great way to keep track of all the tasks you want to work on for your project and let others know what you plan to work on.
## Github Workflow
To illustrate, suppose you want to edit a file from the Common Core Ontologies GitHUb. You should then 'fork' the develop branch of the CCO repository on your personal Github account, so that you can make whatever changes you like.
When you make changes to your personal Github CCO repository then go to save them in GitHub, you will be prompted to either "commit to the main branch' or "create a new branch for this request and start a pull request". You should almost always open a 'pull request'. By opening a pull request, you open the door for your peers to help you refine the submission. That in mind, when you open a pull request, it is good practice to tag others and request they review your work. Once your reviewers have 'approved' your work, you will then 'merge' your work to your personal repository.
Once you have merged your work there, you will open another pull request - this time tagging one of the lead CCO developers - so they can review your work before merging it to the develop branch of CCO. Over time, when sufficient updates have been made to CCO, the develop branch will be merged into the main branch, triggering a new release of CCO.
You can visualize the process as something like:
```mermaid
gitGraph
commit id: "1"
commit id: "2"
branch Your_Work
checkout Your_Work
commit id: "3"
checkout main
commit id: "4"
checkout Your_Work
branch Your_Work_in_PR
commit id: "5"
checkout Your_Work
merge Your_Work_in_PR id: "Reviewed!"
checkout main
merge Your_Work id: "Submit Work"
commit id: "6"
checkout main
commit id: "7"
```
Where the numbers instances where changes have been made to a repository. The top grey line represents the main course repository. At change - or 'commit' - 2, you create a copy of the repository and begin working. You periodically check to make sure that your copy is up to date with the main branch, and this is reflected in your making commit 3 then making commit 5. This is because commit 4 occurred on the main branch, but you - good student that you are - updated your personal repository to keep up with the main course repository. Eventually, you submit your work to the main branch and it is 'merged'. Afterwards, you'll be able to see your work on the main course repository.
<a name="workflow"></a>
### CCO Development Workflow
The steps below describe how to make changes to Common Core Ontologies content.
1. Clone the CCO GitHub repository. The example below describes how to clone the Mondo Disease Ontology repo, but this can be applied to any ontology that is stored in GitHub.
#### Clone the CCO Repository
1. Navigate to the [Common Core Ontologies repository](https://github.com/CommonCoreOntology/CommonCoreOntologies)
2. Click Code
![image](https://user-images.githubusercontent.com/6722114/116610830-801b0480-a8ea-11eb-8567-9da0c1159954.png)
3. Click 'Open with GitHub Desktop'
![image]()
4. You will be given an option as to where to save the repository. Consider creating a folder on your local device named "Git" or "Repos", which will be the home for any repositories you save locally.
5. This will open GitHub Desktop and the repo should start downloading. This could take some time depending on how big the file is and how much memory your computer has.
#### Create a branch using GitHub Desktop
6. Click the little arrow in Current Branch
7. Click New Branch
8. Give your branch a name:
![image]()
## GitHub Pull Requests (adapted from OBOOK)
### Committing, Pushing and Making Pull Requests
1. Changes made to the ontology can be viewed in GitHub Desktop.
2. Before committing, check the diff. Examples of a diff are pasted below. Large diffs are a sign that something went wrong. In this case, do not commit the changes and ask the ontology editors for help instead.
Example 1:
![]()
1. Commit: Add a meaningful message in the Commit field in the lower left, for example
NOTE: You can use the word 'fixes' or 'closes' in the description of the commit message, followed by the corresponding ticket number (in the format #1234) - these are magic words in GitHub; when used in combination with the ticket number, it will automatically close the ticket. Learn more on this GitHub Help Documentation page about [Closing issues via commit messages](https://help.github.com/en/articles/closing-issues-using-keywords).
1. Note: 'Fixes' and "Closes' are case-insensitive.
2. If you don't want to close the ticket, just refer to the ticket # without the word 'Fixes' or use 'Adresses'. The commit will be associated with the correct ticket but the ticket will remain open. NOTE: It is also possible to type a longer message than allowed when using the '-m' argument; to do this, skip the -m, and a vi window (on mac) will open in which an unlimited description may be typed.
3. Click Commit to [branch]. This will save the changes to the cl-edit.owl file.
4. Push: To incorporate the changes into the remote repository, click Publish branch.
<a name="etiquette"></a>
## Open Source Etiquette
- Be respectful in your requests and comments.
- Do not include any private information.
- GitHub sends notifications to your email, and you can respond via your email client. However, responses are posted publicly. Be sure to delete your email signature if it includes personal information, such as your phone number.
- Many ontologies have limited resources and personnel for development and maintenance. Please be patient with your requests.
- If your ticket/request has been unanswered for a long period of time, you may check in by commenting on the ticket.
<a name="resources"></a>
## Resources
* [A short video explaining what GitHub is](https://www.youtube.com/watch?v=w3jLJU7DT5E&feature=youtu.be)
* [Git and GitHub learning resources](https://docs.github.com/en/github/getting-started-with-github/git-and-github-learning-resources)
* [Understanding the GitHub flow](https://guides.github.com/introduction/flow/)
* [How to use GitHub branches](https://www.youtube.com/watch?v=H5GJfcp3p4Q&feature=youtu.be)
* [Interactive Git training materials](https://githubtraining.github.io/training-manual/#/01_getting_ready_for_class)
* [GitHub's Learning Lab](https://lab.github.com/)
* [Education community forum](https://education.github.community/)
* [GitHub community forum](https://github.community/)
# Merging Branches
## Merging Branches in VS Code Using the Command Palette
1. **Open VS Code**: Launch Visual Studio Code.
2. **Open the Command Palette**:
- Press `Ctrl+Shift+P` (Windows/Linux) or `Cmd+Shift+P` (Mac) to open the Command Palette.
3. **Switch to the `master` (or `main`) Branch**:
- Type `Git: Checkout to...` and select it from the dropdown.
- Choose `master` or `main` from the list of branches.
4. **Pull the Latest Changes (Optional but Recommended)**:
- Open the Command Palette again.
- Type `Git: Pull` and select it from the dropdown.
- Choose the remote branch you want to pull changes from, typically `origin/master` or `origin/main`.
5. **Merge the `dev` Branch into `master` (or `main`)**:
- Open the Command Palette.
- Type `Git: Merge Branch...` and select it.
- Choose `dev` from the list of branches to merge into the currently checked-out branch (`master` or `main`).
6. **Resolve Any Merge Conflicts**:
- If there are conflicts, VS Code will show them in the editor. Open the conflicted files.
- Use the inline merge conflict resolution tools provided by VS Code to resolve the conflicts.
7. **Commit the Merge**:
- If conflicts were resolved, go to the Source Control view to commit the merge.
8. **Push the Changes**:
- Open the Command Palette.
- Type `Git: Push` and select it to push the changes to the remote repository.
## Merging Branches in VS Code Using Source Control View
1. **Open VS Code**: Launch Visual Studio Code.
2. **Open the Source Control View**:
- Click on the Source Control icon in the [Activity Bar](https://code.visualstudio.com/docs/getstarted/userinterface) on the side of the window, or press `Ctrl+Shift+G` (Windows/Linux) or `Cmd+Shift+G` (Mac).
3. **Switch to the `master` (or `main`) Branch**:
- Click on the branch name in the bottom-left corner of the Status Bar.
- Select `master` or `main` from the list of branches to switch to it.
4. **Pull the Latest Changes (Optional but Recommended)**:
- Click on the ellipsis (`...`) in the Source Control view.
- Select `Pull` from the dropdown to fetch the latest changes from the remote repository.
5. **Merge the `dev` Branch into `master` (or `main`)**:
- Click on the ellipsis (`...`) in the Source Control view.
- Select `Merge Branch...`.
- Choose `dev` from the list of branches to merge into the currently checked-out branch (`master` or `main`).
6. **Resolve Any Merge Conflicts**:
- If there are conflicts, VS Code will highlight them in the editor. Open the conflicted files and use the inline tools to resolve them.
7. **Commit the Merge**:
- If conflicts were resolved, you will see the merge changes in the Source Control view. Enter a commit message and commit the merge.
8. **Push the Changes**:
- Click on the ellipsis (`...`) in the Source Control view.
- Select `Push` to push the merged changes to the remote repository.
## Merging Branches Using Git in the Command Line
1. **Open Terminal and Navigate to Your Repository**:
- cd /path/to/your/repo
2. **Fetch the Latest Changes from Remote (Optional but Recommended)**:
- git fetch origin
3. **Switch to the Master (or Main) Branch**:
- git checkout master (or git checkout main)
4. **Pull the Latest Changes to Master (or Main)**:
- git pull origin master (git pull origin main)
5. **Merge the Dev Branch into Master (or Main)**:
- git merge dev
6. **Resolve Any Merge Conflicts (If They Arise)**:
- Open conflicted files in a text editor and resolve conflicts.
- After resolving conflicts, add the resolved files:
- git add <file>
7. **Complete the Merge if There Were Conflicts**:
- git commit
8. **Push the Changes to the Remote Repository**:
- git push origin master (git push origin main)

View File

@@ -1,4 +0,0 @@
## Important Note
The Relations Ontology is no longer used. See here (ADD LINK)
TODO: Add brief summary

File diff suppressed because it is too large Load Diff

4
robots.txt Normal file
View File

@@ -0,0 +1,4 @@
User-agent: *
Disallow: /documentation/images/
Disallow: /archive/
Disallow: /workflow/

23
src/README.md Normal file
View File

@@ -0,0 +1,23 @@
# CCO Source Files
This directory contains versions of CCO, its modules, and extensions.
## The Contents of this Repository
* **cco-merged** - Contains the current CCO merged release file and an import file that is used to generate the merged CCO file.
* **cco extensions** - Contains versions of CCO extensions maintained by the governance board, such as the Modal Relations Ontology.
* **cco-modules** - Contains versions of the 11 CCO modules listed below:
| Ontology Name | Description |
|------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------|
| **Geospatial Ontology** | An ontology whose scope is the representation of sites, spatial regions, and other entities, especially those that are located near the surface of Earth, as well as the relations that hold between them. |
| **Information Entity Ontology** | An ontology whose scope is the representation of generic types of information as well as the relationships between information and other entities. |
| **Event Ontology** | An ontology whose scope is the representation of processual entities, especially those performed by agents, that occur within multiple domains. |
| **Time Ontology** | An ontology whose scope is the representation of temporal regions and the relations that hold between them. |
| **Agent Ontology** | An ontology whose scope is the representation of agents, especially persons and organizations, and their roles. |
| **Quality Ontology** | An ontology whose scope is the representation of a range of attributes of entities especially qualities, realizable entities, and process profiles. |
| **Units of Measure Ontology** | An ontology whose scope is the representation of standard measurement units that are used when measuring various attributes of entities. |
| **Currency Unit Ontology** | An ontology whose scope is the representation of currencies that are issued and used by countries. |
| **Facility Ontology** | An ontology whose scope is the representation of buildings and campuses that are designed to serve some specific purpose, and which are common to multiple domains. |
| **Artifact Ontology** | An ontology whose scope is the representation of artifacts that are common to multiple domains along with their models, specifications, and functions. |
| **Extended Relations Ontology** | An ontology whose scope is the representation of the relations that hold between entities at the level of the mid-level Common Core Ontologies. |

View File

@@ -2921,4 +2921,4 @@ cco:InformationBearingEntity rdf:type owl:Class .
cco:InformationContentEntity rdf:type owl:Class .
### Generated by the OWL API (version 4.5.9.2019-02-01T07:24:44Z) https://github.com/owlcs/owlapi
### Generated by the OWL API (version 4.5.9.2019-02-01T07:24:44Z) https://github.com/owlcs/owlapi

View File

@@ -0,0 +1,7 @@
# CCO Extensions
This directory contains extensions of CCO.
## The Contents of this Repository
* **Modal Relations Ontology** - The file contains modal counterparts to the object and data properties contained in CCO files and the bfo-core file.

View File

@@ -2259,4 +2259,4 @@ cco:Village rdf:type owl:Class ;
rdfs:label "Village"@en .
### Generated by the OWL API (version 4.5.9.2019-02-01T07:24:44Z) https://github.com/owlcs/owlapi
### Generated by the OWL API (version 4.5.9.2019-02-01T07:24:44Z) https://github.com/owlcs/owlapi

View File

@@ -5077,4 +5077,4 @@ cco:XRayTelescope rdf:type owl:Class ;
rdfs:label "X-ray Telescope"@en .
### Generated by the OWL API (version 4.5.9.2019-02-01T07:24:44Z) https://github.com/owlcs/owlapi
### Generated by the OWL API (version 4.5.9.2019-02-01T07:24:44Z) https://github.com/owlcs/owlapi

View File

@@ -3134,4 +3134,4 @@ cco:XrayFrequency rdf:type owl:Class ;
rdfs:label "X-ray Frequency"@en .
### Generated by the OWL API (version 4.5.26.2023-07-17T20:34:13Z) https://github.com/owlcs/owlapi
### Generated by the OWL API (version 4.5.26.2023-07-17T20:34:13Z) https://github.com/owlcs/owlapi

View File

@@ -653,4 +653,4 @@ cco:role_of_aggregate rdf:type owl:ObjectProperty ;
rdfs:label "role of aggregate"@en .
### Generated by the OWL API (version 4.5.25.2023-02-15T19:15:49Z) https://github.com/owlcs/owlapi
### Generated by the OWL API (version 4.5.25.2023-02-15T19:15:49Z) https://github.com/owlcs/owlapi

View File

@@ -842,4 +842,4 @@ cco:WindFarm rdf:type owl:Class ;
rdfs:label "Wind Farm"@en .
### Generated by the OWL API (version 4.5.9.2019-02-01T07:24:44Z) https://github.com/owlcs/owlapi
### Generated by the OWL API (version 4.5.9.2019-02-01T07:24:44Z) https://github.com/owlcs/owlapi

View File

@@ -660,4 +660,4 @@ cco:zAxis rdf:type owl:Class ;
rdfs:label "z-Axis"@en .
### Generated by the OWL API (version 4.5.25.2023-02-15T19:15:49Z) https://github.com/owlcs/owlapi
### Generated by the OWL API (version 4.5.25.2023-02-15T19:15:49Z) https://github.com/owlcs/owlapi

View File

@@ -965,4 +965,4 @@ cco:Yellow rdf:type owl:Class ;
rdfs:label "Yellow"@en .
### Generated by the OWL API (version 4.5.9.2019-02-01T07:24:44Z) https://github.com/owlcs/owlapi
### Generated by the OWL API (version 4.5.9.2019-02-01T07:24:44Z) https://github.com/owlcs/owlapi