PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX mifc: <https://w3id.org/kaiiam/mifc/>
PREFIX linkml: <https://w3id.org/linkml/>
PREFIX biolink: <https://w3id.org/biolink/>
PREFIX schema: <http://schema.org/>
PREFIX PATO: <http://purl.obolibrary.org/obo/PATO_>
PREFIX OBI: <http://purl.obolibrary.org/obo/OBI_>
PREFIX example: <https://example.org/>
PREFIX FDC: <https://fdc.nal.usda.gov/>
PREFIX PTFI: <https://foodperiodictable.org/>
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX sh: <http://www.w3.org/ns/shacl#>
PREFIX vann: <http://purl.org/vocab/vann/>

<https://w3id.org/kaiiam/mifc> a owl:Ontology ;
  rdfs:label "mifc" ;
  rdfs:comment "A minimum information standard checklist formalizing the description of food composition data and related metadata." ;
  rdfs:seeAlso <https://kaiiam.github.io/mifc> ;
  dcterms:license "MIT" ;
  vann:preferredNamespacePrefix "mifc" ;
  vann:preferredNamespaceUri "https://w3id.org/kaiiam/mifc/"^^xsd:anyURI ;
  sh:declare [
    sh:prefix "mifc" ;
    sh:namespace "https://w3id.org/kaiiam/mifc/"^^xsd:anyURI
  ] , [
    sh:prefix "linkml" ;
    sh:namespace "https://w3id.org/linkml/"^^xsd:anyURI
  ] , [
    sh:prefix "biolink" ;
    sh:namespace "https://w3id.org/biolink/"^^xsd:anyURI
  ] , [
    sh:prefix "schema" ;
    sh:namespace "http://schema.org/"^^xsd:anyURI
  ] , [
    sh:prefix "PATO" ;
    sh:namespace "http://purl.obolibrary.org/obo/PATO_"^^xsd:anyURI
  ] , [
    sh:prefix "OBI" ;
    sh:namespace "http://purl.obolibrary.org/obo/OBI_"^^xsd:anyURI
  ] , [
    sh:prefix "example" ;
    sh:namespace "https://example.org/"^^xsd:anyURI
  ] , [
    sh:prefix "FDC" ;
    sh:namespace "https://fdc.nal.usda.gov/"^^xsd:anyURI
  ] , [
    sh:prefix "PTFI" ;
    sh:namespace "https://foodperiodictable.org/"^^xsd:anyURI
  ] .

mifc:NamedThing a owl:Class ;
  skos:closeMatch schema:Thing ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:onProperty mifc:id ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:id ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:laboratory_sample_id ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:laboratory_sample_id ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:laboratory_sample_aliquot_id ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:laboratory_sample_aliquot_id ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:laboratory_sample_batch_id ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:laboratory_sample_batch_id ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Class ;
    owl:unionOf ( schema:Food schema:Component schema:Provenance )
  ] .

schema:Food a owl:Class ;
  rdfs:comment "Metadata about foods" ;
  rdfs:subClassOf mifc:NamedThing , [
    a owl:Restriction ;
    owl:onProperty schema:name ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty schema:name ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:primary_food_type_label ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:primary_food_type_label ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:primary_food_type_upc_code ;
    owl:allValuesFrom xsd:integer
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:primary_food_type_upc_code ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:food_preparation_state ;
    owl:allValuesFrom mifc:FoodPreparationState
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:food_preparation_state ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:food_acquisition_city ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:food_acquisition_city ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:food_acquisition_country ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:food_acquisition_country ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:food_acquisition_country_subdivision ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:food_acquisition_country_subdivision ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:food_acquisition_date ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:food_acquisition_date ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:food_acquisition_location_type ;
    owl:allValuesFrom mifc:FoodAcquisitionLocationType
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:food_acquisition_location_type ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:food_acquisition_latitude ;
    owl:allValuesFrom xsd:float
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:food_acquisition_latitude ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:food_acquisition_longitude ;
    owl:allValuesFrom xsd:float
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:food_acquisition_longitude ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:food_acquisition_agent_name ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:food_acquisition_agent_name ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:food_acquisition_organization ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:food_acquisition_organization ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:food_distributor_city ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:food_distributor_city ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:food_distributor_country ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:food_distributor_country ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:food_distributor_country_subdivision ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:food_distributor_country_subdivision ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:food_expiration_date ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:food_expiration_date ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] .

