molily: Begriffsunterschied Element <-> Tag?

Beitrag lesen

Hallo,

Wie ist jetzt eigentlich die korrekte Bezeichnung für das HTML Pendant zu "Befehl" in einer Programmiersprache, bzw wann sagt man Element und wann Tag? Ist eigentlich etwas ganz triviales, aber wenn ich so darüber nachdenke, bin ich nicht so ganz sicher, ob <html> <table>,..usw jetzt Tags oder Elemente sind?

Im Prinzip ist der Begriff »Element« (genauso »Attribut«) einer anderen Dimension entlehnt als »Tag«, nämlich der eines abstrakten Konzeptes, welches bereits von einer Dokumentvorstellung ausgeht, die auf einem (zunächst primitiven) Objektmodell basiert. Diese Abstraktionsebene von Elementen, Elementabfolgen, Elementhierarchien und dann auch Textknoten, ferner Attributknoten et cetera mit der konkreten Markupebene zu verbinden bzw. eine nachvollziehbare Verbindung zu ziehen, ist sehr schwer. Da helfen die verbreiteten Benennungen nicht weiter. Auf der Markupebene, der Ebene der Syntax, gibt es strenggenommen nichts, was intuitiv die Bezeichnung »Element« nahelegen würde. Dort gibt es ganz konkret nur von Tags umfassten Text und von Tags umfasste Tagpaare. Man entfernt sich von der Ebene der Syntax, wenn man die syntaktische Verbindung von Zeichendaten (Text) mit zwei zueinander gehörigen, den Text umschließenden Tags »Element« nennt.

Auf syntaktischer Ebene kann man ebensowenig sagen, dass <h1>Text</h1> eine Überschrift erster Ordnung »ist«. Es bildet eher ein Element, es stellt ein Element dar, ist der Ausdruck eines Elements usw. Auch unter Berücksichtigung des Gesagten davon zu sprechen, dass es die lineare Repräsentation eines »h1-Elements« ist, greift zu kurz. Denn dabei würde ignoriert werden, dass »h1« nur eine technikbedingte Abkürzung für die semantische Aussage der Auszeichnung durch <h1></h1>-Tags ist: Überschrift erster Ordnung. Der entstehende Strukturbestandteil des Dokuments ist ja eine Überschrift erster Ordnung, kein h1 (was sollte das auch sein); ein Dokument besteht aus Überschriften, Absätzen und Tabellen, nicht aus h1, p und table usw. Dementsprechend wäre das aus dem Markup <table>...</table> entstehende kein table-Element, sondern ein Tabellen-Element.

Die Konsequenz wäre also, die Benutzung der Begriffe »Element« und »Tag(s)« stärker zu trennen. Wichtig erscheint mir daher die Bedeutung von »Tag«, welche die Syntax außer Acht lässt und einen Tag als Auszeichnung, Kennzeichnung, Etikett etc. versteht. Demnach kann ein sogenannter Start-Tag bzw. ein sogenannter End-Tag noch keine Auszeichnung sein, bei der Begriffsverwendung ist ein Tag eine Startmarke bzw. eine Endmarke einer Auszeichnung. Von Auszeichnung kann erst gesprochen werden, wenn ein sog. Start-Tag und ein sog. End-Tag zusammentreffen (von sog. leeren Elementen und SGML-Ausnahmen wie <p/Text/ usw. einmal abgesehen). Gesucht ist also ein Begriff, der diese syntaktische Umsetzung einer konkreten Auszeichnung benennt (<p>Text</p> für die Auszeichnung »Textabsatz«). Der Begriff »Element« ist dazu nicht geeignet. Die Kernfrage ist also, wie die hier mehrfach genannte Benennung der Syntaxbestandteile verbessert werden kann, ohne »Element« zu gebrauchen. Das Problem sind also solche Schaubilder:

<p>Text</p>
Start-Tag ^^^    ^^^^ End-Tag
          ^^^^^^^^^^^
            Element

Wenn obige Annahmen stimmen, wäre ein Satz wie folgender unsinnig:
»Textabsätze werden mit dem p-Element ausgezeichnet.« (Im Hypertext würde p als <code>p</code> notiert, um zu zeigen, dass es sich um nicht-normalsprachlichen Rechnercode handelt.)
Und folgender dem entsprechender wäre zumindest etwas treffender:
»Text wird mit der p-Auszeichnung als Textabsatz (Textabsatz-Element) gekennzeichnet.«

Bedeutet <html> jetzt nun einen Tag oder ein Element? Gemeint ist ja für gewöhnlich nicht die syntaktische Einheit der Startmarke einer Auszeichnung als Hypertextdokument mittels der Kennzeichnungsabkürzung »html«, sondern die Einrichtung »html« als Kennzeichnungsmöglichkeit bzw. Auszeichnungsweise. Insofern ist es weder ein Tag im Sinne einer (Start-/End-)Marke, noch ein Element im Sinne eines Dokument-Objektmodells, welches die Bedeutung hinter den sog. Elementnamen berücksichtigt.

Mathias