Dữ liệu có cấu trúc Trình giải toán (MathSolver)

Để giúp học sinh, giáo viên và những người khác giải toán, bạn có thể dùng dữ liệu có cấu trúc để chỉ báo loại bài toán cũng như dùng các đường liên kết đến hướng dẫn từng bước cho các bài toán cụ thể. Sau đây là một ví dụ về hình thức của trình giải toán trong các kết quả trên Google Tìm kiếm (hình thức có thể thay đổi):

Ví dụ về kết quả nhiều định dạng cho trình giải toán

Cách thêm dữ liệu có cấu trúc

Dữ liệu có cấu trúc là một định dạng chuẩn để cung cấp thông tin về một trang và phân loại nội dung trên trang. Nếu mới làm quen với dữ liệu có cấu trúc, bạn có thể tìm hiểu thêm về cách thức hoạt động của dữ liệu có cấu trúc.

Sau đây là thông tin tổng quan về cách xây dựng, kiểm tra và phát hành dữ liệu có cấu trúc. Để xem hướng dẫn từng bước về cách thêm dữ liệu có cấu trúc vào một trang web, hãy tham khảo lớp học lập trình về dữ liệu có cấu trúc.

  1. Thêm các thuộc tính bắt buộc. Tùy theo định dạng bạn đang sử dụng, hãy tìm hiểu nơi chèn dữ liệu có cấu trúc trên trang.
  2. Tuân theo các nguyên tắc.
  3. Xác thực mã của bạn bằng công cụ Kiểm tra kết quả nhiều định dạng rồi sửa mọi lỗi nghiêm trọng. Bạn cũng nên cân nhắc việc khắc phục mọi vấn đề không nghiêm trọng có thể bị gắn cờ trong công cụ này, vì những vấn đề này có thể giúp cải thiện chất lượng của dữ liệu có cấu trúc của bạn (tuy nhiên, bạn không nhất thiết thực hiện việc này để nội dung đủ điều kiện xuất hiện dưới dạng kết quả nhiều định dạng).
  4. Triển khai một vài trang có chứa dữ liệu có cấu trúc và sử dụng Công cụ kiểm tra URL để kiểm tra xem Google nhìn thấy trang đó như thế nào. Hãy đảm bảo rằng Google có thể truy cập trang của bạn và bạn không chặn trang bằng tệp robots.txt, thẻ noindex hoặc yêu cầu đăng nhập. Nếu có vẻ như trang không gặp vấn đề nào, bạn có thể yêu cầu Google thu thập lại dữ liệu các URL của mình.
  5. Để thông báo cho Google về các thay đổi sau này, bạn nên gửi một sơ đồ trang web. Bạn có thể tự động hoá quy trình này bằng Search Console Sitemap API.

Ví dụ

Một cách giải

Sau đây là ví dụ về trang chủ của một trình giải toán, trên đó có một cách giải cho phương trình đa thức và bài toán đạo hàm, hiện có bằng tiếng Anh và tiếng Tây Ban Nha.


<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",
    "inLanguage": "en",
    "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"
  },
  {
    "@context": "https://schema.org",
    "@type": ["MathSolver", "LearningResource"],
    "name": "Un solucionador de matemáticas increíble",
    "url": "https://es.mathdomain.com/",
    "usageInfo": "https://es.mathdomain.com/privacy",
    "inLanguage": "es",
    "potentialAction": [{
      "@type": "SolveMathAction",
      "target": "https://es.mathdomain.com/solve?q={math_expression_string}",
      "mathExpression-input": "required name=math_expression_string",
      "eduQuestionType": ["Polynomial Equation","Derivative"]
     }],
    "learningResourceType": "Math solver"
  }
]
</script>
</body>
</html>

Hai cách giải

Sau đây là ví dụ về trang chủ của một trình giải toán, trên đó có hai cách giải: một cách giải có thể giải phương trình đa thức và cách giải còn lại có thể giải phương trình lượng giác. Trang này chỉ có bằng tiếng Anh.


<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",
  "inLanguage": "en",
  "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>

Nguyên tắc

Để trang của bạn đủ điều kiện hiển thị dưới dạng kết quả nhiều định dạng cho trình giải toán, bạn phải làm theo những nguyên tắc sau:

