“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]]