数学求解器

为帮助学生、老师和其他人求解数学题,您可以使用结构化数据表示数学题类型并提供关于特定数学题的分步讲解。以下示例说明了数学求解器在 Google 搜索结果中的可能显示效果(具体外观可能会有所不同):

数学求解器富媒体搜索结果示例

为确保用户充分利用数学求解器的结构化数据,请标记首页和特定数学表达式的求解页面(如果可能)。通过首页标记,Google 可以呈现重要信息,例如数学求解器是否包含分步求解说明,或者是否可以求解几何问题。

首页标记还可以帮助列出更精细的功能。例如,您的数学求解器可能会接受用户的常规输入,但具有您网站上所列的独特功能。例如,当用户看到数学求解器可以解多项式方程时,他们可能更愿意点击访问您的数学求解器来查询“x^2 - 3x = 0”这样的数学题。

若要为数学求解器启用分步预览,您可以向特定数学题添加服务器端生成的求解页面标记。分步预览会向用户显示您的数学求解器能够求解他们的具体数学题。

如何添加结构化数据

结构化数据是一种提供网页相关信息并对网页内容进行分类的标准化格式。如果您不熟悉结构化数据,可以详细了解结构化数据的工作原理

下面概述了如何构建、测试和发布结构化数据。如需获得向网页添加结构化数据的分步指南,请查看结构化数据 Codelab

  1. 添加必要属性。如需了解如何在网页上放置结构化数据,请观看 JSON-LD 结构化数据:网页上的插入位置
  2. 遵循指南
  3. 使用富媒体搜索结果测试验证您的代码。
  4. 部署一些包含您的结构化数据的网页,然后使用网址检查工具测试 Google 看到的网页样貌。请确保您的网页可供 Google 访问,不会因 robots.txt 文件、noindex 标记或登录要求而被屏蔽。如果网页看起来没有问题,您可以请求 Google 重新抓取您的网址
  5. 为了让 Google 随时了解日后发生的更改,我们建议您提交站点地图Search Console Sitemap API 可以帮助您自动执行此操作。

示例

包含一项求解器操作的首页

下面是一个包含一项求解器操作的数学求解器首页示例,该求解器可解多项式方程和求导题。


<html>
<head>
<title>An awesome math solver</title>
</head>
<body>
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": ["MathSolver", "LearningResource"],
  "name": "An awesome math solver",
  "url": "https://www.mathdomain.com/",
  "usageInfo": "https://www.mathdomain.com/privacy",
  "potentialAction": [{
    "@type": "SolveMathAction",
    "target": "https://mathdomain.com/solve?q={math_expression_string}",
    "mathExpression-input": "required name=math_expression_string",
    "eduQuestionType": ["Polynomial Equation","Derivative"]
   }],
  "learningResourceType": "Math solver"
}
</script>
</body>
</html>

包含两项求解器操作的首页

下面是一个包含两个求解器端点的数学求解器首页示例:一个端点可以解多项式方程,另一个端点可以解三角方程。


<html>
<head>
<title>An awesome math solver</title>
</head>
<body>
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": ["MathSolver", "LearningResource"],
  "name": "An awesome math solver",
  "url": "https://www.mathdomain.com/",
  "usageInfo": "https://www.mathdomain.com/privacy",
  "potentialAction": [{
     "@type": "SolveMathAction",
     "target": "https://mathdomain.com/solve?q={math_expression_string}",
     "mathExpression-input": "required name=math_expression_string",
     "eduQuestionType": "Polynomial Equation"
   },
   {
     "@type": "SolveMathAction",
     "target": "https://mathdomain.com/trig?q={math_expression_string}",
     "mathExpression-input": "required name=math_expression_string",
     "eduQuestionType": "Trigonometric Equation"
   }],
  "learningResourceType": "Math solver"
}
</script>
</body>
</html>

求解页面

下面是一个求解页面示例,其中包含关于某个数学题的两种不同分步讲解。