Nguyên tắc về kỹ thuật

  • Thêm dữ liệu có cấu trúc MathSolver vào trang chủ của trang web.
  • Đảm bảo rằng chế độ cài đặt tải trên máy chủ lưu trữ của bạn cho phép thu thập dữ liệu thường xuyên.
  • Nếu bạn lưu trữ nhiều bản sao giống nhau của cùng một trình giải toán trên nhiều URL, hãy dùng URL chính tắc trên mỗi bản sao của trang đó.
  • Chúng tôi không chấp nhận việc bắt người dùng phải đăng nhập hoặc trả tường phí để dùng được trình giải toán. Khi người dùng chuyển từ tính năng trên Google đến trang web của bạn, bạn phải cho phép họ xem cách giải và nội dung hướng dẫn từng bước đối với bài toán ban đầu của họ. Bạn có thể yêu cầu người dùng đăng nhập hoặc trả phí để xem nội dung bổ sung.

Nguyên tắc về nội dung

Chúng tôi tạo ra các nguyên tắc về nội dung đối với Trình giải toán nhằm đảm bảo người dùng được tiếp cận những tài nguyên học tập phù hợp. Nếu phát hiện nội dung vi phạm những chính sách này, chúng tôi sẽ có biện pháp thích hợp, trong đó có thể bao gồm việc áp dụng biện pháp thủ công và xoá các trang của bạn khỏi kết quả của trình giải toán trên Google.

  • Chúng tôi không chấp nhận nội dung quảng cáo trá hình dưới dạng trình giải toán, chẳng hạn như nội dung do bên thứ ba đăng (ví dụ: chương trình liên kết).
  • Bạn chịu trách nhiệm về độ chính xác và chất lượng của trình giải toán thông qua tính năng này. Nếu quy trình đánh giá chất lượng của chúng tôi phát hiện ra bạn có một số dữ liệu không chính xác, thì tuỳ vào mức độ nghiêm trọng, trình giải toán của bạn có thể bị xoá khỏi tính năng này cho đến khi bạn giải quyết xong vấn đề. Quy định này áp dụng cho:
    • Độ chính xác của dạng bài toán mà trình giải toán của bạn có thể giải được.
    • Độ chính xác của cách giải các bài toán mà trình giải toán của bạn tuyên bố là có thể giải được.

Định nghĩa các loại dữ liệu có cấu trúc

Bạn phải bao gồm các thuộc tính bắt buộc để nội dung của mình đủ điều kiện hiển thị dưới dạng kết quả nhiều định dạng. Bạn cũng có thể dùng những thuộc tính được chúng tôi khuyên dùng để thêm nhiều thông tin hơn vào dữ liệu có cấu trúc, qua đó mang lại trải nghiệm tốt hơn cho người dùng.

MathSolver (Trình giải toán)

MathSolver là một công cụ trình bày cách giải từng bước để hỗ trợ học sinh, giáo viên và những người khác giải toán. Hãy dùng dữ liệu có cấu trúc MathSolver trên trang chủ của trang web.

Bạn có thể xem định nghĩa đầy đủ về MathSolver tại schema.org/MathSolver.

Sau đây là các thuộc tính được Google hỗ trợ:

Thuộc tính bắt buộc
potentialAction

SolveMathAction

Thao tác dẫn đến một cách giải (ví dụ: theo từng bước hoặc theo biểu đồ) cho một biểu thức toán.

