Selaa lähdekoodia

Add garden domain helpers for cycles and fixtures

Lukas Goldschmidt 1 kuukausi sitten
vanhempi
commit
9c3c1890c2

+ 5 - 0
README.md

@@ -15,6 +15,7 @@ The garden layer sits on top of `virtuoso_mcp`. It knows your garden-specific UR
 - `path_traverse(subject_uri, property_path, direction="outgoing", limit=10)` – walks a property sequence from the subject and returns each step’s bindings.
 - `property_usage_statistics(property_uri, examples_limit=5)` – reports how often a property is used and includes sample subjects/objects.
 - `batch_insert(ttl, graph=None)` – pushes a TTL snippet (or multiple triples via TTL) into the chosen graph in a single request.
+- `load_examples(files=None, graph=None)` – loads TTL fixtures from `garden_layer/examples/` via the `garden_load_examples` tool (guarded by `MCP_ALLOW_EXAMPLE_LOAD`).
 
 These helpers keep domain code focused on planned workflows while still leveraging the generic MCP toolset.
 
@@ -25,6 +26,10 @@ These helpers keep domain code focused on planned workflows while still leveragi
 
 This split allows additional specialized layers to reuse the same generic ontology tooling without copy/paste.
 
+### Example fixtures
+
+The domain-specific `examples/` directory now lives inside this package. The MCP exposes a `garden_load_examples` helper so you can insert those fixtures through `/mcp` (just set `MCP_ALLOW_EXAMPLE_LOAD=true` first). The loader calls `garden_layer.examples/*.ttl` and inserts them into the `GARDEN_EXAMPLE_GRAPH` (defaulting to `GRAPH`), which is useful for reproducible tests or for warming up the data set before running higher-level helpers.
+
 ## Example
 
 ```python

+ 1035 - 0
examples/export_2026-03-26T14_10_20.ttl

@@ -0,0 +1,1035 @@
+@prefix rdf:	<http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix ns1:	<http://world.eu.org/example1#> .
+@prefix cb:	<http://world.eu.org/cannabis-breeding#> .
+ns1:Strain_king_kong	rdf:type	cb:Strain .
+@prefix rdfs:	<http://www.w3.org/2000/01/rdf-schema#> .
+ns1:Strain_king_kong	rdfs:label	"King Kong" .
+@prefix dc:	<http://purl.org/dc/elements/1.1/> .
+ns1:Strain_king_kong	dc:description	"Resin, speed and yield are the main values of this plant. We use our Ed Rosenthal Super Bud mom with an extreme sativa production, pollinated by our  selected Chronic reversed, resulting in a rapid flowering plant." ;
+	dc:creator	"Dr. Underground" .
+ns1:TraitObservation_9b3db560-6dc	rdf:type	cb:TraitObservation ;
+	cb:observedOnPlant	ns1:Plant_518e8712-986 ;
+	cb:observesTrait	ns1:GrowingTrait_c88519ce-902 .
+@prefix xsd:	<http://www.w3.org/2001/XMLSchema#> .
+ns1:TraitObservation_9b3db560-6dc	cb:hasRating	65.0 .
+ns1:TraitObservation_107fec08-c46	rdf:type	cb:TraitObservation ;
+	cb:observedOnPlant	ns1:Plant_cg_2025_1 ;
+	cb:observesTrait	ns1:GrowingTrait_6bfe2ca4-c2b ;
+	cb:hasRating	0.2999999999999999889 .
+ns1:TraitObservation_6cbc78e0-a91	rdf:type	cb:TraitObservation ;
+	cb:observedOnPlant	ns1:Plant_lol_1 ;
+	cb:observesTrait	ns1:GrowingTrait_d50e5fa6-731 ;
+	cb:hasRating	0.80000000000000004441 .
+ns1:TraitObservation_061725b5-a2b	rdf:type	cb:TraitObservation ;
+	cb:observedOnPlant	ns1:Plant_lol_2 ;
+	cb:observesTrait	ns1:GrowingTrait_d50e5fa6-731 ;
+	cb:hasRating	0.2999999999999999889 .
+ns1:TraitObservation_cf53321f-459	rdf:type	cb:TraitObservation ;
+	cb:observedOnPlant	ns1:Plant_71d04a88-ff6 ;
+	cb:observesTrait	ns1:GrowingTrait_7g8h9i0j-1b2 ;
+	cb:hasRating	0.2999999999999999889 .
+ns1:TraitObservation_0040fe7e-617	rdf:type	cb:TraitObservation ;
+	cb:observedOnPlant	ns1:Plant_178d9bb9-aa4 ;
+	cb:observesTrait	ns1:GrowingTrait_237ea4ab-77d ;
+	cb:hasRating	0.0 .
+ns1:GrowingTrait_a1262ac7-cab	rdf:type	cb:GrowingTrait ;
+	rdfs:label	"Mango Scent" ;
+	dc:description	"Ed Rosenthal Mango Aroma" .
+ns1:TraitObservation_c830f88a-349	rdf:type	cb:TraitObservation ;
+	cb:observedOnPlant	ns1:Plant_178d9bb9-aa4 ;
+	cb:observesTrait	ns1:GrowingTrait_a1262ac7-cab ;
+	cb:hasRating	0.69999999999999995559 .
+ns1:Plant_71d04a88-ff6	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"test 23" ;
+	cb:belongsToStrain	ns1:Strain_lucky_experimental_line ;
+	cb:hasGender	"male" ;
+	dc:description	"" ;
+	cb:grownFromSeedProduct	ns1:SeedProduct_267455ab-26f ;
+	cb:isAlive	"true"^^xsd:boolean .
+ns1:TraitObservation_a3863b6f-31e	rdf:type	cb:TraitObservation ;
+	cb:observedOnPlant	ns1:Plant_8606358c-b52 ;
+	cb:observesTrait	ns1:GrowingTrait_d50e5fa6-731 ;
+	cb:hasRating	0.010000000000000000208 .
+@prefix dcterms:	<http://purl.org/dc/terms/> .
+ns1:TraitObservation_a3863b6f-31e	dcterms:date	"2025-06-28"^^xsd:date .
+ns1:TraitObservation_7cf0f819-229	rdf:type	cb:TraitObservation ;
+	cb:observedOnPlant	ns1:Plant_e1a57ac8-7de ;
+	cb:observesTrait	ns1:GrowingTrait_40d0df21-b7c ;
+	cb:hasRating	0.010000000000000000208 .
+ns1:TraitObservation_210dcbf2-e59	rdf:type	cb:TraitObservation ;
+	cb:observedOnPlant	ns1:Plant_e1a57ac8-7de ;
+	cb:observesTrait	ns1:GrowingTrait_d50e5fa6-731 ;
+	cb:hasRating	0.02999999999999999889 .
+ns1:TraitObservation_617a3673-53d	rdf:type	cb:TraitObservation ;
+	cb:observedOnPlant	ns1:Plant_518e8712-986 ;
+	cb:observesTrait	ns1:GrowingTrait_40d0df21-b7c ;
+	cb:hasRating	0.32000000000000000666 .
+ns1:GrowingTrait_237ea4ab-77d	rdf:type	cb:GrowingTrait ;
+	rdfs:label	"Hermaphroditism" ;
+	dc:description	"The tendency of a plant to develop flowers of the opposite sex" .
+ns1:TraitObservation_59ddea67-d6a	rdf:type	cb:TraitObservation ;
+	cb:observedOnPlant	ns1:Plant_6f3a97f9-a26 ;
+	cb:observesTrait	ns1:GrowingTrait_237ea4ab-77d ;
+	cb:hasRating	0.010000000000000000208 .
+ns1:TraitObservation_3950d73b-bd5	rdf:type	cb:TraitObservation ;
+	cb:observedOnPlant	ns1:Plant_15dd9bc2-f73 ;
+	cb:observesTrait	ns1:GrowingTrait_a1262ac7-cab ;
+	cb:hasRating	0.5 .
+ns1:GrowingTrait_e9f15070-aab	rdf:type	cb:GrowingTrait ;
+	rdfs:label	"Skunk Smell" ;
+	dc:description	"volatile sulfur compounds,\nhints of decay" .
+ns1:TraitObservation_8a4aed29-4dd	rdf:type	cb:TraitObservation ;
+	cb:observedOnPlant	ns1:Plant_lol_1 ;
+	cb:observesTrait	ns1:GrowingTrait_e9f15070-aab ;
+	cb:hasRating	0.80000000000000004441 .
+ns1:TraitObservation_77cc0b81-0b6	rdf:type	cb:TraitObservation ;
+	cb:observedOnPlant	ns1:Plant_lol_2 ;
+	cb:observesTrait	ns1:GrowingTrait_e9f15070-aab ;
+	cb:hasRating	0.10000000000000000555 .
+ns1:SeedProduct_7a5e357f-fda	rdf:type	cb:SeedProduct ;
+	rdfs:label	"lol1xkkk3" ;
+	cb:seedsRemaining	9 ;
+	cb:seedCount	9 ;
+	dc:description	"" ;
+	cb:seedProductFromPollination	ns1:Pollination_8c77b372-6a5 .
+ns1:LogItem_e7f675f5-9dd	rdf:type	cb:LogItem ;
+	rdfs:label	"sprouted seeds" ;
+	dc:description	"i put 4 Cookie-X (no mark) and 4 Kerosene-X (marked with white tape) in substrate in order to sprout." ;
+	cb:hasLogDateTime	"2025-07-10T11:52:00"^^xsd:dateTime .
+ns1:SeedProduct_1af238b4-f11	rdf:type	cb:SeedProduct ;
+	rdfs:label	"lol2-x" ;
+	dc:description	"" ;
+	cb:seedProductFromPollination	ns1:Pollination_714b321b-25d .
+ns1:LogItem_f024716c-132	rdf:type	cb:LogItem ;
+	rdfs:label	"first breakthrough" ;
+	dc:description	"one of the Cookie-X Seeds made its break through" ;
+	cb:hasLogDateTime	"2025-07-15T09:13:00"^^xsd:dateTime .
+ns1:TraitObservation_c95a5bfb-d4d	rdf:type	cb:TraitObservation ;
+	cb:observedOnPlant	ns1:Plant_lol_1 ;
+	cb:observesTrait	ns1:GrowingTrait_c88519ce-902 ;
+	cb:hasRating	56.0 .
+ns1:LogItem_a53e3821-6be	rdf:type	cb:LogItem ;
+	rdfs:label	"cuttings taken" ;
+	dc:description	"i took cuttings, 3 x SOG, and 2 x Kerosene Krash" ;
+	cb:hasLogDateTime	"2025-07-18T13:54:00"^^xsd:dateTime .
+ns1:LogItem_4eeb10e1-3b2	rdf:type	cb:LogItem ;
+	rdfs:label	"more germinations" ;
+	dc:description	"one of the Kerosene-X seeds germinated and was transplanted (mark silver), also some more Cookie-x" ;
+	cb:hasLogDateTime	"2025-07-20T09:02:00"^^xsd:dateTime .
+ns1:EndProductTrait_05fb5970-a46	rdf:type	cb:EndProductTrait ;
+	rdfs:label	"Smelliness" ;
+	dc:description	"Indicates if the end product tends to smell strong" .
+ns1:EndProductTrait_cc7e943a-222	rdf:type	cb:EndProductTrait ;
+	rdfs:label	"Calming" ;
+	dc:description	"A typical indica high, relaxing, physical" .
+ns1:GrowingTrait_c88519ce-902	rdf:type	cb:GrowingTrait ;
+	rdfs:label	"Flowering days" ;
+	dc:description	"the days in 12/12 until considered ripe" .
+ns1:GrowingTrait_d50e5fa6-731	rdf:type	cb:GrowingTrait ;
+	rdfs:label	"Flowering stretch" ;
+	dc:description	"" .
+ns1:GrowingTrait_c0545ed7-f37	rdf:type	cb:GrowingTrait ;
+	rdfs:label	"02: Citrus Burst - Limonene" ;
+	dc:description	"Fresh citrus peel, bright" .
+ns1:GrowingTrait_100477c8-f79	rdf:type	cb:GrowingTrait ;
+	rdfs:label	"04: Pine Forest - Pinene" ;
+	dc:description	"Fresh pine needles, resinous" .
+ns1:GrowingTrait_6b3bdfa2-082	rdf:type	cb:GrowingTrait ;
+	rdfs:label	"05: Floral Calm - Linalool" ;
+	dc:description	"Soft floral, lavender-like" .
+ns1:GrowingTrait_12d262b1-006	rdf:type	cb:GrowingTrait ;
+	rdfs:label	"07: Floral Pine - Terpinolene" ;
+	dc:description	"Complex floral-pine mix" .
+ns1:GrowingTrait_86ee3562-4c1	rdf:type	cb:GrowingTrait ;
+	rdfs:label	"08: Sweet Herb - Ocimene" ;
+	dc:description	"Sweet basil, minty" .
+ns1:GrowingTrait_6bfe2ca4-c2b	rdf:type	cb:GrowingTrait ;
+	rdfs:label	"09: Chamomile - Bisabolol" ;
+	dc:description	"Gentle floral, honey-like" .
+ns1:EndProductTrait_8b3e17bd-5e2	rdf:type	cb:EndProductTrait ;
+	rdfs:label	"01: Musky Earth - Myrcene" ;
+	dc:description	"Earthy, musky, clove-like, herbal musk, tropical fruit hints" .
+ns1:EndProductTrait_3cf51071-05b	rdf:type	cb:EndProductTrait ;
+	rdfs:label	"03: Spicy Pepper - Caryophyllene" ;
+	dc:description	"Black pepper, woody spice, clove, black pepper, cinnamon" .
+ns1:EndProductTrait_7e8r9t0y-1u2	rdf:type	cb:EndProductTrait ;
+	rdfs:label	"20: Sweet Pine - Carene" ;
+	dc:description	"Piney, sweet, slightly citrus, pine, lemon, cedar" .
+ns1:EndProductTrait_3p4a5s6d-7f8	rdf:type	cb:EndProductTrait ;
+	rdfs:label	"11: Rose Wood - Nerolidol" ;
+	dc:description	"Woody rose, bark-like, rose, apple, wood" .
+ns1:EndProductTrait_5l6z7x8c-9v0	rdf:type	cb:EndProductTrait ;
+	rdfs:label	"18: Sharp Pine - Camphene" ;
+	dc:description	"Sharp, piney, solvent-like, pine, turpentine, camphor" .
+ns1:EndProductTrait_5x6c7v8b-9n0	rdf:type	cb:EndProductTrait ;
+	rdfs:label	"08: Sweet Herb - Ocimene" ;
+	dc:description	"Herbal, sweet, tropical, mint, basil, orchid, pepper" .
+ns1:EndProductTrait_9q2w3e4r-5t6	rdf:type	cb:EndProductTrait ;
+	rdfs:label	"04: Pine Forest - Pinene" ;
+	dc:description	"Sharp pine, turpentine-like, pine, rosemary, basil" .
+ns1:EndProductTrait_9f0g1h2j-3k4	rdf:type	cb:EndProductTrait ;
+	rdfs:label	"17: Rose Garden - Geraniol" ;
+	dc:description	"Floral rose, slightly citrus, rose, geranium, lemon" .
+ns1:EndProductTrait_3a4s5d6f-7g8	rdf:type	cb:EndProductTrait ;
+	rdfs:label	"06: Woody Hop - Humulene" ;
+	dc:description	"Earthy hops, woody spice, hops, wood, earthy spice" .
+ns1:EndProductTrait_1n2m3q4w-5e6	rdf:type	cb:EndProductTrait ;
+	rdfs:label	"14: Menthol Wood - Borneol" ;
+	dc:description	"Sharp menthol, woody, menthol, camphor, pine" .
+ns1:EndProductTrait_9h0j1k2l-3z4	rdf:type	cb:EndProductTrait ;
+	rdfs:label	"07: Floral Pine - Terpinolene" ;
+	dc:description	"Lilac, apple, piney, lilac, nutmeg, cumin, apple" .
+ns1:EndProductTrait_9g0h1j2k-3l4	rdf:type	cb:EndProductTrait ;
+	rdfs:label	"12: Pine Rose - Guaiol" ;
+	dc:description	"Woody pine, rose hints, pine, rose, wood" .
+ns1:EndProductTrait_1m2q3w4e-5r6	rdf:type	cb:EndProductTrait ;
+	rdfs:label	"09: Chamomile - Bisabolol" ;
+	dc:description	"Sweet chamomile, slightly nutty, chamomile, honey, apple blossom" .
+ns1:EndProductTrait_1b2n3m4q-5w6	rdf:type	cb:EndProductTrait ;
+	rdfs:label	"19: Spicy Orange - Sabinene" ;
+	dc:description	"Orange spice, black pepper, orange peel, black pepper, nutmeg" .
+ns1:EndProductTrait_7t8y9u0i-1o2	rdf:type	cb:EndProductTrait ;
+	rdfs:label	"10: Citrus Wood - Valencene" ;
+	dc:description	"Sweet orange, woody, Valencia orange, wood, grapefruit" .
+ns1:EndProductTrait_7y8u9i0o-1p2	rdf:type	cb:EndProductTrait ;
+	rdfs:label	"05: Floral Calm - Linalool" ;
+	dc:description	"Sweet lavender, slightly woody, lavender, bergamot, coriander" .
+ns1:EndProductTrait_5z6x7c8v-9b0	rdf:type	cb:EndProductTrait ;
+	rdfs:label	"13: Woody Floral - Trans-Nerolidol" ;
+	dc:description	"Bark, rose, woody, wood bark, rose, apple" .
+ns1:EndProductTrait_7r8t9y0u-1i2	rdf:type	cb:EndProductTrait ;
+	rdfs:label	"15: Lemony Basil - Fenchol" ;
+	dc:description	"Citrus herbs, slightly floral, lemon, basil, ether" .
+ns1:EndProductTrait_3o4p5a6s-7d8	rdf:type	cb:EndProductTrait ;
+	rdfs:label	"16: Cooling Mint - Eucalyptol" ;
+	dc:description	"Sharp mint, medicinal, eucalyptus, mint, cooling sensation" .
+ns1:LogItem_e440f6d1-337	rdf:type	cb:LogItem ;
+	rdfs:label	"Early sample lol1" ;
+	dc:description	"I had to cut two super heavy branches of the lol1 Plant ... it grew big and flowers look dense, trichomes mostly white, still wet  " ;
+	cb:hasLogDateTime	"2025-07-07T10:06:00"^^xsd:dateTime .
+ns1:Plant_e1a57ac8-7de	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"test plant 23" ;
+	cb:belongsToStrain	ns1:Strain_lucky_experimental_line ;
+	cb:hasGender	"male" ;
+	dc:description	"" ;
+	cb:inCycle	ns1:ProductionCycle_2f6f7bc4-1fa .
+ns1:Pollination_567f1a70-e20	rdf:type	cb:Pollination ;
+	rdfs:label	"test pollination" ;
+	cb:isMaleOf	ns1:Plant_e1a57ac8-7de ;
+	cb:isFemaleOf	ns1:Plant_518e8712-986 ;
+	cb:pollinationDate	"2025-06-11"^^xsd:date .
+ns1:LogItem_abe2d240-56d	rdf:type	cb:LogItem ;
+	rdfs:label	"SOG Cutting" ;
+	dc:description	"Today i took a top cutting of the SOG 2 plant.used a tiny amount of diluted clonefix on a small spot on the stem." ;
+	cb:hasLogDateTime	"2025-06-20T19:58:00"^^xsd:dateTime .
+ns1:SeedProduct_136878d2-062	rdf:type	cb:SeedProduct ;
+	rdfs:label	"Sensi Skunk Regular Original" ;
+	cb:seedsRemaining	4 ;
+	cb:seedCount	10 ;
+	dc:description	"I ordered the Seeds via Bush Planet Vienna." .
+ns1:Plant_2b56602c-21c	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"Sensi Skunk A" ;
+	cb:belongsToStrain	ns1:Strain_sensi_skunk ;
+	cb:hasGender	"female" ;
+	dc:description	"Label A means probably most preferable phenotype." ;
+	cb:grownFromSeedProduct	ns1:SeedProduct_136878d2-062 ;
+	cb:isAlive	"false"^^xsd:boolean .
+ns1:Plant_61f6e5a9-812	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"Sensi Skunk Father" ;
+	cb:belongsToStrain	ns1:Strain_sensi_skunk ;
+	cb:hasGender	"male" ;
+	dc:description	"The male i had" ;
+	cb:grownFromSeedProduct	ns1:SeedProduct_136878d2-062 ;
+	cb:isAlive	"false"^^xsd:boolean .
+ns1:Pollination_sensi_skunk_a_53aecebb	rdf:type	cb:Pollination ;
+	rdfs:label	"Sensi Skunk A" ;
+	cb:isMaleOf	ns1:Plant_61f6e5a9-812 ;
+	cb:isFemaleOf	ns1:Plant_2b56602c-21c ;
+	cb:pollinationDate	"2023-06-15"^^xsd:date .
+ns1:Pollination_sensi_skunk_b_f4b4e0d6	rdf:type	cb:Pollination ;
+	rdfs:label	"Sensi Skunk B" ;
+	cb:isMaleOf	ns1:Plant_61f6e5a9-812 ;
+	cb:isFemaleOf	ns1:Plant_b0d9487d-3fd ;
+	cb:pollinationDate	"2023-06-15"^^xsd:date .
+ns1:Pollination_sensi_skunk_c_e442425b	rdf:type	cb:Pollination ;
+	rdfs:label	"Sensi Skunk C" ;
+	cb:isMaleOf	ns1:Plant_61f6e5a9-812 ;
+	cb:isFemaleOf	ns1:Plant_a5bd6328-1f5 ;
+	cb:pollinationDate	"2023-06-15"^^xsd:date .
+ns1:SeedProduct_7cfc9da3-06c	rdf:type	cb:SeedProduct ;
+	rdfs:label	"Sensi Skunk C" ;
+	cb:seedsRemaining	20 ;
+	cb:seedCount	20 ;
+	dc:description	"" ;
+	cb:seedProductFromPollination	ns1:Pollination_sensi_skunk_c_e442425b .
+ns1:EndProductTrait_7ff7a559-1e1	rdf:type	cb:EndProductTrait ;
+	rdfs:label	"Energizing" ;
+	dc:description	"A sativa high, uplifting, inspiring" .
+ns1:GrowingTrait_40d0df21-b7c	rdf:type	cb:GrowingTrait ;
+	rdfs:label	"01: Musky Earth - Myrcene" ;
+	dc:description	"Green, vegetal, slightly sweet" .
+ns1:GrowingTrait_377856ad-134	rdf:type	cb:GrowingTrait ;
+	rdfs:label	"03: Spicy Pepper - Caryophyllene" ;
+	dc:description	"Green pepper, fresh spice" .
+ns1:GrowingTrait_97b7872b-5e8	rdf:type	cb:GrowingTrait ;
+	rdfs:label	"06: Woody Hop - Humulene" ;
+	dc:description	"Fresh hops, green wood" .
+ns1:GrowingTrait_eeb9a078-246	rdf:type	cb:GrowingTrait ;
+	rdfs:label	"10: Citrus Wood - Valencene" ;
+	dc:description	"Fresh orange wood" .
+ns1:EndProductTrait_0d28bb7e-032	rdf:type	cb:EndProductTrait ;
+	rdfs:label	"02: Citrus Burst - Limonene" ;
+	dc:description	"Sharp citrus, lemon zest, lemon, orange, grapefruit" .
+ns1:SeedProduct_ac4578af-305	rdf:type	cb:SeedProduct ;
+	rdfs:label	"KKK-2-X 2025-7" ;
+	dc:description	"" ;
+	cb:seedProductFromPollination	ns1:Pollination_f6c26786-198 .
+ns1:SeedProduct_3f89d567-d37	rdf:type	cb:SeedProduct ;
+	rdfs:label	"SOG-X 2025-7" ;
+	dc:description	"" ;
+	cb:seedProductFromPollination	ns1:Pollination_2ec95542-4e1 .
+ns1:SeedProduct_b685565b-56f	rdf:type	cb:SeedProduct ;
+	rdfs:label	"Banana Kush Cake - Feminized" ;
+	cb:seedsRemaining	3 ;
+	cb:seedCount	4 ;
+	dc:description	"Ordered from Sensi seeds - Research - Banana Kush Cake Feminized is 65% indica, 35% sativa. It\u2019s a new strain, created by Sensi Seeds as part of the Research project in 2021. Its hybrid genetics include Banana Kush and Wedding Cheesecake. There\u2019s some variation in the phenotypes, which can be advantageous for experimental growers. The flowering period is seven to nine weeks, and yields are large. Banana Kush Cake grows well in temperate or continental climates." .
+ns1:LogItem_8a6e3275-706	rdf:type	cb:LogItem ;
+	rdfs:label	"BKC Germination start" ;
+	dc:description	"I dropped one of the Banana Kush Cake - Feminized Seeds in the paper towel for germination" ;
+	cb:hasLogDateTime	"2025-08-09T21:22:00"^^xsd:dateTime .
+ns1:SeedProduct_985fda7c-f82	rdf:type	cb:SeedProduct ;
+	rdfs:label	"Master Kush Regular" ;
+	cb:seedsRemaining	10 ;
+	cb:seedCount	14 ;
+	dc:description	"Ordered from Sensi Seeds. Master Kush Regular from White Label is a classic for old-school indica fans. With its exotic scent that brings India right into the home, this cannabis strain enchants fans across the entire world. Whether you make hashish from it or not, the heavy, resinous buds are real THC and CBD bombs." .
+ns1:LogItem_600068d8-3f9	rdf:type	cb:LogItem ;
+	rdfs:label	"MK Germination start" ;
+	dc:description	"4 Master Kush Seeds went to a paper towel." ;
+	cb:hasLogDateTime	"2025-08-24T00:19:00"^^xsd:dateTime .
+ns1:ProductionCycle_fa04d33e-1ba	rdf:type	cb:ProductionCycle ;
+	rdfs:label	"2025-11" ;
+	dc:description	"5 Kerosene Krash and 5 Super Orange Glue Clones and some Seedlings" ;
+	cb:productionEndDate	"2025-11-01"^^xsd:date ;
+	cb:productionStartDate	"2025-08-30"^^xsd:date ;
+	cb:cycleIncludesPlant	ns1:Plant_8f41516e-da4 ,
+		ns1:Plant_c6d6ec2f-d77 ,
+		ns1:Plant_36918cf2-e58 ,
+		ns1:Plant_d81a6059-f6e ,
+		ns1:Plant_e9064487-31d ;
+	cb:growingMedium	"Coco" ;
+	cb:lightWattage	250 ;
+	cb:lightType	"HPS" ;
+	cb:isIndoor	"true"^^xsd:boolean ;
+	cb:hasLog	ns1:GrowLog_447a9d66-f7a ;
+	cb:cycleIncludesPollination	ns1:Pollination_2b2c4889-eca ,
+		ns1:Pollination_8d9b9db6-c97 ,
+		ns1:Pollination_829515cd-b73 ,
+		ns1:Pollination_65b28d3f-2fa .
+ns1:GrowLog_447a9d66-f7a	rdf:type	cb:GrowLog ;
+	rdfs:label	"Grow Log for example1#ProductionCycle_fa04d33e-1ba" .
+ns1:Plant_c6d6ec2f-d77	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"Cookie-X Female 25" ;
+	cb:belongsToStrain	ns1:Strain_lucky_experimental_line ;
+	cb:hasGender	"female" ;
+	dc:description	"Small, fragile, intense Gelato-Cream scent" ;
+	cb:grownFromPollination	ns1:Pollination_c4e2aa09-71e ;
+	cb:grownFromSeedProduct	ns1:SeedProduct_d38c8cb8-60b ;
+	cb:inCycle	ns1:ProductionCycle_fa04d33e-1ba .
+ns1:Pollination_65b28d3f-2fa	rdf:type	cb:Pollination ;
+	rdfs:label	"Cookie x Exp. Kerosene" ;
+	cb:isMaleOf	ns1:Plant_e9064487-31d ;
+	cb:isFemaleOf	ns1:Plant_c6d6ec2f-d77 ;
+	cb:pollinationDate	"2025-09-28"^^xsd:date .
+ns1:SeedProduct_7b71b88b-17f	rdf:type	cb:SeedProduct ;
+	rdfs:label	"Cookie x Exp. Kerosene 25-11" ;
+	cb:seedsRemaining	12 ;
+	cb:seedCount	12 ;
+	dc:description	"" ;
+	cb:seedProductFromPollination	ns1:Pollination_65b28d3f-2fa .
+ns1:TraitObservation_fbc94ed5-884	rdf:type	cb:TraitObservation ;
+	cb:observedOnPlant	ns1:Plant_c6d6ec2f-d77 ;
+	cb:observesTrait	ns1:GrowingTrait_c88519ce-902 ;
+	cb:hasRating	56.0 .
+ns1:GrowingTrait_afe010c3-edf	rdf:type	cb:GrowingTrait ;
+	rdfs:label	"Cookie Scent" ;
+	dc:description	"Scent of Cake or Cookies, Sweet, slightly burnt" .
+ns1:Plant_8f41516e-da4	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"Kerosene Krash 2511" ;
+	cb:belongsToStrain	ns1:Strain_kerosene_krash ;
+	cb:hasGender	"female" ;
+	dc:description	"" ;
+	cb:inCycle	ns1:ProductionCycle_fa04d33e-1ba ;
+	cb:cloneOf	ns1:Plant_90d53925-bb5 .
+ns1:Pollination_2b2c4889-eca	rdf:type	cb:Pollination ;
+	rdfs:label	"Kerosene Krash BX1 2511" ;
+	cb:isMaleOf	ns1:Plant_e9064487-31d ;
+	cb:isFemaleOf	ns1:Plant_8f41516e-da4 ;
+	cb:pollinationDate	"2025-09-28"^^xsd:date .
+ns1:Strain_12857188-2c9	rdf:type	cb:Strain ;
+	rdfs:label	"Banana Kush Cake" ;
+	dc:description	"Feminized" ;
+	dc:creator	"Sensi Seeds" .
+ns1:SeedProduct_929fc90c-c0b	rdf:type	cb:SeedProduct ;
+	rdfs:label	"Kerosene BX1 2025-11" ;
+	dc:description	"" ;
+	cb:seedProductFromPollination	ns1:Pollination_2b2c4889-eca .
+ns1:Strain_5375a587-7de	rdf:type	cb:Strain ;
+	rdfs:label	"Master Kush" ;
+	dc:description	"" ;
+	dc:creator	"White Label" .
+ns1:Plant_bad699a0-1de	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"Master Kush A" ;
+	cb:belongsToStrain	ns1:Strain_5375a587-7de ;
+	cb:hasGender	"female" ;
+	dc:description	"Mother plant " ;
+	cb:grownFromSeedProduct	ns1:SeedProduct_985fda7c-f82 ;
+	cb:inCycle	ns1:ProductionCycle_39518df1-af0 .
+ns1:LogItem_7c188c32-be2	rdf:type	cb:LogItem ;
+	rdfs:label	"germ" ;
+	dc:description	"Cookie Exp kerosene 25-11 germinate 4" ;
+	cb:hasLogDateTime	"2026-02-05T22:58:00"^^xsd:dateTime .
+ns1:Plant_5d2931af-ec9	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"Banana Kush Cake REVERSED 2603" ;
+	cb:belongsToStrain	ns1:Strain_12857188-2c9 ;
+	cb:hasGender	"male-reversed" ;
+	dc:description	"Because of sickness, i stopped spraying earlier and the pollen was plenty" ;
+	cb:inCycle	ns1:ProductionCycle_21d96b6c-179 ;
+	cb:cloneOf	ns1:Plant_70e3aaad-8be .
+ns1:Plant_c964f290-a0f	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"SOG  2026-3" ;
+	cb:belongsToStrain	ns1:Strain_a9ac3ef6-b34 ;
+	cb:hasGender	"female" ;
+	dc:description	"" ;
+	cb:inCycle	ns1:ProductionCycle_21d96b6c-179 ;
+	cb:cloneOf	ns1:Plant_bb2b7d1a-d5d .
+ns1:SeedProduct_8afb9a56-a88	rdf:type	cb:SeedProduct ;
+	rdfs:label	"MK x BKC 2026-3 FEM" ;
+	dc:description	"" ;
+	cb:seedProductFromPollination	ns1:Pollination_25c06255-99e .
+ns1:Plant_b5530257-ef9	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"Kerosene Krash 2026-3" ;
+	cb:belongsToStrain	ns1:Strain_kerosene_krash ;
+	cb:hasGender	"female" ;
+	dc:description	"" ;
+	cb:inCycle	ns1:ProductionCycle_21d96b6c-179 ;
+	cb:cloneOf	ns1:Plant_aa030e12-223 .
+ns1:ProductionCycle_c544ae17-1bd	rdf:type	cb:ProductionCycle ;
+	rdfs:label	"2026-5" ;
+	cb:productionEndDate	"2026-05-31"^^xsd:date ;
+	cb:productionStartDate	"2026-03-23"^^xsd:date ;
+	cb:growingMedium	"Coco" ;
+	cb:lightWattage	250 ;
+	cb:lightType	"HPS" ;
+	cb:isIndoor	"true"^^xsd:boolean ;
+	cb:hasLog	ns1:GrowLog_5c61a7b7-1e2 .
+ns1:GrowLog_5c61a7b7-1e2	rdf:type	cb:GrowLog ;
+	rdfs:label	"Grow Log for example1#ProductionCycle_c544ae17-1bd" .
+ns1:GrowLog_2a4eb862-824	rdf:type	cb:GrowLog ;
+	rdfs:label	"Grow Log for example1#ProductionCycle_66babb93-745" .
+ns1:Cycle_7be597b2-fdb	cb:hasLog	ns1:GrowLog_c48c7a17-15f .
+ns1:GrowLog_c48c7a17-15f	rdf:type	cb:GrowLog ;
+	rdfs:label	"Grow Log for example1#Cycle_7be597b2-fdb" .
+ns1:Pollination_f6c26786-198	rdf:type	cb:Pollination ;
+	rdfs:label	"Experimental 2" ;
+	cb:isMaleOf	ns1:Plant_178d9bb9-aa4 ;
+	cb:isFemaleOf	ns1:Plant_15dd9bc2-f73 ;
+	cb:pollinationDate	"2025-06-11"^^xsd:date .
+ns1:Pollination_c4e2aa09-71e	rdf:type	cb:Pollination ;
+	rdfs:label	"Cookie x Experimental" ;
+	cb:isMaleOf	ns1:Plant_178d9bb9-aa4 ;
+	cb:isFemaleOf	ns1:Plant_gsc_2 ;
+	cb:pollinationDate	"2025-06-11"^^xsd:date .
+ns1:Pollination_56b8b652-91a	rdf:type	cb:Pollination ;
+	rdfs:label	"Kerosene x Experimental" ;
+	cb:isMaleOf	ns1:Plant_178d9bb9-aa4 ;
+	cb:isFemaleOf	ns1:Plant_krk_2 ;
+	cb:pollinationDate	"2025-06-11"^^xsd:date .
+ns1:Cycle_2025_7	cb:hasLog	ns1:GrowLog_133a0b15-c73 .
+ns1:GrowLog_133a0b15-c73	rdf:type	cb:GrowLog ;
+	rdfs:label	"Grow Log for example1#Cycle_2025_7" .
+ns1:Plant_4b35a82b-e3e	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"test" ;
+	cb:belongsToStrain	ns1:Strain_lucky_experimental_line ;
+	cb:hasGender	"female" ;
+	dc:description	"" .
+ns1:Plant_dd4c5bf5-ed1	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"Test Plant XXX" ;
+	cb:belongsToStrain	ns1:Strain_lucky_experimental_line ;
+	cb:hasGender	"male-reversed" ;
+	dc:description	"This is a test plant for testing the software ...." ;
+	cb:grownFromSeedProduct	ns1:SeedProduct_267455ab-26f ;
+	cb:inCycle	ns1:ProductionCycle_2f6f7bc4-1fa ;
+	cb:isAlive	"true"^^xsd:boolean .
+ns1:Plant_b0d9487d-3fd	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"Sensi Skunk B" ;
+	cb:belongsToStrain	ns1:Strain_sensi_skunk ;
+	cb:hasGender	"female" ;
+	dc:description	"" ;
+	cb:grownFromSeedProduct	ns1:SeedProduct_136878d2-062 ;
+	cb:isAlive	"false"^^xsd:boolean .
+ns1:Plant_a5bd6328-1f5	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"Sensi Skunk C" ;
+	cb:belongsToStrain	ns1:Strain_sensi_skunk ;
+	cb:hasGender	"female" ;
+	dc:description	"" ;
+	cb:grownFromSeedProduct	ns1:SeedProduct_136878d2-062 .
+ns1:SeedProduct_6d64ba62-a8b	rdf:type	cb:SeedProduct ;
+	rdfs:label	"Sensi Skunk A" ;
+	cb:seedsRemaining	168 ;
+	cb:seedCount	168 ;
+	dc:description	"Lots of small seeds, some appear to have the shell cracked. Some originals were cracked like this as well but still germinated" ;
+	cb:seedProductFromPollination	ns1:Pollination_sensi_skunk_a_53aecebb .
+ns1:SeedProduct_9f2b8350-442	rdf:type	cb:SeedProduct ;
+	rdfs:label	"Sensi Skunk B" ;
+	cb:seedsRemaining	17 ;
+	cb:seedCount	17 ;
+	dc:description	"" ;
+	cb:seedProductFromPollination	ns1:Pollination_sensi_skunk_b_f4b4e0d6 .
+ns1:SeedProduct_85c3478b-d8a	rdf:type	cb:SeedProduct ;
+	rdfs:label	"KKK-1-X 2025-7" ;
+	dc:description	"" ;
+	cb:seedProductFromPollination	ns1:Pollination_5a4954c6-7ad .
+ns1:LogItem_fb4dac04-729	rdf:type	cb:LogItem ;
+	rdfs:label	"BKC to Coco" ;
+	dc:description	"The BKC seed germinated immediately and was transplanted to coco. feeding it  only water for now .. Marked Green-Yellow" ;
+	cb:hasLogDateTime	"2025-08-11T09:14:00"^^xsd:dateTime .
+ns1:LogItem_95ce94a2-95b	rdf:type	cb:LogItem ;
+	rdfs:label	"MK 2 Coco" ;
+	dc:description	"2 MK Seeds showed their root and were moved to Coco. Water and Rhizotonic. No Mark, but green Pots. " ;
+	cb:hasLogDateTime	"2025-08-26T17:59:00"^^xsd:dateTime .
+ns1:LogItem_d4bb8a41-834	rdf:type	cb:LogItem ;
+	rdfs:label	"MK Update" ;
+	dc:description	"one of the MK seedlings appeared to have a dried out middle section of the stem ... omg ... i tried to support it with aluminum foil ... looks very bad and cannot stand by itself " ;
+	cb:hasLogDateTime	"2025-09-02T19:30:00"^^xsd:dateTime .
+ns1:LogItem_5283bc5c-961	rdf:type	cb:LogItem ;
+	rdfs:label	"MK Germination start 2" ;
+	dc:description	"2 MK Seeds directly into fresh Coco , water and mini greenhouse." ;
+	cb:hasLogDateTime	"2025-09-02T20:10:00"^^xsd:dateTime .
+ns1:LogItem_0658db10-26c	rdf:type	cb:LogItem ;
+	rdfs:label	"MK Germination start 3" ;
+	dc:description	"2 more MK seeds to the papert towel, since nothing seems to happen in the green pots ... it is full moon and eclipse , so ..." ;
+	cb:hasLogDateTime	"2025-09-07T11:46:00"^^xsd:dateTime .
+ns1:Plant_e9064487-31d	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"Kerosene-X Male 25" ;
+	cb:belongsToStrain	ns1:Strain_lucky_experimental_line ;
+	cb:hasGender	"male" ;
+	dc:description	"Aromatic for a male, mango scent, broad leaves. " ;
+	cb:grownFromPollination	ns1:Pollination_56b8b652-91a ;
+	cb:grownFromSeedProduct	ns1:SeedProduct_6ee86bd7-b5b ;
+	cb:inCycle	ns1:ProductionCycle_fa04d33e-1ba .
+ns1:Plant_d81a6059-f6e	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"Kerosene-X Female 25-1" ;
+	cb:belongsToStrain	ns1:Strain_lucky_experimental_line ;
+	cb:hasGender	"female" ;
+	dc:description	"very fuel, diesel, scent and compact flowers :)" ;
+	cb:grownFromPollination	ns1:Pollination_56b8b652-91a ;
+	cb:grownFromSeedProduct	ns1:SeedProduct_6ee86bd7-b5b ;
+	cb:inCycle	ns1:ProductionCycle_fa04d33e-1ba .
+ns1:TraitObservation_8315a292-65e	rdf:type	cb:TraitObservation ;
+	cb:observedOnPlant	ns1:Plant_c6d6ec2f-d77 ;
+	cb:observesTrait	ns1:GrowingTrait_a1262ac7-cab ;
+	cb:hasRating	0.2000000000000000111 .
+ns1:TraitObservation_0b9f462d-190	rdf:type	cb:TraitObservation ;
+	cb:observedOnPlant	ns1:Plant_c6d6ec2f-d77 ;
+	cb:observesTrait	ns1:GrowingTrait_afe010c3-edf ;
+	cb:hasRating	0.80000000000000004441 .
+ns1:Pollination_829515cd-b73	rdf:type	cb:Pollination ;
+	rdfs:label	"Kerosene-X F2" ;
+	cb:isMaleOf	ns1:Plant_e9064487-31d ;
+	cb:isFemaleOf	ns1:Plant_d81a6059-f6e ;
+	cb:pollinationDate	"2025-09-28"^^xsd:date .
+ns1:Plant_36918cf2-e58	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"SOG Cutting 2511" ;
+	cb:belongsToStrain	ns1:Strain_a9ac3ef6-b34 ;
+	cb:hasGender	"female" ;
+	dc:description	"" ;
+	cb:inCycle	ns1:ProductionCycle_fa04d33e-1ba ;
+	cb:cloneOf	ns1:Plant_a44f6db2-e1f .
+ns1:Pollination_8d9b9db6-c97	rdf:type	cb:Pollination ;
+	rdfs:label	"SOG x Kerosene X" ;
+	cb:isMaleOf	ns1:Plant_e9064487-31d ;
+	cb:isFemaleOf	ns1:Plant_36918cf2-e58 ;
+	cb:pollinationDate	"2025-09-28"^^xsd:date .
+ns1:ProductionCycle_22f010d0-29f	rdf:type	cb:ProductionCycle ;
+	rdfs:label	"2026-1" ;
+	cb:productionStartDate	"2025-11-03"^^xsd:date ;
+	cb:cycleIncludesPlant	ns1:Plant_697333a9-025 ;
+	cb:growingMedium	"Coco" ;
+	cb:lightWattage	250 ;
+	cb:lightType	"HPS" ;
+	cb:isIndoor	"true"^^xsd:boolean ;
+	cb:hasLog	ns1:GrowLog_2fe58757-ac8 ;
+	cb:cycleIncludesPollination	ns1:Pollination_14328c79-01e .
+ns1:GrowLog_2fe58757-ac8	rdf:type	cb:GrowLog ;
+	rdfs:label	"Grow Log for example1#ProductionCycle_22f010d0-29f" ;
+	cb:hasLogItem	ns1:LogItem_4b4b4ec9-84f .
+ns1:Plant_70e3aaad-8be	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"Banana Kush Cake A" ;
+	cb:belongsToStrain	ns1:Strain_12857188-2c9 ;
+	cb:hasGender	"female" ;
+	dc:description	"Mother plant " ;
+	cb:grownFromSeedProduct	ns1:SeedProduct_b685565b-56f ;
+	cb:inCycle	ns1:ProductionCycle_39518df1-af0 .
+ns1:Plant_697333a9-025	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"Banana Kush Cake Cut 2601" ;
+	cb:belongsToStrain	ns1:Strain_12857188-2c9 ;
+	cb:hasGender	"female" ;
+	dc:description	"" ;
+	cb:inCycle	ns1:ProductionCycle_22f010d0-29f ;
+	cb:cloneOf	ns1:Plant_70e3aaad-8be .
+ns1:SeedProduct_73a3a9a9-437	rdf:type	cb:SeedProduct ;
+	rdfs:label	"SOG x Kerosene X 2025-11" ;
+	cb:seedsRemaining	3 ;
+	cb:seedCount	3 ;
+	dc:description	"" ;
+	cb:seedProductFromPollination	ns1:Pollination_8d9b9db6-c97 .
+ns1:Pollination_14328c79-01e	rdf:type	cb:Pollination ;
+	rdfs:label	"BKC S1" ;
+	dc:description	"" ;
+	cb:isFemaleOf	ns1:Plant_697333a9-025 ;
+	cb:pollinationDate	"2025-12-05"^^xsd:date .
+ns1:SeedProduct_daf27716-62b	rdf:type	cb:SeedProduct ;
+	rdfs:label	"BKC ? 2026-1" ;
+	cb:seedsRemaining	8 ;
+	cb:seedCount	8 ;
+	dc:description	"small rock hard seeds , very curious" ;
+	cb:seedProductFromPollination	ns1:Pollination_14328c79-01e .
+ns1:ProductionCycle_21d96b6c-179	rdf:type	cb:ProductionCycle ;
+	rdfs:label	"2026-3" ;
+	cb:productionEndDate	"2026-03-11"^^xsd:date ;
+	cb:productionStartDate	"2026-01-07"^^xsd:date ;
+	cb:cycleIncludesPlant	ns1:Plant_5d2931af-ec9 ,
+		ns1:Plant_b5530257-ef9 ,
+		ns1:Plant_c964f290-a0f ,
+		ns1:Plant_5ce321c3-c09 ,
+		ns1:Plant_36b1758a-eb2 ;
+	cb:growingMedium	"Coco" ;
+	cb:lightWattage	250 ;
+	cb:lightType	"HPS" ;
+	cb:isIndoor	"true"^^xsd:boolean ;
+	cb:hasLog	ns1:GrowLog_a153b7fa-c2d ;
+	cb:cycleIncludesPollination	ns1:Pollination_1a4b887f-e67 ,
+		ns1:Pollination_57a812b7-9e8 ,
+		ns1:Pollination_2d4c6e69-789 ,
+		ns1:Pollination_25c06255-99e .
+ns1:GrowLog_a153b7fa-c2d	rdf:type	cb:GrowLog ;
+	rdfs:label	"Grow Log for example1#ProductionCycle_21d96b6c-179" .
+ns1:SeedProduct_560b4411-ae6	rdf:type	cb:SeedProduct ;
+	rdfs:label	"BKC S1 2026-3" ;
+	dc:description	"" .
+ns1:Plant_5ce321c3-c09	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"Banana Kush Cake Cut 2603" ;
+	cb:belongsToStrain	ns1:Strain_12857188-2c9 ;
+	cb:hasGender	"female" ;
+	dc:description	"" ;
+	cb:inCycle	ns1:ProductionCycle_21d96b6c-179 ;
+	cb:cloneOf	ns1:Plant_70e3aaad-8be .
+ns1:Plant_36b1758a-eb2	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"Master Kush 2026-3" ;
+	cb:belongsToStrain	ns1:Strain_5375a587-7de ;
+	cb:hasGender	"female" ;
+	dc:description	"" ;
+	cb:grownFromSeedProduct	ns1:SeedProduct_985fda7c-f82 ;
+	cb:inCycle	ns1:ProductionCycle_21d96b6c-179 ;
+	cb:cloneOf	ns1:Plant_bad699a0-1de .
+ns1:Pollination_2d4c6e69-789	rdf:type	cb:Pollination ;
+	rdfs:label	"BKC S1 2026-3 FEM" ;
+	cb:isMaleOf	ns1:Plant_5d2931af-ec9 ;
+	cb:isFemaleOf	ns1:Plant_5ce321c3-c09 ;
+	cb:pollinationDate	"2026-02-08"^^xsd:date .
+ns1:Pollination_25c06255-99e	rdf:type	cb:Pollination ;
+	rdfs:label	"Master Kush x BKC 2026-3 FEM" ;
+	dc:description	"" ;
+	cb:isMaleOf	ns1:Plant_5d2931af-ec9 ;
+	cb:isFemaleOf	ns1:Plant_36b1758a-eb2 ;
+	cb:pollinationDate	"2026-02-08"^^xsd:date .
+ns1:Pollination_1a4b887f-e67	rdf:type	cb:Pollination ;
+	rdfs:label	"SOG x BKC 2026-3 FEM" ;
+	dc:description	"" ;
+	cb:isMaleOf	ns1:Plant_5d2931af-ec9 ;
+	cb:isFemaleOf	ns1:Plant_c964f290-a0f ;
+	cb:pollinationDate	"2026-02-08"^^xsd:date .
+ns1:Pollination_57a812b7-9e8	rdf:type	cb:Pollination ;
+	rdfs:label	"KK-BKC FEM 2026-3" ;
+	cb:isMaleOf	ns1:Plant_5d2931af-ec9 ;
+	cb:isFemaleOf	ns1:Plant_b5530257-ef9 ;
+	cb:pollinationDate	"2026-02-16"^^xsd:date .
+ns1:Strain_lucky_orange_line	rdf:type	cb:Strain ;
+	rdfs:label	"Lucky Orange Line" ;
+	dc:description	"My Orange Project.\nWappa, Super Orange Glue, aso ...\nOrange Pistils ;)" ;
+	dc:creator	"Lucky" .
+ns1:Plant_gsc_2	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"gsc_2" ;
+	cb:belongsToStrain	ns1:Strain_girl_scout_cookies ;
+	cb:hasGender	"female" ;
+	dc:description	"Had no label, the lady in the shop said Wedding Cake, i say GSC, or Gelato ? \nThe aroma of the flowers is deliciously sweet candy and floral nutty ..." ;
+	cb:inCycle	ns1:ProductionCycle_2025_7 ;
+	cb:isAlive	"true"^^xsd:boolean .
+ns1:Strain_lucky_experimental_line	rdf:type	cb:Strain ;
+	rdfs:label	"Lucky eXperimental Line" ;
+	dc:description	"General Purpose Experimental " ;
+	dc:creator	"Lucky" .
+ns1:Plant_lol_2	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"lol_2" ;
+	cb:belongsToStrain	ns1:Strain_lucky_orange_line ;
+	cb:hasGender	"female" ;
+	dc:description	"short and stocky" ;
+	cb:inCycle	ns1:ProductionCycle_2025_7 ;
+	cb:isAlive	"true"^^xsd:boolean .
+ns1:Plant_178d9bb9-aa4	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"King Kongs Kid 3" ;
+	cb:belongsToStrain	ns1:Strain_lucky_experimental_line ;
+	cb:hasGender	"male" ;
+	dc:description	"Finally a male, leaves broad, stocky, aromatic , i like it ... as it ripens, i got the impression, maybe it was female but flipped to do me a favour (yes, nature is conscious and hemp is a very smart organism), we will have to watch the offspring" ;
+	cb:inCycle	ns1:ProductionCycle_2025_7 ;
+	cb:isAlive	"false"^^xsd:boolean .
+ns1:Plant_8606358c-b52	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"Wappa 1" ;
+	cb:belongsToStrain	ns1:Strain_wappa ;
+	cb:hasGender	"female" ;
+	dc:description	"oh, so small ..." ;
+	cb:inCycle	ns1:ProductionCycle_2025_7 ;
+	cb:cloneOf	ns1:Plant_259c2a0c-9e7 ;
+	cb:isAlive	"true"^^xsd:boolean .
+ns1:Strain_a9ac3ef6-b34	rdf:type	cb:Strain ;
+	rdfs:label	"Super Orange Glue" ;
+	dc:description	"Genetics: Gorilla Glue #4 X Orange Diesel V3" ;
+	dc:creator	"Lady Sativa Genetics" .
+ns1:ProductionCycle_39518df1-af0	rdf:type	cb:ProductionCycle ;
+	rdfs:label	"Kitchen" ;
+	dc:description	"The 18 hour kitchen space" ;
+	cb:cycleIncludesPlant	ns1:Plant_70e3aaad-8be ,
+		ns1:Plant_aa030e12-223 ,
+		ns1:Plant_bb2b7d1a-d5d ,
+		ns1:Plant_bad699a0-1de ;
+	cb:growingMedium	"Coco" ;
+	cb:lightWattage	23 ;
+	cb:lightType	"LED" ;
+	cb:isIndoor	"true"^^xsd:boolean ;
+	cb:hasLog	ns1:GrowLog_023033de-0bb .
+ns1:ProductionCycle_66babb93-745	rdf:type	cb:ProductionCycle ;
+	rdfs:label	"Hanf und Hanf Clones" ;
+	dc:description	"The Clones from the shop." ;
+	cb:cycleIncludesPlant	ns1:Plant_a44f6db2-e1f ,
+		ns1:Plant_259c2a0c-9e7 ,
+		ns1:Plant_90d53925-bb5 ,
+		ns1:Plant_8c476f2e-c29 ;
+	cb:isIndoor	"true"^^xsd:boolean ;
+	cb:hasLog	ns1:GrowLog_2a4eb862-824 .
+ns1:LogItem_bc7b2a44-7d6	rdf:type	cb:LogItem ;
+	rdfs:label	"Some log" ;
+	dc:description	"More test log data" ;
+	cb:hasLogDateTime	"2025-06-12T20:43:00"^^xsd:dateTime .
+ns1:Strain_kerosene_krash	rdf:type	cb:Strain ;
+	rdfs:label	"Kerosene Krash" ;
+	dc:description	"One very sexy GG#4 female was pollinated by a male Sherbet. This cross was then further developed into a stable feminized line of very high-quality seeds." ;
+	dc:creator	"Dutch Passion" .
+ns1:Strain_wappa	rdf:type	cb:Strain ;
+	rdfs:label	"Wappa" ;
+	dc:description	"" ;
+	dc:creator	"Paradise Seeds" .
+ns1:Strain_banana_monkey	rdf:type	cb:Strain ;
+	rdfs:label	"Banana Monkey" ;
+	dc:description	"Our Banana Monkey is a wonderful 50/50 Hybrid cross of Banana OG and the Purple Punch strains. Our Banana Monkey strain was selected for its unique tropical pineapple terpene profile, tranquilizing indica high." ;
+	dc:creator	"Bulk Seed Bank" .
+ns1:ProductionCycle_2025_7	rdf:type	cb:ProductionCycle ;
+	rdfs:label	"2025-7 / Indoor" ;
+	dc:description	"This is the current cycle" ;
+	cb:productionEndDate	"2025-07-06"^^xsd:date ;
+	cb:productionStartDate	"2025-05-11"^^xsd:date ;
+	cb:cycleIncludesPlant	ns1:Plant_krk_1 ,
+		ns1:Plant_15dd9bc2-f73 ,
+		ns1:Plant_lol_1 ,
+		ns1:Plant_6f3a97f9-a26 ,
+		ns1:Plant_cg_2025_1 ,
+		ns1:Plant_krk_2 ,
+		ns1:Plant_e3c8a605-837 ,
+		ns1:Plant_b18d3506-e34 ,
+		ns1:Plant_lol_2 ,
+		ns1:Plant_gsc_2 ,
+		ns1:Plant_8606358c-b52 ,
+		ns1:Plant_178d9bb9-aa4 ;
+	cb:growingMedium	"Coco" ;
+	cb:lightWattage	250 ;
+	cb:lightType	"HPS" ;
+	cb:isIndoor	"true"^^xsd:boolean ;
+	cb:hasLog	ns1:GrowLog_88b90f04-330 ;
+	cb:cycleIncludesPollination	ns1:Pollination_2ec95542-4e1 ,
+		ns1:Pollination_e885f43c-a0b ,
+		ns1:Pollination_b7d77fb3-602 ,
+		ns1:Pollination_5a4954c6-7ad ,
+		ns1:Pollination_8c77b372-6a5 ,
+		ns1:Pollination_714b321b-25d ,
+		ns1:Pollination_c4e2aa09-71e ,
+		ns1:Pollination_56b8b652-91a ,
+		ns1:Pollination_f6c26786-198 .
+ns1:Plant_krk_1	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"krk_1" ;
+	cb:belongsToStrain	ns1:Strain_kerosene_krash ;
+	cb:hasGender	"female" ;
+	dc:description	"" ;
+	cb:inCycle	ns1:ProductionCycle_2025_7 ;
+	cb:cloneOf	ns1:Plant_90d53925-bb5 ;
+	cb:isAlive	"true"^^xsd:boolean .
+ns1:Plant_krk_2	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"krk_2" ;
+	cb:belongsToStrain	ns1:Strain_kerosene_krash ;
+	cb:hasGender	"female" ;
+	dc:description	"" ;
+	cb:inCycle	ns1:ProductionCycle_2025_7 ;
+	cb:cloneOf	ns1:Plant_90d53925-bb5 ;
+	cb:isAlive	"true"^^xsd:boolean .
+ns1:Strain_girl_scout_cookies	rdf:type	cb:Strain ;
+	rdfs:label	"Girl Scout Cookies" ;
+	dc:description	"" ;
+	dc:creator	"" .
+ns1:Strain_california_gold	rdf:type	cb:Strain ;
+	rdfs:label	"California Gold" ;
+	dc:description	"California Gold is an indica-dominant hybrid strain that features 80% indica genetics and only 20% sativa genetics. The strain features a THC content of 18-22%, resulting in fast acting and long lasting highs. The indica-dominance shines through in the effects, contributing to a stoning, relaxing, and calming body high. These effects make California Gold an optimal smoke during the evening and night time when looking to kick back and relax. The flowers of the strain feature an interesting terpene profile that provides tastes and smells of fruit and mango.\n\nCalifornia Gold can be grown both indoors and outdoors. Indoor plants will provide yields of around 500g/m\u00B2. Outdoor plants will produce around 750g per plant and will be ready to harvest during early October.\n\nGreat strain for hash- and concentrate making!" ;
+	dc:creator	"Paradise Seeds" .
+ns1:Plant_cg_2025_1	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"Cali. Gold.  2025-1" ;
+	cb:belongsToStrain	ns1:Strain_california_gold ;
+	cb:hasGender	"female" ;
+	dc:description	"Plant is rather small, growth pattern: central stalk little side branches, aroma in week 5; average" ;
+	cb:inCycle	ns1:ProductionCycle_2025_7 ;
+	cb:cloneOf	ns1:Plant_8c476f2e-c29 ;
+	cb:isAlive	"true"^^xsd:boolean .
+ns1:Plant_lol_1	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"lol_1" ;
+	cb:belongsToStrain	ns1:Strain_lucky_orange_line ;
+	cb:hasGender	"female" ;
+	dc:description	"Germinated Lunar Eclipse.\nMounstrous ! Fast growing\n\nweek 4: aroma and trichomes appear" ;
+	cb:inCycle	ns1:ProductionCycle_2025_7 ;
+	cb:isAlive	"true"^^xsd:boolean .
+ns1:Plant_6f3a97f9-a26	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"King Kongs Kid 1" ;
+	cb:belongsToStrain	ns1:Strain_lucky_experimental_line ;
+	cb:hasGender	"female" ;
+	dc:description	"Germinated at eclipse, huge strong" ;
+	cb:inCycle	ns1:ProductionCycle_2025_7 ;
+	cb:isAlive	"true"^^xsd:boolean .
+ns1:Plant_15dd9bc2-f73	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"King Kongs Kid 2" ;
+	cb:belongsToStrain	ns1:Strain_lucky_experimental_line ;
+	cb:hasGender	"female" ;
+	dc:description	"small, week 3: leaves get narrow ..\nweek 4: aroma and trichomes appear" ;
+	cb:inCycle	ns1:ProductionCycle_2025_7 ;
+	cb:isAlive	"true"^^xsd:boolean .
+ns1:Plant_e3c8a605-837	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"SOG 1" ;
+	cb:belongsToStrain	ns1:Strain_a9ac3ef6-b34 ;
+	cb:hasGender	"female" ;
+	dc:description	"Super Orange Glue" ;
+	cb:inCycle	ns1:ProductionCycle_2025_7 ;
+	cb:cloneOf	ns1:Plant_a44f6db2-e1f ;
+	cb:isAlive	"true"^^xsd:boolean .
+ns1:Plant_a44f6db2-e1f	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"h&h Super Orange Glue" ;
+	cb:belongsToStrain	ns1:Strain_a9ac3ef6-b34 ;
+	cb:hasGender	"female" ;
+	dc:description	"The motherplant at Hanf und Hanf, Wien." ;
+	cb:inCycle	ns1:ProductionCycle_66babb93-745 .
+ns1:Plant_b18d3506-e34	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"lol_3" ;
+	cb:belongsToStrain	ns1:Strain_lucky_orange_line ;
+	cb:hasGender	"female" ;
+	dc:description	"sister of lol_2, same phenotype it seems" ;
+	cb:inCycle	ns1:ProductionCycle_2025_7 ;
+	cb:isAlive	"false"^^xsd:boolean .
+ns1:Plant_8c476f2e-c29	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"h&h California Gold" ;
+	cb:belongsToStrain	ns1:Strain_california_gold ;
+	cb:hasGender	"female" ;
+	dc:description	"" ;
+	cb:inCycle	ns1:ProductionCycle_66babb93-745 .
+ns1:Plant_90d53925-bb5	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"h&h Kerosene Krash" ;
+	cb:belongsToStrain	ns1:Strain_kerosene_krash ;
+	cb:hasGender	"female" ;
+	dc:description	"" ;
+	cb:inCycle	ns1:ProductionCycle_66babb93-745 .
+ns1:Plant_aa030e12-223	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"Kerosene Krash A" ;
+	cb:belongsToStrain	ns1:Strain_kerosene_krash ;
+	cb:hasGender	"female" ;
+	dc:description	"Mother plant " ;
+	cb:inCycle	ns1:ProductionCycle_39518df1-af0 ;
+	cb:cloneOf	ns1:Plant_90d53925-bb5 ;
+	cb:isAlive	"true"^^xsd:boolean .
+ns1:Plant_bb2b7d1a-d5d	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"Super Orange Glue A" ;
+	cb:belongsToStrain	ns1:Strain_a9ac3ef6-b34 ;
+	cb:hasGender	"female" ;
+	dc:description	"Mother plant " ;
+	cb:inCycle	ns1:ProductionCycle_39518df1-af0 ;
+	cb:cloneOf	ns1:Plant_a44f6db2-e1f ;
+	cb:isAlive	"true"^^xsd:boolean .
+ns1:Plant_259c2a0c-9e7	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"h&h Wappa" ;
+	cb:belongsToStrain	ns1:Strain_wappa ;
+	cb:hasGender	"female" ;
+	dc:description	"" ;
+	cb:inCycle	ns1:ProductionCycle_66babb93-745 .
+ns1:ProductionCycle_2f6f7bc4-1fa	rdf:type	cb:ProductionCycle ;
+	rdfs:label	"Some Test Cycle 1" ;
+	dc:description	"Just a Test Cycle" ;
+	cb:productionStartDate	"2022-01-05"^^xsd:date ;
+	cb:cycleIncludesPlant	ns1:Plant_dd4c5bf5-ed1 ,
+		ns1:Plant_e1a57ac8-7de ,
+		ns1:Plant_518e8712-986 ;
+	cb:isIndoor	"true"^^xsd:boolean ;
+	cb:hasLog	ns1:GrowLog_7c336f5c-2bb ;
+	cb:cycleIncludesPollination	ns1:Pollination_567f1a70-e20 .
+ns1:GrowLog_023033de-0bb	rdf:type	cb:GrowLog ;
+	rdfs:label	"Grow Log for example1#ProductionCycle_39518df1-af0" ;
+	cb:hasLogItem	ns1:LogItem_0658db10-26c ,
+		ns1:LogItem_fb4dac04-729 ,
+		ns1:LogItem_95ce94a2-95b ,
+		ns1:LogItem_d4bb8a41-834 ,
+		ns1:LogItem_5283bc5c-961 ,
+		ns1:LogItem_d6fca2ac-77f ,
+		ns1:LogItem_72cba206-192 ,
+		ns1:LogItem_abe2d240-56d ,
+		ns1:LogItem_7c188c32-be2 ,
+		ns1:LogItem_600068d8-3f9 ,
+		ns1:LogItem_8a6e3275-706 ,
+		ns1:LogItem_4eeb10e1-3b2 ,
+		ns1:LogItem_e7f675f5-9dd ,
+		ns1:LogItem_f024716c-132 ,
+		ns1:LogItem_a53e3821-6be .
+ns1:GrowingTrait_3l4m5n6o-7p8	rdf:type	cb:GrowingTrait ;
+	rdfs:label	"20: Sweet Pine - Carene" ;
+	dc:description	"Sweet pine, lemon" .
+ns1:GrowingTrait_5f6e7d8c-9b0	rdf:type	cb:GrowingTrait ;
+	rdfs:label	"17: Rose Garden - Geraniol" ;
+	dc:description	"Sweet rose, geranium" .
+ns1:GrowingTrait_3c4d5e6f-7a8	rdf:type	cb:GrowingTrait ;
+	rdfs:label	"15: Lemony Basil - Fenchol" ;
+	dc:description	"Fresh lemon basil" .
+ns1:GrowingTrait_1a2b3c4d-5e6	rdf:type	cb:GrowingTrait ;
+	rdfs:label	"13: Woody Floral - Trans-Nerolidol" ;
+	dc:description	"Wood and flowers" .
+ns1:GrowingTrait_1a2b3c4d-5e6f	rdf:type	cb:GrowingTrait ;
+	rdfs:label	"18: Sharp Pine - Camphene" ;
+	dc:description	"Pungent pine, turpentine" .
+ns1:GrowingTrait_9b0a1c2d-3e4	rdf:type	cb:GrowingTrait ;
+	rdfs:label	"16: Cooling Mint - Eucalyptol" ;
+	dc:description	"Fresh eucalyptus, cooling" .
+ns1:GrowingTrait_7g8h9i0j-1b2	rdf:type	cb:GrowingTrait ;
+	rdfs:label	"19: Spicy Orange - Sabinene" ;
+	dc:description	"Spicy citrus, pepper" .
+ns1:GrowingTrait_f6e7d8c9-b0a	rdf:type	cb:GrowingTrait ;
+	rdfs:label	"12: Pine Rose - Guaiol" ;
+	dc:description	"Pine with floral notes" .
+ns1:GrowingTrait_7f8e9d0c-1b2	rdf:type	cb:GrowingTrait ;
+	rdfs:label	"14: Menthol Wood - Borneol" ;
+	dc:description	"Cooling mint, camphor" .
+ns1:GrowingTrait_a1b2c3d4-e5f	rdf:type	cb:GrowingTrait ;
+	rdfs:label	"11: Rose Wood - Nerolidol" ;
+	dc:description	"Fresh rose, light wood" .
+ns1:SeedProduct_d38c8cb8-60b	rdf:type	cb:SeedProduct ;
+	rdfs:label	"Cookie-X" ;
+	cb:seedsRemaining	2 ;
+	cb:seedCount	6 ;
+	dc:description	"Cookie or Gelato with experimental KKK3" ;
+	cb:seedProductFromPollination	ns1:Pollination_c4e2aa09-71e .
+ns1:SeedProduct_6ee86bd7-b5b	rdf:type	cb:SeedProduct ;
+	rdfs:label	"Kerosene-X" ;
+	cb:seedsRemaining	5 ;
+	cb:seedCount	9 ;
+	dc:description	"Kerosene Krash x KKK3 ;\nLarge Dark Seeds" ;
+	cb:seedProductFromPollination	ns1:Pollination_56b8b652-91a .
+ns1:SeedProduct_b41e3b0d-b7b	rdf:type	cb:SeedProduct ;
+	rdfs:label	"Wappa - X" ;
+	cb:seedsRemaining	1 ;
+	cb:seedCount	1 ;
+	dc:description	"" ;
+	cb:seedProductFromPollination	ns1:Pollination_e885f43c-a0b .
+ns1:LogItem_d6fca2ac-77f	rdf:type	cb:LogItem ;
+	rdfs:label	"7 seeds did not germinate" ;
+	dc:description	"i just dug up the seeds that did not break through and found none of those even opened." ;
+	cb:hasLogDateTime	"2025-07-16T10:06:00"^^xsd:dateTime .
+ns1:LogItem_72cba206-192	rdf:type	cb:LogItem ;
+	rdfs:label	"new germination attempt" ;
+	dc:description	"i put some kerosene-x and some Cookie-X, gscxbanana_monkeyxSensi_skunk in some papertowel for germination." ;
+	cb:hasLogDateTime	"2025-07-16T16:16:00"^^xsd:dateTime .
+ns1:SeedProduct_535645f9-b89	rdf:type	cb:SeedProduct ;
+	rdfs:label	"CG-X 2025-7" ;
+	cb:seedsRemaining	18 ;
+	cb:seedCount	18 ;
+	dc:description	"California Gold x KKK-3 \nThe plant had more seeds than expected. " ;
+	cb:seedProductFromPollination	ns1:Pollination_b7d77fb3-602 .
+ns1:Strain_sensi_skunk	rdf:type	cb:Strain ;
+	rdfs:label	"Sensi Skunk" ;
+	dc:description	"Das Original aus Holland ..." ;
+	dc:creator	"Sensi Seeds" .
+ns1:GrowLog_88b90f04-330	rdf:type	cb:GrowLog ;
+	rdfs:label	"Grow Log for example1#ProductionCycle_2025_7" ;
+	cb:hasLogItem	ns1:LogItem_e440f6d1-337 ,
+		ns1:LogItem_61f8469a-1f6 .
+ns1:LogItem_61f8469a-1f6	rdf:type	cb:LogItem ;
+	rdfs:label	"The Pollination" ;
+	dc:description	"Yesterday and today i pollinated with the King Kongs Kid Male" ;
+	cb:hasLogDateTime	"2025-06-11T16:40:00"^^xsd:dateTime .
+ns1:GrowLog_7c336f5c-2bb	rdf:type	cb:GrowLog ;
+	rdfs:label	"Grow Log for example1#ProductionCycle_2f6f7bc4-1fa" ;
+	cb:hasLogItem	ns1:LogItem_bc7b2a44-7d6 ,
+		ns1:LogItem_5154ac72-f08 .
+ns1:Cycle_66babb93-745	cb:hasLog	ns1:GrowLog_0857c445-a52 .
+ns1:GrowLog_0857c445-a52	rdf:type	cb:GrowLog ;
+	rdfs:label	"Grow Log for example1#Cycle_66babb93-745" .
+ns1:ProductionCycle_7	cb:hasLog	ns1:GrowLog_04e98fcb-d39 .
+ns1:GrowLog_04e98fcb-d39	rdf:type	cb:GrowLog ;
+	rdfs:label	"Grow Log for example1#ProductionCycle_7" .
+ns1:Pollination_b7d77fb3-602	rdf:type	cb:Pollination ;
+	rdfs:label	"Cali x Experimental" ;
+	cb:isMaleOf	ns1:Plant_178d9bb9-aa4 ;
+	cb:isFemaleOf	ns1:Plant_cg_2025_1 ;
+	cb:pollinationDate	"2025-06-11"^^xsd:date .
+ns1:Pollination_5a4954c6-7ad	rdf:type	cb:Pollination ;
+	rdfs:label	"Experimental 1" ;
+	cb:isMaleOf	ns1:Plant_178d9bb9-aa4 ;
+	cb:isFemaleOf	ns1:Plant_6f3a97f9-a26 ;
+	cb:pollinationDate	"2025-06-11"^^xsd:date .
+ns1:Pollination_2ec95542-4e1	rdf:type	cb:Pollination ;
+	rdfs:label	"SOG x Experimental" ;
+	cb:isMaleOf	ns1:Plant_178d9bb9-aa4 ;
+	cb:isFemaleOf	ns1:Plant_e3c8a605-837 ;
+	cb:pollinationDate	"2025-06-11"^^xsd:date .
+ns1:Pollination_e885f43c-a0b	rdf:type	cb:Pollination ;
+	rdfs:label	"Wappa x Experimental" ;
+	cb:isMaleOf	ns1:Plant_178d9bb9-aa4 ;
+	cb:isFemaleOf	ns1:Plant_8606358c-b52 ;
+	cb:pollinationDate	"2025-06-11"^^xsd:date .
+ns1:Pollination_8c77b372-6a5	rdf:type	cb:Pollination ;
+	rdfs:label	"Orange x Experimental" ;
+	cb:isMaleOf	ns1:Plant_178d9bb9-aa4 ;
+	cb:isFemaleOf	ns1:Plant_lol_1 ;
+	cb:pollinationDate	"2025-06-11"^^xsd:date .
+ns1:Pollination_714b321b-25d	rdf:type	cb:Pollination ;
+	rdfs:label	"Orange x Experimental 1" ;
+	cb:isMaleOf	ns1:Plant_178d9bb9-aa4 ;
+	cb:isFemaleOf	ns1:Plant_lol_2 ;
+	cb:pollinationDate	"2025-06-11"^^xsd:date .
+ns1:Plant_518e8712-986	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"test plant" ;
+	cb:belongsToStrain	ns1:Strain_girl_scout_cookies ;
+	cb:hasGender	"female" ;
+	dc:description	"test" ;
+	cb:grownFromSeedProduct	ns1:SeedProduct_267455ab-26f ;
+	cb:inCycle	ns1:ProductionCycle_2f6f7bc4-1fa .
+ns1:LogItem_5154ac72-f08	rdf:type	cb:LogItem ;
+	rdfs:label	"Started Test Log" ;
+	dc:description	"Just started the test log, yeah!" ;
+	cb:hasLogDateTime	"2025-06-11T22:14:00"^^xsd:dateTime .
+ns1:LogItem_4b4b4ec9-84f	rdf:type	cb:LogItem ;
+	rdfs:label	"impressive growth" ;
+	dc:description	"I went to 100% A&B in week 1. Full strength Rhizotonic throughout. Plants appear all to be healthy, growing fast and smelling seriously already. I am impressed :)  \nI hesitate to apply any fungizide or insecticide as all seems good except for a spot here and there ..." ;
+	cb:hasLogDateTime	"2025-11-12T16:02:00"^^xsd:dateTime .
+ns1:SeedProduct_95d8bebe-dd8	rdf:type	cb:SeedProduct ;
+	rdfs:label	"Kerosene-X F2 2025-11" ;
+	cb:seedsRemaining	0 ;
+	cb:seedCount	0 ;
+	dc:description	"" ;
+	cb:seedProductFromPollination	ns1:Pollination_829515cd-b73 .

+ 290 - 0
examples/individualplant_export.ttl

@@ -0,0 +1,290 @@
+@prefix rdf:	<http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix ns1:	<http://world.eu.org/example1#> .
+@prefix cb:	<http://world.eu.org/cannabis-breeding#> .
+ns1:Plant_71d04a88-ff6	rdf:type	cb:IndividualPlant .
+@prefix rdfs:	<http://www.w3.org/2000/01/rdf-schema#> .
+ns1:Plant_71d04a88-ff6	rdfs:label	"test 23" ;
+	cb:belongsToStrain	ns1:Strain_lucky_experimental_line ;
+	cb:hasGender	"male" .
+@prefix dc:	<http://purl.org/dc/elements/1.1/> .
+ns1:Plant_71d04a88-ff6	dc:description	"" ;
+	cb:grownFromSeedProduct	ns1:SeedProduct_267455ab-26f .
+@prefix xsd:	<http://www.w3.org/2001/XMLSchema#> .
+ns1:Plant_71d04a88-ff6	cb:isAlive	"true"^^xsd:boolean .
+ns1:Plant_e1a57ac8-7de	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"test plant 23" ;
+	cb:belongsToStrain	ns1:Strain_lucky_experimental_line ;
+	cb:hasGender	"male" ;
+	dc:description	"" ;
+	cb:inCycle	ns1:ProductionCycle_2f6f7bc4-1fa .
+ns1:Plant_2b56602c-21c	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"Sensi Skunk A" ;
+	cb:belongsToStrain	ns1:Strain_sensi_skunk ;
+	cb:hasGender	"female" ;
+	dc:description	"Label A means probably most preferable phenotype." ;
+	cb:grownFromSeedProduct	ns1:SeedProduct_136878d2-062 ;
+	cb:isAlive	"false"^^xsd:boolean .
+ns1:Plant_61f6e5a9-812	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"Sensi Skunk Father" ;
+	cb:belongsToStrain	ns1:Strain_sensi_skunk ;
+	cb:hasGender	"male" ;
+	dc:description	"The male i had" ;
+	cb:grownFromSeedProduct	ns1:SeedProduct_136878d2-062 ;
+	cb:isAlive	"false"^^xsd:boolean .
+ns1:Plant_c6d6ec2f-d77	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"Cookie-X Female 25" ;
+	cb:belongsToStrain	ns1:Strain_lucky_experimental_line ;
+	cb:hasGender	"female" ;
+	dc:description	"Small, fragile, intense Gelato-Cream scent" ;
+	cb:grownFromPollination	ns1:Pollination_c4e2aa09-71e ;
+	cb:grownFromSeedProduct	ns1:SeedProduct_d38c8cb8-60b ;
+	cb:inCycle	ns1:ProductionCycle_fa04d33e-1ba .
+ns1:Plant_8f41516e-da4	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"Kerosene Krash 2511" ;
+	cb:belongsToStrain	ns1:Strain_kerosene_krash ;
+	cb:hasGender	"female" ;
+	dc:description	"" ;
+	cb:inCycle	ns1:ProductionCycle_fa04d33e-1ba ;
+	cb:cloneOf	ns1:Plant_90d53925-bb5 .
+ns1:Plant_bad699a0-1de	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"Master Kush A" ;
+	cb:belongsToStrain	ns1:Strain_5375a587-7de ;
+	cb:hasGender	"female" ;
+	dc:description	"Mother plant " ;
+	cb:grownFromSeedProduct	ns1:SeedProduct_985fda7c-f82 ;
+	cb:inCycle	ns1:ProductionCycle_39518df1-af0 .
+ns1:Plant_5d2931af-ec9	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"Banana Kush Cake REVERSED 2603" ;
+	cb:belongsToStrain	ns1:Strain_12857188-2c9 ;
+	cb:hasGender	"male-reversed" ;
+	dc:description	"Because of sickness, i stopped spraying earlier and the pollen was plenty" ;
+	cb:inCycle	ns1:ProductionCycle_21d96b6c-179 ;
+	cb:cloneOf	ns1:Plant_70e3aaad-8be .
+ns1:Plant_c964f290-a0f	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"SOG  2026-3" ;
+	cb:belongsToStrain	ns1:Strain_a9ac3ef6-b34 ;
+	cb:hasGender	"female" ;
+	dc:description	"" ;
+	cb:inCycle	ns1:ProductionCycle_21d96b6c-179 ;
+	cb:cloneOf	ns1:Plant_bb2b7d1a-d5d .
+ns1:Plant_b5530257-ef9	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"Kerosene Krash 2026-3" ;
+	cb:belongsToStrain	ns1:Strain_kerosene_krash ;
+	cb:hasGender	"female" ;
+	dc:description	"" ;
+	cb:inCycle	ns1:ProductionCycle_21d96b6c-179 ;
+	cb:cloneOf	ns1:Plant_aa030e12-223 .
+ns1:Plant_4b35a82b-e3e	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"test" ;
+	cb:belongsToStrain	ns1:Strain_lucky_experimental_line ;
+	cb:hasGender	"female" ;
+	dc:description	"" .
+ns1:Plant_dd4c5bf5-ed1	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"Test Plant XXX" ;
+	cb:belongsToStrain	ns1:Strain_lucky_experimental_line ;
+	cb:hasGender	"male-reversed" ;
+	dc:description	"This is a test plant for testing the software ...." ;
+	cb:grownFromSeedProduct	ns1:SeedProduct_267455ab-26f ;
+	cb:inCycle	ns1:ProductionCycle_2f6f7bc4-1fa ;
+	cb:isAlive	"true"^^xsd:boolean .
+ns1:Plant_b0d9487d-3fd	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"Sensi Skunk B" ;
+	cb:belongsToStrain	ns1:Strain_sensi_skunk ;
+	cb:hasGender	"female" ;
+	dc:description	"" ;
+	cb:grownFromSeedProduct	ns1:SeedProduct_136878d2-062 ;
+	cb:isAlive	"false"^^xsd:boolean .
+ns1:Plant_a5bd6328-1f5	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"Sensi Skunk C" ;
+	cb:belongsToStrain	ns1:Strain_sensi_skunk ;
+	cb:hasGender	"female" ;
+	dc:description	"" ;
+	cb:grownFromSeedProduct	ns1:SeedProduct_136878d2-062 .
+ns1:Plant_e9064487-31d	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"Kerosene-X Male 25" ;
+	cb:belongsToStrain	ns1:Strain_lucky_experimental_line ;
+	cb:hasGender	"male" ;
+	dc:description	"Aromatic for a male, mango scent, broad leaves. " ;
+	cb:grownFromPollination	ns1:Pollination_56b8b652-91a ;
+	cb:grownFromSeedProduct	ns1:SeedProduct_6ee86bd7-b5b ;
+	cb:inCycle	ns1:ProductionCycle_fa04d33e-1ba .
+ns1:Plant_d81a6059-f6e	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"Kerosene-X Female 25-1" ;
+	cb:belongsToStrain	ns1:Strain_lucky_experimental_line ;
+	cb:hasGender	"female" ;
+	dc:description	"very fuel, diesel, scent and compact flowers :)" ;
+	cb:grownFromPollination	ns1:Pollination_56b8b652-91a ;
+	cb:grownFromSeedProduct	ns1:SeedProduct_6ee86bd7-b5b ;
+	cb:inCycle	ns1:ProductionCycle_fa04d33e-1ba .
+ns1:Plant_36918cf2-e58	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"SOG Cutting 2511" ;
+	cb:belongsToStrain	ns1:Strain_a9ac3ef6-b34 ;
+	cb:hasGender	"female" ;
+	dc:description	"" ;
+	cb:inCycle	ns1:ProductionCycle_fa04d33e-1ba ;
+	cb:cloneOf	ns1:Plant_a44f6db2-e1f .
+ns1:Plant_70e3aaad-8be	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"Banana Kush Cake A" ;
+	cb:belongsToStrain	ns1:Strain_12857188-2c9 ;
+	cb:hasGender	"female" ;
+	dc:description	"Mother plant " ;
+	cb:grownFromSeedProduct	ns1:SeedProduct_b685565b-56f ;
+	cb:inCycle	ns1:ProductionCycle_39518df1-af0 .
+ns1:Plant_697333a9-025	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"Banana Kush Cake Cut 2601" ;
+	cb:belongsToStrain	ns1:Strain_12857188-2c9 ;
+	cb:hasGender	"female" ;
+	dc:description	"" ;
+	cb:inCycle	ns1:ProductionCycle_22f010d0-29f ;
+	cb:cloneOf	ns1:Plant_70e3aaad-8be .
+ns1:Plant_5ce321c3-c09	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"Banana Kush Cake Cut 2603" ;
+	cb:belongsToStrain	ns1:Strain_12857188-2c9 ;
+	cb:hasGender	"female" ;
+	dc:description	"" ;
+	cb:inCycle	ns1:ProductionCycle_21d96b6c-179 ;
+	cb:cloneOf	ns1:Plant_70e3aaad-8be .
+ns1:Plant_36b1758a-eb2	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"Master Kush 2026-3" ;
+	cb:belongsToStrain	ns1:Strain_5375a587-7de ;
+	cb:hasGender	"female" ;
+	dc:description	"" ;
+	cb:grownFromSeedProduct	ns1:SeedProduct_985fda7c-f82 ;
+	cb:inCycle	ns1:ProductionCycle_21d96b6c-179 ;
+	cb:cloneOf	ns1:Plant_bad699a0-1de .
+ns1:Plant_gsc_2	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"gsc_2" ;
+	cb:belongsToStrain	ns1:Strain_girl_scout_cookies ;
+	cb:hasGender	"female" ;
+	dc:description	"Had no label, the lady in the shop said Wedding Cake, i say GSC, or Gelato ? \nThe aroma of the flowers is deliciously sweet candy and floral nutty ..." ;
+	cb:inCycle	ns1:ProductionCycle_2025_7 ;
+	cb:isAlive	"true"^^xsd:boolean .
+ns1:Plant_lol_2	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"lol_2" ;
+	cb:belongsToStrain	ns1:Strain_lucky_orange_line ;
+	cb:hasGender	"female" ;
+	dc:description	"short and stocky" ;
+	cb:inCycle	ns1:ProductionCycle_2025_7 ;
+	cb:isAlive	"true"^^xsd:boolean .
+ns1:Plant_178d9bb9-aa4	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"King Kongs Kid 3" ;
+	cb:belongsToStrain	ns1:Strain_lucky_experimental_line ;
+	cb:hasGender	"male" ;
+	dc:description	"Finally a male, leaves broad, stocky, aromatic , i like it ... as it ripens, i got the impression, maybe it was female but flipped to do me a favour (yes, nature is conscious and hemp is a very smart organism), we will have to watch the offspring" ;
+	cb:inCycle	ns1:ProductionCycle_2025_7 ;
+	cb:isAlive	"false"^^xsd:boolean .
+ns1:Plant_8606358c-b52	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"Wappa 1" ;
+	cb:belongsToStrain	ns1:Strain_wappa ;
+	cb:hasGender	"female" ;
+	dc:description	"oh, so small ..." ;
+	cb:inCycle	ns1:ProductionCycle_2025_7 ;
+	cb:cloneOf	ns1:Plant_259c2a0c-9e7 ;
+	cb:isAlive	"true"^^xsd:boolean .
+ns1:Plant_krk_1	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"krk_1" ;
+	cb:belongsToStrain	ns1:Strain_kerosene_krash ;
+	cb:hasGender	"female" ;
+	dc:description	"" ;
+	cb:inCycle	ns1:ProductionCycle_2025_7 ;
+	cb:cloneOf	ns1:Plant_90d53925-bb5 ;
+	cb:isAlive	"true"^^xsd:boolean .
+ns1:Plant_krk_2	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"krk_2" ;
+	cb:belongsToStrain	ns1:Strain_kerosene_krash ;
+	cb:hasGender	"female" ;
+	dc:description	"" ;
+	cb:inCycle	ns1:ProductionCycle_2025_7 ;
+	cb:cloneOf	ns1:Plant_90d53925-bb5 ;
+	cb:isAlive	"true"^^xsd:boolean .
+ns1:Plant_cg_2025_1	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"Cali. Gold.  2025-1" ;
+	cb:belongsToStrain	ns1:Strain_california_gold ;
+	cb:hasGender	"female" ;
+	dc:description	"Plant is rather small, growth pattern: central stalk little side branches, aroma in week 5; average" ;
+	cb:inCycle	ns1:ProductionCycle_2025_7 ;
+	cb:cloneOf	ns1:Plant_8c476f2e-c29 ;
+	cb:isAlive	"true"^^xsd:boolean .
+ns1:Plant_lol_1	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"lol_1" ;
+	cb:belongsToStrain	ns1:Strain_lucky_orange_line ;
+	cb:hasGender	"female" ;
+	dc:description	"Germinated Lunar Eclipse.\nMounstrous ! Fast growing\n\nweek 4: aroma and trichomes appear" ;
+	cb:inCycle	ns1:ProductionCycle_2025_7 ;
+	cb:isAlive	"true"^^xsd:boolean .
+ns1:Plant_6f3a97f9-a26	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"King Kongs Kid 1" ;
+	cb:belongsToStrain	ns1:Strain_lucky_experimental_line ;
+	cb:hasGender	"female" ;
+	dc:description	"Germinated at eclipse, huge strong" ;
+	cb:inCycle	ns1:ProductionCycle_2025_7 ;
+	cb:isAlive	"true"^^xsd:boolean .
+ns1:Plant_15dd9bc2-f73	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"King Kongs Kid 2" ;
+	cb:belongsToStrain	ns1:Strain_lucky_experimental_line ;
+	cb:hasGender	"female" ;
+	dc:description	"small, week 3: leaves get narrow ..\nweek 4: aroma and trichomes appear" ;
+	cb:inCycle	ns1:ProductionCycle_2025_7 ;
+	cb:isAlive	"true"^^xsd:boolean .
+ns1:Plant_e3c8a605-837	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"SOG 1" ;
+	cb:belongsToStrain	ns1:Strain_a9ac3ef6-b34 ;
+	cb:hasGender	"female" ;
+	dc:description	"Super Orange Glue" ;
+	cb:inCycle	ns1:ProductionCycle_2025_7 ;
+	cb:cloneOf	ns1:Plant_a44f6db2-e1f ;
+	cb:isAlive	"true"^^xsd:boolean .
+ns1:Plant_a44f6db2-e1f	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"h&h Super Orange Glue" ;
+	cb:belongsToStrain	ns1:Strain_a9ac3ef6-b34 ;
+	cb:hasGender	"female" ;
+	dc:description	"The motherplant at Hanf und Hanf, Wien." ;
+	cb:inCycle	ns1:ProductionCycle_66babb93-745 .
+ns1:Plant_b18d3506-e34	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"lol_3" ;
+	cb:belongsToStrain	ns1:Strain_lucky_orange_line ;
+	cb:hasGender	"female" ;
+	dc:description	"sister of lol_2, same phenotype it seems" ;
+	cb:inCycle	ns1:ProductionCycle_2025_7 ;
+	cb:isAlive	"false"^^xsd:boolean .
+ns1:Plant_8c476f2e-c29	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"h&h California Gold" ;
+	cb:belongsToStrain	ns1:Strain_california_gold ;
+	cb:hasGender	"female" ;
+	dc:description	"" ;
+	cb:inCycle	ns1:ProductionCycle_66babb93-745 .
+ns1:Plant_90d53925-bb5	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"h&h Kerosene Krash" ;
+	cb:belongsToStrain	ns1:Strain_kerosene_krash ;
+	cb:hasGender	"female" ;
+	dc:description	"" ;
+	cb:inCycle	ns1:ProductionCycle_66babb93-745 .
+ns1:Plant_aa030e12-223	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"Kerosene Krash A" ;
+	cb:belongsToStrain	ns1:Strain_kerosene_krash ;
+	cb:hasGender	"female" ;
+	dc:description	"Mother plant " ;
+	cb:inCycle	ns1:ProductionCycle_39518df1-af0 ;
+	cb:cloneOf	ns1:Plant_90d53925-bb5 ;
+	cb:isAlive	"true"^^xsd:boolean .
+ns1:Plant_bb2b7d1a-d5d	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"Super Orange Glue A" ;
+	cb:belongsToStrain	ns1:Strain_a9ac3ef6-b34 ;
+	cb:hasGender	"female" ;
+	dc:description	"Mother plant " ;
+	cb:inCycle	ns1:ProductionCycle_39518df1-af0 ;
+	cb:cloneOf	ns1:Plant_a44f6db2-e1f ;
+	cb:isAlive	"true"^^xsd:boolean .
+ns1:Plant_259c2a0c-9e7	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"h&h Wappa" ;
+	cb:belongsToStrain	ns1:Strain_wappa ;
+	cb:hasGender	"female" ;
+	dc:description	"" ;
+	cb:inCycle	ns1:ProductionCycle_66babb93-745 .
+ns1:Plant_518e8712-986	rdf:type	cb:IndividualPlant ;
+	rdfs:label	"test plant" ;
+	cb:belongsToStrain	ns1:Strain_girl_scout_cookies ;
+	cb:hasGender	"female" ;
+	dc:description	"test" ;
+	cb:grownFromSeedProduct	ns1:SeedProduct_267455ab-26f ;
+	cb:inCycle	ns1:ProductionCycle_2f6f7bc4-1fa .

+ 124 - 0
examples/productioncycle_export.ttl

@@ -0,0 +1,124 @@
+@prefix rdf:	<http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix ns1:	<http://world.eu.org/example1#> .
+@prefix cb:	<http://world.eu.org/cannabis-breeding#> .
+ns1:ProductionCycle_fa04d33e-1ba	rdf:type	cb:ProductionCycle .
+@prefix rdfs:	<http://www.w3.org/2000/01/rdf-schema#> .
+ns1:ProductionCycle_fa04d33e-1ba	rdfs:label	"2025-11" .
+@prefix dc:	<http://purl.org/dc/elements/1.1/> .
+ns1:ProductionCycle_fa04d33e-1ba	dc:description	"5 Kerosene Krash and 5 Super Orange Glue Clones and some Seedlings" .
+@prefix xsd:	<http://www.w3.org/2001/XMLSchema#> .
+ns1:ProductionCycle_fa04d33e-1ba	cb:productionEndDate	"2025-11-01"^^xsd:date ;
+	cb:productionStartDate	"2025-08-30"^^xsd:date ;
+	cb:cycleIncludesPlant	ns1:Plant_8f41516e-da4 ,
+		ns1:Plant_c6d6ec2f-d77 ,
+		ns1:Plant_36918cf2-e58 ,
+		ns1:Plant_d81a6059-f6e ,
+		ns1:Plant_e9064487-31d ;
+	cb:growingMedium	"Coco" ;
+	cb:lightWattage	250 ;
+	cb:lightType	"HPS" ;
+	cb:isIndoor	"true"^^xsd:boolean ;
+	cb:hasLog	ns1:GrowLog_447a9d66-f7a ;
+	cb:cycleIncludesPollination	ns1:Pollination_8d9b9db6-c97 ,
+		ns1:Pollination_829515cd-b73 ,
+		ns1:Pollination_65b28d3f-2fa ,
+		ns1:Pollination_2b2c4889-eca .
+ns1:ProductionCycle_c544ae17-1bd	rdf:type	cb:ProductionCycle ;
+	rdfs:label	"2026-5" ;
+	cb:productionEndDate	"2026-05-31"^^xsd:date ;
+	cb:productionStartDate	"2026-03-23"^^xsd:date ;
+	cb:growingMedium	"Coco" ;
+	cb:lightWattage	250 ;
+	cb:lightType	"HPS" ;
+	cb:isIndoor	"true"^^xsd:boolean ;
+	cb:hasLog	ns1:GrowLog_5c61a7b7-1e2 .
+ns1:ProductionCycle_22f010d0-29f	rdf:type	cb:ProductionCycle ;
+	rdfs:label	"2026-1" ;
+	cb:productionStartDate	"2025-11-03"^^xsd:date ;
+	cb:cycleIncludesPlant	ns1:Plant_697333a9-025 ;
+	cb:growingMedium	"Coco" ;
+	cb:lightWattage	250 ;
+	cb:lightType	"HPS" ;
+	cb:isIndoor	"true"^^xsd:boolean ;
+	cb:hasLog	ns1:GrowLog_2fe58757-ac8 ;
+	cb:cycleIncludesPollination	ns1:Pollination_14328c79-01e .
+ns1:ProductionCycle_21d96b6c-179	rdf:type	cb:ProductionCycle ;
+	rdfs:label	"2026-3" ;
+	cb:productionEndDate	"2026-03-11"^^xsd:date ;
+	cb:productionStartDate	"2026-01-07"^^xsd:date ;
+	cb:cycleIncludesPlant	ns1:Plant_5ce321c3-c09 ,
+		ns1:Plant_36b1758a-eb2 ,
+		ns1:Plant_5d2931af-ec9 ,
+		ns1:Plant_b5530257-ef9 ,
+		ns1:Plant_c964f290-a0f ;
+	cb:growingMedium	"Coco" ;
+	cb:lightWattage	250 ;
+	cb:lightType	"HPS" ;
+	cb:isIndoor	"true"^^xsd:boolean ;
+	cb:hasLog	ns1:GrowLog_a153b7fa-c2d ;
+	cb:cycleIncludesPollination	ns1:Pollination_1a4b887f-e67 ,
+		ns1:Pollination_57a812b7-9e8 ,
+		ns1:Pollination_2d4c6e69-789 ,
+		ns1:Pollination_25c06255-99e .
+ns1:ProductionCycle_39518df1-af0	rdf:type	cb:ProductionCycle ;
+	rdfs:label	"Kitchen" ;
+	dc:description	"The 18 hour kitchen space" ;
+	cb:cycleIncludesPlant	ns1:Plant_bad699a0-1de ,
+		ns1:Plant_aa030e12-223 ,
+		ns1:Plant_bb2b7d1a-d5d ,
+		ns1:Plant_70e3aaad-8be ;
+	cb:growingMedium	"Coco" ;
+	cb:lightWattage	23 ;
+	cb:lightType	"LED" ;
+	cb:isIndoor	"true"^^xsd:boolean ;
+	cb:hasLog	ns1:GrowLog_023033de-0bb .
+ns1:ProductionCycle_66babb93-745	rdf:type	cb:ProductionCycle ;
+	rdfs:label	"Hanf und Hanf Clones" ;
+	dc:description	"The Clones from the shop." ;
+	cb:cycleIncludesPlant	ns1:Plant_a44f6db2-e1f ,
+		ns1:Plant_259c2a0c-9e7 ,
+		ns1:Plant_90d53925-bb5 ,
+		ns1:Plant_8c476f2e-c29 ;
+	cb:isIndoor	"true"^^xsd:boolean ;
+	cb:hasLog	ns1:GrowLog_2a4eb862-824 .
+ns1:ProductionCycle_2025_7	rdf:type	cb:ProductionCycle ;
+	rdfs:label	"2025-7 / Indoor" ;
+	dc:description	"This is the current cycle" ;
+	cb:productionEndDate	"2025-07-06"^^xsd:date ;
+	cb:productionStartDate	"2025-05-11"^^xsd:date ;
+	cb:cycleIncludesPlant	ns1:Plant_krk_1 ,
+		ns1:Plant_15dd9bc2-f73 ,
+		ns1:Plant_lol_1 ,
+		ns1:Plant_6f3a97f9-a26 ,
+		ns1:Plant_cg_2025_1 ,
+		ns1:Plant_krk_2 ,
+		ns1:Plant_e3c8a605-837 ,
+		ns1:Plant_b18d3506-e34 ,
+		ns1:Plant_lol_2 ,
+		ns1:Plant_gsc_2 ,
+		ns1:Plant_8606358c-b52 ,
+		ns1:Plant_178d9bb9-aa4 ;
+	cb:growingMedium	"Coco" ;
+	cb:lightWattage	250 ;
+	cb:lightType	"HPS" ;
+	cb:isIndoor	"true"^^xsd:boolean ;
+	cb:hasLog	ns1:GrowLog_88b90f04-330 ;
+	cb:cycleIncludesPollination	ns1:Pollination_8c77b372-6a5 ,
+		ns1:Pollination_714b321b-25d ,
+		ns1:Pollination_c4e2aa09-71e ,
+		ns1:Pollination_56b8b652-91a ,
+		ns1:Pollination_f6c26786-198 ,
+		ns1:Pollination_2ec95542-4e1 ,
+		ns1:Pollination_e885f43c-a0b ,
+		ns1:Pollination_b7d77fb3-602 ,
+		ns1:Pollination_5a4954c6-7ad .
+ns1:ProductionCycle_2f6f7bc4-1fa	rdf:type	cb:ProductionCycle ;
+	rdfs:label	"Some Test Cycle 1" ;
+	dc:description	"Just a Test Cycle" ;
+	cb:productionStartDate	"2022-01-05"^^xsd:date ;
+	cb:cycleIncludesPlant	ns1:Plant_e1a57ac8-7de ,
+		ns1:Plant_518e8712-986 ,
+		ns1:Plant_dd4c5bf5-ed1 ;
+	cb:isIndoor	"true"^^xsd:boolean ;
+	cb:hasLog	ns1:GrowLog_7c336f5c-2bb ;
+	cb:cycleIncludesPollination	ns1:Pollination_567f1a70-e20 .

+ 5 - 0
examples/test_fixture.ttl

@@ -0,0 +1,5 @@
+@prefix ex: <http://example.org/garden-test#> .
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+
+ex:FixturePlant a ex:Specimen ;
+    rdfs:label "Fixture plant" .

+ 25 - 0
helpers.py

@@ -59,6 +59,31 @@ class GardenLayer:
             payload["graph"] = graph
         return self._call("batch_insert", payload)
 
+    def load_examples(self, files: Optional[List[str]] = None, graph: Optional[str] = None) -> Any:
+        payload: Dict[str, Any] = {}
+        if files:
+            payload["files"] = files
+        if graph:
+            payload["graph"] = graph
+        return self._call("garden_load_examples", payload)
+
+    def list_cycle_plants(self, cycle_uri: str, limit: int = 50) -> Any:
+        return self._call("garden_cycle_plants", {
+            "cycle_uri": cycle_uri,
+            "limit": limit,
+        })
+
+    def reassign_cycle(self, subject: str, new_cycle: str, old_cycle: Optional[str] = None, graph: Optional[str] = None) -> Any:
+        payload: Dict[str, Any] = {
+            "subject": subject,
+            "new_cycle": new_cycle,
+        }
+        if old_cycle:
+            payload["old_cycle"] = old_cycle
+        if graph:
+            payload["graph"] = graph
+        return self._call("garden_reassign_cycle", payload)
+
     def add_seedling(
         self,
         plant_uri: str,

+ 5 - 1
src/garden_layer/__init__.py

@@ -1,6 +1,7 @@
 from typing import Callable, Dict
 
 from .helpers import GardenLayer
+from .domain_tools import cycle_plants, load_examples, reassign_cycle
 
 __all__ = ["GardenLayer", "register_layer"]
 
@@ -16,4 +17,7 @@ def register_layer(tools: Dict[str, Callable[[Dict[str, object]], object]]) -> N
     tools["garden_path_traverse"] = _make_tool(garden.path_traverse)
     tools["garden_property_usage_statistics"] = _make_tool(garden.property_usage_statistics)
     tools["garden_batch_insert"] = _make_tool(garden.batch_insert)
-    tools["garden_cycle_plants"] = _make_tool(garden.list_cycle_plants)
+    tools["garden_cycle_plants"] = _make_tool(cycle_plants)
+    tools["garden_load_examples"] = _make_tool(load_examples)
+
+    tools["garden_reassign_cycle"] = _make_tool(reassign_cycle)

+ 88 - 0
src/garden_layer/domain_tools.py

@@ -0,0 +1,88 @@
+from pathlib import Path
+from typing import Any, Dict, Optional
+import os
+
+from fastapi import HTTPException
+from virtuoso_mcp import run_sparql, run_sparql_update, SPARQL_MAX_LIMIT, ttl_to_sparql_insert
+
+from .config import BASE_DIR, CLONE_OF, GRAPH, IN_CYCLE
+
+
+_ALLOW_EXAMPLE_LOAD = os.getenv("MCP_ALLOW_EXAMPLE_LOAD", "false").lower() == "true"
+_EXAMPLES_DIR = BASE_DIR.parent.parent / "examples"
+_DEFAULT_EXAMPLE_GRAPH = os.getenv("GARDEN_EXAMPLE_GRAPH", GRAPH)
+
+
+def _safe_limit(value: Any, default: int = 50) -> int:
+    try:
+        parsed = int(value)
+    except (TypeError, ValueError):
+        parsed = default
+    return min(max(parsed, 1), SPARQL_MAX_LIMIT)
+
+
+def cycle_plants(cycle_uri: str, limit: Optional[int] = 50) -> Dict[str, Any]:
+    if not cycle_uri:
+        raise ValueError("Missing 'cycle_uri' field")
+    bounded_limit = _safe_limit(limit)
+    query = f"""
+    SELECT ?plant ?plantLabel ?parent WHERE {{
+        ?plant <{IN_CYCLE}> <{cycle_uri}> .
+        OPTIONAL {{ ?plant rdfs:label ?plantLabel }}
+        OPTIONAL {{ ?plant <{CLONE_OF}> ?parent }}
+    }}
+    LIMIT {bounded_limit}
+    """
+    return run_sparql(query)
+
+
+def load_examples(files: Optional[list[str]] = None, graph: Optional[str] = None) -> Dict[str, Any]:
+    if not _ALLOW_EXAMPLE_LOAD:
+        raise HTTPException(status_code=403, detail="Example loading is disabled")
+
+    selected = files or []
+    if isinstance(selected, str):
+        selected = [selected]
+    if not selected:
+        selected = [p.name for p in _EXAMPLES_DIR.glob("*.ttl")]
+
+    target_graph = graph or _DEFAULT_EXAMPLE_GRAPH
+    results = []
+    for filename in selected:
+        file_path = (_EXAMPLES_DIR / filename).resolve()
+        if not file_path.exists():
+            raise HTTPException(status_code=400, detail=f"Missing example file: {filename}")
+        if _EXAMPLES_DIR not in file_path.parents:
+            raise HTTPException(status_code=400, detail="Invalid example file path")
+        ttl_text = file_path.read_text(encoding="utf-8")
+        update_query = ttl_to_sparql_insert(ttl_text, target_graph)
+        run_sparql_update(update_query)
+        results.append({"file": filename, "graph": target_graph})
+    return {"loaded": results}
+
+
+def reassign_cycle(
+    subject: str,
+    new_cycle: str,
+    old_cycle: Optional[str] = None,
+    graph: Optional[str] = None,
+) -> Dict[str, Any]:
+    if not subject or not new_cycle:
+        raise ValueError("Provide 'subject' and 'new_cycle' fields")
+    target_graph = graph or GRAPH
+    if old_cycle:
+        delete_clause = f"<{subject}> <{IN_CYCLE}> <{old_cycle}> ."
+        where_clause = delete_clause
+        update_query = f"""
+        WITH <{target_graph}>
+        DELETE {{ {delete_clause} }}
+        INSERT {{ <{subject}> <{IN_CYCLE}> <{new_cycle}> . }}
+        WHERE {{ {where_clause} }}
+        """
+    else:
+        update_query = f"""
+        WITH <{target_graph}>
+        INSERT {{ <{subject}> <{IN_CYCLE}> <{new_cycle}> . }}
+        WHERE {{ }}
+        """
+    return run_sparql_update(update_query)

+ 9 - 0
test_garden_layer.py

@@ -1,3 +1,4 @@
+import os
 import pytest
 import requests
 from typing import Any, Dict
@@ -123,3 +124,11 @@ def test_mcp_garden_cycle_plants():
     for binding in bindings:
         plant_uri = binding.get("plant", {}).get("value")
         assert plant_uri, "Each binding should include a plant URI"
+
+
+def test_load_examples_fixture(garden_layer):
+    if os.getenv("MCP_ALLOW_EXAMPLE_LOAD", "false").lower() != "true":
+        pytest.skip("MCP_ALLOW_EXAMPLE_LOAD must be true to load example fixtures")
+    result = garden_layer.load_examples(files=["test_fixture.ttl"], graph=GRAPH)
+    loaded = result.get("loaded", [])
+    assert any(item.get("file") == "test_fixture.ttl" for item in loaded), "Expected fixture file to be loaded"