<html>
<head>
<title>An awesome math solver</title>
</head>
<body>
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": ["MathSolver", "LearningResource"],
  "name": "An awesome math solver",
  "url": "https://www.mathdomain.com/solve?q=x^2-3x=0",
  "usageInfo": "https://www.mathdomain.com/privacy",
  "assesses": "Polynomial Equation",
  "hasPart": {
    "@context": "https://schema.org",
    "@type": "HowTo",
    "url": "https://www.mathdomain.com/solve?q=x^2-3x=0",
    "name": "$$ x^2 -3x = 0 $$",
    "about": {
      "@type": "Thing",
      "name": "$$ x^2 - 3x = 0 $$"
    },
    "yield": "$$ x = 3 \\ x = 0 $$",
    "tool": [
      {
        "@type": "HowToTool",
        "name": "Quadratic Formula"
      },
      {
        "@type": "HowToTool",
        "name": "Common Factoring"
      }
    ],
    "step": [{
      "@type": "HowToSection",
      "name": "Quadratic Formula",
      "position": "1",
      "numberOfItems": "5",
      "itemListElement": [{
          "@type": "HowToStep",
          "position": "1",
          "text": "Use the quadratic formula <br> $$ x=\\frac{-({\\color&#123;#e8710a}{-3}}) \\pm \\sqrt{({\\color&#123;#e8710a}{-3}})^{2}-4 \\cdot {\\color&#123;#c92786}{1}} \\cdot {\\color&#123;#129eaf}{0}}}}{2 \\cdot {\\color&#123;#c92786}{1}}} $$"
        },
        {
          "@type": "HowToStep",
          "position": "2",
          "text": "Simplify the quadratic formula <br> $$ x=\\frac{3 \\pm 3}{2} $$"
        }
      ]
    },
    {
      "@type": "HowToSection",
      "name": "Common factoring",
      "position": "2",
      "numberOfItems": "4",
      "itemListElement": [
        {
          "@type": "HowToStep",
          "position": "1",
          "text": "Use the sum product pattern"
        },
        {
          "@type": "HowToStep",
          "position": "2",
          "text": "Write the equation in factored form <br> $$ (x-3)(x+0)=0 $$"
        }
      ]
    }
  ]
},
  "learningResourceType": "Math solver"
}
</script>
</body>
</html>

指南

若想让您的网页可显示为数学求解器富媒体搜索结果,您必须遵循以下指南:

求解页面指南

求解页面标记会提供求解步骤预览,以便用户确信您的网站可以求解他们的问题。由于数学的性质,标记求解页面时还有其他要求。

  • 求解页面标记必须是服务器端生成的,而不能在初始网页加载后动态插入网页中。
  • 求解页面标记必须采用 JSON-LD 格式。

结构化数据类型定义

如果要使你的内容能够显示为富媒体搜索结果,你必须为它添加必需的属性。您还可以添加建议的属性,以便向结构化数据添加更多信息,进而提供更好的用户体验。

MathSolver

MathSolver 是一款工具,可以为学生、老师和其他人列出求解步骤,从而帮助他们求解数学题。您可以在首页和求解页面上使用 MathSolver 结构化数据。

如需了解 MathSolver 的完整定义,请访问 schema.org/MathSolver

必需的属性
potentialAction

SolveMathAction

转到数学表达式的数学说明(例如求解步骤或图表)的操作。


{
"@type": "MathSolver",
"potentialAction": [{
  "@type": "SolveMathAction",
  "target": "https://mathdomain.com/solve?q={math_expression_string}",
  "mathExpression-input": "required name=math_expression_string"
  "eduQuestionType": "Polynomial Equation"
  }]
}
potentialAction.mathExpression-input

Text

能以简化或变换形式求解特定变量的数学表达式(例如:x^2-3x=0)。此表达式可以采用多种格式(例如:LaTeX、Ascii-Math 或者您可以使用键盘输入的数学表达式)。

url

URL

MathSolver 的网址。

usageInfo

URL

数学题求解网站的隐私权政策。


{
  "@type": "MathSolver",
  "usageInfo": "https://www.mathdomain.com/privacy"
}
potentialAction.target

EntryPoint

操作的网址目标入口点。potentialAction.target 属性接受字符串来表示该操作求解的数学表达式。


{
"@type": "MathSolver",
"potentialAction": [{
  "@type": "SolveMathAction",
  "target": "https://mathdomain.com/solve?q={math_expression_string}"
  }]
}
建议的属性
assesses

问题类型定义Text 列表

通过 HowTo 求解的数学题类型。如果除了 MathSolver 标记之外,您还使用 HowTo 标记,请使用 assesses 属性。


{
  "@type": "MathSolver",
  "assesses": "Polynomial Equation"
}
potentialAction.eduQuestionType

问题类型定义Text 列表

能够通过 potentialAction.target 属性求解的数学题类型。


{
  "@type": "SolveMathAction",
  "eduQuestionType": "Polynomial Equation"
}

LearningResource

LearningResource 表明标记对象是可帮助学生、老师和其他人开展教育学习的资源。您可以在首页和求解页面上使用 LearningResource