{
"@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

Phần giữ chỗ cho một biểu thức toán (ví dụ: x^2-3x=0) được Google gửi tới trang web của bạn. Sau đó, bạn có thể "giải" biểu thức toán đó – có thể là rút gọn, biến đổi hoặc tìm một biến cụ thể. Chuỗi này có thể ở nhiều định dạng (ví dụ: LaTeX, Ascii-Math hoặc biểu thức toán mà bạn có thể viết bằng bàn phím).

Đối với một số dạng bài, math_expression_string cho biết cả dạng bài và tham số của dạng bài đó. Sau đây là một số ví dụ về các dạng bài phức tạp hơn để bạn có thể dự đoán và phân tích cú pháp chúng sao cho chính xác.

Đạo hàm

Google sẽ gửi math_expression_string ở một trong hai dạng:

  • (math_expression)'
  • d/dvariable math_expression

Ví dụ:

  • (x^2+x)'
  • d/dx (x^2+x)
  • d/dy y^2+y

Tích phân

Google sẽ gửi math_expression_string ở một trong hai dạng:

  • \int math_expression
  • \int_{from}^{to} math_expression

Ví dụ:

  • \int x^2+x
  • \int_{0}^{2} x^2+x

Giới hạn

Google sẽ gửi math_expression_string ở một trong hai dạng:

  • \lim math_expression
  • \lim_{variable\rightarrowvalue} math_expression

Ví dụ:

  • \lim_{x\rightarrow0} sin(x)/x
  • \lim_{y\rightarrow\infty} sin(y)/y
  • \lim sin(x)/x
url

URL

URL của MathSolver.

usageInfo

URL

Chính sách quyền riêng tư cho trang web giải toán của bạn.

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

EntryPoint

EntryPoint (điểm nhập) nhắm mục tiêu theo URL cho một thao tác. Thuộc tính potentialAction.target chấp nhận một chuỗi đại diện cho biểu thức toán đang được giải theo thao tác đó.

{
"@type": "MathSolver",
"potentialAction": [{
  "@type": "SolveMathAction",
  "target": "https://mathdomain.com/solve?q={math_expression_string}"
  }]
}
Thuộc tính nên có
inLanguage

Text

(Những) ngôn ngữ được hỗ trợ trên trang web giải toán của bạn. Hãy xem bảng này để nắm được danh sách những ngôn ngữ bạn có thể dùng.

{
  "@type": "MathSolver",
  "inLanguage": "es"
}
assesses

Danh sách Text cho Định nghĩa dạng bài toán

Dạng bài toán được giải bằng HowTo. Hãy dùng thuộc tính assesses nếu bạn đang dùng mã đánh dấu HowTo cùng với mã đánh dấu MathSolver.

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

Danh sách Text cho Định nghĩa dạng bài toán

Dạng bài toán có thể được giải bằng thuộc tính potentialAction.target.

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

LearningResource (Tài nguyên học tập)

LearningResource cho biết chủ đề của mã đánh dấu là một tài nguyên hỗ trợ học tập cho học sinh, giáo viên và nhiều người khác. Hãy dùng LearningResource trên trang chủ của trang web.

Bạn có thể xem định nghĩa đầy đủ về LearningResource tại schema.org/LearningResource.

Sau đây là các thuộc tính được Google hỗ trợ:

Thuộc tính bắt buộc
learningResourceType

Text

Thể loại của tài nguyên học tập này. Hãy dùng giá trị cố định: Math Solver.

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

Định nghĩa dạng bài toán

Hãy dùng danh sách dạng bài toán sau đây làm eduQuestionType cho một MathSolver.potentialAction hoặc cho trường assesses của một MathSolver khi MathSolver đi kèm một HowTo trong một bài toán cụ thể.

Bảng sau đây cho thấy một số ví dụ về các dạng bài mà bạn có thể chú thích:

Ví dụ về các dạng bài toán (danh sách này chưa đầy đủ)
Absolute Value Equation

Phương trình giá trị tuyệt đối. Ví dụ: |x - 5| = 9

Algebra

Dạng bài toán chung có thể được đặt cùng dạng bài toán khác. Ví dụ: phương trình đa thức, phương trình mũ và biểu thức chứa căn.

Arc Length

Bài toán về độ dài cung. Ví dụ: xác định độ dài của x = 4 (3 + y)^2, 1 < y < 4.

Arithmetic

Bài toán về số học. Ví dụ: tìm tổng của 5 + 7.

Biquadratic Equation

Phương trình trùng phương. Ví dụ: x^4 - x^2 - 2 = 0.

Calculus

Dạng bài toán chung có thể được đặt cùng các dạng bài toán khác. Ví dụ: tích phân, đạo hàm và phương trình vi phân.

Characteristic Polynomial

Tìm đa thức đặc trưng của {{1,2,5}, {3,-1,1}, {1,2,3}}.

Circle

Bài toán liên quan đến hình tròn. Ví dụ: tìm bán kính của x^2 + y^2 = 3.

Derivative

Đạo hàm của 5x^4 + 2x^3 + 4x - 2.

Differential Equation

Bài toán về phương trình vi phân. Ví dụ: y+dy/dx=5x.

Distance

Bài toán về khoảng cách. Ví dụ: tìm khoảng cách từ (6,-1) đến (-3,2).

Eigenvalue

Bài toán về giá trị riêng. Ví dụ: tìm các giá trị riêng của ma trận [[-6, 3], [4, 5]].

Eigenvector

Bài toán về vectơ riêng. Ví dụ: tìm vec-tơ riêng của ma trận [[-6, 3], [4, 5]] bằng giá trị riêng của [-7, 6].

Ellipse

Bài toán về hình elip. Ví dụ: tìm các giao điểm x và y của 9x^2 + 4y^2 = 36.

Exponential Equation

Phương trình mũ. Ví dụ: 7^x = 9.

Function

Rút gọn đa thức. Ví dụ: (x - 5)^2 * (x + 5)^2

Function Composition

f(g(x)) khi f(x)=x^2-2x, g(x)=2x-2

Geometry

Dạng bài toán chung có thể được đặt cùng các dạng bài toán khác. Ví dụ: hình tròn, elip, parabol, dốc.

Hyperbola

Bài toán về hyperbol Ví dụ: tìm hoành độ giao điểm của (x^2)/4 - (y^2)/5 = 1.

Inflection Point

Tìm điểm uốn của f(x) = 1/2x^4 + x^3 - 6x^2.

Integral

Tích phân của sqrt (x^2 - y^2).

Intercept

Bài toán về phương trình đường cắt trục toạ độ. Ví dụ: tìm hoành độ giao điểm của đường thẳng y = 10x - 5.

Limit

Bài toán về giới hạn. Ví dụ: tìm giới hạn của x khi x tiến dần đến 1 của (x^2-1)/(x-1).

Line Equation

Bài toán về phương trình tuyến tính. Ví dụ: tìm phương trình của một đường thẳng có các điểm (-7,-4) và (- 2,-6).

Linear Algebra

Dạng bài toán chung có thể được đặt cùng các dạng bài toán khác. Ví dụ: ma trận và đa thức đặc trưng.

Linear Equation

Phương trình tuyến tính. Ví dụ: 4x - 3 = 2x + 9.

Linear Inequality

Bất đẳng thức tuyến tính. Ví dụ: 5x - 6 > 3x - 8.

Logarithmic Equation

Phương trình lôgarit. Ví dụ: log(x) = log(100).

Logarithmic Inequality

Bất đẳng thức lôgarit. Ví dụ: log(x) > log(100).

Matrix

{{1,2,5}, {3,-1,1}, {1,2,3}} hàng rút gọn

Midpoint

Bài toán về trung điểm. Ví dụ: tìm trung điểm giữa (-3, 7) và (5, -2).

Parabola

Bài toán về hình parabol. Ví dụ: tìm đỉnh của y^2 - 4x - 4y = 0.

Parallel

Bài toán về đường thẳng song song. Ví dụ: Hai đường thẳng này có song song không: (y = 10x + 5, y = 20x + 10)?

Perpendicular

Bài toán về góc vuông. Ví dụ: Hai đường thẳng này có vuông góc không: (y = 10x + 5, y = 20x + 10)?

Polynomial Equation

Phương trình đa thức. Ví dụ: x^5 - 3x = 0.

Polynomial Expression

Biểu thức đa thức. Ví dụ: (x - 5)^4 * (x + 5)^2.

Polynomial Inequality

Bất phương trình đa thức. Ví dụ: x^4 - x^2 - 6 > x^3 - 3x^2.

Quadratic Equation

Phương trình bậc hai. Ví dụ: x^2 - 3x - 4 = 0.

Quadratic Expression

Biểu thức phương trình bậc hai. Ví dụ: x^2 - 3x - 2.

Quadratic Inequality

Bất phương trình bậc hai. Ví dụ: x^2 - x - 6 > x^2 - 3x.

Radical Equation

Phương trình chứa căn. Ví dụ: sqrt(x) - x = 0.

Radical Inequality

Bất phương trình chứa căn. Ví dụ: sqrt(x) - x > 0.

Rational Equation

Phương trình hữu tỉ. Ví dụ: 5/(x - 3) = 2/(x - 1).

Rational Expression

Biểu thức hữu tỉ. Ví dụ: 1/(x^3 + 4x^2 + 5x + 2).

Rational Inequality

Bất đẳng thức hữu tỉ. Ví dụ: 5/(x - 3) > 2/(x - 1).

Slope

Bài toán về hệ số góc. Ví dụ: tìm hệ số góc của đường thẳng y = 10 + 5.

Statistics

Bài toán về thống kê. Ví dụ: tìm giá trị trung bình của tập hợp số (3, 8, 2, 10).

System of Equations

Bài toán về hệ phương trình. Ví dụ: giải 2x + 5y = 16; 3x - 5y = -1.

Trigonometry

Giải sin(t) + cos(t) = 1.