diff --git a/src/ontology/imports/cob_import.owl b/src/ontology/imports/cob_import.owl
index 9be9a9b3..0bf2cc29 100644
--- a/src/ontology/imports/cob_import.owl
+++ b/src/ontology/imports/cob_import.owl
@@ -1,14 +1,191 @@
-
-
-
-
-
-
\ No newline at end of file
+Prefix(:=)
+Prefix(owl:=)
+Prefix(rdf:=)
+Prefix(xml:=)
+Prefix(xsd:=)
+Prefix(rdfs:=)
+
+
+Ontology(
+
+Annotation( )
+Annotation(owl:versionInfo "2023-08-23"^^xsd:string)
+
+Declaration(Class())
+Declaration(Class())
+Declaration(Class())
+Declaration(Class())
+Declaration(Class())
+Declaration(Class())
+Declaration(Class())
+Declaration(Class())
+Declaration(Class())
+Declaration(Class())
+Declaration(Class())
+Declaration(Class())
+Declaration(Class())
+Declaration(ObjectProperty())
+Declaration(ObjectProperty())
+Declaration(ObjectProperty())
+Declaration(ObjectProperty())
+Declaration(ObjectProperty())
+Declaration(ObjectProperty())
+Declaration(ObjectProperty())
+Declaration(ObjectProperty())
+Declaration(ObjectProperty())
+Declaration(ObjectProperty())
+Declaration(ObjectProperty())
+Declaration(AnnotationProperty())
+Declaration(AnnotationProperty())
+Declaration(AnnotationProperty())
+Declaration(AnnotationProperty())
+Declaration(AnnotationProperty())
+Declaration(AnnotationProperty())
+############################
+# Annotation Properties
+############################
+
+# Annotation Property: (definition)
+
+AnnotationAssertion(rdfs:label "definition")
+
+
+############################
+# Object Properties
+############################
+
+# Object Property: (part of)
+
+AnnotationAssertion(rdfs:label "part of")
+InverseObjectProperties( )
+TransitiveObjectProperty()
+
+# Object Property: (has part)
+
+AnnotationAssertion(rdfs:label "has part")
+
+# Object Property: (realized in)
+
+AnnotationAssertion(rdfs:label "realized in"@en)
+
+# Object Property: (occurs in)
+
+AnnotationAssertion(rdfs:label "occurs in")
+InverseObjectProperties( )
+ObjectPropertyDomain( )
+
+# Object Property: (contains process)
+
+AnnotationAssertion(rdfs:label "contains process"@en)
+
+# Object Property: (characteristic of)
+
+AnnotationAssertion(rdfs:label "characteristic of"@en)
+InverseObjectProperties( )
+
+# Object Property: (has characteristic)
+
+AnnotationAssertion(rdfs:label "has characteristic")
+AnnotationAssertion(rdfs:seeAlso "https://github.com/oborel/obo-relations/pull/284")
+InverseFunctionalObjectProperty()
+ObjectPropertyRange( )
+
+# Object Property: (participates in)
+
+AnnotationAssertion(rdfs:label "participates in"@en)
+InverseObjectProperties( )
+
+# Object Property: (has participant)
+
+AnnotationAssertion(rdfs:label "has participant")
+ObjectPropertyDomain( )
+
+# Object Property: (is concretized as)
+
+AnnotationAssertion(rdfs:label "is concretized as"@en)
+
+# Object Property: (enabled by)
+
+AnnotationAssertion(rdfs:label "enabled by")
+SubObjectPropertyOf( )
+
+
+
+############################
+# Classes
+############################
+
+# Class: (process)
+
+AnnotationAssertion(rdfs:label "process"@en)
+SubClassOf( ObjectAllValuesFrom( ))
+
+# Class: (disposition)
+
+AnnotationAssertion(rdfs:label "disposition"@en)
+SubClassOf( )
+
+# Class: (realizable)
+
+AnnotationAssertion(rdfs:label "realizable"@en)
+SubClassOf( )
+
+# Class: (characteristic)
+
+AnnotationAssertion(rdfs:label "characteristic"@en)
+AnnotationAssertion(rdfs:seeAlso "https://github.com/OBOFoundry/COB/issues/65")
+AnnotationAssertion(rdfs:seeAlso "https://github.com/oborel/obo-relations/pull/284")
+SubClassOf( ObjectAllValuesFrom( ))
+
+# Class: (role)
+
+AnnotationAssertion(rdfs:label "role"@en)
+SubClassOf( )
+
+# Class: (function)
+
+AnnotationAssertion(rdfs:label "function"@en)
+SubClassOf( )
+
+# Class: (material entity)
+
+AnnotationAssertion(rdfs:label "material entity"@en)
+
+# Class: (immaterial entity)
+
+AnnotationAssertion(rdfs:label "immaterial entity"@en)
+
+# Class: (cell)
+
+AnnotationAssertion( "A material entity that has a plasma membrane and results from cellular division.")
+AnnotationAssertion(rdfs:comment "CL and GO definitions of cell differ based on inclusive or exclusive of cell wall, etc.")
+AnnotationAssertion(rdfs:comment "We struggled with this definition. We are worried about circularity. We also considered requiring the capability of metabolism.")
+AnnotationAssertion(rdfs:label "cell"@en)
+SubClassOf( )
+
+# Class: (measurement datum)
+
+AnnotationAssertion(rdfs:label "measurement datum")
+
+# Class: (gene product or complex activity)
+
+AnnotationAssertion(rdfs:comment "This is the same as GO molecular function")
+AnnotationAssertion(rdfs:label "gene product or complex activity"@en)
+SubClassOf( )
+DisjointClasses( )
+
+# Class: (cell nucleus)
+
+AnnotationAssertion(rdfs:label "cell nucleus"@en)
+SubClassOf( )
+
+# Class: (biological process)
+
+AnnotationAssertion( "A process that emerges from two or more causally-connected macromolecular activities and has evolved to achieve a biological objective.")
+AnnotationAssertion(rdfs:comment "A biological process is an evolved process")
+AnnotationAssertion(rdfs:label "biological process"@en)
+SubClassOf( )
+SubClassOf( ObjectSomeValuesFrom( ))
+
+
+)
diff --git a/src/ontology/imports/cob_terms.txt b/src/ontology/imports/cob_terms.txt
index 8b137891..d913c3bb 100644
--- a/src/ontology/imports/cob_terms.txt
+++ b/src/ontology/imports/cob_terms.txt
@@ -1 +1 @@
-
+COB:0000121
diff --git a/src/ontology/imports/obi_import.owl b/src/ontology/imports/obi_import.owl
index c9dd3cfe..51ccfe85 100644
--- a/src/ontology/imports/obi_import.owl
+++ b/src/ontology/imports/obi_import.owl
@@ -7,37 +7,76 @@ Prefix(rdfs:=)
Ontology(
+
Annotation( )
Annotation(owl:versionInfo "2023-08-16")
+
Declaration(Class())
+Declaration(Class())
+Declaration(Class())
+Declaration(Class())
Declaration(Class())
-Declaration(AnnotationProperty())
Declaration(AnnotationProperty())
Declaration(AnnotationProperty())
Declaration(AnnotationProperty())
Declaration(AnnotationProperty())
Declaration(AnnotationProperty())
Declaration(AnnotationProperty())
+Declaration(AnnotationProperty())
Declaration(AnnotationProperty())
-Declaration(AnnotationProperty())
-Declaration(AnnotationProperty())
-Declaration(AnnotationProperty())
-Declaration(AnnotationProperty())
-Declaration(AnnotationProperty())
-Declaration(AnnotationProperty())
Declaration(AnnotationProperty())
-Declaration(AnnotationProperty())
-Declaration(AnnotationProperty())
-Declaration(AnnotationProperty())
-Declaration(Datatype(xsd:date))
############################
# Classes
############################
+# Class: (processed material)
+
+AnnotationAssertion( "processed material"@en)
+AnnotationAssertion( "Examples include gel matrices, filter paper, parafilm and buffer solutions, mass spectrometer, tissue samples"@en)
+AnnotationAssertion( )
+AnnotationAssertion( "Is a material entity that is created or changed during material processing."@en)
+AnnotationAssertion( "PERSON: Alan Ruttenberg"@en)
+AnnotationAssertion(rdfs:label "processed material"@en)
+SubClassOf( )
+
+# Class: (container)
+
+AnnotationAssertion( "container")
+AnnotationAssertion( )
+AnnotationAssertion( "A device that can be used to restrict the location of material entities over time")
+AnnotationAssertion( "03/21/2010: Added to allow classification of children (similar to what we want to do for 'measurement device'. Lookint at what classifies here, we may want to reconsider a contain function assigned to a part of an entity is necessarily also a function of the whole (e.g. is a centrifuge a container because it has test tubes as parts?)")
+AnnotationAssertion( "PERSON: Bjoern Peters")
+AnnotationAssertion(rdfs:label "container")
+SubClassOf( )
+
+# Class: (device)
+
+AnnotationAssertion( "device")
+AnnotationAssertion( "A voltmeter is a measurement device which is intended to perform some measure function.")
+AnnotationAssertion( "An autoclave is a device that sterlizes instruments or contaminated waste by applying high temperature and pressure.")
+AnnotationAssertion( )
+AnnotationAssertion( "A material entity that is designed to perform a function in a scientific investigation, but is not a reagent.")
+AnnotationAssertion( "2012-12-17 JAO: In common lab usage, there is a distinction made between devices and reagents that is difficult to model. Therefore we have chosen to specifically exclude reagents from the definition of \"device\", and are enumerating the types of roles that a reagent can perform.
+
+2013-6-5 MHB: The following clarifications are outcomes of the May 2013 Philly Workshop. Reagents are distinguished from devices that also participate in scientific techniques by the fact that reagents are chemical or biological in nature and necessarily participate in some chemical interaction or reaction during the realization of their experimental role. By contrast, devices do not participate in such chemical reactions/interactions. Note that there are cases where devices use reagent components during their operation, where the reagent-device distinction is less clear. For example:
+
+(1) An HPLC machine is considered a device, but has a column that holds a stationary phase resin as an operational component. This resin qualifies as a device if it participates purely in size exclusion, but bears a reagent role that is realized in the running of a column if it interacts electrostatically or chemically with the evaluant. The container the resin is in (“the column”) considered alone is a device. So the entire column as well as the entire HPLC machine are devices that have a reagent as an operating part.
+
+(2) A pH meter is a device, but its electrode component bears a reagent role in virtue of its interacting directly with the evaluant in execution of an assay.
+
+(3) A gel running box is a device that has a metallic lead as a component that participates in a chemical reaction with the running buffer when a charge is passed through it. This metallic lead is considered to have a reagent role as a component of this device realized in the running of a gel.
+
+In the examples above, a reagent is an operational component of a device, but the device itself does not realize a reagent role (as bearing a reagent role is not transitive across the part_of relation). In this way, the asserted disjointness between a reagent and device holds, as both roles are never realized in the same bearer during execution of an assay.")
+AnnotationAssertion( "PERSON: Helen Parkinson")
+AnnotationAssertion( "instrument")
+AnnotationAssertion( "OBI development call 2012-12-17.")
+AnnotationAssertion(rdfs:label "device")
+SubClassOf( )
+
# Class: (organism)
AnnotationAssertion( "organism"@en)
diff --git a/src/ontology/imports/obi_terms.txt b/src/ontology/imports/obi_terms.txt
index 9ded87ec..612954a3 100644
--- a/src/ontology/imports/obi_terms.txt
+++ b/src/ontology/imports/obi_terms.txt
@@ -1 +1,4 @@
-OBI:0100026
\ No newline at end of file
+OBI:0100026
+OBI:0000047
+OBI:0000967
+OBI:0000968
diff --git a/src/ontology/imports/other_import.owl b/src/ontology/imports/other_import.owl
index d7cfd7ce..9995b1ae 100644
--- a/src/ontology/imports/other_import.owl
+++ b/src/ontology/imports/other_import.owl
@@ -51,7 +51,6 @@ SubClassOf( "phenotype"@en)
SubClassOf( )
-
AnnotationAssertion( )
AnnotationAssertion(rdfs:label "curation status specification"@en)
AnnotationAssertion( )
@@ -64,4 +63,4 @@ AnnotationAssertion( "requires discussion"@en)
AnnotationAssertion( )
AnnotationAssertion(rdfs:label "term replaced by"@en)
-)
\ No newline at end of file
+)
diff --git a/src/ontology/ro-edit.owl b/src/ontology/ro-edit.owl
index f44a702a..9ba80c95 100644
--- a/src/ontology/ro-edit.owl
+++ b/src/ontology/ro-edit.owl
@@ -577,6 +577,7 @@ Declaration(ObjectProperty(obo:RO_0016004))
Declaration(ObjectProperty(obo:RO_0017001))
Declaration(ObjectProperty(obo:RO_0017003))
Declaration(ObjectProperty(obo:RO_0017004))
+Declaration(ObjectProperty(obo:RO_0017005))
Declaration(ObjectProperty(obo:RO_0018001))
Declaration(ObjectProperty(obo:RO_0018002))
Declaration(ObjectProperty(obo:RO_0018003))
@@ -6560,6 +6561,17 @@ SubObjectPropertyOf(obo:RO_0017004 obo:RO_0002610)
SymmetricObjectProperty(obo:RO_0017004)
IrreflexiveObjectProperty(obo:RO_0017004)
+# Object Property: obo:RO_0017005 (contains measured amount)
+
+AnnotationAssertion(obo:IAO_0000115 obo:RO_0017005 "A relation between a container and measurement datum that specifies the actual amount of material in the container.")
+AnnotationAssertion(terms:contributor obo:RO_0017005 )
+AnnotationAssertion(terms:contributor obo:RO_0017005 )
+AnnotationAssertion(obo:IAO_0000112 obo:RO_0017005 "anticoagulant-containing test tube contains measured amount 5 ml of blood specimen.")
+AnnotationAssertion(rdfs:label obo:RO_0017005 "contains measured amount"@en)
+ObjectPropertyDomain(obo:RO_0017005 obo:OBI_0000967)
+ObjectPropertyRange(obo:RO_0017005 obo:COB_0000121)
+
+
# Object Property: obo:RO_0018001 (is myristoyltransferase activity)
AnnotationAssertion(obo:IAO_0000115 obo:RO_0018001 "Helper relation for OWL definition of RO:0018002 myristoylates")