schema:Component a owl:Class ;
  rdfs:comment "Metadata about measured components of nutritional interest" ;
  rdfs:subClassOf mifc:NamedThing , [
    a owl:Restriction ;
    owl:onProperty mifc:measured_compound ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:measured_compound ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:measured_compound_label ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:measured_compound_label ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:measured_compound_value ;
    owl:allValuesFrom xsd:float
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:measured_compound_value ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:measured_compound_unit ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:measured_compound_unit ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:measured_compound_denominator_value ;
    owl:allValuesFrom xsd:float
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:measured_compound_denominator_value ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:measured_compound_denominator_unit ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:measured_compound_denominator_unit ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:measured_compound_data_points_number ;
    owl:allValuesFrom xsd:integer
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:measured_compound_data_points_number ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:measured_compound_record_date ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:measured_compound_record_date ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:measured_compound_analysis_date ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:measured_compound_analysis_date ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:measured_compound_comment ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:measured_compound_comment ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:measured_compound_derivation_type ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:measured_compound_derivation_type ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:measured_compound_limit_of_quantitation ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:measured_compound_limit_of_quantitation ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:laboratory_sample_aggregation_minimum_measured_compound_value ;
    owl:allValuesFrom xsd:float
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:laboratory_sample_aggregation_minimum_measured_compound_value ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:laboratory_sample_aggregation_maximum_measured_compound_value ;
    owl:allValuesFrom xsd:float
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:laboratory_sample_aggregation_maximum_measured_compound_value ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:laboratory_sample_aggregation_median_measured_compound_value ;
    owl:allValuesFrom xsd:float
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:laboratory_sample_aggregation_median_measured_compound_value ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:laboratory_sample_aggregation_measured_compound_standard_deviation ;
    owl:allValuesFrom xsd:float
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:laboratory_sample_aggregation_measured_compound_standard_deviation ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:analytical_analysis_measurement_protocol_doi ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:analytical_analysis_measurement_protocol_doi ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:analytical_analysis_measurement_method ;
    owl:allValuesFrom mifc:AnalyticalMeasurementMethod
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:analytical_analysis_measurement_method ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:laboratory_conducting_analytical_analysis ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:laboratory_conducting_analytical_analysis ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:compound_value_remeasured_for_quality_control ;
    owl:allValuesFrom xsd:boolean
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:compound_value_remeasured_for_quality_control ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] .

schema:Provenance a owl:Class ;
  rdfs:comment "Supplemental data about the provenance of a Food and Component dataset collection standardized using MIFC." ;
  rdfs:subClassOf mifc:NamedThing , [
    a owl:Restriction ;
    owl:onProperty mifc:dataset_label ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:dataset_label ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:mifc_version_tag ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:mifc_version_tag ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:contributor_orcid ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:contributor_orcid ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:organization_name ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:organization_name ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] .

mifc:Container a owl:Class ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:onProperty mifc:foods ;
    owl:allValuesFrom schema:Food
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:components ;
    owl:allValuesFrom schema:Component
  ] , [
    a owl:Restriction ;
    owl:onProperty mifc:provenances ;
    owl:allValuesFrom schema:Provenance
  ] .

mifc:id a owl:DatatypeProperty ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

mifc:laboratory_sample_id a owl:DatatypeProperty ;
  rdfs:comment "A string denoting an identifier of a laboratory sample which was prepared from a food sample." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

mifc:laboratory_sample_aliquot_id a owl:DatatypeProperty ;
  rdfs:comment "A string denoting an identifier of a unique aliquot of a laboratory sample which was prepared from a food sample." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

mifc:laboratory_sample_batch_id a owl:DatatypeProperty ;
  rdfs:comment "A string denoting an identifier of a batch of laboratory samples analysed together." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

schema:name a owl:DatatypeProperty ;
  rdfs:comment "A controlled vocabulary term representing the primary food material which was sampled. E.g., using a food vocabulary like USDA's FDC or FoodOn" ;
  skos:exactMatch FDC:NDB_number ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

mifc:primary_food_type_label a owl:DatatypeProperty ;
  rdfs:comment "A string denoting the label of a controlled vocabulary term representing the primary food material which was sampled." ;
  skos:closeMatch PTFI:Specimen_Food_Product_Name ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

