“An ontology defines a common vocabulary for researchers who need to share information in a domain. It includes machine-interpretable definitions of basic concepts in the domain and relations among them” [(Noy and McGuinness, 2001)](https://protege.stanford.edu/publications/ontology_development/ontology101.pdf).
An ontology is often expressed in [[subject-predicate-object triples|triples]], which express the concepts and relationships defined in an ontology, enabling machine-readable data representation.
[Protege](https://protege.stanford.edu/) is a free, open source tool for manipulating ontologies. Use the web tool and provide a `.ttl` file when creating a new project.
For an example, see the [WhatToMake ontology](https://github.com/foodkg/foodkg.github.io/blob/master/ontologies/WhatToMake.rdf) for the Food KG project.
[DeepOnto](https://github.com/KRR-Oxford/DeepOnto) is a Python library for ontology engineering.
## ontology access kit
[Ontology Access Kit](https://github.com/INCATools/ontology-access-kit) (OAK) provides a collection of interfaces for various ontology operations, including:
- look up basic features of an ontology element, such as its label, definition, relationships, or aliases
- search an ontology for a term
- validate an ontology
- modify or delete terms
- generate and visualize subgraphs
- identify lexical matches and export as SSSOM mapping tables
- perform more advanced operations, such as graph traversal, OWL axiom processing, or text annotation
## ontology engineering
Ontology engineering is the discipline of designing and building large-scale [[ontology]] for use in a large [[knowledge base]].
One of the leading research projects in this area was the [Cyc](https://en.wikipedia.org/wiki/Cyc "Cyc") project. Cyc was an attempt to build a huge encyclopedic knowledge base that would contain not just expert knowledge but common-sense knowledge.
[[namespace]]