<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: onder yazici</title>
    <description>The latest articles on DEV Community by onder yazici (@onder_yazici_f5ebf1351405).</description>
    <link>https://dev.to/onder_yazici_f5ebf1351405</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4216029%2F8d7fbc48-29cc-44f0-b7d9-a080153fae98.jpg</url>
      <title>DEV Community: onder yazici</title>
      <link>https://dev.to/onder_yazici_f5ebf1351405</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/onder_yazici_f5ebf1351405"/>
    <language>en</language>
    <item>
      <title>An open dataset of Turkish coffee cup reading symbols (and why the part of the cup matters)</title>
      <dc:creator>onder yazici</dc:creator>
      <pubDate>Thu, 29 Oct 2026 20:30:55 +0000</pubDate>
      <link>https://dev.to/onder_yazici_f5ebf1351405/an-open-dataset-of-turkish-coffee-cup-reading-symbols-and-why-the-part-of-the-cup-matters-pcm</link>
      <guid>https://dev.to/onder_yazici_f5ebf1351405/an-open-dataset-of-turkish-coffee-cup-reading-symbols-and-why-the-part-of-the-cup-matters-pcm</guid>
      <description>&lt;p&gt;Turkish coffee leaves a thick layer of grounds in the cup. Turn the cup over onto its saucer, let it cool, and the grounds dry into shapes: a bird, a snake, a ring. Reading those shapes (&lt;em&gt;kahve falı&lt;/em&gt;, a form of tasseography) is a living tradition in Türkiye, Greece and much of the Middle East.&lt;/p&gt;

&lt;p&gt;When I looked for a structured list of the symbols, there wasn't one. Not on GitHub, not on Hugging Face, not on Kaggle (as of October 2026). There are plenty of web pages, but they repeat the same one-line meanings, and almost none of them say &lt;em&gt;where&lt;/em&gt; in the cup a shape sits, which in practice is half of the reading.&lt;/p&gt;

&lt;p&gt;So I published one.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's in it
&lt;/h2&gt;

&lt;p&gt;40 symbols, each in Turkish and English:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the name and a category (animals, shapes, objects, people, nature)&lt;/li&gt;
&lt;li&gt;what folk tradition says about it, in a few words&lt;/li&gt;
&lt;li&gt;a calmer reading that avoids fear and prediction (no "an enemy is near", no "money is coming")&lt;/li&gt;
&lt;li&gt;a short gist for each of the five parts of the cup: the rim, the side, the bottom, near the handle, and the saucer&lt;/li&gt;
&lt;li&gt;a link to the full page for the symbol&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One record:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"yilan"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"name_tr"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Yılan"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"name_en"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Snake"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"category"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"animals"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"traditional_en"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"a rival posing as a friend"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"falyora_reading_en"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"something moving by winding rather than straight"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"zones"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"rim"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"a roundabout matter in the near term"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"side"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"an ongoing process not going straight"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"bottom"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"a matter carried for a long time"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"handle"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"your own hesitation or indirect path"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"saucer"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"a general situation from outside"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"url_en"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://falyora.app/en/symbols/snake"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;(The Turkish fields are left out above to keep it short.)&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the zones
&lt;/h2&gt;

&lt;p&gt;In the tradition, the same shape means different things in different places. Near the rim it's about now; on the bottom it's about something older, or further away; near the handle it's about you; on the saucer it's about the people around you. A list of "snake = enemy" throws that away. Keeping the five zones as separate fields is the main thing this dataset adds.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it was made
&lt;/h2&gt;

&lt;p&gt;The symbols come from the dictionary on falyora.app. Those pages are written with the help of AI tools and checked twice before they go live: a program scans for fear language, health hints, exact dates and pages that read too much alike, and sensitive pages are read again (&lt;a href="https://falyora.app/en/about#editorial" rel="noopener noreferrer"&gt;editorial policy&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;The dataset is not a copy of those pages. Each field is a short summary written for the dataset, and a small validator (&lt;code&gt;build.py&lt;/code&gt;, MIT) checks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;every id has a Turkish and an English page, and names and categories match&lt;/li&gt;
&lt;li&gt;each field stays within a word limit&lt;/li&gt;
&lt;li&gt;no run of eight or more words is copied from the page text&lt;/li&gt;
&lt;li&gt;no banned words (enemy, betrayal, curse, illness, exact dates)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Using it
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;urllib&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;request&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://falyora.app/open-data/coffee-cup-symbols/symbols.json&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="n"&gt;symbols&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;load&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;urllib&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;urlopen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;symbols&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;name_en&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;-&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;zones&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;handle&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Some ideas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a symbol picker or glossary for a tasseography project&lt;/li&gt;
&lt;li&gt;teaching material about Turkish coffee culture&lt;/li&gt;
&lt;li&gt;labels for research on shapes in coffee cup photos&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Get it
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Page: &lt;a href="https://falyora.app/en/open-data" rel="noopener noreferrer"&gt;https://falyora.app/en/open-data&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/0xBusuzima/coffee-cup-symbols" rel="noopener noreferrer"&gt;https://github.com/0xBusuzima/coffee-cup-symbols&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;JSON: &lt;a href="https://falyora.app/open-data/coffee-cup-symbols/symbols.json" rel="noopener noreferrer"&gt;https://falyora.app/open-data/coffee-cup-symbols/symbols.json&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;CSV: &lt;a href="https://falyora.app/open-data/coffee-cup-symbols/symbols.csv" rel="noopener noreferrer"&gt;https://falyora.app/open-data/coffee-cup-symbols/symbols.csv&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;License: data CC BY 4.0 (credit "Falyora (falyora.app)"), code MIT. &lt;code&gt;CITATION.cff&lt;/code&gt; is included.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  About the app
&lt;/h2&gt;

&lt;p&gt;I made the dataset alongside Falyora, an Android app that reads coffee cups from photos with AI and says so openly. It marks the shapes it found on the photo so you can check them yourself. Readings are for entertainment. The dataset doesn't depend on the app; the app is just why I needed it.&lt;/p&gt;

&lt;p&gt;If you spot a mistake in the data, or know a regional reading that's missing, I'd like to hear it.&lt;/p&gt;

</description>
      <category>opendata</category>
      <category>dataset</category>
      <category>python</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
