PREFIX food: <http://data.lirmm.fr/ontologies/food#>
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#>

food:NutritionData a rdfs:Class ;
  rdfs:label "Nutrition data for a food item (recipe, product or ingredient)" .

food:Ingredient a rdfs:Class ;
  rdfs:label "An ingredient : a certain quantity of food that is part of another food" ;
  rdfs:comment """Represents an ingredient line in a recipe (for a Dish) or an ingredient listed in the ingredient list (for a Product).

We need to specify a quantity and unit, so the relation is not binary. So the value for the containsIngredient property of a Food object is an object of the IngredientAmount class (instead of a Food object or string directly). See http://www.w3.org/TR/swbp-n-aryRelations/ for details.""" .

food:quantity a rdf:Property ;
  rdfs:label "quantity of ingredient in any unit (unit specified in unit)" ;
  rdfs:comment "e.g. 1 clove of garlic -> quantity = 1, unit = clove, ingredient = garlic (or Food object for garlic)" ;
  rdfs:domain food:Ingredient ;
  rdfs:range <https://w3id.org/linkml/Any> .

food:rank a rdf:Property ;
  rdfs:label "Rank of an ingredient in an ingredient list ordered by quantity (e.g. food products)" ;
  rdfs:domain food:Ingredient ;
  rdfs:range xsd:integer .

food:food a rdf:Property ;
  rdfs:label "Food that is an ingredient of another food" ;
  rdfs:comment "String or Food object" ;
  rdfs:domain food:Ingredient ;
  rdfs:range food:Food .

food:percent a rdf:Property ;
  rdfs:label "Quantity of ingredient in percentage % of the total amount of ingredients in a Food" ;
  rdfs:comment "Useful in particular for food products" ;
  rdfs:domain food:Ingredient ;
  rdfs:range <https://w3id.org/linkml/Any> .

food:unit a rdf:Property ;
  rdfs:label "Unit for the specified quantity" ;
  rdfs:comment "e.g. 1 clove of garlic -> quantity = 1, unit = clove, ingredient = garlic (or Food object for garlic)" ;
  rdfs:domain food:Ingredient ;
  rdfs:range xsd:string .

<http://www.w3.org/ns/adms#SemanticDistribution> a rdfs:Class .

food:Food a rdfs:Class ;
  rdfs:label "Anything that can be eaten: a basic Food item (e.g. salt), a Dish made with a recipe, a manufactured Food Product" .

food:copperPer100g a rdf:Property ;
  rdfs:label "Nutrition data: copper (in g) per 100g (or 100ml for liquids)" ;
  rdfs:domain food:Food ;
  rdfs:range xsd:decimal .

food:molybdenumPer100g a rdf:Property ;
  rdfs:label "Nutrition data: molybdenum (in g) per 100g (or 100ml for liquids)" ;
  rdfs:domain food:Food ;
  rdfs:range xsd:decimal .

food:cholesterolPer100g a rdf:Property ;
  rdfs:label "Nutrition data: cholesterol (in g) per 100g (or 100ml for liquids)" ;
  rdfs:domain food:Food ;
  rdfs:range xsd:decimal .

food:vitaminKPer100g a rdf:Property ;
  rdfs:label "Nutrition data: vitamin K (in g) per 100g (or 100ml for liquids)" ;
  rdfs:domain food:Food ;
  rdfs:range xsd:decimal .

food:zincPer100g a rdf:Property ;
  rdfs:label "Nutrition data: zinc (in g) per 100g (or 100ml for liquids)" ;
  rdfs:domain food:Food ;
  rdfs:range xsd:decimal .

food:containsIngredient a rdf:Property ;
  rdfs:label "Specifies an ingredient contained in the Food object" ;
  rdfs:comment """Value is an object of the class Ingredient so that we can specify the quantity, the unit, and the nature of the ingredient (string or other Food object)

e.g. 1 clove of garlic -> quantity = 1, unit = clove, ingredient = garlic (or Food object for garlic)""" ;
  rdfs:domain food:Food ;
  rdfs:range food:Ingredient .