如需了解 LearningResource 的完整定义,请访问 schema.org/LearningResource

必需的属性
learningResourceType

Text

此学习资源的类型。请使用以下固定值:Math Solver


{
  "@type": ["MathSolver", "LearningResource"],
  "learningResourceType": "Math Solver"
}

HowTo

您可以在首页和求解页面上使用 MathSolver 类型标记具体解题步骤。请参阅有关如何将 HowTo 嵌入 MathSolver 类型的示例

如需了解 HowTo 的完整定义,请访问 schema.org/HowTo

必需的属性
about.name

Thing

求解或讲解的数学题、方程式或表达式。将值设为数学格式(在下面的示例中,值包含在 $$ 中)。详细了解如何在 HTML 中对数学题 HowTo 结构化数据进行编码


{
  "about": {
    "@type": "Thing",
    "name": "$$ x^2 - 3x = 0 $$"
  }
}
step

HowToSection 的列表

单个步骤项或一个 HowToSection

如果求解某个数学题有多种方法,请使用 HowToSection 元素表示每种方法。对于所列的每个 tool 元素,您还需要添加 HowToSection 元素。

有些类型的数学题可能是通过更类似于属性列表的内容(而不是分步讲解)解答的。例如,函数 f(x) = (x - 5)(x + 5)。学生可能对此函数的简化版、y 轴截距、x 轴截距、导数或其他属性感兴趣。我们建议您将重点放在简化上,因为这可以通过分步讲解提供解答,而不仅仅是提供答案。

step.itemListElement

HowToStep 的列表

指明如何通过 HowToSection 名称指定的方法求解数学题的一系列步骤。


{
  "@type": "HowToSection",
  "name": "Quadratic Formula",
  "position": "1",
  "itemListElement": []
}
step.itemListElement

HowToStep

HowToStep 描述了为求解某个数学题而执行的个别操作。


{
  "@type": "HowToStep",
  "position": "3",
  "text": "Set each factor equal to zero <br>$$ x - 3 = 0 $$<br>$$ x + 0 = 0 $$"
  ]
}
step.itemListElement.position

Text

HowToStep 的相对顺序。Google 通过 position 属性了解应按何种顺序执行每个 HowToStep 来求解数学题。


{
  "@type": "HowToStep",
  "position": "3",
  "itemListElement": []
}
step.name

Text

求解数学题使用的方法。使用与 tool 值相同的值。


{
  "@type": "HowToSection",
  "name": "Quadratic Formula"
}
step.numberOfItems

Integer

HowToSection 描述的求解方法中的步骤数。


{
  "@type": "HowToSection",
  "numberOfItems": "6"
}
step.position

Text

HowToSection 的相对顺序。如果求解某个数学题有多种方法,此属性非常有用。


{
  "@type": "HowToSection",
  "position": "1"
}
tool

HowToTool

求解数学题使用的方法。每个方法名称都必须是下列值之一:

  • Quadratic Formula:使用二次方程式解二次方程。
  • Factoring:通过因式分解/并项法解多项式方程。
  • Completing the Square:通过配方法解二次方程。
  • Graphing:在二维或更多维平面上显示各种方程或表达式。
  • Row Reduction:将矩阵简化为简化行阶梯形矩阵。
  • Solve by Substitution:通过置换解矩阵方程或方程组。
  • Solve by Elimination:通过消元法解矩阵方程或方程组。
  • Cramer's Rule:通过克莱姆法则解矩阵方程或方程组。

{
  "tool": [
    {
      "@type": "HowToTool",
      "name": "Quadratic Formula"
    },
    {
      "@type": "HowToTool",
      "name": "Common Factoring"
    }
  ]
}
url

URL

提供数学题求解或讲解的网页的网址。

yield

Text

数学题的答案。如果答案是数学表达式,请将值设为数学格式。详细了解如何在 HTML 中对数学题 HowTo 结构化数据进行编码


{
  "yield": "$$ x = 0 \\ x = 3 $$",
}

数学题类型定义

MathSolver 附有提供特定数学题讲解的 HowTo 时,请将以下数学题类型列表用作 MathSolverMathSolver.potentialActionassesses 字段的 eduQuestionType

示例数学题类型(此列表并不详尽)
Absolute Value Equation

绝对值方程。例如:|x - 5| = 9

Algebra

可与其他数学题类型一起放置的元数学题类型。例如:多项式方程、指数方程和根式表达式。

Arc Length

弧长题。例如:确定 x = 4 (3 + y)^2, 1 < y < 4 的长度。

Biquadratic Equation