mifc:primary_food_type_upc_code a owl:DatatypeProperty ;
  rdfs:comment "An integer denoting a Universal Product Code (UPC) barcode." ;
  rdfs:range xsd:integer ;
  a owl:FunctionalProperty .

mifc:food_preparation_state a owl:ObjectProperty ;
  rdfs:comment "A controlled vocabulary term representing the preparation state of the primary_food_type (e.g., raw)." ;
  rdfs:range mifc:FoodPreparationState ;
  a owl:FunctionalProperty .

mifc:food_acquisition_city a owl:DatatypeProperty ;
  rdfs:comment "A string denoting the city in which a primary_food_type was acquired." ;
  skos:closeMatch PTFI:Collection_Location ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

mifc:food_acquisition_country a owl:DatatypeProperty ;
  rdfs:comment "A string denoting the country code from which a primary_food_type was acquired." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

mifc:food_acquisition_country_subdivision a owl:DatatypeProperty ;
  rdfs:comment "A string denoting the country subdivision from which a primary_food_type was acquired (e.g., state or province)." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

mifc:food_acquisition_date a owl:DatatypeProperty ;
  rdfs:comment "A datetime value representing the date a primary_food_type was acquired." ;
  skos:exactMatch PTFI:Collection_Date ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

mifc:food_acquisition_location_type a owl:ObjectProperty ;
  rdfs:comment "A string describing the type of location from which a primary_food_type sample was acquired (e.g., a supermarket)." ;
  skos:exactMatch PTFI:Collection_Type ;
  rdfs:range mifc:FoodAcquisitionLocationType ;
  a owl:FunctionalProperty .

mifc:food_acquisition_latitude a owl:DatatypeProperty ;
  rdfs:comment "A float representing the latitude of the place from which the primary_food_type was acquired." ;
  skos:exactMatch PTFI:Collection_Latitude ;
  rdfs:range xsd:float ;
  a owl:FunctionalProperty .

mifc:food_acquisition_longitude a owl:DatatypeProperty ;
  rdfs:comment "A float representing the longitude of the place from which the primary_food_type was acquired." ;
  skos:exactMatch PTFI:Collection_Longitude ;
  rdfs:range xsd:float ;
  a owl:FunctionalProperty .

mifc:food_acquisition_agent_name a owl:DatatypeProperty ;
  rdfs:comment "A string denoting the name of the agent (person, device or other type of service) that acquired the primary_food_type." ;
  skos:exactMatch PTFI:Collector_Name ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

mifc:food_acquisition_organization a owl:DatatypeProperty ;
  rdfs:comment "A string denoting the name of the organization responsible for acquired the primary_food_type." ;
  skos:exactMatch PTFI:Collector_Organization ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

mifc:food_distributor_city a owl:DatatypeProperty ;
  rdfs:comment "A string denoting the city of a distributor organization from which a primary_food_type was acquired." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

mifc:food_distributor_country a owl:DatatypeProperty ;
  rdfs:comment "A string denoting the country code of a distributor organization from which a primary_food_type was acquired." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

mifc:food_distributor_country_subdivision a owl:DatatypeProperty ;
  rdfs:comment "A string denoting the country subdivision of a distributor organization from which a primary_food_type was acquired, (e.g., state or province)." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

mifc:food_expiration_date a owl:DatatypeProperty ;
  rdfs:comment "A datetime value representing the food expiration data as shown on the labeling information of the primary_food_type." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

mifc:measured_compound a owl:DatatypeProperty ;
  rdfs:comment "A controlled vocabulary term representing an analyzed component from a primary_food_type food sample." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

mifc:measured_compound_label a owl:DatatypeProperty ;
  rdfs:comment "A string denoting the label of a controlled vocabulary term representing an analyzed component from a primary_food_type food sample." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

mifc:measured_compound_value a owl:DatatypeProperty ;
  rdfs:comment "A float representing an individual instance of a measured food compound value from an individual primary_food_type sample." ;
  rdfs:range xsd:float ;
  a owl:FunctionalProperty .

mifc:measured_compound_unit a owl:DatatypeProperty ;
  rdfs:comment "A unit code representing the units of measurement in which a measured food component value from a primary_food_type sample was sampled." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

mifc:measured_compound_denominator_value a owl:DatatypeProperty ;
  rdfs:comment "A float representing the denominator value (or portion size) of a measured measured_compound, e.g., 100 (for portion of per 100g)." ;
  rdfs:range xsd:float ;
  a owl:FunctionalProperty .

