SVG: Arch Path + Arrow Head Marker + Centered Textpath
Live example:
<path d="M0, -5L10, 0L0, 5"></path>
<!-- DEFINE A TEXT PATH FOLLOWING THE PATH DEFINED ABOVE. USE STARTOFFSET TO CENTER TEXT. -->
<textPath
xlink:href="#edge-state8-state5"
startoffset="50%">Centered edge label</textPath>
Source:
<html>
<body>
<svg width="600px" height="400px" style="border: 1px solid grey;">
<defs>
<!-- DEFINE AN ARROW THAT WE CAN PLACE AT THE END OF EDGES. -->
<!-- USE REFX TO MOVE THE ARROW'S TIP TO THE END OF THE PATH. -->
<marker
orient="auto"
markerHeight="12"
markerWidth="12"
refY="0"
refX="9"
viewBox="0 -5 10 10"
id="ARROW_ID"
style="fill: red; fill-opacity: 0.5;">
<path d="M0, -5L10, 0L0, 5"></path>
</marker>
</defs>
<!-- DEFINE A PATH. SET ITS END MARKER TO THE ARROW'S ID. -->
<!-- SET FILL NONE TO DRAW A LINE INSTEAD OF A SHAPE. -->
<path
d="M50,50 A300,250 0 0,1 450,250"
style="fill:none; stroke:grey; stroke-width:2px;"
id="PATH_ID"
marker-end="url(#ARROW_ID)" />
<!-- DEFINE A TEXT ELEMENT AND SET FONT PROPERTIES. -->
<!-- USE DY TO MOVE TEXT ABOVE THE PATH. -->
<text
style="text-anchor:middle; font: 16px sans-serif;"
dy="-12">
<!-- DEFINE A TEXT PATH FOLLOWING THE PATH DEFINED ABOVE. -->
<!-- USE STARTOFFSET TO CENTER TEXT. -->
<textPath
xlink:href="#PATH_ID"
startoffset="50%">Centered edge label</textPath>
</text>
</svg>
</body>
</html>