food:vitaminB2Per100g a rdf:Property ;
  rdfs:label "Nutrition data: vitamin B2 (in g) per 100g (or 100ml for liquids)" ;
  rdfs:comment "Note that vitamin B2 is also known as riboflavin" ;
  rdfs:domain food:Food ;
  rdfs:range xsd:decimal .

food:omega3Fatper100g a rdf:Property ;
  rdfs:label "Nutrition data: omega 3 fat (in g) per 100g (or 100ml for liquids)" ;
  rdfs:domain food:Food ;
  rdfs:range xsd:decimal .

food:fluoridePer100g a rdf:Property ;
  rdfs:label "Nutrition data: fluoride (in g) per 100g (or 100ml for liquids)" ;
  rdfs:domain food:Food ;
  rdfs:range xsd:decimal .

food:seleniumPer100g a rdf:Property ;
  rdfs:label "Nutrition data: selenium (in g) per 100g (or 100ml for liquids)" ;
  rdfs:domain food:Food ;
  rdfs:range xsd:decimal .

food:starchPer100g a rdf:Property ;
  rdfs:label "Nutrition data: starch (in g) per 100g (or 100ml for liquids)" ;
  rdfs:domain food:Food ;
  rdfs:range xsd:decimal .

food:vitaminEPer100g a rdf:Property ;
  rdfs:label "Nutrition data: vitamin E (in g) per 100g (or 100ml for liquids)" ;
  rdfs:domain food:Food ;
  rdfs:range xsd:decimal .

food:vitaminB3Per100g a rdf:Property ;
  rdfs:label "Nutrition data: vitamin B3 (in g) per 100g (or 100ml for liquids)" ;
  rdfs:comment "Note that vitamin B3 is also known as vitamin Pp or niacin or nicotinic acid" ;
  rdfs:domain food:Food ;
  rdfs:range xsd:decimal .

food:chloridePer100g a rdf:Property ;
  rdfs:label "Nutrition data: chloride (in g) per 100g (or 100ml for liquids)" ;
  rdfs:domain food:Food ;
  rdfs:range xsd:decimal .

food:omega6FatPer100g a rdf:Property ;
  rdfs:label "Nutrition data: omega 6 fat (in g) per 100g (or 100ml for liquids)" ;
  rdfs:domain food:Food ;
  rdfs:range xsd:decimal .

food:vitaminB1Per100g a rdf:Property ;
  rdfs:label "Nutrition data: vitamin B1 (in g) per 100g (or 100ml for liquids)" ;
  rdfs:comment "Note that vitamin B1 is also known as thiamin" ;
  rdfs:domain food:Food ;
  rdfs:range xsd:decimal .

food:vitaminCPer100g a rdf:Property ;
  rdfs:label "Nutrition data: vitamin C (in g) per 100g (or 100ml for liquids)" ;
  rdfs:comment "Note that vitamin C is also known as L-ascorbic acid" ;
  rdfs:domain food:Food ;
  rdfs:range xsd:decimal .

food:energyPer100g a rdf:Property ;
  rdfs:label "Nutrition data: energy (in kJ) per 100g (or 100ml for liquids)" ;
  rdfs:domain food:Food ;
  rdfs:range <https://w3id.org/linkml/Any> .

food:polyunsaturatedFatPer100g a rdf:Property ;
  rdfs:label "Nutrition data: polyunsaturated fat (in g) per 100g (or 100ml for liquids)" ;
  rdfs:domain food:Food ;
  rdfs:range xsd:decimal .

food:vitaminB12Per100g a rdf:Property ;
  rdfs:label "Nutrition data: vitamin B12 (in g) per 100g (or 100ml for liquids)" ;
  rdfs:domain food:Food ;
  rdfs:range xsd:decimal .

food:ironPer100g a rdf:Property ;
  rdfs:label "Nutrition data: ironPer100g (in g) per 100g (or 100ml for liquids)" ;
  rdfs:domain food:Food ;
  rdfs:range xsd:decimal .

food:fatPer100g a rdf:Property ;
  rdfs:label "Nutrition data: fat (in g) per 100g (or 100ml for liquids)" ;
  rdfs:domain food:Food ;
  rdfs:range xsd:decimal .