双二次方程。例如:x^4 - x^2 - 2 = 0。

Calculus

可与其他数学题类型一起放置的元数学题类型。例如:积分、求导和微分方程。

Characteristic Polynomial

求出 {{1,2,5}, {3,-1,1}, {1,2,3}} 的特征多项式。

Circle

与圆相关的数学题。例如:求出 x^2 + y^2 = 3 的半径。

Derivative

5x^4 + 2x^3 + 4x - 2 的导数。

Differential Equation

微分方程题。例如:y+dy/dx=5x。

Distance

距离题。例如:求出 (6,-1) 与 (-3,2) 之间的距离。

Ellipse

椭圆题。例如:求出 9x^2 x 4y^2 = 36 的 x 轴截距和 y 轴截距。

Exponential Equation

指数方程。例如:7^x = 9。

Function

多项式简化。例如:(x-5)^2 * (x+5)^2。

Function Composition

当 f(x)=x^2-2x、g(x)=2x-2 时,求 f(g(x))

Geometry

可与其他数学题类型一起放置的元数学题类型。例如:圆、椭圆、抛物线、斜率。

Hyperbola

双曲线题。例如:求出 (x^2)/4 - (y^2)/5 = 1 的 x 轴截距。

Inflection Point

求出 f(x) = 1/2x^4 +x^3 - 6x^2 的拐点。

Integral

sqrt (x^2 - y^2) 的积分。

Intercept

直线截距题。例如:求出直线 y = 10x - 5 的 x 轴截距。

Line Equation

直线方程题。例如:求出经过点 (-7,-4) 和 (-2,-6) 的直线的方程。

Linear Algebra

可与其他数学题类型一起放置的元数学题类型。例如:矩阵和特征多项式。

Linear Equation

线性方程。例如:4x - 3 = 2x + 9。

Linear Inequality

线性不等式。例如:5x - 6 > 3x - 8。

Logarithmic Equation

对数方程。例如:log(x) = log(100)。

Logarithmic Inequality

对数方程。例如:log(x) > log(100)。

Matrix

{{1,2,5}, {3,-1,1}, {1,2,3}} 简化行

Midpoint

中点题。例如:求出 (-3, 7) 和 (5, -2) 的中点。

Parabola

抛物线题。例如:求出 y2 - 4x - 4y = 0 的顶点。

Parallel

平行线题。例如:两条直线 (y = 10x + 5, y = 20x + 10) 是否平行。

Perpendicular

垂直判定题。例如:两条直线 (y = 10x + 5, y = 20x + 10) 是否垂直。

Polynomial Equation

多项式方程。例如:x^5 - 3x = 0。

Polynomial Expression

多项式表达式。例如:(x - 5)^4 * (x + 5)^2。

Polynomial Inequality

多项式不等式。例如:x^4 - x^2 - 6 > x^3 - 3x^2。

Quadratic Equation

二次方程。例如:x^2 - 3x - 4 = 0。

Quadratic Expression

二次表达式。例如:x^2 - 3x - 2。

Quadratic Inequality

二次不等式。例如:x^2 - x - 6 > x^2 - 3x。

Radical Equation

根式方程。例如:sqrt(x) - x = 0。

Radical Inequality

根式不等式。例如:sqrt(x) - x > 0。

Rational Equation

有理方程。例如:5/(x - 3) = 2/(x - 1)。

Rational Expression

有理表达式。例如:1/(x^3 + 4x^2 + 5x + 2)。

Rational Inequality

有理不等式。例如:5/(x - 3) > 2/(x - 1)。

Slope

斜率题。例如:求出 y = 10x + 5 的斜率。

Trigonometry

求解 sin(t) + cos(t) = 1。

在 HTML 中对数学题 HowTo 结构化数据进行编码

Google 搜索支持在 HTML 中对还具有 MathSolver 类型的 HowTo 结构化数据进行编码。我们限制仅使用以下这组结构:

  • 粗体
  • LaTex 格式的公式
  • 标头
  • 斜体
  • 换行符
  • 列表(有序和无序)
  • 段落

CSS 和 JavaScript 会被忽略。所有其他结构均会被忽略并显示为纯文本。

如何指定格式

如需指定要使用的编码格式,请为 HTML 使用 encodingFormat 属性,并将值设置为 "text/html"

数学表达式

系统支持使用 LaTex 格式的数学表达式。请使用 $$ 在文本中正确呈现数学表达式:

"<p>You can solve $$ x^2 - 25x = 0 $$ by factoring. <br>$$ (x-5)(x+5) $$</p>"