mifc:measured_compound_denominator_unit a owl:DatatypeProperty ;
  rdfs:comment "A unit code representing the denominator units of a measured measured_compound, e.g., g (for portion of per 100g)." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

mifc:measured_compound_data_points_number a owl:DatatypeProperty ;
  rdfs:comment "An integer representing the number of individual samples that comprise a measured_compound sample. 1 if an individual sample >1 if an aggregation of samples." ;
  rdfs:range xsd:integer ;
  a owl:FunctionalProperty .

mifc:measured_compound_record_date a owl:DatatypeProperty ;
  rdfs:comment "A datetime value representing a known recorded date pertaining to an analyzed sample." ;
  skos:note "Allows for ambiguity of date record relative to measured_compound_analysis_date. Use this if a date for a record is know but it isn't specifically the date of analysis." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

mifc:measured_compound_analysis_date a owl:DatatypeProperty ;
  rdfs:comment "A datetime value representing the date in which a measured_compound was analyzed." ;
  skos:note "Use this field if the exact date of analysis is known if there is date ambiguity use measured_compound_record_date." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

mifc:measured_compound_comment a owl:DatatypeProperty ;
  rdfs:comment "A comment relating to measured component." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

mifc:measured_compound_derivation_type a owl:DatatypeProperty ;
  rdfs:comment "A controlled vocabulary term denoting how the measured_compound was generated, (e.g., Analytical or Calculated)." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

mifc:measured_compound_limit_of_quantitation a owl:DatatypeProperty ;
  rdfs:comment "A string representing the lowest analyte concentration likely to be reliably distinguished from the Limit of Blank (LoB) and at which detection is feasible. Where LoB is the highest apparent analyte concentration expected to be found when replicates of a blank sample containing no analyte are tested." ;
  skos:note "Definition reference from https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2556583/" ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

mifc:laboratory_sample_aggregation_minimum_measured_compound_value a owl:DatatypeProperty ;
  rdfs:comment "A float representing the minimum measured compound value of an aggregation of samples." ;
  rdfs:range xsd:float ;
  a owl:FunctionalProperty .

mifc:laboratory_sample_aggregation_maximum_measured_compound_value a owl:DatatypeProperty ;
  rdfs:comment "A float representing the maximum measured compound value of an aggregation of samples." ;
  rdfs:range xsd:float ;
  a owl:FunctionalProperty .

mifc:laboratory_sample_aggregation_median_measured_compound_value a owl:DatatypeProperty ;
  rdfs:comment "A float representing the median measured compound value of an aggregation of samples." ;
  rdfs:range xsd:float ;
  a owl:FunctionalProperty .

mifc:laboratory_sample_aggregation_measured_compound_standard_deviation a owl:DatatypeProperty ;
  rdfs:comment "A float representing the standard deviation of a measured compound value of an aggregation of samples." ;
  rdfs:range xsd:float ;
  a owl:FunctionalProperty .

mifc:analytical_analysis_measurement_protocol_doi a owl:DatatypeProperty ;
  rdfs:comment "A string denoting a digital object identifier link to a measurement protocol used to conduct an analytical analysis on a sample." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

mifc:analytical_analysis_measurement_method a owl:ObjectProperty ;
  rdfs:comment "A controlled vocabulary term denoting method used to conduct an analytical analysis on a sample, (e.g., HPLC)." ;
  rdfs:range mifc:AnalyticalMeasurementMethod ;
  a owl:FunctionalProperty .

mifc:laboratory_conducting_analytical_analysis a owl:DatatypeProperty ;
  rdfs:comment "A string denoting the name of a laboratory that conducted the analytical analysis of a measured_compound." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

mifc:compound_value_remeasured_for_quality_control a owl:DatatypeProperty ;
  rdfs:comment "A boolean value denoting TRUE if a measured_compound_value was measured more than once for internal laboratory quality control purposes." ;
  rdfs:range xsd:boolean ;
  a owl:FunctionalProperty .

mifc:dataset_label a owl:DatatypeProperty ;
  rdfs:comment "A string corresponding to the labeled name of dataset (e.g., \"Standard Reference (SR) Legacy\")." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

mifc:mifc_version_tag a owl:DatatypeProperty ;
  rdfs:comment "A string corresponding to a named MIFC release number (e.g., \"v1.0.1\")." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