food:chromiumPer100g a rdf:Property ;
  rdfs:label "Nutrition data: chromium (in g) per 100g (or 100ml for liquids)" ;
  rdfs:domain food:Food ;
  rdfs:range xsd:decimal .

food:bicarbonatePer100g a rdf:Property ;
  rdfs:label "Nutrition data: bicarbonate (in g) per 100g (or 100ml for liquids)" ;
  rdfs:domain food:Food ;
  rdfs:range xsd:decimal .

food:monounsaturatedFatPer100g a rdf:Property ;
  rdfs:label "Nutrition data: monounsaturated fat (in g) per 100g (or 100ml for liquids)" ;
  rdfs:domain food:Food ;
  rdfs:range xsd:decimal .

food:pantothenicAcidPer100g a rdf:Property ;
  rdfs:label "Nutrition data: pantothenic acid (in g) per 100g (or 100ml for liquids)" ;
  rdfs:comment "Note that pantothenic acid is also known as vitamin B5" ;
  rdfs:domain food:Food ;
  rdfs:range xsd:decimal .

food:manganesePer100g a rdf:Property ;
  rdfs:label "Nutrition data: manganese (in g) per 100g (or 100ml for liquids)" ;
  rdfs:domain food:Food ;
  rdfs:range xsd:decimal .

food:transFatPer100g a rdf:Property ;
  rdfs:label "Nutrition data: trans fat (in g) per 100g (or 100ml for liquids)" ;
  rdfs:domain food:Food ;
  rdfs:range xsd:decimal .

food:ingredientListAsText a rdf:Property ;
  rdfs:label "Text of the list of ingredients" ;
  rdfs:comment "Full text of the list of ingredients of a Food item (Product or Dish). May contain more details than what can be listed in the containsIngredient properties." ;
  rdfs:domain food:Food ;
  rdfs:range xsd:string .

food:polyolsPer100g a rdf:Property ;
  rdfs:label "Nutrition data: polyols (in g) per 100g (or 100ml for liquids)" ;
  rdfs:domain food:Food ;
  rdfs:range xsd:decimal .

food:magnesiumPer100g a rdf:Property ;
  rdfs:label "Nutrition data: magnesium (in g) per 100g (or 100ml for liquids)" ;
  rdfs:domain food:Food ;
  rdfs:range xsd:decimal .

food:potassiumPer100g a rdf:Property ;
  rdfs:label "Nutrition data: potassium (in g) per 100g (or 100ml for liquids)" ;
  rdfs:domain food:Food ;
  rdfs:range xsd:decimal .

food:phosphorusPer100g a rdf:Property ;
  rdfs:label "Nutrition data: phosphorus (in g) per 100g (or 100ml for liquids)" ;
  rdfs:domain food:Food ;
  rdfs:range xsd:decimal .

food:carbohydratesPer100g a rdf:Property ;
  rdfs:label "Nutrition data: carbohydrates (in g) per 100g (or 100ml for liquids) " ;
  rdfs:domain food:Food ;
  rdfs:range xsd:decimal .

food:proteinsPer100g a rdf:Property ;
  rdfs:label "Nutrition data: proteins (in g) per 100g (or 100ml for liquids)" ;
  rdfs:domain food:Food ;
  rdfs:range xsd:decimal .

food:vitaminDPer100g a rdf:Property ;
  rdfs:label "Nutrition data: vitamin D (in g) per 100g (or 100ml for liquids)" ;
  rdfs:domain food:Food ;
  rdfs:range xsd:decimal .

food:biotinPer100g a rdf:Property ;
  rdfs:label "Nutrition data: biotin (in g) per 100g (or 100ml for liquids)" ;
  rdfs:comment "Note that biotin is also known as vitamin H or vitamin B7" ;
  rdfs:domain food:Food ;
  rdfs:range xsd:decimal .

food:vitaminAPer100g a rdf:Property ;
  rdfs:label "Nutrition data: vitamin A (in g) per 100g (or 100ml for liquids)" ;
  rdfs:domain food:Food ;
  rdfs:range xsd:decimal .

