语义和语法是一样的吗?

77

'语义'和 '语法' 的意义有何区别? 它们是什么?

另外,“语义网站”与“普通网站”,“语义社交网络”与“普通社交网络”之间的区别是什么?


4
"语义学和句法学是同一回事吗?" 两个名词,复数动词形式,复数代词,平行结构。 - S.Lott
4
那是语法问题。语义没有改变,对吧? - S.Lott
我还不理解,能再解释一下吗? - John
5
@John: 我要求你改变你提问的语法——拼写、单词使用等等。你的问题意思——语义——没有改变。每个人对你的意思的理解都保持不变。只有单词的拼写发生了变化。 - S.Lott
9个回答

125

语法是语言的规则,它描述了构建正确句子的方式。例如,这个水是三角形的 在语法上是正确的。

语义与含义相关。虽然语法正确,但这个水是三角形的并没有任何意义。

近年来,谈论语义Web变得越来越流行。其想法是通过附加数据来增强标记(使用HTML结构),从而使计算机更轻松地理解网页。


1
谢谢!其他人也给出了很好的答案,但是你的对我来说最有意义。 - John
3
在HTML中,“语义化Web”是指你的HTML代码应该具有含义。如果你不是真正展示表格数据,就不要使用表格。使用最能解释文档“含义”的标签,而不是让它看起来像你想要的那样的标签。这就是CSS的作用。 - jalf
语义是关于实现逻辑中的错误吗? - Talespin_Kit

20

语法是一门语言的语法规则,它规定了如何构造句子或表达式。

语义是你试图用代码表达的意义。


1
“语义是您用代码表达的含义”这句话不就是这个意思吗?程序员可能会试图表达某些东西,但并不总能做到完美…他/她试图表达的本质上在他/她的头脑中。 - einpoklum

9
一个语法正确的程序将会被编译并运行。
一个语义正确的程序将会按照您作为程序员预期的那样去执行,即它没有任何错误。
两个用不同语言编写的执行相同任务的程序将使用不同的语法,但它们语义上是相同的。

抱歉挑剔一下,但是是“从语义上讲它们可能是相同的”还是“将会是相同的”? - doubleOrt
用不同语言编写的两个程序执行相同任务时,它们将使用不同的语法,但在语义上是相同的。算法可能是不同的吧?即使算法相同,用"C++"编写的程序与用"C"编写的程序将具有不同数量和顺序的指令,因此语义会有所不同。这正确吗? - Talespin_Kit

6
如果您谈论的是网络(而不是编程语言):
语言的语法是浏览器(或处理程序)可以合法识别和处理,并呈现给您的内容。例如,您的浏览器可以呈现HTML,而您的API可以解析XML树。
语义涉及实际表示的内容。现在有很多关于语义网和所有这些东西的热议,但本质上意味着每个实体也与一些人类可读信息或元数据相关联,因此某个标签将具有所谓的含义并引导您到它。
社交网络也是同样的情况。您可以通过链接传递知识。

谢谢,我也喜欢你的答案。但愿我能选择两个被接受的答案。 - John

4
“An ant ate an aunt.”具有正确的语法,但在语义上并没有意义。语法是一组规则,可以组合成无数个语法正确的句子,但其中很少有句子具有语义。

2

语法是句子的词序。在英语中,它通常采用主语-谓语-宾语的形式。

语义是单词背后的意思。例如:她吃了一把锯子。单词“锯子”不符合句子的意思,但在语法上是正确的。因此,它的语法是正确的。=)


1
具体来说,语义社交网络意味着将实际的社交关系嵌入到页面标记中。这样做的标准格式是由 microformats 定义的XFN(XHTML Friends Network)。就整个语义Web而言,microformats 应该是定义嵌入式语义内容的首选指南。

0

以上的解释在语义方面有些模糊,语义可能意味着可用于构建价值论证的不同元素(这些元素应该是可理解的,对最终用户易懂且对机器易消化)。

当然,这将把语义和程序员-编辑器-作家-传达者置于中心位置:他决定了应该为他的公众理想定义的语义,被他的公众理解,由他的公众普遍接受并且对机器计算机易消化。语义应该得到协商,是概念性的,必须能够在两个方面实现。

例如脚注、内联和块引用、标题等等,最终形成一个明确定义且有限的列表。以Mediawiki、wikitext为例,在这个角度上失败了,因为它为未定义的语义含义元素定义了语法,没有达成一份明确的有限列表。"按形式赋义"是标题作为文本内容所承载的附加信息。例如,“这是一个标题”只有在已经达成共识的语义中才能集成语义,而且可以有多组“这很重要并且将详细说明”的设置。

Asciidoc和pandoc标记在其语义上有很大的不同,无论如何,每个标记都按照语法约定将其转换为输出格式。

编程,输出格式为html、pdf、epub,可以通过形式和语义产生连带意义,语法作为临时翻译工具已经消失,因此输出可以被算法“grep”的冠军Google机器人扫描以获取含义。根据标题、脚注或链接的不同考虑,“what”在“What is it that is looked for”中的含义。

语义学可以有多个层次,甚至文本信息也携带(乔姆斯基)语义,因此可以通过形式来翻译,从而在输出链中与其他任何东西(包括读者)产生功能差异。

总之,程序员和学者应该融合在一起,任何学者都不应该缺乏对自己工具的了解,就像任何面包师傅一样。程序员应该是学者,因为他们所完成的桥梁的另一端是最终用户,这就是语义的重要性。

m.


0
语义网站使用 语义网的概念,通过使用特殊注释来识别页面中的某些概念,从而赋予Web内容含义。这使得计算机可以对内容进行自动推理(而非人类),从而改善了聚合、提取、索引和搜索。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接