mifc:contributor_orcid a owl:DatatypeProperty ;
  rdfs:comment "A string corresponding to a \"|\" delimited list of ORCIDs of people who contributed to a MIFC formatted dataset. See https://orcid.org/." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

mifc:organization_name a owl:DatatypeProperty ;
  rdfs:comment "A string corresponding to a \"|\" delimited list of organizations who created or help to create to a MIFC formatted dataset. E.g., \"USDA\"." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

mifc:foods a owl:ObjectProperty ;
  rdfs:range schema:Food .

mifc:components a owl:ObjectProperty ;
  rdfs:range schema:Component .

mifc:provenances a owl:ObjectProperty ;
  rdfs:range schema:Provenance .

mifc:AnalyticalMeasurementMethod a owl:Class ;
  owl:equivalentClass [
    a owl:Class ;
    owl:oneOf ( OBI:0002116 mifc:AnalyticalMeasurementMethod.GLC mifc:AnalyticalMeasurementMethod.GC mifc:AnalyticalMeasurementMethod.NEPHELOMETRY mifc:AnalyticalMeasurementMethod.GRAVIMETRIC mifc:AnalyticalMeasurementMethod.FLUOROMETRIC mifc:AnalyticalMeasurementMethod.KJELDAHL )
  ] .

OBI:0002116 a owl:NamedIndividual ;
  skos:notation "HPLC" ;
  rdfs:comment "High performance liquid chromotography" ;
  a mifc:AnalyticalMeasurementMethod .

mifc:AnalyticalMeasurementMethod.GLC a owl:NamedIndividual ;
  skos:notation "GLC" ;
  rdfs:comment "gas-liquid chromatography" ;
  a mifc:AnalyticalMeasurementMethod .

mifc:AnalyticalMeasurementMethod.GC a owl:NamedIndividual ;
  skos:notation "GC" ;
  a mifc:AnalyticalMeasurementMethod .

mifc:AnalyticalMeasurementMethod.NEPHELOMETRY a owl:NamedIndividual ;
  skos:notation "Nephelometry" ;
  a mifc:AnalyticalMeasurementMethod .

mifc:AnalyticalMeasurementMethod.GRAVIMETRIC a owl:NamedIndividual ;
  skos:notation "Gravimetric" ;
  a mifc:AnalyticalMeasurementMethod .

mifc:AnalyticalMeasurementMethod.FLUOROMETRIC a owl:NamedIndividual ;
  skos:notation "Fluorometric" ;
  a mifc:AnalyticalMeasurementMethod .

mifc:AnalyticalMeasurementMethod.KJELDAHL a owl:NamedIndividual ;
  skos:notation "Kjeldahl" ;
  a mifc:AnalyticalMeasurementMethod .

mifc:FoodPreparationState a owl:Class ;
  owl:equivalentClass [
    a owl:Class ;
    owl:oneOf ( mifc:FoodPreparationState.RAW mifc:FoodPreparationState.FRESH mifc:FoodPreparationState.CHILLED mifc:FoodPreparationState.FOODSAFE_CHILLED mifc:FoodPreparationState.FRESH_CHILLED mifc:FoodPreparationState.FROZEN mifc:FoodPreparationState.FRESH_FROZEN mifc:FoodPreparationState.UNRIPE mifc:FoodPreparationState.SLIGHTLY_RIPE mifc:FoodPreparationState.RIPE mifc:FoodPreparationState.OVERRIPE mifc:FoodPreparationState.DRIED mifc:FoodPreparationState.NATURALLY_DRIED mifc:FoodPreparationState.ARTIFICIALLY_DRIED mifc:FoodPreparationState.HEAT_TREATED mifc:FoodPreparationState.IRRADIATED )
  ] .

mifc:FoodPreparationState.RAW a owl:NamedIndividual ;
  skos:notation "raw" ;
  a mifc:FoodPreparationState .

mifc:FoodPreparationState.FRESH a owl:NamedIndividual ;
  skos:notation "fresh" ;
  a mifc:FoodPreparationState .

mifc:FoodPreparationState.CHILLED a owl:NamedIndividual ;
  skos:notation "chilled" ;
  a mifc:FoodPreparationState .

mifc:FoodPreparationState.FOODSAFE_CHILLED a owl:NamedIndividual ;
  skos:notation "foodsafe chilled" ;
  a mifc:FoodPreparationState .

