-
See Also
- ParametricPlot3D
- GraphData
-
- Entity Types
- Knot
-
- Interpreter Types
- Knot
- ComputedKnot
- Related Guides
-
-
See Also
- ParametricPlot3D
- GraphData
-
- Entity Types
- Knot
-
- Interpreter Types
- Knot
- ComputedKnot
- Related Guides
-
See Also
KnotData
Details
- Prime knots with crossing numbers up to 10 can be specified in Alexander–Briggs notation {n,k} .
- Knots can also be specified in Dowker notation {i1,i2,i3,…}, and in Conway notation "nnnn".
- Special knot specifications include:
-
{"PretzelKnot",{n1,n2,…}} (n1, n2, …)-pretzel knot {"TorusKnot",{m,n}} (m, n)-torus knot (m, n coprime) - Knots with standard names can be specified by their names, such as "Trefoil" and "FigureEight".
- KnotData[] gives a list of classical named knots.
- KnotData[All] gives a list of knots that have Alexander–Briggs notations.
- KnotData["Properties"] gives a list of possible properties for knots.
- Graphical representations for knots include:
-
"Image" 3D image of the knot "ImageData" graphics data for the 3D knot image "KnotDiagram" 2D diagram of the knot "KnotDiagramData" graphics data for the 2D knot diagram - Region-related representations include:
-
"BoundaryMeshRegion" boundary mesh representation "MeshRegion" mesh representation "Region" geometric region - Invariants for knots include:
-
"ArfInvariant" Arf invariant "BraidIndex" braid index "BridgeIndex" bridge index "ColoringNumberSet" list of colorable numbers "ConcordanceOrder" concordance order "CrossingNumber" crossing number "DegreeThreeVassiliev" degree-3 Vassiliev invariant "DegreeTwoVassiliev" degree-2 Vassiliev invariant "Determinant" determinant "Genus" genus of knot complement "HyperbolicVolume" hyperbolic volume "NakanishiIndex" Nakanishi index "OzsvathSzaboTau" Ozsvath–Szabo tau invariant "Signature" signature "SmoothFourGenus" smooth 4-genus "StickNumber" stick number "SuperbridgeIndex" superbridge index "ThurstonBennequin" Thurston–Bennequin number "TopologicalFourGenus" topological 4-genus "UnknottingNumber" unknotting number - Polynomial invariants given as pure functions include:
-
"AlexanderPolynomial" Alexander polynomial "BLMHoPolynomial" BLMHo polynomial "BracketPolynomial" normalized bracket polynomial "ConwayPolynomial" Conway polynomial "HOMFLYPolynomial" HOMFLY polynomial "JonesPolynomial" Jones polynomial "KauffmanPolynomial" Kauffman polynomial - Other properties include:
-
"SeifertMatrix" Seifert matrix "SpaceCurve" space curve function for a knot embedding - Graphical representations for knots as braids include:
-
"BraidDiagram" 2D diagram of the knot as a braid "BraidDiagramData" graphics data for the 2D braid diagram "BraidImage" 3D image of the knot as a braid "BraidImageData" graphics data for the 3D braid image - Notations for knots include:
-
"AlexanderBriggsList" Alexander–Briggs {n,k} list "AlexanderBriggsNotation" Alexander–Briggs notation for display "BraidWord" braid word as a list "BraidWordNotation" braid word in algebraic notation "ConwayNotation" Conway notation for display "ConwayString" Conway notation as a string "DowkerList" Dowker {i1,i2,i3,…} list "DowkerNotation" Dowker notation for display - Naming-related properties include:
-
"AlternateNames" alternate English names "Name" English or mathematical name "StandardName" standard Wolfram Language name - KnotData[knot,"Classes"] gives a list of the classes in which knot occurs.
- KnotData["class"] gives a list of knots in the specified class.
- KnotData[knot,"class"] gives True or False depending on whether knot is in the specified class.
- Basic classes of knots include:
-
"AlmostAlternating" almost alternating "Alternating" alternating "Amphichiral" amphichiral "Chiral" chiral "Hyperbolic" hyperbolic "Invertible" invertible "Nonalternating" non-alternating "Prime" prime "Ribbon" ribbon "Satellite" satellite "Slice" slice "Torus" torus "Twist" twist - Negative classes of knots include:
-
"Composite" not prime "NonalmostAlternating" not almost alternating "Nonhyperbolic" not hyperbolic "Noninvertible" not invertible "Nonribbon" not ribbon "Nonsatellite" not satellite "Nonslice" not slice "Nontorus" not torus "Nontwist" not twist - KnotData[name,"Information"] gives a hyperlink to more information about the knot with the specified name.
- Using KnotData may require internet connectivity.
Examples
open all close allBasic Examples (2)
Scope (26)
Names and Classes (10)
Obtain a list of classical named knots:
KnotData[]Obtain a list of knots that have Alexander–Briggs notations:
KnotData[All]//ShortLength[%]A knot can be specified by its standard Wolfram Language name:
KnotData["FigureEight"]Knots can also be specified in Alexander–Briggs notation:
KnotData[{4, 1}, "ArfInvariant"]KnotData["22", "ArfInvariant"]KnotData[{4, 6, 8, 2}, "ArfInvariant"]A torus knot is specified by a pair of coprime integers:
KnotData[{"TorusKnot", {3, 5}}]A pretzel knot is specified by the number of crossings of its tangles:
KnotData[{"PretzelKnot", {5, 3, 2}}]Find the English name of a knot:
KnotData[{3, 1}, "Name"]A list of alternate names can also be found:
KnotData[{3, 1}, "AlternateNames"]Find the list of knot classes:
KnotData["Classes"]Find the list of knots belonging to a class:
KnotData["Torus"]KnotData["Noninvertible"]Test whether an element belongs to a class:
KnotData[{3, 1}, "Torus"]Get a list of classes in which a knot belongs:
KnotData[{3, 1}, "Classes"]A list of knots which are noninvertible and alternating:
KnotData[{"Noninvertible", "Alternating"}]Properties (7)
Get a list of possible properties:
KnotData["Properties"]Length[%]Get a list of available properties for a particular knot:
KnotData[{4, 1}, "Properties"] //ShortKnotData[{5, 2}, "Image"]KnotData[{"TorusKnot", {11, 21}}, "KnotDiagram"]Get more information about a knot:
KnotData[{3, 1}, "Information"]Get different notational forms:
KnotData[{8, 18}, "AlexanderBriggsNotation"]KnotData[{8, 18}, "ConwayNotation"]KnotData[{8, 18}, "DowkerNotation"]Get different notational forms, useful for input:
KnotData[{8, 18}, "AlexanderBriggsList"]KnotData[{8, 18}, "ConwayString"]KnotData[{8, 18}, "DowkerList"]Property Values (9)
A property value can be any valid Wolfram Language expression:
KnotData[{7, 1}, "ArfInvariant"]KnotData[{10, 122}, "ColoringNumberSet"]KnotData[{3, 1}, "AlexanderBriggsNotation"]Polynomial invariants are given as pure functions:
p = KnotData["FigureEight", "HOMFLYPolynomial"]p[x, y]A space curve for a knot is given as Function or InterpolatingFunction:
f = KnotData[{3, 1}, "SpaceCurve"]ParametricPlot3D[f[t], {t, 0, 2Pi}, Axes -> False]g = KnotData[{7, 2}, "SpaceCurve"]ParametricPlot3D[g[t], {t, 0, 2Pi}, Axes -> False]3D images of knots are Graphics3D objects:
KnotData[{7, 1}, "Image"]//HeadGet the 3D primitives for the "Image":
KnotData[{7, 1}, "ImageData"]//Short2D diagrams of knots are Graphics objects:
KnotData[{7, 1}, "KnotDiagram"]//HeadGet the 2D primitives for the "KnotDiagram":
KnotData[{7, 1}, "KnotDiagramData"]//ShortA property that is not applicable to a knot has the value Missing["NotApplicable"]:
KnotData[{"TorusKnot", {3, 2}}, "HyperbolicVolume"]A property that is not available for a knot has the value Missing["NotAvailable"]:
KnotData[{"PretzelKnot", {2, 3, 5}}, "OzsvathSzaboTau"]A property that is unknown for a knot has the value Missing["Unknown"]:
KnotData[{8, 13}, "ConcordanceOrder"]Specify a list of properties for a knot:
KnotData[{5, 2}, {"AlexanderBriggsNotation", "ConwayNotation", "Prime"}]Generalizations & Extensions (4)
KnotData[{4, 1}, "BraidIndex"]KnotData[{4, 1}, "BraidWord"]KnotData[{4, 1}, "BraidWordNotation"]KnotData[{4, 1}, "BraidImage"]Applications (5)
The 20 amphichiral knots having 10 or fewer crossings:
KnotData["Amphichiral"]Number of prime knots per crossing numbers:
a = KnotData[#, {"CrossingNumber", "Prime"}]& /@ KnotData[All];Count[a, {#, True}]& /@ Range[10]The trefoil is a tricolorable knot:
KnotData["Trefoil", "ColoringNumberSet"]Graphics[Transpose[{{Red, Blue, Green, Red}, KnotData["Trefoil", "KnotDiagramData"]}]]The two-bridge knots are exactly the rational knots:
knots = Select[KnotData[All], KnotData[#, "BridgeIndex"] == 2&]Number of rational knots per crossing numbers:
Function[x, Count[%, _ ? (KnotData[#, "CrossingNumber"] == x&)]] /@ Range[10]ListPlot[%, Filling -> Axis]points = Table[KnotData[{5, 2}, "SpaceCurve"][t], {t, 0, 2Pi, 0.5}];Graphics3D[{Red, Cylinder[#, 0.2]& /@ Transpose[{points, Append[Rest[points], First[points]]}]}, Boxed -> False, ViewPoint -> {0, -0.5, 5}]Properties & Relations (13)
Graphics data of knots can be used in Graphics and Graphics3D:
data1 = KnotData[{6, 2}, "ImageData"];data2 = KnotData[{6, 2}, "BraidDiagramData"];Graphics3D[{Green, data1}]Graphics[Transpose[{{Red, Green, Blue}, data2}]]Alexander polynomials are symmetric:
(KnotData[#, "AlexanderPolynomial"][t] == KnotData[#, "AlexanderPolynomial"][1 / t])& /@ Take[KnotData[All], 10]Alexander polynomials of oriented knots take values 1 or -1 at 1:
KnotData[#, "AlexanderPolynomial"][1]& /@ Take[KnotData[All], 10]Alexander polynomials can be expressed in terms of the Seifert matrix:
Det[t # - Transpose[#]]&@KnotData[{3, 1}, "SeifertMatrix"]t KnotData[{3, 1}, "AlexanderPolynomial"][t]//ApartConway polynomials are modified versions of Alexander polynomials:
KnotData["Trefoil", "AlexanderPolynomial"][t ^ 2]KnotData["Trefoil", "ConwayPolynomial"][t - 1 / t]//ApartIdentities for Jones polynomials:
KnotData[#, "JonesPolynomial"][1] == 1& /@ {"Trefoil", "FigureEight"}KnotData[#, "JonesPolynomial"][E ^ (2Pi I / 3)] == 1& /@ {{7, 1}, {8, 2}}KnotData[#, "JonesPolynomial"]'[1] == 0& /@ {{9, 14}, {10, 165}}{Framed[KnotData[{"TorusKnot", {4, 9}}, "KnotDiagram"]], Framed[KnotData[{"TorusKnot", {4, -9}}, "KnotDiagram"]]}The tori knots
and
are equivalent:
{Framed[KnotData[{"TorusKnot", {8, 11}}, "KnotDiagram"]], Framed[KnotData[{"TorusKnot", {-8, -11}}, "KnotDiagram"]]}Kauffman polynomials are generalizations of Jones polynomials:
KnotData[{5, 2}, "KauffmanPolynomial"][-t ^ (3 / 4), t ^ (-1 / 4) + t ^ (1 / 4)]//ApartKnotData[{5, 2}, "JonesPolynomial"][1 / t]Kauffman polynomials extend BLMHo polynomials to two variables:
KnotData[{5, 2}, "KauffmanPolynomial"][1, t]KnotData[{5, 2}, "BLMHoPolynomial"][t]Kauffman and normalized bracket polynomials:
KnotData[{5, 2}, "KauffmanPolynomial"][-t ^ -3, 1 / t + t]//ApartKnotData[{5, 2}, "BracketPolynomial"][t]Relation between normalized bracket polynomials and Jones polynomials:
KnotData[{5, 2}, "BracketPolynomial"][t]KnotData[{5, 2}, "JonesPolynomial"][t ^ 4]The Arf invariant of a knot is related to the Alexander polynomial:
a = Select[KnotData[All], Mod[KnotData[#, "AlexanderPolynomial"][-1], 8] == 1&];KnotData[#, "ArfInvariant"]& /@ Take[a, 10]b = Select[KnotData[All], Abs[Mod[KnotData[#, "AlexanderPolynomial"][-1], 8]] == 5&];KnotData[#, "ArfInvariant"]& /@ Take[b, 10]Possible Issues (2)
The Perko pair is represented by the unique knot
:
KnotData["PerkoPair", "AlexanderBriggsNotation"]Exactly 165 distinct prime knots with 10 crossings are listed:
Count[KnotData["Prime"], _ ? (KnotData[#, "CrossingNumber"] == 10&)]Braids of an even pretzel knot are shifted to end with a braid having an even crossing number:
KnotData[{"PretzelKnot", {5, 2, 3}}]Neat Examples (6)
A tabbed list of knot diagrams:
TabView[Graphics[KnotData[#, "KnotDiagramData"], Epilog -> Inset[Style[KnotData[#, "AlexanderBriggsNotation"], Large], {Right, Bottom}, {Right, Bottom}]]& /@ Take[KnotData[All], {2, 6}]]Graphics[Transpose[{Table[RGBColor@@RandomReal[{0, 1}, 3], {Length[#]}], #}]]&@KnotData[{"TorusKnot", {7, 30}}, "KnotDiagramData"]torus = First@ParametricPlot3D[{Cos[2Pi r](4 + Cos[2Pi s]), Sin[2Pi r](4 + Cos[2Pi s]), Sin[2Pi s]} / 11, {r, 0, 1}, {s, 0, 1}, Mesh -> None, Axes -> None, Boxed -> False, ColorFunction -> Function[{x, y, z}, RGBColor[x, y, 0.]]];torusknot = KnotData[{"TorusKnot", {3, 11}}, "ImageData"];Graphics3D[{torus, torusknot}, Boxed -> False]Graphics3D[{Orange, Specularity[White, 70], KnotData[{8, 3}, "ImageData"]}, Boxed -> False, ViewPoint -> {0, 0.1, 5}]A pretzel knot rendered with spheres:
pretzel[t_] = KnotData[{"PretzelKnot", {3, 5, 7}}, "SpaceCurve"][t];Graphics3D[Table[{Red, Specularity[0.9, 50], Sphere[pretzel[t], 0.3]}, {t, 0, 2Pi, 0.015}], Boxed -> False]coloredknot[knot_, colorFunction_] :=
With[{a = First@KnotData[knot, "ImageData"]},
Graphics3D[GraphicsComplex[a[[1]], a[[2]], a[[3]], VertexColors -> colorFunction@@@a[[1]]], Boxed -> False]]coloredknot[{"TorusKnot", {3, 8}}, Hue[Sin[#1]]&]Related Guides
Related Links
History
Introduced in 2007 (6.0) | Updated in 2008 (7.0) ▪ 2014 (10.0) ▪ 2016 (11.0) ▪ 2019 (12.0) ▪ 2025 (14.3)
Text
Wolfram Research (2007), KnotData, Wolfram Language function, https://reference.wolfram.com/language/ref/KnotData.html (updated 2025).
CMS
Wolfram Language. 2007. "KnotData." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2025. https://reference.wolfram.com/language/ref/KnotData.html.
APA
Wolfram Language. (2007). KnotData. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/KnotData.html
BibTeX
@misc{reference.wolfram_2026_knotdata, author="Wolfram Research", title="{KnotData}", year="2025", howpublished="\url{https://reference.wolfram.com/language/ref/KnotData.html}", note=[Accessed: 12-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_knotdata, organization={Wolfram Research}, title={KnotData}, year={2025}, url={https://reference.wolfram.com/language/ref/KnotData.html}, note=[Accessed: 12-June-2026]}