# Semantics and Fabric Value > Semantics are key-value annotations added to various points in the task graph. They allow for the customization of task objects with information that is distinct from the data layer. This customization offers a really broad range of functionality. But generally speaking, they are super important because they define an interface that allows an application to be built on top of fabric by allowing it to store relevant application state inside the task graph and the fabric API allows for the querying of that state. (You could build our entire web application off of fabric using the task graph and semantics as the single source of truth.) > > I think this is cool because it allows the application to reference exact and stable locations in data lineages while the rest of fabric provides an api that accounts for logical equivalence, source continuity, dataflow compilation (across various backends), and cacheing. None of those features by themselves are unique but I don’t know of another platform that offers that entire feature set as first class features. All-in-all, this amounts to an ability to build an application that is based off of arbitrary derived dataflows that can be described at a high level without having to think about the how the compute happens or how source changes affect the flows while still easily allowing you to edit the dataflows and store your application state on top these flows. We’ve still got a ways to go in terms of implementing all of this in a polished manner but the bones are there. --- Date: 20211025 Links to: [Semantic Fabric MOC](Semantic%20Fabric%20MOC.md) Tags: References: * [tom message](https://unsuper.slack.com/archives/CNHQCGNR4/p1634746813485400?thread_ts=1634664385.469300&cid=CNHQCGNR4)