food:vitaminB6Per100g a rdf:Property ;
  rdfs:label "Nutrition data: vitamin B6 (in g) per 100g (or 100ml for liquids)" ;
  rdfs:domain food:Food ;
  rdfs:range xsd:decimal .

food:vitaminB9Per100g a rdf:Property ;
  rdfs:label "Nutrition data: vitamin B9 (in g) per 100g (or 100ml for liquids)" ;
  rdfs:comment "Note that vitamin B9 is also known as folacin or folic acid or vitamin M" ;
  rdfs:domain food:Food ;
  rdfs:range xsd:decimal .

food:calciumPer100g a rdf:Property ;
  rdfs:label "Nutrition data: calcium (in g) per 100g (or 100ml for liquids)" ;
  rdfs:domain food:Food ;
  rdfs:range xsd:decimal .

food:iodinePer100g a rdf:Property ;
  rdfs:label "Nutrition data: iodine (in g) per 100g (or 100ml for liquids)" ;
  rdfs:domain food:Food ;
  rdfs:range xsd:decimal .

food:carbonFootprintPer100g a rdf:Property ;
  rdfs:label "Carbon foorprint (in g) per 100g (or 100ml for liquids)" ;
  rdfs:domain food:Food ;
  rdfs:range xsd:decimal .

<http://xmlns.com/foaf/0.1/Person> a rdfs:Class .

food:FoodProduct a rdfs:Class ;
  rdfs:label "A manufactured food product" ;
  rdfs:subClassOf food:Food .

food:code a rdf:Property ;
  rdfs:label "Identifier: usually a barcode such as EAN-13 (European Article Numbering) or UPC-A (Universal Product Code)" ;
  rdfs:domain food:FoodProduct ;
  rdfs:range <https://w3id.org/linkml/Any> .

food:Recipe a rdfs:Class ;
  rdfs:label "Recipe" ;
  rdfs:comment "A recipe as a set of ingredients together with the protocol to prepare the resulting food" .

<http://purl.org/dc/terms/Agent> a rdfs:Class .

<https://w3id.org/linkml/Any> a rdfs:Class ;
  rdfs:comment "An unconstrained type or object" .

food:Dish a rdfs:Class ;
  rdfs:label "A dish is a food item with a recipe" ;
  rdfs:subClassOf food:Food .

food:silicaPer100g a rdf:Property ;
  rdfs:label "Nutrition data: silica (in g) per 100g (or 100ml for liquids)" ;
  rdfs:domain food:Dish ;
  rdfs:range xsd:decimal .

food:fiberPer100g a rdf:Property ;
  rdfs:label "Nutrition data: fiber (in g) per 100g (or 100ml for liquids)" ;
  rdfs:range <https://w3id.org/linkml/Any> .

food:netWeight a rdf:Property ;
  rdfs:label "net weight of a food product (g) " ;
  rdfs:range <https://w3id.org/linkml/Any> .

food:saltEquivalentPer100g a rdf:Property ;
  rdfs:label "Nutrition data: equivalent in salt (in g) per 100g (or 100ml for liquids)" ;
  rdfs:range <https://w3id.org/linkml/Any> .

food:saturatedFatPer100g a rdf:Property ;
  rdfs:label "Nutrition data: saturated fat (in g) per 100g (or 100ml for liquids)" ;
  rdfs:range <https://w3id.org/linkml/Any> .

food:sodiumPer100g a rdf:Property ;
  rdfs:label "Nutrition data: sodium (in g) per 100g (or 100ml for liquids)" ;
  rdfs:range <https://w3id.org/linkml/Any> .

food:sugarsPer100g a rdf:Property ;
  rdfs:label "Nutrition data: sugars (in g) per 100g (or 100ml for liquids)" ;
  rdfs:range <https://w3id.org/linkml/Any> .

food:vitaminPpPer100g a rdf:Property ;
  rdfs:label "vitaminPpPer100g" ;
  rdfs:range <https://w3id.org/linkml/Any> .
