Repository navigation
Domain Model
The core of the project is an information model: category tree > craft type > attribute definitions. When a user adds an entry, they only fill in the fields that the chosen craft type defines. They cannot add their own fields. This way every entry can be compared, filtered and searched by the computer.
- Level 1: Domain (e.g. Textile Arts, Ceramics and Tiles, Paper Arts, Wood and Metal Crafts, Painting and Calligraphy)
- Level 2: Family (e.g. Textile Arts > Flat-woven Rugs, Pile Rugs, Embroidery)
- Level 3: Craft Type (e.g. Flat-woven Rugs > Kilim, Cicim, Zili, Sumak)
A craft entry is always attached to a level 3 craft type.
- Category: name, level (1 or 2), parent category
- CraftType: name, category (level 2), description, is predefined (yes or no), created by, status (approved or pending)
- AttributeDefinition: belongs to a craft type; name, data type, unit, required (yes or no), allowed values
- CraftEntry: title, craft type, owner, location (latitude, longitude, place name), images, personal story (the only free text), created at
- AttributeValue: one value for one attribute definition of one entry
- Color: name and color code from a fixed palette; an entry can have many
- Pattern: name, craft type it belongs to, short meaning; an entry can have many
- Tag: name, is predefined (yes or no); an entry can have many
- Report: entry, reporter, reason, status (open or resolved)
- Measurement: a number with a unit. Length in mm, cm or m; weight in g or kg; area in m². The system stores the base unit (cm, g) and converts for display.
- Single choice: one value from a list (e.g. dye type)
- Multiple choice: many values from a list (e.g. colors, patterns, materials)
- Year or period: a year, a year range or a named period (e.g. Ottoman, 19th century)
- Location: a map pin with latitude and longitude
- Yes or no
There is no free text field except the personal story.
In class we were asked to research one local art and describe it in a machine-processable way. I chose Kilim, because its techniques, materials, dyes and motifs can be written as clear lists.
Craft type: Kilim (Textile Arts > Flat-woven Rugs > Kilim). Predefined.
- Width: measurement, unit cm, required
- Length: measurement, unit cm, required
- Weight: measurement, unit kg, optional
- Weaving technique: multiple choice, required. Values: slit tapestry, dovetailing, double interlocking, cicim, zili, sumak
- Warp material: single choice, required. Values: wool, goat hair, cotton
- Weft material: multiple choice, required. Values: wool, goat hair, cotton, silk
- Dye type: single choice, required. Values: natural, synthetic, mixed, unknown
- Natural dye sources: multiple choice, optional. Values: madder root (red), indigo (blue), walnut husk (brown), vine leaf (yellow), chamomile (yellow)
- Colors: multiple choice from the color palette, required (at least 1)
- Patterns (motifs): multiple choice, optional. Values: elibelinde, koçboynuzu (ram's horn), bereket, göz (eye), muska (amulet), bukağı (hobble), sandık (dowry chest), kurt ağzı (wolf's mouth), su yolu (waterway), hayat ağacı (tree of life)
- Use: single choice, optional. Values: floor rug, prayer rug, wall hanging, cushion, bag, cover
- Production place: location (map pin), required
- Culture or community: single choice, optional (e.g. Yoruk, Turkmen, Kurdish, village workshop)
- Production period: year or period, optional
- Maker: short name field, optional ("unknown" allowed)
- Condition: single choice, optional. Values: new, good, worn, restored
- Title: Grandmother's kilim from Kayseri
- Width 120 cm, Length 180 cm
- Technique: slit tapestry
- Warp: wool; Weft: wool
- Dye type: natural; Dye sources: madder root, indigo
- Colors: red, dark blue, cream
- Patterns: elibelinde, su yolu
- Use: floor rug
- Production place: pin near Kayseri
- Production period: 1960s
- Personal story (free text): "My grandmother wove this for her dowry..."
Because the data is structured, the system can answer questions like "show kilims dyed with madder root, with the elibelinde motif, longer than 150 cm".
- Kilim weaving techniques: https://www.kilim.com
- Kilim motifs and meanings: https://www.halicizade.com
- Requirements (FR-2.x and FR-3.x)
- Use Cases
- Mockups
🎨 Term Project
📘 Git
🗂 Project workflow