I wrote about Superset's semantic layer here: https://preset.io/blog/understanding-superset-semantic-layer...
One popular option is to use dbt or Cube for the semantic layer and pair with Superset: https://preset.io/blog/announcing-presets-ui-integration-wit... and https://preset.io/blog/open-source-looker-cube-superset/