Regeln
- Regeln für die Erstellung von Zwischenergebnissen, die als Konstruktionsregeln bei folgenden Abfragen als Quelle genutzt werden, sowie die
- abschliessende Regel (Goal), welche das finale Ergebnis des Programms produziert.
- Regeln für die Erstellung von Zwischenergebnissen, die als Konstruktionsregeln bei folgenden Abfragen als Quelle genutzt werden, sowie die
- abschliessende Regel (Goal), welche das finale Ergebnis des Programms produziert.
- Regeln für die Erstellung von Zwischenergebnissen, die als Konstruktionsregeln bei folgenden Abfragen als Quelle genutzt werden, sowie die
- abschliessende Regel (Goal), welche das finale Ergebnis des Programms produziert.
- Regeln für die Erstellung von Zwischenergebnissen, die als Konstruktionsregeln bei folgenden Abfragen als Quelle genutzt werden, sowie die
- abschliessende Regel (Goal), welche das finale Ergebnis des Programms produziert.
- Regeln für die Erstellung von Zwischenergebnissen, die als Konstruktionsregeln bei folgenden Abfragen als Quelle genutzt werden, sowie die
- abschliessende Regel (Goal), welche das finale Ergebnis des Programms produziert.
- Regeln für die Erstellung von Zwischenergebnissen, die als Konstruktionsregeln bei folgenden Abfragen als Quelle genutzt werden, sowie die
- abschliessende Regel (Goal), welche das finale Ergebnis des Programms produziert.
- Regeln für die Erstellung von Zwischenergebnissen, die als Konstruktionsregeln bei folgenden Abfragen als Quelle genutzt werden, sowie die
- abschliessende Regel (Goal), welche das finale Ergebnis des Programms produziert.
Regeln
Regeln
Regeln
Regeln
Regeln
Regeln
Ein Xcerpt-Programm besteht aus einer Menge von Regeln, welche aus einem Körper und einem Kopf bestehen.
Der Körper einer Regel ist eine Abfrage (Query), welche mit einem Datenterm (XML-Daten) verglichen wird. Er wird im Folgenden auch als Abfrageterm bezeichnet.
Der Kopf nutzt die Ergebnisse des Matchings und bildet damit einen neuen Datenterm. Die ermittelten Daten sind entweder im Abfrageterm spezifiziert oder durch weitere Regeln des Programms erstellt. Im folgenden soll er auch Konstruktionsterm genannt werden.
Mit Chaining oder Verkettung bezeichnet man die Strategie, welche zur Verknüpfung von Regeln eines funktionalen Programmes und der Ableitung logischer Folgerungen genutzt wird. Sie arbeiten transitiv, so daß das Ergebnis einer Regel als Grundlage einer weiteren Regel dienen kann.
Backward-Chaining oder auch abfragegetriebenes Vorgehen nutzt leicht verständliche, deklarative Vereinfachungssregeln. Es beginnt mit dem Anfrageteil eines Zieles und wählt davon ausgehend solche Regeln aus, welche für die Auflösung des Abfrageterms benötigt werden. Der aktuelle Abfrageterm wird durch den Zielterm der gewählten Regel ersetzt. Wenn ein erwartetes Ergebnis klein gegenüber der Anzahl der möglichen Regeln des gesamten Programmes ist, spart ein abfragegetriebenes Vorgehen so Resourcen.
Theoretisch ist das gesamte Web als Resource denkbar, da Suchräume durch frühzeitige Inkonsistenzprüfung reduziert und komplexe Berechnungen so lang wie möglich vermieden werden können.
Dem gegenüber steht das Forward-Chaining, welches ein datengetriebenes Vorgehen darstellt. Beginnend mit der initialen Datenbasis werden hier alle Regeln iterativ gegen die aktuelle Menge von Datentermen ausgewertet, bis eine Sättigung erreicht ist. Es besitzt also keine Regeldatenteile, welche nicht bereits abgeleitet wurden. Dieser Zustand wird als „Fixpunkt“ bezeichnet, welcher nicht unendlich sein darf. Im Falle eines Zyklus würde die Iteration niemals terminieren. Ebenfalls werden durch den fehlenden zielgetriebenen Ansatz Großteile der bearbeiteten Daten für die Abfrage meist nicht genutzt und sind uninteressant.
Verwendung findet Forward Chaining in regelbasierten Abfragesprachen für traditionelle Datenbanksysteme, beispielsweise zur Materialisierung von Sichten und zur Sichten-Pflege.
In auf das Web bezogenen Anwendungen können beide Techniken interessant sein. Mittels Forward-Chaining können Abfrageergebnisse materialisiert werden, beispielsweise zur Generierung statischer Web-Seiten aus einem informationshaltenden XML-Dokument und einem Abfrageprogramm, welches Layout-Informationen hinzufügt. Backward-Chaining ist nützlich, falls die genutzte Resource nicht lokal sondern im Web selbst zu finden ist. Es bildet die Grundlage von Xcerpt.
Es existieren bis zu drei Regelarten innerhalb eines Xcerpt-Programmes, welche sich im Kopfbereich unterscheiden:
Da Xcerpt auf Rückwärtsverkettung basiert, tritt hauptsächlich die abfragegetrieben arbeitende „Construct“-Regel auf.
Regeln, welche datengetrieben zu Programmstart aufgelöst werden, sind durch „Materialise“ eingeleitet.
GOAL |
CONSTRUCT |
MATERIALISE |
ghead |
chead |
mhead |
FROM |
FROM |
FROM |
gbody |
cbody |
mbody |
END |
END |
END |
ghead , rhead und mhead sind dabei die erwähnten Konstruktionsterme.
Ein GOAL
-Kopf kann im Gegensatz zum CONSTRUCT
-Kopf Informationen beinhalten, wohin der durch den Konstruktionsterm produzierte Datenterm ausgegeben werden sollte. Standardmäßig wird er im Xcerpt Datenterm-Dateiformat zur Standard-Ausgabe gesendet.
gbody, rbody sowie mbody sind Abfrageterme. Sie stellen Muster dar, welche mit entsprechenden Datentermen, oftmals als XML-Daten repräsentiert, verglichen werden. Passende Resultate werden in einer (evtl. leeren) Menge von Bindungen für die Variablen der Abfrageterme repräsentiert. Eine Bindung assoziiert Datenterme mit den Variablen des Abfrageterms.
In der Logikprogrammierung wird dabei ein ähnliches Konzept als Unifikation bezeichnet. Während dort allerdings beide in die Unifikation einbezogenen Teile Terme beinhalten könnten, ist in Xcerpt eine der beiden Terme immer ein Datenterm (korrespondierend zu einem Grundterm in der Logik-Programmierung). Das Ergebnis einer Regel ist ein neuer Datenterm, erhalten durch Anwendung aller oder einiger Bindungen zum Kopf der Regel.
Dieser neue Datenterm kann im Körper einer anderen Regel abgefragt werden. Da der von der Regelanwendung resultierende, neue Term das selbe Format besitzt wie ein aus einer anderen Quelle entnommener Datenterm, kann man ihn in einer weiteren Regel weiterverarbeiten. Ein Regelkörper muss demnach nicht von einer Datei ausgelesen werden, sondern kann stattdessen Xerpt-Daten identifizieren, welche durch eine Konstrukt-Regel erstellt wurde. Dieses Rule-Chaining erhöht die Übersichtlichkeit im Code und damit die Nutzbarkeit für menschliche Nutzer.
Das Ergebnis einer GOAL - Zielregel wird entweder in eine Datei geschrieben oder am Bildschirm angezeigt, kann jedoch nicht für weitere Verkettungen genutzt werden.
Ein Xcerpt-Programm besteht aus einer Menge von Regeln, welche aus einem Körper und einem Kopf bestehen.
Der Körper einer Regel ist eine Abfrage (Query), welche mit einem Datenterm (XML-Daten) verglichen wird. Er wird im Folgenden auch als Abfrageterm bezeichnet.
Der Kopf nutzt die Ergebnisse des Matchings und bildet damit einen neuen Datenterm. Die ermittelten Daten sind entweder im Abfrageterm spezifiziert oder durch weitere Regeln des Programms erstellt. Im folgenden soll er auch Konstruktionsterm genannt werden.
Verkettung
Mit Chaining oder Verkettung bezeichnet man die Strategie, welche zur Verknüpfung von Regeln eines funktionalen Programmes und der Ableitung logischer Folgerungen genutzt wird. Sie arbeiten transitiv, so daß das Ergebnis einer Regel als Grundlage einer weiteren Regel dienen kann.
Rückwärtsverkettung
Backward-Chaining oder auch abfragegetriebenes Vorgehen nutzt leicht verständliche, deklarative Vereinfachungssregeln. Es beginnt mit dem Anfrageteil eines Zieles und wählt davon ausgehend solche Regeln aus, welche für die Auflösung des Abfrageterms benötigt werden. Der aktuelle Abfrageterm wird durch den Zielterm der gewählten Regel ersetzt. Wenn ein erwartetes Ergebnis klein gegenüber der Anzahl der möglichen Regeln des gesamten Programmes ist, spart ein abfragegetriebenes Vorgehen so Resourcen.
Theoretisch ist das gesamte Web als Resource denkbar, da Suchräume durch frühzeitige Inkonsistenzprüfung reduziert und komplexe Berechnungen so lang wie möglich vermieden werden können.
Vorwärtsverkettung
Dem gegenüber steht das Forward-Chaining, welches ein datengetriebenes Vorgehen darstellt. Beginnend mit der initialen Datenbasis werden hier alle Regeln iterativ gegen die aktuelle Menge von Datentermen ausgewertet, bis eine Sättigung erreicht ist. Es besitzt also keine Regeldatenteile, welche nicht bereits abgeleitet wurden. Dieser Zustand wird als „Fixpunkt“ bezeichnet, welcher nicht unendlich sein darf. Im Falle eines Zyklus würde die Iteration niemals terminieren. Ebenfalls werden durch den fehlenden zielgetriebenen Ansatz Großteile der bearbeiteten Daten für die Abfrage meist nicht genutzt und sind uninteressant.
Verwendung findet Forward Chaining in regelbasierten Abfragesprachen für traditionelle Datenbanksysteme, beispielsweise zur Materialisierung von Sichten und zur Sichten-Pflege.
In auf das Web bezogenen Anwendungen können beide Techniken interessant sein. Mittels Forward-Chaining können Abfrageergebnisse materialisiert werden, beispielsweise zur Generierung statischer Web-Seiten aus einem informationshaltenden XML-Dokument und einem Abfrageprogramm, welches Layout-Informationen hinzufügt. Backward-Chaining ist nützlich, falls die genutzte Resource nicht lokal sondern im Web selbst zu finden ist. Es bildet die Grundlage von Xcerpt.
Regelkopf
Es existieren bis zu drei Regelarten innerhalb eines Xcerpt-Programmes, welche sich im Kopfbereich unterscheiden:
Da Xcerpt auf Rückwärtsverkettung basiert, tritt hauptsächlich die abfragegetrieben arbeitende „Construct“-Regel auf.
Regeln, welche datengetrieben zu Programmstart aufgelöst werden, sind durch „Materialise“ eingeleitet.
GOAL |
CONSTRUCT |
MATERIALISE |
ghead |
chead |
mhead |
FROM |
FROM |
FROM |
gbody |
cbody |
mbody |
END |
END |
END |
ghead , rhead und mhead sind dabei die erwähnten Konstruktionsterme.
Ein GOAL
-Kopf kann im Gegensatz zum CONSTRUCT
-Kopf Informationen beinhalten, wohin der durch den Konstruktionsterm produzierte Datenterm ausgegeben werden sollte. Standardmäßig wird er im Xcerpt Datenterm-Dateiformat zur Standard-Ausgabe gesendet.
Regelkörper
gbody, rbody sowie mbody sind Abfrageterme. Sie stellen Muster dar, welche mit entsprechenden Datentermen, oftmals als XML-Daten repräsentiert, verglichen werden. Passende Resultate werden in einer (evtl. leeren) Menge von Bindungen für die Variablen der Abfrageterme repräsentiert. Eine Bindung assoziiert Datenterme mit den Variablen des Abfrageterms.
In der Logikprogrammierung wird dabei ein ähnliches Konzept als Unifikation bezeichnet. Während dort allerdings beide in die Unifikation einbezogenen Teile Terme beinhalten könnten, ist in Xcerpt eine der beiden Terme immer ein Datenterm (korrespondierend zu einem Grundterm in der Logik-Programmierung). Das Ergebnis einer Regel ist ein neuer Datenterm, erhalten durch Anwendung aller oder einiger Bindungen zum Kopf der Regel.
Dieser neue Datenterm kann im Körper einer anderen Regel abgefragt werden. Da der von der Regelanwendung resultierende, neue Term das selbe Format besitzt wie ein aus einer anderen Quelle entnommener Datenterm, kann man ihn in einer weiteren Regel weiterverarbeiten. Ein Regelkörper muss demnach nicht von einer Datei ausgelesen werden, sondern kann stattdessen Xerpt-Daten identifizieren, welche durch eine Konstrukt-Regel erstellt wurde. Dieses Rule-Chaining erhöht die Übersichtlichkeit im Code und damit die Nutzbarkeit für menschliche Nutzer.
Das Ergebnis einer GOAL - Zielregel wird entweder in eine Datei geschrieben oder am Bildschirm angezeigt, kann jedoch nicht für weitere Verkettungen genutzt werden.
Ein Xcerpt-Programm besteht aus einer Menge von Regeln, welche aus einem Körper und einem Kopf bestehen.
Der Körper einer Regel ist eine Abfrage (Query), welche mit einem Datenterm (XML-Daten) verglichen wird. Er wird im Folgenden auch als Abfrageterm bezeichnet.
Der Kopf nutzt die Ergebnisse des Matchings und bildet damit einen neuen Datenterm. Die ermittelten Daten sind entweder im Abfrageterm spezifiziert oder durch weitere Regeln des Programms erstellt. Im folgenden soll er auch Konstruktionsterm genannt werden.
Verkettung
Mit Chaining oder Verkettung bezeichnet man die Strategie, welche zur Verknüpfung von Regeln eines funktionalen Programmes und der Ableitung logischer Folgerungen genutzt wird. Sie arbeiten transitiv, so daß das Ergebnis einer Regel als Grundlage einer weiteren Regel dienen kann.
Rückwärtsverkettung
Backward-Chaining oder auch abfragegetriebenes Vorgehen nutzt leicht verständliche, deklarative Vereinfachungssregeln. Es beginnt mit dem Anfrageteil eines Zieles und wählt davon ausgehend solche Regeln aus, welche für die Auflösung des Abfrageterms benötigt werden. Der aktuelle Abfrageterm wird durch den Zielterm der gewählten Regel ersetzt. Wenn ein erwartetes Ergebnis klein gegenüber der Anzahl der möglichen Regeln des gesamten Programmes ist, spart ein abfragegetriebenes Vorgehen so Resourcen.
Theoretisch ist das gesamte Web als Resource denkbar, da Suchräume durch frühzeitige Inkonsistenzprüfung reduziert und komplexe Berechnungen so lang wie möglich vermieden werden können.
Vorwärtsverkettung
Dem gegenüber steht das Forward-Chaining, welches ein datengetriebenes Vorgehen darstellt. Beginnend mit der initialen Datenbasis werden hier alle Regeln iterativ gegen die aktuelle Menge von Datentermen ausgewertet, bis eine Sättigung erreicht ist. Es besitzt also keine Regeldatenteile, welche nicht bereits abgeleitet wurden. Dieser Zustand wird als „Fixpunkt“ bezeichnet, welcher nicht unendlich sein darf. Im Falle eines Zyklus würde die Iteration niemals terminieren. Ebenfalls werden durch den fehlenden zielgetriebenen Ansatz Großteile der bearbeiteten Daten für die Abfrage meist nicht genutzt und sind uninteressant.
Verwendung findet Forward Chaining in regelbasierten Abfragesprachen für traditionelle Datenbanksysteme, beispielsweise zur Materialisierung von Sichten und zur Sichten-Pflege.
In auf das Web bezogenen Anwendungen können beide Techniken interessant sein. Mittels Forward-Chaining können Abfrageergebnisse materialisiert werden, beispielsweise zur Generierung statischer Web-Seiten aus einem informationshaltenden XML-Dokument und einem Abfrageprogramm, welches Layout-Informationen hinzufügt. Backward-Chaining ist nützlich, falls die genutzte Resource nicht lokal sondern im Web selbst zu finden ist. Es bildet die Grundlage von Xcerpt.
Regelkopf
Es existieren bis zu drei Regelarten innerhalb eines Xcerpt-Programmes, welche sich im Kopfbereich unterscheiden:
Da Xcerpt auf Rückwärtsverkettung basiert, tritt hauptsächlich die abfragegetrieben arbeitende „Construct“-Regel auf.
Regeln, welche datengetrieben zu Programmstart aufgelöst werden, sind durch „Materialise“ eingeleitet.
GOAL |
CONSTRUCT |
MATERIALISE |
ghead |
chead |
mhead |
FROM |
FROM |
FROM |
gbody |
cbody |
mbody |
END |
END |
END |
ghead , rhead und mhead sind dabei die erwähnten Konstruktionsterme.
Ein GOAL
-Kopf kann im Gegensatz zum CONSTRUCT
-Kopf Informationen beinhalten, wohin der durch den Konstruktionsterm produzierte Datenterm ausgegeben werden sollte. Standardmäßig wird er im Xcerpt Datenterm-Dateiformat zur Standard-Ausgabe gesendet.
Regelkörper
gbody, rbody sowie mbody sind Abfrageterme. Sie stellen Muster dar, welche mit entsprechenden Datentermen, oftmals als XML-Daten repräsentiert, verglichen werden. Passende Resultate werden in einer (evtl. leeren) Menge von Bindungen für die Variablen der Abfrageterme repräsentiert. Eine Bindung assoziiert Datenterme mit den Variablen des Abfrageterms.
In der Logikprogrammierung wird dabei ein ähnliches Konzept als Unifikation bezeichnet. Während dort allerdings beide in die Unifikation einbezogenen Teile Terme beinhalten könnten, ist in Xcerpt eine der beiden Terme immer ein Datenterm (korrespondierend zu einem Grundterm in der Logik-Programmierung). Das Ergebnis einer Regel ist ein neuer Datenterm, erhalten durch Anwendung aller oder einiger Bindungen zum Kopf der Regel.
Dieser neue Datenterm kann im Körper einer anderen Regel abgefragt werden. Da der von der Regelanwendung resultierende, neue Term das selbe Format besitzt wie ein aus einer anderen Quelle entnommener Datenterm, kann man ihn in einer weiteren Regel weiterverarbeiten. Ein Regelkörper muss demnach nicht von einer Datei ausgelesen werden, sondern kann stattdessen Xerpt-Daten identifizieren, welche durch eine Konstrukt-Regel erstellt wurde. Dieses Rule-Chaining erhöht die Übersichtlichkeit im Code und damit die Nutzbarkeit für menschliche Nutzer.
Das Ergebnis einer GOAL - Zielregel wird entweder in eine Datei geschrieben oder am Bildschirm angezeigt, kann jedoch nicht für weitere Verkettungen genutzt werden.
Ein Xcerpt-Programm besteht aus einer Menge von Regeln, welche aus einem Körper und einem Kopf bestehen.
Der Körper einer Regel ist eine Abfrage (Query), welche mit einem Datenterm (XML-Daten) verglichen wird. Er wird im Folgenden auch als Abfrageterm bezeichnet.
Der Kopf nutzt die Ergebnisse des Matchings und bildet damit einen neuen Datenterm. Die ermittelten Daten sind entweder im Abfrageterm spezifiziert oder durch weitere Regeln des Programms erstellt. Im folgenden soll er auch Konstruktionsterm genannt werden.
Verkettung
Mit Chaining oder Verkettung bezeichnet man die Strategie, welche zur Verknüpfung von Regeln eines funktionalen Programmes und der Ableitung logischer Folgerungen genutzt wird. Sie arbeiten transitiv, so daß das Ergebnis einer Regel als Grundlage einer weiteren Regel dienen kann.
Rückwärtsverkettung
Backward-Chaining oder auch abfragegetriebenes Vorgehen nutzt leicht verständliche, deklarative Vereinfachungssregeln. Es beginnt mit dem Anfrageteil eines Zieles und wählt davon ausgehend solche Regeln aus, welche für die Auflösung des Abfrageterms benötigt werden. Der aktuelle Abfrageterm wird durch den Zielterm der gewählten Regel ersetzt. Wenn ein erwartetes Ergebnis klein gegenüber der Anzahl der möglichen Regeln des gesamten Programmes ist, spart ein abfragegetriebenes Vorgehen so Resourcen.
Theoretisch ist das gesamte Web als Resource denkbar, da Suchräume durch frühzeitige Inkonsistenzprüfung reduziert und komplexe Berechnungen so lang wie möglich vermieden werden können.
Vorwärtsverkettung
Dem gegenüber steht das Forward-Chaining, welches ein datengetriebenes Vorgehen darstellt. Beginnend mit der initialen Datenbasis werden hier alle Regeln iterativ gegen die aktuelle Menge von Datentermen ausgewertet, bis eine Sättigung erreicht ist. Es besitzt also keine Regeldatenteile, welche nicht bereits abgeleitet wurden. Dieser Zustand wird als „Fixpunkt“ bezeichnet, welcher nicht unendlich sein darf. Im Falle eines Zyklus würde die Iteration niemals terminieren. Ebenfalls werden durch den fehlenden zielgetriebenen Ansatz Großteile der bearbeiteten Daten für die Abfrage meist nicht genutzt und sind uninteressant.
Verwendung findet Forward Chaining in regelbasierten Abfragesprachen für traditionelle Datenbanksysteme, beispielsweise zur Materialisierung von Sichten und zur Sichten-Pflege.
In auf das Web bezogenen Anwendungen können beide Techniken interessant sein. Mittels Forward-Chaining können Abfrageergebnisse materialisiert werden, beispielsweise zur Generierung statischer Web-Seiten aus einem informationshaltenden XML-Dokument und einem Abfrageprogramm, welches Layout-Informationen hinzufügt. Backward-Chaining ist nützlich, falls die genutzte Resource nicht lokal sondern im Web selbst zu finden ist. Es bildet die Grundlage von Xcerpt.
Regelkopf
Es existieren bis zu drei Regelarten innerhalb eines Xcerpt-Programmes, welche sich im Kopfbereich unterscheiden:
Da Xcerpt auf Rückwärtsverkettung basiert, tritt hauptsächlich die abfragegetrieben arbeitende „Construct“-Regel auf.
Regeln, welche datengetrieben zu Programmstart aufgelöst werden, sind durch „Materialise“ eingeleitet.
GOAL |
CONSTRUCT |
MATERIALISE |
ghead |
chead |
mhead |
FROM |
FROM |
FROM |
gbody |
cbody |
mbody |
END |
END |
END |
ghead , rhead und mhead sind dabei die erwähnten Konstruktionsterme.
Ein GOAL
-Kopf kann im Gegensatz zum CONSTRUCT
-Kopf Informationen beinhalten, wohin der durch den Konstruktionsterm produzierte Datenterm ausgegeben werden sollte. Standardmäßig wird er im Xcerpt Datenterm-Dateiformat zur Standard-Ausgabe gesendet.
Regelkörper
gbody, rbody sowie mbody sind Abfrageterme. Sie stellen Muster dar, welche mit entsprechenden Datentermen, oftmals als XML-Daten repräsentiert, verglichen werden. Passende Resultate werden in einer (evtl. leeren) Menge von Bindungen für die Variablen der Abfrageterme repräsentiert. Eine Bindung assoziiert Datenterme mit den Variablen des Abfrageterms.
In der Logikprogrammierung wird dabei ein ähnliches Konzept als Unifikation bezeichnet. Während dort allerdings beide in die Unifikation einbezogenen Teile Terme beinhalten könnten, ist in Xcerpt eine der beiden Terme immer ein Datenterm (korrespondierend zu einem Grundterm in der Logik-Programmierung). Das Ergebnis einer Regel ist ein neuer Datenterm, erhalten durch Anwendung aller oder einiger Bindungen zum Kopf der Regel.
Dieser neue Datenterm kann im Körper einer anderen Regel abgefragt werden. Da der von der Regelanwendung resultierende, neue Term das selbe Format besitzt wie ein aus einer anderen Quelle entnommener Datenterm, kann man ihn in einer weiteren Regel weiterverarbeiten. Ein Regelkörper muss demnach nicht von einer Datei ausgelesen werden, sondern kann stattdessen Xerpt-Daten identifizieren, welche durch eine Konstrukt-Regel erstellt wurde. Dieses Rule-Chaining erhöht die Übersichtlichkeit im Code und damit die Nutzbarkeit für menschliche Nutzer.
Das Ergebnis einer GOAL - Zielregel wird entweder in eine Datei geschrieben oder am Bildschirm angezeigt, kann jedoch nicht für weitere Verkettungen genutzt werden.
Ein Xcerpt-Programm besteht aus einer Menge von Regeln, welche aus einem Körper und einem Kopf bestehen.
Der Körper einer Regel ist eine Abfrage (Query), welche mit einem Datenterm (XML-Daten) verglichen wird. Er wird im Folgenden auch als Abfrageterm bezeichnet.
Der Kopf nutzt die Ergebnisse des Matchings und bildet damit einen neuen Datenterm. Die ermittelten Daten sind entweder im Abfrageterm spezifiziert oder durch weitere Regeln des Programms erstellt. Im folgenden soll er auch Konstruktionsterm genannt werden.
Verkettung
Mit Chaining oder Verkettung bezeichnet man die Strategie, welche zur Verknüpfung von Regeln eines funktionalen Programmes und der Ableitung logischer Folgerungen genutzt wird. Sie arbeiten transitiv, so daß das Ergebnis einer Regel als Grundlage einer weiteren Regel dienen kann.
Rückwärtsverkettung
Backward-Chaining oder auch abfragegetriebenes Vorgehen nutzt leicht verständliche, deklarative Vereinfachungssregeln. Es beginnt mit dem Anfrageteil eines Zieles und wählt davon ausgehend solche Regeln aus, welche für die Auflösung des Abfrageterms benötigt werden. Der aktuelle Abfrageterm wird durch den Zielterm der gewählten Regel ersetzt. Wenn ein erwartetes Ergebnis klein gegenüber der Anzahl der möglichen Regeln des gesamten Programmes ist, spart ein abfragegetriebenes Vorgehen so Resourcen.
Theoretisch ist das gesamte Web als Resource denkbar, da Suchräume durch frühzeitige Inkonsistenzprüfung reduziert und komplexe Berechnungen so lang wie möglich vermieden werden können.
Vorwärtsverkettung
Dem gegenüber steht das Forward-Chaining, welches ein datengetriebenes Vorgehen darstellt. Beginnend mit der initialen Datenbasis werden hier alle Regeln iterativ gegen die aktuelle Menge von Datentermen ausgewertet, bis eine Sättigung erreicht ist. Es besitzt also keine Regeldatenteile, welche nicht bereits abgeleitet wurden. Dieser Zustand wird als „Fixpunkt“ bezeichnet, welcher nicht unendlich sein darf. Im Falle eines Zyklus würde die Iteration niemals terminieren. Ebenfalls werden durch den fehlenden zielgetriebenen Ansatz Großteile der bearbeiteten Daten für die Abfrage meist nicht genutzt und sind uninteressant.
Verwendung findet Forward Chaining in regelbasierten Abfragesprachen für traditionelle Datenbanksysteme, beispielsweise zur Materialisierung von Sichten und zur Sichten-Pflege.
In auf das Web bezogenen Anwendungen können beide Techniken interessant sein. Mittels Forward-Chaining können Abfrageergebnisse materialisiert werden, beispielsweise zur Generierung statischer Web-Seiten aus einem informationshaltenden XML-Dokument und einem Abfrageprogramm, welches Layout-Informationen hinzufügt. Backward-Chaining ist nützlich, falls die genutzte Resource nicht lokal sondern im Web selbst zu finden ist. Es bildet die Grundlage von Xcerpt.
Regelkopf
Es existieren bis zu drei Regelarten innerhalb eines Xcerpt-Programmes, welche sich im Kopfbereich unterscheiden:
Da Xcerpt auf Rückwärtsverkettung basiert, tritt hauptsächlich die abfragegetrieben arbeitende „Construct“-Regel auf.
Regeln, welche datengetrieben zu Programmstart aufgelöst werden, sind durch „Materialise“ eingeleitet.
GOAL |
CONSTRUCT |
MATERIALISE |
ghead |
chead |
mhead |
FROM |
FROM |
FROM |
gbody |
cbody |
mbody |
END |
END |
END |
ghead , rhead und mhead sind dabei die erwähnten Konstruktionsterme.
Ein GOAL
-Kopf kann im Gegensatz zum CONSTRUCT
-Kopf Informationen beinhalten, wohin der durch den Konstruktionsterm produzierte Datenterm ausgegeben werden sollte. Standardmäßig wird er im Xcerpt Datenterm-Dateiformat zur Standard-Ausgabe gesendet.
Regelkörper
gbody, rbody sowie mbody sind Abfrageterme. Sie stellen Muster dar, welche mit entsprechenden Datentermen, oftmals als XML-Daten repräsentiert, verglichen werden. Passende Resultate werden in einer (evtl. leeren) Menge von Bindungen für die Variablen der Abfrageterme repräsentiert. Eine Bindung assoziiert Datenterme mit den Variablen des Abfrageterms.
In der Logikprogrammierung wird dabei ein ähnliches Konzept als Unifikation bezeichnet. Während dort allerdings beide in die Unifikation einbezogenen Teile Terme beinhalten könnten, ist in Xcerpt eine der beiden Terme immer ein Datenterm (korrespondierend zu einem Grundterm in der Logik-Programmierung). Das Ergebnis einer Regel ist ein neuer Datenterm, erhalten durch Anwendung aller oder einiger Bindungen zum Kopf der Regel.
Dieser neue Datenterm kann im Körper einer anderen Regel abgefragt werden. Da der von der Regelanwendung resultierende, neue Term das selbe Format besitzt wie ein aus einer anderen Quelle entnommener Datenterm, kann man ihn in einer weiteren Regel weiterverarbeiten. Ein Regelkörper muss demnach nicht von einer Datei ausgelesen werden, sondern kann stattdessen Xerpt-Daten identifizieren, welche durch eine Konstrukt-Regel erstellt wurde. Dieses Rule-Chaining erhöht die Übersichtlichkeit im Code und damit die Nutzbarkeit für menschliche Nutzer.
Das Ergebnis einer GOAL - Zielregel wird entweder in eine Datei geschrieben oder am Bildschirm angezeigt, kann jedoch nicht für weitere Verkettungen genutzt werden.
Ein Xcerpt-Programm besteht aus einer Menge von Regeln, welche aus einem Körper und einem Kopf bestehen.
Der Körper einer Regel ist eine Abfrage (Query), welche mit einem Datenterm (XML-Daten) verglichen wird. Er wird im Folgenden auch als Abfrageterm bezeichnet.
Der Kopf nutzt die Ergebnisse des Matchings und bildet damit einen neuen Datenterm. Die ermittelten Daten sind entweder im Abfrageterm spezifiziert oder durch weitere Regeln des Programms erstellt. Im folgenden soll er auch Konstruktionsterm genannt werden.
Verkettung
Mit Chaining oder Verkettung bezeichnet man die Strategie, welche zur Verknüpfung von Regeln eines funktionalen Programmes und der Ableitung logischer Folgerungen genutzt wird. Sie arbeiten transitiv, so daß das Ergebnis einer Regel als Grundlage einer weiteren Regel dienen kann.
Rückwärtsverkettung
Backward-Chaining oder auch abfragegetriebenes Vorgehen nutzt leicht verständliche, deklarative Vereinfachungssregeln. Es beginnt mit dem Anfrageteil eines Zieles und wählt davon ausgehend solche Regeln aus, welche für die Auflösung des Abfrageterms benötigt werden. Der aktuelle Abfrageterm wird durch den Zielterm der gewählten Regel ersetzt. Wenn ein erwartetes Ergebnis klein gegenüber der Anzahl der möglichen Regeln des gesamten Programmes ist, spart ein abfragegetriebenes Vorgehen so Resourcen.
Theoretisch ist das gesamte Web als Resource denkbar, da Suchräume durch frühzeitige Inkonsistenzprüfung reduziert und komplexe Berechnungen so lang wie möglich vermieden werden können.
Vorwärtsverkettung
Dem gegenüber steht das Forward-Chaining, welches ein datengetriebenes Vorgehen darstellt. Beginnend mit der initialen Datenbasis werden hier alle Regeln iterativ gegen die aktuelle Menge von Datentermen ausgewertet, bis eine Sättigung erreicht ist. Es besitzt also keine Regeldatenteile, welche nicht bereits abgeleitet wurden. Dieser Zustand wird als „Fixpunkt“ bezeichnet, welcher nicht unendlich sein darf. Im Falle eines Zyklus würde die Iteration niemals terminieren. Ebenfalls werden durch den fehlenden zielgetriebenen Ansatz Großteile der bearbeiteten Daten für die Abfrage meist nicht genutzt und sind uninteressant.
Verwendung findet Forward Chaining in regelbasierten Abfragesprachen für traditionelle Datenbanksysteme, beispielsweise zur Materialisierung von Sichten und zur Sichten-Pflege.
In auf das Web bezogenen Anwendungen können beide Techniken interessant sein. Mittels Forward-Chaining können Abfrageergebnisse materialisiert werden, beispielsweise zur Generierung statischer Web-Seiten aus einem informationshaltenden XML-Dokument und einem Abfrageprogramm, welches Layout-Informationen hinzufügt. Backward-Chaining ist nützlich, falls die genutzte Resource nicht lokal sondern im Web selbst zu finden ist. Es bildet die Grundlage von Xcerpt.
Regelkopf
Es existieren bis zu drei Regelarten innerhalb eines Xcerpt-Programmes, welche sich im Kopfbereich unterscheiden:
Da Xcerpt auf Rückwärtsverkettung basiert, tritt hauptsächlich die abfragegetrieben arbeitende „Construct“-Regel auf.
Regeln, welche datengetrieben zu Programmstart aufgelöst werden, sind durch „Materialise“ eingeleitet.
GOAL |
CONSTRUCT |
MATERIALISE |
ghead |
chead |
mhead |
FROM |
FROM |
FROM |
gbody |
cbody |
mbody |
END |
END |
END |
ghead , rhead und mhead sind dabei die erwähnten Konstruktionsterme.
Ein GOAL
-Kopf kann im Gegensatz zum CONSTRUCT
-Kopf Informationen beinhalten, wohin der durch den Konstruktionsterm produzierte Datenterm ausgegeben werden sollte. Standardmäßig wird er im Xcerpt Datenterm-Dateiformat zur Standard-Ausgabe gesendet.
Regelkörper
gbody, rbody sowie mbody sind Abfrageterme. Sie stellen Muster dar, welche mit entsprechenden Datentermen, oftmals als XML-Daten repräsentiert, verglichen werden. Passende Resultate werden in einer (evtl. leeren) Menge von Bindungen für die Variablen der Abfrageterme repräsentiert. Eine Bindung assoziiert Datenterme mit den Variablen des Abfrageterms.
In der Logikprogrammierung wird dabei ein ähnliches Konzept als Unifikation bezeichnet. Während dort allerdings beide in die Unifikation einbezogenen Teile Terme beinhalten könnten, ist in Xcerpt eine der beiden Terme immer ein Datenterm (korrespondierend zu einem Grundterm in der Logik-Programmierung). Das Ergebnis einer Regel ist ein neuer Datenterm, erhalten durch Anwendung aller oder einiger Bindungen zum Kopf der Regel.
Dieser neue Datenterm kann im Körper einer anderen Regel abgefragt werden. Da der von der Regelanwendung resultierende, neue Term das selbe Format besitzt wie ein aus einer anderen Quelle entnommener Datenterm, kann man ihn in einer weiteren Regel weiterverarbeiten. Ein Regelkörper muss demnach nicht von einer Datei ausgelesen werden, sondern kann stattdessen Xerpt-Daten identifizieren, welche durch eine Konstrukt-Regel erstellt wurde. Dieses Rule-Chaining erhöht die Übersichtlichkeit im Code und damit die Nutzbarkeit für menschliche Nutzer.
Das Ergebnis einer GOAL - Zielregel wird entweder in eine Datei geschrieben oder am Bildschirm angezeigt, kann jedoch nicht für weitere Verkettungen genutzt werden.
Ein Xcerpt-Programm besteht aus einer Menge von Regeln, welche aus einem Körper und einem Kopf bestehen.
Der Körper einer Regel ist eine Abfrage (Query), welche mit einem Datenterm (XML-Daten) verglichen wird. Er wird im Folgenden auch als Abfrageterm bezeichnet.
Der Kopf nutzt die Ergebnisse des Matchings und bildet damit einen neuen Datenterm. Die ermittelten Daten sind entweder im Abfrageterm spezifiziert oder durch weitere Regeln des Programms erstellt. Im folgenden soll er auch Konstruktionsterm genannt werden.
Verkettung
Mit Chaining oder Verkettung bezeichnet man die Strategie, welche zur Verknüpfung von Regeln eines funktionalen Programmes und der Ableitung logischer Folgerungen genutzt wird. Sie arbeiten transitiv, so daß das Ergebnis einer Regel als Grundlage einer weiteren Regel dienen kann.
Rückwärtsverkettung
Backward-Chaining oder auch abfragegetriebenes Vorgehen nutzt leicht verständliche, deklarative Vereinfachungssregeln. Es beginnt mit dem Anfrageteil eines Zieles und wählt davon ausgehend solche Regeln aus, welche für die Auflösung des Abfrageterms benötigt werden. Der aktuelle Abfrageterm wird durch den Zielterm der gewählten Regel ersetzt. Wenn ein erwartetes Ergebnis klein gegenüber der Anzahl der möglichen Regeln des gesamten Programmes ist, spart ein abfragegetriebenes Vorgehen so Resourcen.
Theoretisch ist das gesamte Web als Resource denkbar, da Suchräume durch frühzeitige Inkonsistenzprüfung reduziert und komplexe Berechnungen so lang wie möglich vermieden werden können.
Vorwärtsverkettung
Dem gegenüber steht das Forward-Chaining, welches ein datengetriebenes Vorgehen darstellt. Beginnend mit der initialen Datenbasis werden hier alle Regeln iterativ gegen die aktuelle Menge von Datentermen ausgewertet, bis eine Sättigung erreicht ist. Es besitzt also keine Regeldatenteile, welche nicht bereits abgeleitet wurden. Dieser Zustand wird als „Fixpunkt“ bezeichnet, welcher nicht unendlich sein darf. Im Falle eines Zyklus würde die Iteration niemals terminieren. Ebenfalls werden durch den fehlenden zielgetriebenen Ansatz Großteile der bearbeiteten Daten für die Abfrage meist nicht genutzt und sind uninteressant.
Verwendung findet Forward Chaining in regelbasierten Abfragesprachen für traditionelle Datenbanksysteme, beispielsweise zur Materialisierung von Sichten und zur Sichten-Pflege.
In auf das Web bezogenen Anwendungen können beide Techniken interessant sein. Mittels Forward-Chaining können Abfrageergebnisse materialisiert werden, beispielsweise zur Generierung statischer Web-Seiten aus einem informationshaltenden XML-Dokument und einem Abfrageprogramm, welches Layout-Informationen hinzufügt. Backward-Chaining ist nützlich, falls die genutzte Resource nicht lokal sondern im Web selbst zu finden ist. Es bildet die Grundlage von Xcerpt.
Regelkopf
Es existieren bis zu drei Regelarten innerhalb eines Xcerpt-Programmes, welche sich im Kopfbereich unterscheiden:
Da Xcerpt auf Rückwärtsverkettung basiert, tritt hauptsächlich die abfragegetrieben arbeitende „Construct“-Regel auf.
Regeln, welche datengetrieben zu Programmstart aufgelöst werden, sind durch „Materialise“ eingeleitet.
GOAL |
CONSTRUCT |
MATERIALISE |
ghead |
chead |
mhead |
FROM |
FROM |
FROM |
gbody |
cbody |
mbody |
END |
END |
END |
ghead , rhead und mhead sind dabei die erwähnten Konstruktionsterme.
Ein GOAL
-Kopf kann im Gegensatz zum CONSTRUCT
-Kopf Informationen beinhalten, wohin der durch den Konstruktionsterm produzierte Datenterm ausgegeben werden sollte. Standardmäßig wird er im Xcerpt Datenterm-Dateiformat zur Standard-Ausgabe gesendet.
Regelkörper
gbody, rbody sowie mbody sind Abfrageterme. Sie stellen Muster dar, welche mit entsprechenden Datentermen, oftmals als XML-Daten repräsentiert, verglichen werden. Passende Resultate werden in einer (evtl. leeren) Menge von Bindungen für die Variablen der Abfrageterme repräsentiert. Eine Bindung assoziiert Datenterme mit den Variablen des Abfrageterms.
In der Logikprogrammierung wird dabei ein ähnliches Konzept als Unifikation bezeichnet. Während dort allerdings beide in die Unifikation einbezogenen Teile Terme beinhalten könnten, ist in Xcerpt eine der beiden Terme immer ein Datenterm (korrespondierend zu einem Grundterm in der Logik-Programmierung). Das Ergebnis einer Regel ist ein neuer Datenterm, erhalten durch Anwendung aller oder einiger Bindungen zum Kopf der Regel.
Dieser neue Datenterm kann im Körper einer anderen Regel abgefragt werden. Da der von der Regelanwendung resultierende, neue Term das selbe Format besitzt wie ein aus einer anderen Quelle entnommener Datenterm, kann man ihn in einer weiteren Regel weiterverarbeiten. Ein Regelkörper muss demnach nicht von einer Datei ausgelesen werden, sondern kann stattdessen Xerpt-Daten identifizieren, welche durch eine Konstrukt-Regel erstellt wurde. Dieses Rule-Chaining erhöht die Übersichtlichkeit im Code und damit die Nutzbarkeit für menschliche Nutzer.
Das Ergebnis einer GOAL - Zielregel wird entweder in eine Datei geschrieben oder am Bildschirm angezeigt, kann jedoch nicht für weitere Verkettungen genutzt werden.
Ein Xcerpt-Programm besteht aus einer Menge von Regeln, welche aus einem Körper und einem Kopf bestehen.
Der Körper einer Regel ist eine Abfrage (Query), welche mit einem Datenterm (XML-Daten) verglichen wird. Er wird im Folgenden auch als Abfrageterm bezeichnet.
Der Kopf nutzt die Ergebnisse des Matchings und bildet damit einen neuen Datenterm. Die ermittelten Daten sind entweder im Abfrageterm spezifiziert oder durch weitere Regeln des Programms erstellt. Im folgenden soll er auch Konstruktionsterm genannt werden.
Verkettung
Mit Chaining oder Verkettung bezeichnet man die Strategie, welche zur Verknüpfung von Regeln eines funktionalen Programmes und der Ableitung logischer Folgerungen genutzt wird. Sie arbeiten transitiv, so daß das Ergebnis einer Regel als Grundlage einer weiteren Regel dienen kann.
Rückwärtsverkettung
Backward-Chaining oder auch abfragegetriebenes Vorgehen nutzt leicht verständliche, deklarative Vereinfachungssregeln. Es beginnt mit dem Anfrageteil eines Zieles und wählt davon ausgehend solche Regeln aus, welche für die Auflösung des Abfrageterms benötigt werden. Der aktuelle Abfrageterm wird durch den Zielterm der gewählten Regel ersetzt. Wenn ein erwartetes Ergebnis klein gegenüber der Anzahl der möglichen Regeln des gesamten Programmes ist, spart ein abfragegetriebenes Vorgehen so Resourcen.
Theoretisch ist das gesamte Web als Resource denkbar, da Suchräume durch frühzeitige Inkonsistenzprüfung reduziert und komplexe Berechnungen so lang wie möglich vermieden werden können.
Vorwärtsverkettung
Dem gegenüber steht das Forward-Chaining, welches ein datengetriebenes Vorgehen darstellt. Beginnend mit der initialen Datenbasis werden hier alle Regeln iterativ gegen die aktuelle Menge von Datentermen ausgewertet, bis eine Sättigung erreicht ist. Es besitzt also keine Regeldatenteile, welche nicht bereits abgeleitet wurden. Dieser Zustand wird als „Fixpunkt“ bezeichnet, welcher nicht unendlich sein darf. Im Falle eines Zyklus würde die Iteration niemals terminieren. Ebenfalls werden durch den fehlenden zielgetriebenen Ansatz Großteile der bearbeiteten Daten für die Abfrage meist nicht genutzt und sind uninteressant.
Verwendung findet Forward Chaining in regelbasierten Abfragesprachen für traditionelle Datenbanksysteme, beispielsweise zur Materialisierung von Sichten und zur Sichten-Pflege.
In auf das Web bezogenen Anwendungen können beide Techniken interessant sein. Mittels Forward-Chaining können Abfrageergebnisse materialisiert werden, beispielsweise zur Generierung statischer Web-Seiten aus einem informationshaltenden XML-Dokument und einem Abfrageprogramm, welches Layout-Informationen hinzufügt. Backward-Chaining ist nützlich, falls die genutzte Resource nicht lokal sondern im Web selbst zu finden ist. Es bildet die Grundlage von Xcerpt.
Regelkopf
Es existieren bis zu drei Regelarten innerhalb eines Xcerpt-Programmes, welche sich im Kopfbereich unterscheiden:
- Regeln für die Erstellung von Zwischenergebnissen, die als Konstruktionsregeln bei folgenden Abfragen als Quelle genutzt werden, sowie die
- abschliessende Regel (Goal), welche das finale Ergebnis des Programms produziert.
Da Xcerpt auf Rückwärtsverkettung basiert, tritt hauptsächlich die abfragegetrieben arbeitende „Construct“-Regel auf.
Regeln, welche datengetrieben zu Programmstart aufgelöst werden, sind durch „Materialise“ eingeleitet.
GOAL |
CONSTRUCT |
MATERIALISE |
ghead |
chead |
mhead |
FROM |
FROM |
FROM |
gbody |
cbody |
mbody |
END |
END |
END |
ghead , rhead und mhead sind dabei die erwähnten Konstruktionsterme.
Ein GOAL
-Kopf kann im Gegensatz zum CONSTRUCT
-Kopf Informationen beinhalten, wohin der durch den Konstruktionsterm produzierte Datenterm ausgegeben werden sollte. Standardmäßig wird er im Xcerpt Datenterm-Dateiformat zur Standard-Ausgabe gesendet.
Regelkörper
gbody, rbody sowie mbody sind Abfrageterme. Sie stellen Muster dar, welche mit entsprechenden Datentermen, oftmals als XML-Daten repräsentiert, verglichen werden. Passende Resultate werden in einer (evtl. leeren) Menge von Bindungen für die Variablen der Abfrageterme repräsentiert. Eine Bindung assoziiert Datenterme mit den Variablen des Abfrageterms.
In der Logikprogrammierung wird dabei ein ähnliches Konzept als Unifikation bezeichnet. Während dort allerdings beide in die Unifikation einbezogenen Teile Terme beinhalten könnten, ist in Xcerpt eine der beiden Terme immer ein Datenterm (korrespondierend zu einem Grundterm in der Logik-Programmierung). Das Ergebnis einer Regel ist ein neuer Datenterm, erhalten durch Anwendung aller oder einiger Bindungen zum Kopf der Regel.
Dieser neue Datenterm kann im Körper einer anderen Regel abgefragt werden. Da der von der Regelanwendung resultierende, neue Term das selbe Format besitzt wie ein aus einer anderen Quelle entnommener Datenterm, kann man ihn in einer weiteren Regel weiterverarbeiten. Ein Regelkörper muss demnach nicht von einer Datei ausgelesen werden, sondern kann stattdessen Xerpt-Daten identifizieren, welche durch eine Konstrukt-Regel erstellt wurde. Dieses Rule-Chaining erhöht die Übersichtlichkeit im Code und damit die Nutzbarkeit für menschliche Nutzer.
Das Ergebnis einer GOAL - Zielregel wird entweder in eine Datei geschrieben oder am Bildschirm angezeigt, kann jedoch nicht für weitere Verkettungen genutzt werden.