mifc:FoodPreparationState.FRESH_CHILLED a owl:NamedIndividual ;
  skos:notation "fresh chilled" ;
  a mifc:FoodPreparationState .

mifc:FoodPreparationState.FROZEN a owl:NamedIndividual ;
  skos:notation "frozen" ;
  a mifc:FoodPreparationState .

mifc:FoodPreparationState.FRESH_FROZEN a owl:NamedIndividual ;
  skos:notation "fresh frozen" ;
  a mifc:FoodPreparationState .

mifc:FoodPreparationState.UNRIPE a owl:NamedIndividual ;
  skos:notation "unripe" ;
  a mifc:FoodPreparationState .

mifc:FoodPreparationState.SLIGHTLY_RIPE a owl:NamedIndividual ;
  skos:notation "slightly ripe" ;
  a mifc:FoodPreparationState .

mifc:FoodPreparationState.RIPE a owl:NamedIndividual ;
  skos:notation "ripe" ;
  a mifc:FoodPreparationState .

mifc:FoodPreparationState.OVERRIPE a owl:NamedIndividual ;
  skos:notation "overripe" ;
  a mifc:FoodPreparationState .

mifc:FoodPreparationState.DRIED a owl:NamedIndividual ;
  skos:notation "dried" ;
  a mifc:FoodPreparationState .

mifc:FoodPreparationState.NATURALLY_DRIED a owl:NamedIndividual ;
  skos:notation "naturally dried" ;
  a mifc:FoodPreparationState .

mifc:FoodPreparationState.ARTIFICIALLY_DRIED a owl:NamedIndividual ;
  skos:notation "artificially dried" ;
  a mifc:FoodPreparationState .

mifc:FoodPreparationState.HEAT_TREATED a owl:NamedIndividual ;
  skos:notation "heat treated" ;
  a mifc:FoodPreparationState .

mifc:FoodPreparationState.IRRADIATED a owl:NamedIndividual ;
  skos:notation "irradiated" ;
  a mifc:FoodPreparationState .

mifc:FoodAcquisitionLocationType a owl:Class ;
  owl:equivalentClass [
    a owl:Class ;
    owl:oneOf ( mifc:FoodAcquisitionLocationType.FIELD mifc:FoodAcquisitionLocationType.FRESH_MARKET mifc:FoodAcquisitionLocationType.SMALL_GROCERY mifc:FoodAcquisitionLocationType.SUPERMARKET mifc:FoodAcquisitionLocationType.BIOBANK mifc:FoodAcquisitionLocationType.UNKNOWN mifc:FoodAcquisitionLocationType.OTHER )
  ] .

mifc:FoodAcquisitionLocationType.FIELD a owl:NamedIndividual ;
  skos:notation "field" ;
  a mifc:FoodAcquisitionLocationType .

mifc:FoodAcquisitionLocationType.FRESH_MARKET a owl:NamedIndividual ;
  skos:notation "fresh market" ;
  a mifc:FoodAcquisitionLocationType .

mifc:FoodAcquisitionLocationType.SMALL_GROCERY a owl:NamedIndividual ;
  skos:notation "small grocery" ;
  a mifc:FoodAcquisitionLocationType .

mifc:FoodAcquisitionLocationType.SUPERMARKET a owl:NamedIndividual ;
  skos:notation "supermarket" ;
  a mifc:FoodAcquisitionLocationType .

mifc:FoodAcquisitionLocationType.BIOBANK a owl:NamedIndividual ;
  skos:notation "biobank" ;
  a mifc:FoodAcquisitionLocationType .

mifc:FoodAcquisitionLocationType.UNKNOWN a owl:NamedIndividual ;
  skos:notation "unknown" ;
  a mifc:FoodAcquisitionLocationType .

mifc:FoodAcquisitionLocationType.OTHER a owl:NamedIndividual ;
  skos:notation "other" ;
  a mifc:FoodAcquisitionLocationType .

dcterms:license a owl:AnnotationProperty .

vann:preferredNamespacePrefix a owl:AnnotationProperty .

vann:preferredNamespaceUri a owl:AnnotationProperty .

skos:closeMatch a owl:AnnotationProperty .

skos:exactMatch a owl:AnnotationProperty .

skos:note a owl:AnnotationProperty .

skos:notation a owl:AnnotationProperty .

sh:declare a owl:AnnotationProperty .

sh:prefix a owl:AnnotationProperty .

sh:namespace a owl:AnnotationProperty .
