OWL 2
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Title of Series | ||
Part Number | 12 | |
Number of Parts | 14 | |
Author | ||
License | CC Attribution - NonCommercial 3.0 Germany: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor. | |
Identifiers | 10.5446/11276 (DOI) | |
Publisher | ||
Release Date | ||
Language | ||
Producer |
Semantic Web WS 2009/1012 / 14
1
3
4
5
6
8
9
10
11
12
13
14
00:00
BlogUniverse (mathematics)Semantic WebKnowledge representation and reasoningRDF <Informatik>SPARQLQuery languageXMLEscape characterComputer sciencePredicate logicMaxima and minimaWorld Wide WebWEBMARKUS <Unternehmensspiel>Agent <Informatik>InferenceEmbeddingHidden Markov modelBerners-Lee, TimKnowledge representation and reasoningDatabaseRoute of administrationField extensionWissensrepräsentationsspracheRecursive setMilitary operationMoment (mathematics)RollbewegungKanteInternetSocial classOpen setInstanz <Informatik>Description logicEULER <Compiler>Systems <München>Semantic WebConcurrency (computer science)Multitier architectureRDF <Informatik>Propositional formulaHausdorff spaceParallelenRestriktion <Mathematik>SubsetScientific modellingNumerisches GitterConstructor (object-oriented programming)Representation (politics)Computer animation
09:08
WEBIBMHidden Markov modelEstimationRecursive setDescription logicRollbewegungInverse elementTransitive relationWorld Wide WebComputer wormExclusive orMenu (computing)AMD <Marke>Social classField extensionNatural languageSeries (mathematics)Physical quantityField extensionQuantificationAxiomWell-formed formulaAbstract syntaxPropositional formulaRecursive setHausdorff spaceRestriktion <Mathematik>RollbewegungInverse functionTransitive relationSocial classInstanz <Informatik>Description logicExclusive orLattice (order)HierarchyConstructor (object-oriented programming)Data typeComputer animation
18:17
Social classWorld Wide WebMenu (computing)Moving averageRollbewegungHidden Markov modelAlgebraField extensionQuantificationAxiomOperatorPropositional formulaCW-KomplexKonstruktion <Mathematik>Restriktion <Mathematik>RollbewegungSocial classInstanz <Informatik>Inclusion mapHierarchyCartesian productConstructor (object-oriented programming)NormaleWell-formed formulaSimilarity (geometry)Computer animation
27:25
FOLBinary space partitioningLevel (video gaming)Menu (computing)Chain ruleUser interfaceMaxima and minimaConstraint (mathematics)Inclusion mapEscape characterIBM Systems Application ArchitectureAlgorithmAutomatentheorieFormal languagePredicate logicWell-formed formulaAbbildung <Physik>Form (programming)Terminal equipmentRecursive setHausdorff spaceChain ruleMoment (mathematics)Restriktion <Mathematik>RollbewegungGodALT <Programm>Recursive setSocial classConstraint (mathematics)Set (mathematics)Instanz <Informatik>Description logicInclusion mapFilm editingRegular languageSpeciesConstructor (object-oriented programming)SubsetInverse elementCoroutineComputer animation
36:34
Maxima and minimaAMD <Marke>RollbewegungInverse elementAVA <Programm>Recursive setMoving averageKnowledge baseRegular measureConstraint (mathematics)BefehlsprozessorInclusion mapEquivalence relationAktion <Informatik>Exclusive orUniformer RaumTransitive relationSymmetry (physics)Game theoryRDF <Informatik>Abstract syntaxField extensionAbbildung <Physik>XMLEditorLISPRegular measureSeries (mathematics)Well-formed formulaAbstract syntaxEquivalence relationRecursive setFunctional (mathematics)RollbewegungSubsetALT <Programm>Complete metric spaceRecursive setConstraint (mathematics)HerleitungExclusive orInclusion mapSpeciesRDF <Informatik>Symmetry (physics)AxiomDecision theoryHausdorff spacePositionRestriktion <Mathematik>Version <Informatik>Functional programmingTransitive relationKnowledge baseSocial classChainingRandXMLComputer animation
45:42
Graphical user interfaceWireless LANSimulationSummierbarkeitWorld Wide WebAbstract syntaxField extensionAbbildung <Physik>RDF <Informatik>XMLHidden Markov modelComputer musicEstimationAir-start systemSocial classRollbewegungAsymmetryEscape characterSet (mathematics)ClefDatabaseSet (mathematics)Series (mathematics)Knowledge representation and reasoningCodeFunction (mathematics)DatabaseField extensionAxiomWell-formed formulaPropositional formulaRollbewegungSUGAR <Programmiersprache>NamespaceSocial classConstraint (mathematics)Instanz <Informatik>Description logicPredicate (grammar)Student's t-testConstructor (object-oriented programming)NormaleLISPGroup actionClefAmerica OnlineReflexive spaceRDF <Informatik>Computer animation
54:51
RollbewegungGreatest elementData typeAWL <Programmiersprache>RDF <Informatik>Binary space partitioningComa BerenicesWorld Wide WebMass storageXMLRAMData typeAxiomSelf-referencePropositional formulaFunctional (mathematics)Konstruktion <Mathematik>Restriktion <Mathematik>RollbewegungLengthMAX <Programm>Social classConstraint (mathematics)Instanz <Informatik>WordRandInclusion mapCodomainRegular expressionRDF <Informatik>String (computer science)Maxima and minimaMilitary rankNumberChainingDescription logicComputer animation
01:03:59
RollbewegungSymmetry (physics)MAX <Programm>Regular languageRecursive setWorld Wide WebMetadataMicrosoft NetworkAlgorithmLevel (video gaming)Binary space partitioningSocial classXMLComputer fileUser interfaceMCPField extensionEscape characterRDF <Informatik>Moving averageAlgorithmAbstract machineData typeSymmetry (physics)ZahlFunction (mathematics)Field extensionAxiomZusammenhang <Mathematik>InferencePropositional formulaFormal grammarUniverse (mathematics)CladeRestriktion <Mathematik>RollbewegungBacktrackingHöheAdaptive behaviorRecursive setAbschätzungSocial classDescription logicMetadataRegular languageXMLRegular expressionMetreFinite-state machineSchool of NamesElement (mathematics)Eigenvalues and eigenvectorsWell-formed formulaGrand Unified TheorySubsetInferenceHerleitungInclusion mapOntologyComputer animation
01:13:08
Menu (computing)Computer wormField extensionDeterminantBacktrackingExclusive orMaximum (disambiguation)Level (video gaming)RAW-FormatMaxima and minimaDescription logicRollbewegungTransitive relationComplementarityConvolutional codeImplementationUnits of measurementSeries (mathematics)ZahlField extensionAxiomWell-formed formulaQuery languageBerechnungskomplexitätComplementarityRollbewegungTransitive relationBacktrackingKnowledge baseSocial classConstraint (mathematics)InferenceHerleitungDescription logicExclusive orInclusion mapMaximum (disambiguation)Reason <Programm>DatabaseBerechnungQuantificationReal-time operating systemRestriktion <Mathematik>Version <Informatik>Modeling languageInternetOntologyFOLComputer animation
01:22:16
Description logicRollbewegungInverse elementExclusive orTransitive relationScalabilityDatabaseWorld Wide WebPrime idealImplementationXMLAlive <Programm>Hidden Markov modelField extensionModeling languageMaxima and minimaSQLSemantic WebKnowledge representation and reasoningComputer sciencePredicate logicQuery languageRDF <Informatik>SPARQLMicrosoft NetworkUser interfacePascal's triangleBlogWeb pageHTTPDatabaseRow (database)Relational databaseDatabaseLinieRoute of administrationField extensionAxiomWell-formed formulaSQLBerechnungskomplexitätComputabilityQuery languageRestriktion <Mathematik>RollbewegungQuery languageProduktionsregelsystemModeling languageSocial classAutomatic differentiationConstraint (mathematics)Instanz <Informatik>Description logicExclusive orSystems <München>Constructor (object-oriented programming)Semantic WebOntologyInterface (computing)Set (mathematics)Reason <Programm>RDF <Informatik>Computer animation
Transcript: German(auto-generated)
00:01
Okay, dann begrüße ich Sie heute wieder recht herzlich zu unserer Vorlesung Semantic Web. Wir sind immer noch bei Punkt 3 Wissensrepräsentation und Logik und wir sind immer noch hier im Ontology Level. Also der hat sich mittlerweile schon als der wichtigste Level innerhalb dieses Schichtenmodells, der Schichtenarchitektur des Semantic Web herausgestellt, weil dort gibt es eben doch sehr viel zu sagen,
00:24
zu designen und zu machen und wir waren das letzte Mal stehen geblieben bei Aul an sich. Und wenn Sie jetzt die Übung zu Aul schon gemacht haben, werden Sie vielleicht festgestellt haben, dass es einige Dinge gibt, wo man sich beim Modellieren mit Aul etwas schwer tut, beziehungsweise die nicht notwendigerweise so einfach mit Aul funktionieren. Was ganz einfach daran liegt, es gibt natürlich Dinge, die liegen außerhalb der Aul zugrunde liegenden Beschreibungslogik,
00:46
schoin d, also erinnern Sie sich noch an diese komische Abkürzung, und was eben nicht mit dieser Beschreibungslogik modellierbar ist, das lässt sich natürlich auch nur schwer in Aul.dl irgendwie fassen. Und solche Sachen werden wir uns heute eben noch angucken, insbesondere deshalb, da, das hatte ich das letzte Mal schon erwähnt,
01:04
der Aul-Standard Ende Oktober letzten Jahres eine Erweiterung erfahren hat, und zwar mit Aul 2, das heißt Aul 1, und dann der Nachfolgestandard Aul 1.1, der wurde jetzt umbenannt in offiziell in Aul 2 und ist jetzt tatsächlich auch Standard.
01:21
Das hat existiert noch im Moment parallel zu Aul 1, aber es ist so angelegt, dass Aul 1 natürlich zum Großteil, zumindest Aul 1.dl in dem Aul 2-Standard mit enthalten ist, so dass man eben hier eine Art Abwärtskompatibilität hat und Aul 2 hinsichtlich der Ausdrucksstärke dessen,
01:40
was man mit Aul machen kann, ein Stückchen erweitert worden ist. Und es sind noch ein paar andere Änderungen dabei, die quasi aus der Praxis, man hat jetzt schon einige Jahre Erfahrung mit Aul, also schon fünf Jahre Erfahrung, Aul filterflossen da irgendwie mit ein und hat eben gemerkt, alles funktioniert nicht ganz so reibungslos, wie man es gerne hätte, insbesondere wenn es um Anwendungen und solche Sachen geht, und deshalb hat man eben versucht, aus der Praxis kommend hier einige Änderungen
02:05
letztendlich hier dran vorzunehmen. Bildlich gesprochen ist Aul 2 quasi eine Erweiterung der zugrundelegenden Beschreibungslogik, während bei Aul 1, die kleine Eule, die Sie hier sehen,
02:20
noch Scheundee, also diese Beschreibungslogik, die wir schon durchgenommen haben und Kanten zugrunde liegt, wird jetzt bei Aul 2, das ist die dickere Eule vorne dran, eine etwas ausdrucksstärkere Beschreibungslogik zugrunde gelegt, nämlich, wie schon nebendran steht, in Buchstaben Schreuk, und einige Buchstaben davon kennen wir schon, also das Q ist neu,
02:40
das steht für Qualifizierte Kardinalitätsrestriktion, das hatten wir eigentlich schon mal, als wir Beschreibungslogiken im Allgemeinen uns angeguckt haben, das ist also hier dabei, und noch ein neuer Buchstabe, den Sie nicht kennen, ein R, und das R steht für sogenannte R-Boxen, R-Boxen, das ist also, wenn Sie sich das vorstellen, Wissensbasen, an sich teilen sich ja immer auf in terminologisches Wissen und asserzionales Wissen,
03:02
oben stehen die ganzen Klassen, Relationen und sonstige Dinge drin, unten steht das Wissen über die Instanzen drin, und man kann aber dieses terminologische Wissen auch aufteilen, dass man sagt, wir trennen jetzt mal das, was mit Klassen zu tun hat, und das, was mit den Beziehungen zwischen den Klassen zu tun hat, also Klassen an sich und Rollen werden getrennt betrachtet,
03:20
und dann sind die Klassen an sich die klassische T-Box, und das alles, was mit Rollen zu tun hat, das wird dann zur sogenannten R-Box, also das R kommt auch vom Namen Rolle letztendlich irgendwo her, oder Roll eben im Englischen, wenn Sie da was zu den Description Logics lesen, und das heißt also, es wird hier speziell zur Konstruktion, nicht nur von Klassen, sondern auch zur Konstruktion von Rollen,
03:43
gibt es hier bestimmte Möglichkeiten, das werden wir hier sehen, Rollen konstruieren, wie eins der Beispiele aus der Übung, was uns etwas schwerfiel zu konstruieren, dieses hat Onkel zu konstruieren aus, beispielsweise hat Vater und hat Bruder und ähnliche Sachen, da tut man sich etwas schwer, weil man eben keinen Rollenkonstruktor im klassischen Aul hat,
04:03
das werden wir aber gleich sehen, wie das hier mit Aul 2 funktioniert, da geht das nämlich zum Beispiel ganz einfach. Wir werden folgendermaßen vorgehen, ich werde erst nochmal kurz ausholen, Ihnen noch kurz was erzählen zur generellen Entwicklung von Aul und Aul 2, und dann werden wir uns angucken, den Weg quasi von der einen Beschreibungslogik
04:23
zur nächsten Beschreibungslogik, was kommt denn alles letztendlich dazu, und dann muss das natürlich auch irgendwie in Syntax gepackt werden, und dann schauen wir uns die Aul 2 Syntax dazu an, das heißt, das eine wiederholt sich wieder beim nächsten und so weiter fort, und wenn wir uns die Syntax angeguckt haben, dann müssen wir uns ein bisschen Gedanken darum machen,
04:41
ja, wie sieht das denn jetzt aus, bleibt die Entscheidbarkeit enthalten und ähnliche Dinge, bleibt das erhalten, also wir werden zur Komplexität und ein paar anderen Eigenschaften was aussagen, und ganz am Ende schauen wir uns auch noch was Neues an, nämlich die sogenannten Aul 2 Profile. Was man nämlich bei Aul 2 gemacht hat, im Gegensatz zu Aul 1, gibt es jetzt nicht nur drei verschiedene Sprachvarianten,
05:02
vorher, das kannten Sie ja, da gab es Aul Lite, Aul DL und Aul Full, Aul DL hat sich bewährt, Aul Lite hat kaum jemand benutzt, Problem war ein bisschen, es ist fast genauso ausdrucksstark wie Aul DL, aber dazu auch fast genauso kompliziert, und daher bewusst haben es die wenigsten Leute irgendwie verwendet,
05:22
weil wenn man irgendwann mal da reingerutscht ist, hat man dann meistens gleich noch einen Schritt weiter, ist mal weiter gegangen, um mehr ausdrücken zu können, und ist zu Aul DL gegangen, deshalb hat man sich in Aul 2 Gedanken gemacht, wenn wir von der praktischen Seite herkommen, wir wollen irgendwas, was einfacher und schneller zu entscheiden ist als Aul 2, also möglichst große Untermenge, die aber irgendwie effizient zu berechnen ist,
05:42
und Aul Lite war nicht effizient zu berechnen, das war halt auch exponentiell, die Worst Case Komplexität, und deshalb hat man Profile entwickelt, die in Polynomialzeit berechenbar sind, das heißt effizient berechenbar, und zum Teil auch bestimmte Operationen auch subpolynomial durchgeführt werden können,
06:01
also damit man sehr, sehr einfach den Weg finden kann, zwischen Datenbanken hin zu Wissensrepräsentationen und zwischen schon bestehenden wissensbasierten Systemen hin zu Semantik-Webwissensrepräsentationen, also um diesen Weg ein bisschen zu vereinfachen, hat man eben verschiedene Aul 2 Sprachprofile eingeführt, die auf schon vorhandenes aufsetzen und hier versucht haben,
06:23
möglichst effizient berechenbare, aber trotzdem noch ausdrucksstarke Wissensrepräsentationssprachen bereitzustellen. Okay, also wir haben als erstes mal einen kurzen Blick in die Entwicklung von Aul 2. Generell ging das Ganze vor über zehn Jahren los, 1999 kam die sogenannte
06:45
DARPA, Ancient Markup Language, heraus, das ist eine einfache Wissensrepräsentationssprache, die schon so angelegt war, dass es eine Markup Sprache war, das heißt man wollte sie schon irgendwie im Umfeld des Web irgendwie mitbenutzen, und zwar war da RDF letztendlich mit dabei,
07:01
das Interessante ist, dass es am DARPA entstanden oder DARPA, das ist diese Defense Advanced Research Project Agency, das ist die gleiche Organisation, an der auch vor über 40 Jahren das Internet erfunden worden ist, es militärisch geprägt und in dem Umfeld entstand eben so eine erste Wissensrepräsentationsmarkup Sprache,
07:22
an deren Projektgruppe beispielsweise auch Tim Berners-Lee mitbeteiligt war direkt über die DARPA. Die Markup Sprache allein reicht noch nicht, man hat dazu auch noch eine Infrastruktur gebraucht, damit man mit diesen Wissensrepräsentationen in irgendeiner Art und Weise dann auch Schluss folgern kann, dazu kam dann noch eine zweite oder eine Ergänzung, das nannte sich Ontology Inference Layer, und dann Dammel plus Oil
07:42
war quasi der Vorgänger des AOL, wie wir es kennen, und der wurde 2002 veröffentlicht, Dammel plus Oil, war schon sehr ähnlich der Geschichte, die wir hier letztendlich haben bei AOL, aber quasi fast zeitgleich wurde das Ganze entwickelt, während man bei Dammel und Oil sich noch gestritten hat, geschlossene Welt,
08:01
offene Welt und ähnliche Dinge, war man bei dem Vorschlag dann als AOL, letztendlich kam 2004 vom W3C soweit, dass man bei AOL sich geeinigt hatte auf eben die offene Welt, weil man gesagt hat, das trifft eher irgendwie die Realität des Netzes, da haben wir aber das Problem,
08:21
dass wir da eventuell dann mit bestehenden Wissensrepräsentationssystemen, Expertensystemen irgendwie in Konkurrenz bzw. in Konflikt geraten, das ist man aber eingegangen, weil man gesagt hat, das ist erweiterbarer, das ist offen, das ist eher an der Realität orientiert. Also diese Recommendation kam 2004. Und das Ganze, wie Sie jetzt sehen, nach fast sechs Jahren,
08:40
also hier im Oktober, 27. Oktober 2009, gab es dann den nächsten oder den Nachfolgestandard AOL2, bei denen eben einiges, was in der Zwischenzeit an Erfahrung gewonnen ist, wie ich gerade schon erzählt habe, eben hier gesammelt worden ist, in so einen Vorschlag in ein Draft Recommendation reingekommen ist
09:01
und dann vom W3C nach langer Diskussion da entsprechend bestätigt worden ist. Ja, was hat sich geändert seit AOL1? Das eine hatte ich schon gesagt, es geht eben darum, dass man Erweiterungen vorgenommen hat aufgrund eben gewonnener Praxiserfahrungen, die man mit AOL1 irgendwie gesammelt hat. Und dazu kommen auf der einen Seite zusätzliche Ausdrucksstärke,
09:22
die man natürlich irgendwie mit dabei behalten möchte, wobei man natürlich bei der zusätzlich gewonnenen Ausdrucksstärke immer darauf geachtet hat, es muss natürlich auch noch entscheidbar bleiben. Dann hat man, wie ich Ihnen auch gerade schon erzählt hatte, die einzelnen Sprachvarianten nochmal unter die Lupe genommen und entsprechend erweitert und geändert.
09:41
Das ist das mit diesen AOL2-Profilen, die wir uns dann am Ende angucken. Und es gibt noch eine Reihe von zusätzlichen Erweiterungen, die beispielsweise beinhalten, eben neue Syntaxvarianten, die dazukommen. Also es gibt dann nicht mehr diese abstrakte Syntax, sondern es gibt eine funktionale Syntax und eine Manchester Syntax. Das schauen wir uns gleich mal kurz an. Brauchen wir uns aber nicht zu merken.
10:01
Insgesamt gibt es vier Sprachvarianten, von denen eigentlich nur eine für uns irgendwie interessant werden wird, weil die meistens verwendet wird. Ja, dabei hat man eben darauf geachtet, dass man weitestgehend die Kompatibilität zum bereits vorhandenen Standard bewahrt und natürlich, wie ich schon gerade gesagt hatte, darauf achte,
10:21
dass die Entscheidbarkeit enthalten bleibt. Und natürlich möchte man eine Rückwärtskompatibilität, das heißt, dass AOL1-Ontologien natürlich genauso noch kompatibel sind zu AOL2-Ontologien. Und dann eben von Werkzeugen, die AOL2 verarbeiten, auch hier entsprechend verarbeitet werden können. Und wie jetzt diese ganzen einzelnen Erweiterungen ausschauen,
10:41
das gehen wir jetzt der Reihe nach mal durch und werden dann sehen, es ist auf der einen Seite, es kommt viel Neues dazu. Es bringt eine gewisse größere Ausdrucksmächtigkeit, aber auf der anderen Seite ist es schön, weil viele Dinge, das ist auch interessant, die früher quasi nur in AOL-Full auch realisierbar waren, die sind jetzt mittlerweile nach AOL2-DL gerückt.
11:01
Das heißt, die sind noch entscheidbar. Man hat einige Dinge aus AOL-Full herausgenommen, herausgerissen, mit nach AOL2 bekommen und die sind noch entscheidbar. Also dazu gehören beispielsweise Dinge, dass man Klassenproperties und Instanzen, die denselben Namen benutzen kann, also die denselben Namen haben, benutzen kann. Da gab es ja diverse Probleme zwischen was ist eine AOL-Klasse,
11:23
was ist eine RDFS-Klasse. Dazwischen gab es ja irgendwelche Beziehungen in AOL-1-Full. Das hat man jetzt ein bisschen genauer geregelt und hat gesagt, eine Klasse, darüber kann ich auch Aussagen machen und das kann ich auch in AOL2-DL machen. Das wird aber in einer sehr eingeschränkten Variante nur erlaubt, werden wir uns gleich mal angucken. Aber schauen wir uns vorher mal die wichtigeren Dinge an,
11:41
nämlich wir gehen von unten her, von der formalen Grundlage und schauen uns die zugrunde liegenden Beschreibungslogiken der Reihe nach mal kurz an. Von Scheun-D zu Schreuk-D, wenn man so möchte. Okay, wiederholen wir mal kurz, was denn alles zu Scheun-D, der Beschreibungslogik hinter AOL-DL, stehend was dazugehört.
12:04
Wir hatten auf der einen Seite die Axiome, die in der T-Box drin stehen. Da hatten wir beispielsweise Subklassenbeziehungen drin. Also sämtliche Klassenkonstrukturen und solche Sachen, die gehören hier oben in die T-Box mit rein. Jetzt habe ich hier schon mal den Unterschied gemacht zwischen T-Box und R-Box,
12:21
dass ich eben alles, was irgendwie mit Rollen zu tun hat, hier in die R-Box mit reinsetze, weil das brauchen wir dann auch noch. Die ist dann nämlich komplett unterschiedlich in Schreuk, wenn man das beide dann vergleichen. Also die T-Box bleibt weitgehend gleich in der erweiterten Beschreibungslogik. Dagegen hier in der R-Box, also alles, was mit Rollen zu tun hat, da wird sich einiges dann ändern. Was hatten wir da drin? Wir hatten die Möglichkeit, ebenfalls Rollenhierarchien aufzubauen über Subrollenbeziehungen.
12:45
Das war hier der Buchstabe H, der hier dazugehört für Hierarchie. Dann hatten wir die Möglichkeit, Rollen als inverse Rollen zu definieren, also Umkehrfunktion oder Umkehrrelation, die wir hier definieren konnten. Und wir hatten die Möglichkeit, Rollen als transitiv zu definieren.
13:01
Das kennen wir ja alles schon. Das sind die Buchstaben insgesamt H, I und das S für die Transitivität. Dann für die Individuen, die A-Box, das Assassinale Wissens, da konnten wir ausdrücken in Scheuen, D, einmal Fakten zu irgendwelchen Klassen. Also wir konnten sagen, dass ein Individuum zu irgendeiner Klasse dazugehört. Dann konnten wir Fakten zu Rollen ausdrücken,
13:22
dass nämlich zwei Individuen über irgendeine Rolle miteinander in Bezug stehen. Dann natürlich die Gleichheit und Verschiedenheit von Individuen konnten wir ausdrücken. Dazu kam dann noch eine ganze Reihe von Klassenkonstruktoren. Diese Aktionen gehören dann mit zur T-Box. Klassenkonstruktoren waren auf der einen Seite mal die Konjunktion zweier Klassen,
13:44
die Disjunktion zweier Klassen und die Negation hatten wir. Und dann konnten wir auch noch Klassen konstruieren, indem wir quasi Restriktionen über Rollen definiert haben. Und zwar können die einmal universell oder existenziell quantifiziert werden. Das waren hier diese zwei interessanten Geschichten,
14:01
wo eben jetzt die Quantoren anders verwandt, anders verwendet werden, als wir es bisher in der Beschreibungslogik gekannt haben. Das ist noch nicht alles. Es gab auch noch sogenannte Kardinalitätsrestriktionen. Die durften jetzt hier aber nur auf Rollen angewendet werden. Und da ging es dann darum, dass man eine Klasse so definiert hat,
14:20
dass eben zu einer Klasse nur diejenige ent- oder eine Subklasse von einer Klasse war, die jetzt eine Mindest- oder eine Maximalanzahl von Instanzen bezüglich irgendeiner Rolle hatte. Also das waren Kardinalitätsrestriktionen. Was jetzt noch neu dazu kommt, ist, dass man bei Schreuk, das ist dann das nächste bei diesen Kardinalitätsrestriktionen,
14:41
noch festlegen kann, welchen Typ diese Klasse denn haben soll, also der Bildbereich dieser Rolle. Das heißt, dass man da hinter dem R noch einen Punkt macht und dann eine Rolle oder eben eine komplexe Rolle, das heißt wieder einen relativ langen Ausdruck anhängen kann, wie denn der Bildbereich zu gestalten ist von dieser Rolle bezüglich der Kardinalitätsrestriktion, die wir hier formulieren.
15:01
Jetzt haben wir es fast. Was noch dazu kommt, sind sogenannte abgeschlossene Klassen oder Nominale, das heißt Aufzählungsklassen, Klassen, die ich so definieren könnte, indem ich eben einfach ihre Mitglieder, ihre Instanzen aufgezählt hatte. Und wenn wir uns jetzt genauer angucken, ein Buchstabe fehlt uns noch bei dem Ganzen, das ist das D, es kam nämlich noch eine ganze Reihe von Datentypen dazu,
15:21
also Klammer auf D, und damit haben wir eigentlich diese Sachen, die hier dazugehören zu Scheundee. Okay, werfen wir nochmal einen Blick dazu in die A-Box. Was unterstützt Scheundee jetzt hier in der A-Box an Fakten? Einmal kann ich natürlich sagen, irgendeine Instanz gehört zu irgendeiner Klasse
15:45
und C ist dabei eine komplexe Klasse, diesen Fakt kann ich ausdrücken, und diesen Fakt kann ich dann entsprechend nachprüfen. Sonderfall dabei ist, ich kann natürlich auch nachprüfen, ob ein Individuum nicht zu einer Klasse gehört, wobei die Klasse C hier dann auch eine komplexe Klasse sein kann.
16:02
Ich kann in der A-Box überprüfen, ob zwei Individuen gleich sind, ich kann in der A-Box überprüfen, ob zwei Individuen verschieden sind, und ich kann in der A-Box überprüfen, ob eben jetzt zwei Individuen miteinander über eine Rolle in Bezug stehen. So kann ich auch prüfen, ob zwei Individuen über eine Rolle miteinander
16:20
nicht in Bezug stehen, kann ich nicht, also was davor steht, diese negierte Rollenbeziehung kann ich nur insofern nachprüfen, indem ich eben quasi mir sämtliche Beziehungen bezüglich einer Rolle zwischen allen Individuen betrachte und dann irgendwie entscheide, ist das dabei diese eine Rollenbeziehung, die ich suche, oder nicht. Und dafür gibt es eben jetzt eine Erweiterung in Schreuk D.
16:44
Schreuk D. beispielsweise erlaubt sogenannte negierte Rollen in der A-Box, und da kann ich dann überprüfen bzw. auch festlegen, dass zwei Individuen A und B nicht über eine Rolle R miteinander in Bezug stehen. Also so könnte ich beispielsweise ausdrücken,
17:00
über die Relation beispielsweise ist Bruder, könnte ich jetzt sagen, dass das Individuum A, wenn ich das wäre, und das Individuum B, wenn das der Johannes hier in der ersten Reihe wäre, könnte ich sagen, dass wir nicht über die Relation ist Bruder zusammen oder zusammenhängen. Einfache Sache kann ich hier also schon mal machen. Das war vorher in Schreuk D. nicht so einfach möglich.
17:23
Das ist also die Erweiterung oder die erste Erweiterung, die wir hier bezüglich der A-Box kennengelernt haben. Und jetzt gehen wir mal diese ganze Liste letztendlich durch, die wir für die T-Box und für die A-Box letztendlich uns nochmal angucken müssen. Als erstes kommen Kardinalitätsrestriktionen dazu. Das hatte ich ja gerade schon mal erwähnt.
17:41
Also in Schreuk D. werden nur die einfachen Varianten der Kardinalitätsrestriktionen unterstützt, nämlich beispielsweise Dinge wie diese Aussage, die was genau sagt, wenn man es in natürliche Sprache übersetzen würde.
18:00
Was ist das für eine Klasse? Ganz genau. Also das sind alle Personen mit mindestens drei Kindern hätte ich auch nicht besser sagen können. Und jetzt kann ich natürlich in Schreuk D., hatte ich gesagt, auch entsprechend noch Kardinalitäts-, also qualifizierte Kardinalitätsrestriktionen reinnehmen,
18:23
indem ich jetzt hergehe und auch noch quasi die Klassen einschränke, von der die Kinder sein sollen. Also ich könnte jetzt beispielsweise hier sehr einfach konstruieren, dass eine Person oder die Klasse aller Personen mit mindestens drei Töchtern oder noch komplexere Dinge, so wie beispielsweise dieses Ding hier,
18:40
das ist jetzt die Klasse aller Personen mit mindestens drei Töchtern, wobei die drei Töchter auch alle noch Professor sein sollen. Also an der Noren geschrieben, Klasse aller Personen mit mindestens drei Töchtern, die alle Professorinnen sind. Also das kann ich jetzt mit Schreuk machen. Ich kann also hinter die normale Kardinalitätsrestriktion einen Punkt setzen und dahinter noch mal eine komplexe Klasse hinschreiben,
19:02
die eben aus einfachen Konstrukturen zusammengesetzt ist und kann so entsprechend hier den Bildraum noch weiter beschränken und hier noch eine komplexere Klassenkonstruktion entsprechend angeben. Das ist eine der vielen Dinge. Es gibt aber noch ein paar Sachen, die jetzt weniger ausdrucksstark,
19:24
aber doch sehr praktisch im Nutzen sind, nämlich es kommt ein sehr interessantes Konzept mit hinzu, eine neue Klasse, oder nee, es ist eigentlich ein Konzept, das nennt sich self und das ist dann wichtig, wenn ich Dinge modellieren möchte, wie beispielsweise jeder Mensch kennt sich selbst.
19:40
Wenn ich das in Scheun irgendwie modellieren möchte, habe ich das Problem, ja, jemanden kennen, wenn das hier meine Rolle ist, die ich irgendwie ausdrücken möchte und ich möchte jetzt, dass jedes meiner Individuen sich wenigstens selbst kennen soll, dann muss ich hier gehen und muss das auch wirklich für jedes meiner Individuen hier irgendwie angeben, also dass ich mich kenne, dass Jörg Jörg kennt, dass Johannes Johannes kennt usw.
20:03
Und das Problem ist halt, wenn ich das allgemein modellieren möchte und irgendwie in die T-Box setzen möchte, kriege ich das so mit einfachen Ausdrucksmitteln erstmal nicht hin. Und dafür gibt es eben hier in Schreuk D einen ganz speziellen Ausdruck, den Ausdruck self und dann kann ich solche schönen Sachen modellieren, wie beispielsweise, dass jeder Mensch mindestens sich selbst kennt,
20:22
neben den anderen Leuten, die der Mensch vielleicht auch noch kennt. Und self macht dann nichts anderes als das, was eben hier oben steht und damit habe ich eine abgekürzte Ausdrucksweise, die eben jetzt genauso wie ein Quantor beispielsweise hergeht und hier alle Individuen mit sich selbst quasi hier in Bezug setzen kann. Das ist eine schöne Sache und erleichtert mir natürlich die Modellierung von reflexiven Aussagen,
20:44
wie ich sie hier beispielsweise habe. Okay, das waren Klassenkonstrukturen. Hier waren jetzt nochmal hier ein Reflexivitätsaxiom und ein Konzept für die Reflexivität mit dabei. Jetzt kann ich für Rollen, die wir hier ja auch schon jetzt betrachtet haben,
21:03
weitere Erweiterungen über Schreuk D definieren. Bislang ist es so, Rollenaxiome, wenn ich die ausdrucken möchte, können Rollen sein, transitiv, symmetrisch, funktional oder inverse funktional. Das hatten wir ja kennengelernt. Und es gibt natürlich, das kennen Sie alle aus der Algebra, noch mehr Eigenschaften, die jetzt eine Relation beispielsweise haben kann.
21:24
Und einige davon, die kann ich jetzt tatsächlich auch in Schreuk noch mit modellieren. Und beispielsweise geht man her und sagt, wenn ich schon modellieren kann in Schreund D, was symmetrisch ist, dann soll ich auch irgendwo die Antisymmetrie definieren können. Das kann ich jetzt in Schreuk, also da gibt es extra einen Operator,
21:41
um Rollen als antisymmetrisch zu definieren. Und das bedeutet eben Antisymmetrie, wenn jetzt irgendeine Instanz A mit einer Instanz B in Relation ist, also wenn es dann eine Rolle gibt, A B, dann gilt niemals quasi die Umkehr dieser Rolle, dass B über dieselbe Rolle mit A in Bezug steht. Kann sich jemand eine Rolle vorstellen, irgendein Beispiel, die die Antisymmetriebedingungen erfüllt?
22:11
Genau, also das wird relativ schwierig, selbst wenn wir es irgendwie ungewöhnlich konstruieren wollen. Wenn A Vater von B ist, dann ist für gewöhnlich B nicht Vater von A.
22:20
Das ist einfaches Beispiel für die Antisymmetrie und wo man es auch gebrauchen kann. Zusätzlich, wir hatten ja schon das Selfkonstrukt kennengelernt, kann ich jetzt auch hier gehen und kann auch eine Rolle komplett als reflexiv definieren. Also Reflexivität kann ich natürlich mit ähnlicher Ausdruckskraft, ähnlichen Ausdrucksmitteln dann hier festlegen. Aber neben Reflexivität kann ich auch zusätzlich Irreflexivität irgendwie mit angeben.
22:43
Und zwar ist das jetzt eine Rolle quasi, bei der eine Instanz niemals mit sich selbst in Bezug stehen kann. Können wir uns auch mal kurz überlegen, gibt es irgendwie ein Beispiel für eine Rolle, bei der eine Instanz niemals mit sich selbst in Bezug stehen kann?
23:03
Genau, ist Mutter von. Sollte nicht funktionieren, genau. Okay, und zu diesen drei Antisymmetrien, Reflexivität, Irreflexivität, gibt es noch ein Viertes. Und zwar kann ich Klassen, nicht Klassen, sondern Rollen, Disjunktheit ausdrücken. Und zwar kann ich sagen, ich kann disjunkte Rollen ausdrücken oder disjunkte Rollenbeziehungen.
23:24
Das heißt, dass A und B niemals sowohl mit Rolle 1 als auch mit Rolle 2, also mit den beiden Rollen, die ich hier betrachte, miteinander in Bezug stehen. Wenn wir das jetzt mal versuchen zu modellieren, Disjunktheit von Rollen, das können wir wahrscheinlich auch machen, wenn wir einmal die Beziehung ist Mutter hernehmen
23:44
und einmal die Beziehung ist Tochter. Da wird dann wohl auch beides hoffentlich irgendwie disjunkt sein. Hängt jetzt davon ab? Nee, ist disjunkt. Sind niemals dieselben Paare irgendwie miteinander in Bezug gesetzt. Also Disjunktheit von Rollen kann ich ja auch noch explizit mitmodellieren.
24:05
Okay, das sind die vier Rollenaxiome, die zusätzlich mit hinzukommen. Dann hat man sich gedacht, bei Aul 1 hatte ich ja die Möglichkeit, quasi Top- und Button-Element zu definieren. Das heißt, die oberste Klasse, die unterste Klasse, also eine universelle Klasse und eine leere Klasse.
24:23
Und das Gleiche kann ich hier auch noch mit Rollen machen. Ich kann also, um hier auch Rollenhierarchien komplett darzustellen, eine universelle Rolle definieren. Und zwar ist das eine Rolle, die steht in der Rollenhierarchie ganz, ganz oben. Das heißt, jede andere Rolle, die ich definiere, ist eine Subrolle von dieser Rolle, was so viel heißt wie, wenn ich zwei beliebige Individuen habe,
24:43
die alle stehen irgendwie miteinander in Bezug über diese universelle Rolle, die ich hier definieren kann. Diese universelle Rolle ist also nichts anderes, wenn ich beides mal die Interpretation der kompletten Domäne nehme und davon eben das Kreuzprodukt nehme. Also mehr ist es nicht, das ist die universelle Rolle, die steht ganz oben in der Klassenhierarchie.
25:01
Und dazu wird natürlich dann auch noch definiert eine Buttonrolle, die dann letztendlich Teilrolle oder Subrolle von jeder beliebigen Rolle ist, die ich definiere. Und bei der keine andere Rolle, die ich habe, irgendwie selbst eine Subrolle davon ist. Also die steht dann ganz unten in der Hierarchie. Diese zwei Sachen werden hier eingeführt. Also dieses U wurde als Gegenstück zur universellen Klasse, zu dieser Top-Klasse mit eingeführt.
25:27
Ok, bisher sieht es eigentlich noch recht einfach aus. Wir haben ein paar Axiome mehr. Wir haben hier, was haben wir uns noch angeguckt? Wir hatten diese qualifizierte Kardinalitätsrestriktion noch mit dazu bekommen. Das ist ja noch nicht allzu kompliziert, aber es wird noch ein bisschen schöner,
25:43
weil wir kriegen jetzt noch die Möglichkeit dazu, dass wir tatsächlich Rollen auch konstruieren können. Und das geht über einen Konstrukt, das nennt sich allgemeine Rolleninklusion. Also Rolleninklusion als solches, das kennen wir schon, das ist diese Subrollenbeziehung. Also eine Rolleninklusion sieht normalerweise so aus.
26:01
Das, was wir halt kennen, irgendeine Rolle R, die ist Subrolle von irgendeiner anderen Rolle. Das ist die Rolleninklusion, wie wir sie bisher kennen. Und die werden wir jetzt einfach nur verallgemeinern. Wenn ich jetzt Dinge modellieren möchte, wie beispielsweise diese Aussage hier oben, die Freunde meiner Freunde sind auch meine Freunde, dann sagen wir ja, das kann man natürlich ganz einfach machen mit Aul, indem ich hergehe
26:22
und das Ding transitiv irgendwie definiere. Also man kann die Rolle hat Freund jetzt hier als transitive Rolle ausdrücken, dann kann ich das natürlich sagen. Aber wenn ich jetzt neben der Aussage, dass meine Freundesfreunde, also die Freunde meiner Freunde auch meine Freunde sind, beispielsweise sagen möchte, die Feinde meiner Freunde sind auch meine Feinde,
26:45
dann wird das ein bisschen komplizierter. Weil da haben wir zwei verschiedene Rollen, nämlich Feinde und Freunde. Und ich muss jetzt irgendwie definieren, dass die Feinde meiner Freunde auch meine Feinde sind. Also das wird ein bisschen komplizierter, weil ich, wenn ich hier drüben irgendwo den Feind stehen habe,
27:01
oder ist Feind und das irgendwie definieren will, ja dann muss ich hier irgendwie den Feind meines Freundes definieren. Wird ein bisschen kompliziert, kriege ich so nicht einfach hin. Deshalb kann ich es so einfach in Scheunden nicht ausdrücken. Und solche zusammengesetzten Rollen, also es funktioniert ja,
27:23
x steht mit y im Bezug, dass x Freund von y ist und y hat jetzt den Feind z. Dann kommt als letztes dabei raus, oder soll rauskommen, dass x und z auch Feinde sind. Das möchte ich irgendwie ausdrücken. Und das kann ich sowohl zum einen mit der Prädikatenlogik, wie wir das hier oben haben, also x, y, z hat Freund x, y und hat Feind y, z.
27:44
Daraus folgt hat Feind x, z. Kann ich auch ausdrücken mit der Beschreibungslogik, indem ich jetzt hier zwei Rollen ganz einfach miteinander konkateniere. Also dieses kleine Symbol, dieser kleine Kreis steht für Konkatenation. Und ich sage dann halt, ich kann die Rolle hat Feind, die hier drüben steht,
28:00
definieren als Konkatenation von hat Freund hat Feind. Das ist eine Subrolle von hat Feind. Und diese Rollen Inklusion nennt man jetzt allgemeine Rollen Inklusion, die man natürlich noch wesentlich allgemeiner definieren kann, wie man es hier sieht. Und zwar eine Rollen Inklusion, das sind R-Box Ausdrücke allgemein der Form R1,
28:23
konkateniert R2, konkateniert R3 und so weiter. Das ist dann die Subrolle einer Rolle S. Mit dem Beispiel hat Freund hat Feind ist Subrolle von hat Feind und dann nochmal genau das hingeschrieben, was wir hier unten oder drüben eben auch gehabt haben. Die Semantik ist auch relativ ganz einfach.
28:41
Wenn es eben ein Paar von Instanzen x0, x1 gibt, die zur Rolle R1 gehören und x1, x2, die zur Rolle R2 gehören, bis wir dann drüben sind bei xn-1, xn, die zur Rolle Rn gehören, und dann gehört auch x0 und xn zur Rolle S, wenn man die Semantik sich davon mal anguckt
29:01
und das Ganze als Interpretation betrachtet. Also wir haben jetzt dabei Rollenkonstruktoren, wo wir eben jetzt hier in der Lage sind, in etwas länglicheren Ausdrücken auch Rollen zu konstruieren als Konkatenation mehrere Einzelrollen. Und damit ist es jetzt auch relativ einfach, solche Dinge zu konstruieren wie hat Onkel,
29:21
weil hat Onkel ist dann nichts anderes, als dass wir eben einmal zusammensetzen, die Relation hat Bruder oder hat Geschwister und die Relation hat Vater oder hat Elternteil. Und damit kann man dann einen hat Onkel konstruieren. Dabei muss das Geschwisterteil dann entsprechend natürlich auch noch männlich sein, nur dann passt es mit dem Onkel, sonst wäre es ja eine Tante.
29:42
Aber das können wir morgen dann oder wird morgen dann der Jörg in der Übung nochmal genau zeigen, wie das dann in Aul 2 aussieht, ist also ganz einfach eigentlich. Jetzt sieht das nicht allzu kompliziert aus oder sagen wir mal die Ausdrucksstärke, die ich dazu gewinne, ist zwar auf der einen Seite signifikant, aber auf der anderen Seite,
30:01
wenn wir nicht aufpassen, handeln wir uns da ziemlich viele Probleme ein. Weil es kann nämlich so weit gehen, wenn ich hier bestimmte Regeln nicht beachte, dann lande ich leider Gottes wieder bei der Unentscheidbarkeit. Und das dem so ist, da muss man gar keine tiefgehende Betrachtungen hier über die Logik anstellen, sondern das ist gezeigt worden, indem man einfach gezeigt hat, dass solche Ausdrücke,
30:22
solche Rollen Inklusion sich auch sehr schön übersetzen lassen nach formale Sprachen und in die Automatentheorie. Deshalb hier ein ganz, ganz kleiner Ausflug, der Ihnen zeigen soll, warum das kompliziert werden kann und eben zur Unentscheidbarkeit folgen kann. Denn mit solchen R-Boxen lassen sich formale Sprachen definieren.
30:41
Wenn wir beispielsweise mal eine Grammatik definieren wollen für die Wörter, die Sie hier drüben sehen, A, B, A, A, B, B, A, A, A, B, B, dann ist das eigentlich relativ einfach. Ich gehe her. Also wir wollen nicht die komplette Grammatik angeben mit allem, was dazugehört, sondern jetzt nur hier die Produktionsregeln, die Sie sehen. Also ich habe hier ein nicht terminales Symbol L, das wird abgebildet auf zwei terminale Symbole A, B,
31:03
beziehungsweise zweite Produktionsregel nicht terminales Symbol L wird abgebildet auf terminales Symbol A, nicht terminales Symbol L und terminales Symbol B. Und mit diesen Produktionsregeln bin ich eben in der Lage, genau diese Sprache, die wir hier oben sehen, zu konstruieren. Und das kann ich aber auf der anderen Seite auch, indem ich hierher gehe
31:23
und das Ganze definiere über solche Rolleninklusionen. Da würde mir jetzt R, A ein A produzieren, R, B ein B produzieren und ich könnte jetzt eine Sprache L als Konkatenation dieser beiden R, A, R, B definieren. Genauso könnte ich dann dazu sagen, okay, ich lasse einmal quasi die Sprache
31:41
oder das, was ich definiere, auch auf der linken Seite mit zu. Und schon habe ich so eine Produktionsregel, wie Sie hier unten sehen, die nämlich dazu sorgt, dass alles plötzlich jetzt hier schön größer wird. Und wenn man jetzt formal bemeisen möchte, was dabei passieren kann, das ist hier unten in Grau angegeben, das können Sie sich dann mal auch zu Hause noch mal genauer etwas überlegen, ist jetzt nicht so wild, aber man kann solche Dinge machen,
32:02
wie beispielsweise, dass man sagt, es gibt jetzt hier eine Kette aus R, A, R, B, die zur Sprache L gehört, würde formuliert werden, es existiert, also Existenzquantur, angewandt auf die Sprache L und dahinter, egal zu welcher Klasse das gehört, das ist nicht notwendigerweise oder das ist notwendigerweise nicht leer. Dann sage ich, es gibt irgendeine Kette, die gehört zu der Sprache.
32:23
Und jetzt gehe ich her, jetzt setze ich zwei Sprachen hier zusammen, nämlich L1 und L2 und mache genau dieselbe Restriktion oder Rollenrestriktion, wie ich sie gerade gehabt habe und setze einmal L1 ein und einmal hier das Inverse von L2. Und damit kann ich quasi kodieren, muss man sich eine Zeit lang überlegen, bis das irgendwie klar wird,
32:41
damit kann ich kodieren, dass ich eben ein Wort definiere, das sowohl zu L1 als auch zu L2 gehört. Und wenn man sich jetzt noch so weit erinnert irgendwie an die formalen Sprachen, kommt einen eventuell in den Sinn, beziehungsweise kann man nachlesen, dass das Schnitt oder Schnitt zweier kontextfreier Sprachen, die Schmittmenge zweier kontextfreier Sprachen,
33:00
das ist nicht, das ist unentscheidbar. Das kann ich nicht in dem Sinne so einfach berechnen. Und insbesondere kann ich nicht sagen, ob die leer ist oder nicht leer ist. Also die Leerheit der Überschneidung zweier kontextfreier Sprachen ist unentscheidbar und daraus folgt letztendlich auch mit der allgemeinen Rolleninklusion. Wenn ich da jetzt keine Einschränkungen vornehme, dann ist das auch unentscheidbar.
33:23
Und das möchte ich ja eigentlich nicht machen. Ja, und deshalb muss man hergehen und muss irgendwie sich überlegen, ja, wie schränke ich denn jetzt genau diese Rolleninklusion ein, damit das Ganze entscheidbar bleibt. Wenn wir das Ganze von der Seite der formalen Sprachen betrachten, dann könnte ja die Idee aufkommen,
33:42
ja, es gibt ja verschiedene Klassenformaler Sprachen, hier ging es jetzt um kontextfreie Sprachen. Man könnte ja vielleicht eine einfachere Variante betrachten für die, die Algorithmen, die es gibt und das entscheiden, ob es eben hier, ob der Schnitt leer oder nicht leer ist, ob diese Routinen dann irgendwie einfacher zu entscheiden sind, das heißt brechenbar sind.
34:01
Also könnte man gucken, was gibt es denn für einfachere Sprachvarianten? Was ist denn die zu den kontextfreien Sprachen einfachere Variante? Genau, die regulären Sprachen. Also geht man her und versucht irgendwie die Rolleninklusion so einzuschränken, dass sie entscheidbar bleibt, indem man hergeht, dass man sagt,
34:21
okay, wir müssen das irgendwie diese Regeln so einschränken, dass wir nur noch mit regulären Sprachen zu tun haben. So und reguläre Sprachen, da müssen wir noch einen Moment zurück überlegen, was hatten wir denn da für Arten von Produktionsregeln? Da hatten wir immer irgendwie stehen, also wir hatten irgendwelche Nichtterminalsymbole und diese Nichtterminalsymbole sind entweder direkt dann auf,
34:41
schreibe ich jetzt, kleinen Terminalsymbole abgebildet worden oder sie sind abgebildet worden auf ein Nichtterminalsymbol und ein Terminalsymbol oder sie sind abgebildet worden auf ein Terminal- und ein Nichtterminalsymbol. Wobei man das Ganze dann immer so genannt hat, je nachdem, wo das Nichtterminalsymbol steht, das eine war links regulär,
35:01
das war das hier und das andere war rechts regulär. Also links reguläre, rechts reguläre Sprachen, das hatte man irgendwie. Also was man irgendwie verweiten möchte, ist das, was bei kontextfreien Sprachen vorkommt, dass man hier irgendwelche Nichtterminale hat, dann irgendein Terminales und dann wieder ein Terminales. Genau das möchte man vermeiden, das soll also hier nicht vorkommen.
35:24
Was man also macht, ist folgend, dass man schränkt diese Rollen, die man dann definiert, so ein, dass man nur noch reguläre Rollen betrachtet und dazu ordnet man die Rollennamen jetzt mit einer strengen totalen Ordnung und dann muss jede Airbox, die man definiert,
35:43
die muss eine der, oder jede Inklusion in der Airbox, die man definiert, die muss eine der folgenden Formen haben und die sind dann nacheinander aufgelistet. Also einmal kann ich natürlich eine Rolle mit sich selbst konkatenieren, das ist erlaubt. Dann ist natürlich auch erlaubt, dass das Inverse einer Rolle, Subrolle einer Rolle sein darf.
36:02
Und dann gucken wir uns mal die beiden anderen Sachen an. Da sind jetzt nur ganz verschiedene oder spezifische Varianten erlaubt, nämlich einmal das Gegenstück hier zur Abbildung von Nichtterminal auf Terminalsymbolen. Das ist das ganz unten, S1, S2, S3, SN, ist Teilmenge von R.
36:22
Und dann, wenn ich die Terminalsymbole, das heißt das, was auf der rechten Seite ist, irgendwo mit noch auf die linke Seite packe, dann muss das entweder ganz außen rechts oder ganz außen links stehen. Also das ist wie die beiden Regeln, die wir hier auf der rechten Seite sehen. Das R, also was hier die Oberrolle wäre oder die übergeordnete Rolle wäre,
36:41
die darf eben auf der Subrollenseite entweder nur ganz rechts oder ganz links stehen. Ansonsten ist das Ganze nicht regulär. Und dabei gilt dann eben, dass all diese S-Rollen, die sollen kleiner sein als R. Das ist die Bedingung, die dazu gilt. Und eine R-Box ist genau dann als regulär bezeichnet, wenn eben genau eine solche Ordnung sich irgendwie finden lässt, wenn die existiert.
37:05
Ja, und dann kann man mal gucken. Also dann gibt es verschiedene Beispiele. Also wenn wir da mal reingucken, wenn wir jetzt das mal angucken, hier haben wir verschiedene Rollen-Inklusionen. Einmal R und S ist Teilmenge von R. Und dann haben wir dann S katiniert mit S ist Teilmenge von S. Und dann haben wir R, S und R ist Teilmenge von T.
37:23
Das ist letztendlich dann auch regulär mit der Ordnung, die man hier drunter sieht. Dagegen, wenn ich jetzt beispielsweise hier versuche, R konkateniert mit T, konkateniert mit S ist Subrolle von T definiere,
37:40
dann ist das nicht regulär, weil das T eben hier in der Mitte und nicht links und rechts vorkommt auf der untergeordneten Seite. Andersrum auch eine einfache Sache. Das hier ist letztendlich auch nicht regulär, obwohl eben hier jetzt diese Regel besteht, dass das S entweder ganz außen bzw. das R ganz außen ist. Aber es lässt sich eben hier keine gültige oder keine mögliche gültige Ordnung finden,
38:03
dass das Ganze irgendwie erfüllt sein könnte. Also das sind die Einschränkungen, die man machen muss, oder das ist ein Teil der Einschränkungen, die man machen muss, auf diese Rollen-Inklusion, damit das Ganze entscheidbar bleibt. Es gibt noch eine zweite, oder es gibt noch weitere Einschränkungen,
38:22
die man auf solche Rollen-Inklusionen quasi draufsetzen muss, damit das Ganze entscheidbar bleibt. Und dazu brauchen wir noch einen weiteren Begriff, nämlich den Begriff der sogenannten einfachen Rolle. Einfache Rollen, sowas gab es schon in Scheuen D, hatten wir nur nicht besprochen. Das sind Rollen, die eben keine transitiven Unterrollen haben.
38:41
Und bei uns heißt das eben in Scheug D, dass man eben beachten muss oder dass das Rollen-Inklusion, das bei der Rollen-Inklusion beachtet werden muss, dass eben auf nicht einfache Rollen oder genau das einfache Rollen oder nicht einfache Rollen nur in ganz bestimmten Konstrukten verwendet werden dürfen.
39:02
Dazu müssen wir erst einmal wissen, was einfache Rollen sind. Das ist noch relativ einfach. Leider jetzt zweimal der Begriff hier in dem Satz. Einfache Rollen sind jetzt alle Rollen, die jetzt nicht auf der rechten Seite einer Rollen-Inklusion vorkommen. Das ist das hier. Wenn es da nicht vorkommt, dann ist es erst einmal eine einfache Rolle.
39:20
Dann inverse Rollen von anderen einfachen Rollen, die sind auch einfach. Und dann sind es Rollen, die nur auf der rechten Seite von Rollen-Inklusion vorkommen, wobei links nur einfache Rollen vorkommen und keine zusammengesetzten Rollen. Das sind also einfache Rollen. Umgekehrt ausgedrückt kann man das einfacher sagen. Einfache Rollen sind eben dann Rollen,
39:41
wenn direkt oder indirekt Rollenverkettungen drin vorkommen und von denen sie dann abhängen. Das ist, glaube ich, die einfachere Variante, wie man es sich merken kann, während das da oben dann formal sich auch leichter ausdrücken lässt. Also merken wir uns nicht einfache Rollen sind Rollen, die direkt oder indirekt eben von Rollenverkettungen abhängen. Und dann gibt es eine Reihe von Ausdrücken,
40:00
die jetzt nur für einfache Ausdrücke erlaubt sind und nicht für solche nicht einfachen, für solche zusammengesetzten Ausdrücke. Und das sind einmal die qualifizierten Kardinalitätsrestriktionen. Da darf also bei R keine zusammengesetzte Komplexe, also nicht einfache Rolle vorkommen. Dann dürfen solche Rollen nicht als irreflexiv definiert werden.
40:24
Sie dürfen nicht als disjunkt definiert werden. Es darf self nicht mit drauf angewandt werden und sie dürfen auch nicht negiert werden. Also wenn wir es nochmal merken, also diese nicht einfachen Rollen, die jetzt irgendwas zu tun haben mit einer Rollenverkettung,
40:40
die dürfen in den Sachen, die hier stehen, nicht angewendet werden. Man kann jetzt für jedes einzelne dann zeigen oder beweisen, wenn man es machen würde mit nicht einfachen Rollen, kann man es wiederum auf ein Problem abbilden, das nicht entscheidbar ist. Und damit ist dann auch diese Sache nicht entscheidbar und würde dann bei Schreuk D für Unentscheidbarkeit letztendlich führen.
41:05
Also das Ganze geht hier nur für einfache Ausdrücke, für einfache Rollen. Und damit haben wir es eigentlich auch schon, was jetzt die grundlegende Entscheidungslogik Schreuk D angeht, geschafft. Also wir können das nochmal komplett zusammenfassen. Es ist eigentlich gar nicht so viel, was dazu kommt.
41:21
Also was man macht, letztendlich, man muss irgendwie die Entscheidbarkeit gewährleisten und dafür gibt es bestimmte strukturelle Beschränkungen für dieses Schreuk D. Das eine ist die Regularität der Airboxen. Also das heißt, man muss irgendwie diese Airbox-Axiome einschränken, dass nur ganz bestimmte Verknüpfungen möglich sind. Und die Rollen müssen letztendlich einfach sein. Also man schränkt quasi die Verwendung von Rollen
41:42
in Kardinalitätsrestriktionen, wie wir es gerade gesehen haben, entsprechend ein. Und dann ergeben sich oder dazu ergeben sich eben bestimmte Einschränkungen auf die Gesamtstruktur der Wissensbasis, die man dabei aufbaut. Und die müssen dann eben dann bei allen möglichen Aktionen, die ich verwende, mit weiter beachtet werden. Das Problem dabei ist aber, wenn ich jetzt hergehe
42:02
und eben aus mehreren vorhandenen Wissensbasen, die nachgewiesenermaßen entscheidbar sind, wenn ich die jetzt irgendwie quasi zusammenwerfe, konkateniere oder eben zusammen verwende, dann kann es durchaus passieren, wenn ich die vereinige, dass dann eben trotzdem das Ergebnis unentscheidbar ist,
42:20
weil eben diese Einschränkungen für die einzelnen Wissensbasen gelten, aber dann eben für die Verknüpfung der Wissensbasen nicht mehr. Aber das ist nur am Rande erwähnt. Praktische Beispiele dazu werden wir uns nicht anschauen, nur dass Sie es der Vollständigkeit halber mal gesehen haben. Wichtig ist letztendlich, dass Sie wissen, über welche Arten lässt sich das alte AOL1,
42:43
SHOIN-D, erweitern, um zu diesem SHOIC-D zu kommen, und welche Einschränkungen müssen gelten bei der Definition von Rolleninklusion, bei der Definition von einfachen Rollen. Das sind die zwei Sachen, die Sie sich merken müssen. Insgesamt sehen wir jetzt, oder haben wir hier eine kurze Zusammenfassung dessen, was alles in SHOIC-D mit vorkommt.
43:04
Klassenausdrücke, da haben wir eben Klassennamen, die kennen wir ja hier mit ABC. Dann gibt es die Konjunktion, Disjunktion, Negation. Wir haben existenzielle und universelle Rollenrestriktion. Dann gibt es das Selfkonstrukt, hatten wir gesehen, und wir haben dann dazu noch eben die qualifizierten
43:21
Kardinalitätsrestriktionen und Nominale, das heißt Aufzählungsklassen. Rollen, da haben wir definiert, was einfache Rollen sind. Es gibt inverse Rollen, es gibt die universelle Rolle, es gibt dann auch das Gegenteil der universellen Rolle, steht jetzt hier nicht mit dabei. Und dann in der T-Box hatten wir die Inklusion, die Äquivalenz, Äquivalenz brauchen wir nicht notwendigerweise, die lässt sich ja, das wissen wir, über die Inklusion herleiten.
43:42
Und in der Airbox hatten wir neben der Inklusion eben noch die allgemeine Rolleninklusion und hatten definiert, dass wir Transitivität, Symmetrie, Reflexivität, Irreflexivität und Disjunktion hier noch mit dazu nehmen konnten. Und dann kommt noch die Airbox mit den Fakten, da ist neu dazugekommen, dass man eben diese negierten
44:01
Rollenbeziehungen noch mit aufnimmt, das andere kannten wir schon aus Scheundi. Okay, was wir jetzt machen müssen, ist hergehen und eben genau diese Ausdrücke, die wir kennengelernt haben, irgendwie nach Aul zu übersetzen. Und das schauen wir uns jetzt in der Aul-Syntax an. Dazu zwei kurze Vorbemerkungen.
44:20
Es ist folgendes gemacht worden, man hat sich von der eigentlichen alten abstrakten Syntax verabschiedet und hat anstelle dessen die funktionale Syntax eingeführt. Das heißt, sie werden sämtliche Aul-Dokumente oder Standarddokumente beim W3C finden in der funktionalen Syntax, weil das eigentlich die am kürzesten ausdruckbare Syntax ist.
44:43
Dazu gibt es dann auch noch Varianten zur RDF-Syntax. Das ist das, was meistens benutzt wird und das, was auch die meisten Editoren in dem Bereich automatisch liefern. Es gibt eine eigene XML-Serialisierung, das ist auch in einem W3C-Dokument entsprechend spezifiziert, aber die ganzen Standarddokumente, wie gesagt, die sind
45:02
hauptsächlich funktional und RDF. Und dann gibt es noch eine vierte Variante, das ist die Funktionale Syntax, die ist jetzt eher menschenlesbar, also das ist leichter noch zu lesen als Funktionale Syntax. Funktionale Syntax ist ein bisschen angelehnt an funktionale Programmierung, an Lisp und ähnliche Dinge,
45:20
die Sie vielleicht schon mal gehört haben. Und auch in Ontologie-Editoren, da ist es also oft so, dass sie Manchester Syntax vorfinden, weil man die eben als Mensch auch sehr einfach lesen kann. Nur kurzes Beispiel, damit Sie es mal gesehen haben, wir werden uns also dann im Anschluss die Sachen immer in RDF-Syntax angucken, aber dass Sie mal was gesehen haben,
45:41
was irgendwie in funktionaler Syntax dasteht, das Ganze ist auch wesentlich kürzer, es ist jetzt hier keine Markabsprache mehr, sondern funktional heißt, Sie haben irgendwelche Funktionen oder Prädikate und dann hinter irgendwelche Klammern, in denen dann irgendwelche Dinge drin stehen und Sie haben so viele Klammer-Ausdrücke, wie man das aus Lisp kennt, und so werden halt hier ganz einfach Subklassendefinitionen
46:00
gemacht, da wird hier beispielsweise ein Teenager definiert, wenn ich das richtig sehe, als Klassen- oder Rollen-Restruktion auf die Rolle has age und das muss dann irgendwo zwischen 12 und 19 sein und dann ist man ein Teenager, so wird hier ein Teenager definiert und dann gibt es eine Subklasse, nämlich Woman ist eine Subklasse von Person und Subklasse Mother ist eine Subklasse von Woman und so weiter, also das liest man einfach von
46:22
oben runter, funktional ist relativ einfach zu verstehen, wenn man es sieht, also von daher eigentlich auch gar nicht schlecht und einige von den oder die meisten von den W3C-Dokumenten, die haben auch diese Syntax mit dabei. Als Manchester- Kodierung, wenn Sie sehen, sieht alles sehr ähnlich aus, man verzichtet jetzt hier allerdings
46:41
auf die Klammergebirge, sondern man schreibt hier jetzt hin, was man definieren möchte, entweder eine Klasse, ein Object Property oder ein Individual und macht dahinter einen Doppelpunkt und dann kommen letztendlich alles, was dazugehört, nämlich beispielsweise Annotationen, das kann jetzt irgendwelcher Klartext oder Freitext sein und dann kann ich sagen, die Klasse Person ist eine Subklasse
47:01
von, und das kann ich dann dahinter genau definieren, wovon, und da kommen dann die ganzen Klassenkonstruktoren, Rolleneinschränkungen und ähnliche Dinge, die kommen dann hier dahinter hinter der Subklasse. Also das Ganze wird hier in einer Syntax geschrieben, die einfach, wenn man es liest, nicht so schwer zu verstehen ist und wenn man sich mal ein bisschen
47:21
dran gewöhnt hat, hier jetzt beispielsweise Object Property has wife, das ist das zweite Characteristics, functional, inverse functional, reflexive, irreflexive, antisymmetrisch, transitiv, also man kann das sehr schnell hinschreiben. Dann wird hier eine Domain angegeben, the range angegeben, das Sub ist ein Subproperty von und ähnliche Dinge, is equivalent to und so weiter, is disjoint with, is inverse of
47:42
und so, also man kann das sehr schnell, sehr schön hinschreiben, ohne jetzt so komplexe RDF-Syntax benutzen zu müssen. Nichtsdestotrotz schauen wir uns das Ganze entsprechend in der RDF-Syntax an, weil eben die grundlegenden W3C-Dokumente eben auch diese RDF-Syntax-Unterweiterung
48:01
benutzen und wir das schon kennen von der Definition aus AOL 1 hier. Also wir schauen uns jetzt bestimmte Dinge mal in AOL 2 an und alles in dieser RDF-Syntax-Variante. Es kommen erst mal Dinge dazu, von denen ich zwar noch nicht explizit geredet habe, die jetzt aber nicht notwendigerweise eine größere Ausdrucksstärke als Schreuk D
48:23
zugrunde liegen, aber mit denen man AOL 2 erweitert hat, weil man hat eben beispielsweise gesehen, wenn ich ein Individuum deklariere, muss das normalerweise zu irgendeiner Klasse gehören, aber ich möchte vielleicht auch über ein Individuum irgendwelche Aussagen machen können, ohne dass ich zuvor definiert habe, zu welcher Klasse dieses Individuum gehört und das kann man jetzt in AOL 2 machen
48:42
und zwar gibt es jetzt hier einen Konstruktor, der nennt sich hier named individual oder eine Klasse named individual und damit kann ich ein Individuum konstruieren, ohne dass ich jetzt direkt angebe, zu welcher Klasse das gehört und das kann ich entweder so machen, dass ich eben ausführlich schreibe, RDF description und dann definiere ich mich und ich sage ich bin eine named individual,
49:01
also ich bin irgendeine Instanz von irgendwas, sage aber nicht wovon und dann kann ich versuchen mit dem Individuum irgendwie weiterzuarbeiten. Kurzgeschrieben in RDF kennen Sie das ja schon, also man kann das auch dann hier abkürzen, diese RDF description, indem man ganz einfach hier das named individual als AOL oder aus dem AOL Namensraum hier vorne
49:21
in das Markup mit rein. Also Individuum, Deklaration ist das erste was Neues für AOL 2, das gab es vorher noch nicht. Dann gehen wir mal weiter vor, was wir noch haben, schauen wir als erstes mal auf die T-Box, auf die Klassen. Wir konnten in AOL 1 zwei Klassen als disjunkt deklarieren mit AOL
49:42
disjoint with und was man jetzt machen kann, das ist eigentlich auch nur syntactic sugar, also ich habe eine abkürzende Schreibweise dafür, wenn ich mehrere Klassen auf einmal als disjunkt deklarieren möchte, wie hier beispielsweise definiere ich eine Klasse, wie heißt die denn? Ich habe gar nicht definiert, wie sie heißt, aber ich definiere jetzt eine
50:01
Klasse, die besteht aus Kindergarten, Kindern, Schülern, Studenten und Professoren und sagt, die sind alle möglichen, also die sind allesamt disjunkt, das heißt, dass es kein Individuum gibt, das gleichzeitig in mehr als einer dieser Klassen sein kann, also dann deklariere ich sämtliche Klassen irgendwie als disjunkt.
50:21
Die erste richtige Erweiterung, die ich noch mit einführe bei AOL 2 sind nicht nur ganz normale disjunkte Klassen, sondern das sind sogenannte disjunkte Vereinigungen, also AOL 2 erlaubt dazu die Deklaration einer Klasse als disjunkte Vereinigung von Klassen, was so viel heißt, ich definiere hier eine Klasse C und die ist eine
50:41
Unterklasse von zwei Klassen, nämlich D vereinigt mit E, wobei D geschnitten mit E letztendlich leer sein soll. Also könnte ich jetzt hier eine Klasse mit Musikinstrumente deklarieren, die eben jetzt aus der Vereinigung der Streichinstrumente, der Schlaginstrumente, der Zupfinstrumente und der Tasteninstrumente besteht und ich würde jetzt sagen, wenn ich das so definiere mit dem Schlüsselwort
51:02
Disjoint Union of, dann bedeutet das, dass eben kein Individuum oder kein Angehöriger einer bestimmten Klasse hier auch noch in einer zweiten gleichzeitig sein darf. Also das wäre eine disjunkte Vereinigung von Klassen. Das ist das, was ich in der T-Box neu dazu bekomme in AOL 2.
51:22
Dann hatten wir ja gesagt, Rolleneigenschaften wie Antisymmetrie, Reflexivität und Irreflexiv, das muss ich ja auch irgendwie ausdrücken. Schauen wir auch mal zurück, AOL 1, da konnte ich eine Rolle als transitiv-symmetrisch-funktional- und invers-funktional deklarieren. Jetzt habe ich die Möglichkeit, asymmetrische Rollen zu definieren.
51:40
Das Property dazu, das ich habe, heißt ganz einfach AOL Asymmetric Property. Dann kann ich eine Rolle als asymmetrischt definieren, Reflexive Property und Irreflexive Property für reflexive Rollen und irreflexive Rollen. Wobei genau die gleiche Einschränkung gilt wie bei AOL 1. Das Ganze darf natürlich nicht bei konkreten Rollen, also bei Data Type Properties, verwendet werden, sondern nur bei
52:00
abstrakten Rollen, bei denen auch wirklich zwei Instanzen miteinander in Bezug gesetzt werden, jetzt nicht eine Instanz mit irgendeinem Literal. Eine interessante Sache, die jetzt auch semantisch keine größere Ausdrucksstärke verleiht, aber die eben sehr, sehr praktisch ist, insbesondere wenn ich hier modelliere
52:21
und Wissensrepräsentationen auf Datenbanken irgendwie oder auf bestehenden Datenbankimplementationen aufsetzen lassen möchte. Das ist eine sehr schöne Sache, dass ich nämlich hergehen kann und Konstrukte folgender Art definieren kann, dass ich nämlich sagen kann, wenn ich etwas definieren möchte, wie alle Studenten des HPI, die jetzt denselben Namen haben und dasselbe Geburtstag, das sind auch tatsächlich dieselben Studenten.
52:42
Also wenn ich sowas einführen möchte, wie ein Schlüssel, der mir sagt, das Geburtstag und Name, diese Kombination ist immer eindeutig und definiert ein Individuum. Das kann ich jetzt auch in Aul verwenden und das heißt auch tatsächlich Schlüssel, also für so eine Klasse in Aul 2, kann eine Menge von Rollen festgelegt werden, wie hier jetzt Name und Geburtstag, die die
53:00
einzelne Instanz der Klasse gleich einem Schlüssel, also wie ein Key in einer Datenbank identifizieren und das geht auch hier über das Schlüsselwort hasKey und dann kann ich hier definieren, die HPI- Studenten und kann dann sagen, das Ganze hat einen Schlüssel und dahinter kommen dann die Geburtsdatum, hat Name, hat Geburtsdatum und das soll jetzt als Schlüssel verwendet werden. Das Ganze hängt natürlich dann
53:20
wieder ab von meiner A-Box, wenn ich tatsächlich zwei Studenten mit exakt dem gleichen Namen und exakt dem gleichen Geburtsdatum habe, dann ist es nicht mehr eindeutig, aber im Fall, wenn das eben nicht gilt, kann ich das so definieren und kann dann eben daraus rückschließen, dass es sich um ein und dasselbe Individuum handelt. Das ist also ein neues Aktion für die Gleichheit von Individuum, das mithilfe dieses
53:43
Constructs auf eine ganze Reihe von Individuen gleichzeitig angewandt werden kann. Wichtig ist, generell kann dieses Key nur auf explizit benannte Instanzen durchgeführt werden, also nicht auf Instanzen, die irgendwie oder deren Klassenzugehörigkeit irgendwie hergeleitet worden ist, sondern ich muss die wirklich als
54:01
Named Individual definiert haben, wie wir es gerade am Anfang gesehen haben, nur dann funktioniert das. Das funktioniert jetzt nicht über das Reasoning, weil da würde ich mir wieder Probleme einkaufen, mit dem wir hier wirklich nicht auch noch umgehen wollen. Und das ist kein, klar, so ein Schlüssel ist kein beschreibungslogisches Element und kann ich in der Beschreibungslogik auch nicht so einfach ausdrücken, wie das dann funktioniert und benutzt wird.
54:22
Okay, wir sind aber nicht am Ende von den Rolleneigenschaften, sondern als nächstes können wir uns noch angucken, AOL 2 definiert oder gestattet die Definition von sogenannten disjunkten Rollen. Und da geht es eben darum, hatten wir gesagt, dass eben zwei Rollen disjunkt heißen, dass es niemals zwei
54:41
Individuen gibt, die eben über beide Rollen gemeinsam miteinander verbunden sein dürfen. Auch wieder ein Beispiel dafür, mit, was haben wir hier, Object Property hat Elternteil und hat Kind. Das kann man so definieren, dass man sagt, das Object Property hat Elternteil, das ist immer disjunkt mit dem Object Property hat Kind. Weil hat
55:02
Elternteil, wenn zwei Individuen darüber miteinander in Verbindung stehen, können sie nicht in der gleichen Bezug miteinander stehen, das ist also ähnlich wie das Beispiel, das wir vorher schon besprochen hatten. Und wenn ich das jetzt für mehrere disjunkte Rollen gleichzeitig machen möchte, also mit mehr als zwei, dann gibt es
55:21
auch wieder eine abkürzende Schreibweise dafür, nämlich All Disjoint Properties und dann kommt dahinter wieder eine Collection mit den ganzen Properties, die hier irgendwie disjunkt sein sollen. Und zwar haben wir einmal eins mit Object Property hat Elternteil und dann ist dazu disjunkt hat Kind und dann ist dazu hat Enkel zum Beispiel. Also das ist die Aul
55:42
Definition für disjunkte Rollen, disjunkte Properties. Dann hatten wir noch bei Rollen, müssen wir dran denken, in der Hierarchiestruktur eben die Toprolle, die universelle Rolle und irgendwie eine Buttonrolle. Das muss ich auch noch ausdrücken. Das kommt dann als nächstes, also die universelle und die leere Rolle
56:00
als Gegenstück zu den Top- und den Buttonklassen. Und da muss ich natürlich in Aul beachten, dass das sowohl auf der einen Seite für Object Properties geschieht, also für abstrakte Rollen und auf der anderen Seite für Data Type Properties, konkrete Rollen und deshalb gibt es hier auch ein Top Object Property und ein Button Object Property. Und dann gibt es ein Top Data Type Property und
56:21
ein Button Data Type Property. Die alle nacheinander sehr, sehr schnell gesprochen. Das klappt auch nicht mehr, fällt mir gerade ein nach mehreren Gläsern Alkohol. Das muss ich mal probieren. Okay, was brauchen wir noch als nächstes? Wir hatten
56:44
definiert Rollen. Dazu können wir auch noch definieren inverse Rollen. Also Aul2 erlaubt die Definition inverser Rollen. Also beispielsweise, wenn ich jetzt eine Rolle habe, die eine Prüfung und eine Person als Prüfer fest setzt, dann kann ich dazu definieren, dass das umgekehrt ist oder die umgekehrte
57:06
Relation zu, nimmt Teil an einer Prüfung. Also ich kann hier hergehen und kann inverse Rollen definieren. Das ist natürlich nicht erlaubt für konkrete Rollen, sondern entsprechend nur für abstrakte Rollen. Aber was vielleicht interessanter ist und komplizierter ist, ist diese Geschichte mit der Rollen
57:21
Inklusion. Also wie kann ich Rollen konstruieren, dieses Verketten von Rollen? Das wollen wir uns noch angucken. Diese allgemeine Rollen Inklusion, die wird ganz einfach geschrieben und zwar wird hier definiert ein sogenanntes Property Chain Axiom und darüber kann ich dann hier gehen und kann einzelne Rollen miteinander verknüpfen. Und zwar kann ich hier jetzt hat Freundesfeind
57:42
beispielsweise definieren diese Rolle als eine Rolle, die auf der einen Seite die das Property hat Freund mit dem Property hat Feind hier nacheinander miteinander verknüpft. Ich könnte jetzt aber auch hier gehen und könnte ganz einfach hat Feind so definieren. Und dann wäre das zwar auch jetzt wieder selbstbezüglich, weil hat
58:01
Feind hier auch nochmal mit vorgekommen, aber dann hätten wir genau dasselbe Beispiel, dass wir auch in der Beschreibungslogik in Schreuk gemacht haben. Also Sie sehen, die Theorie dahinter ist etwas komplizierter. Wenn ich das Ganze dann in Aul ausdrücken will, sieht das Ganze immer relativ einfach aus. Okay, was haben wir? Wir hatten die
58:20
T-Box angeguckt. In der T-Box fehlte uns noch eine Geschichte, nämlich Klassenkonstruktion mit Hilfe von Kardinalitätsrestriktion plus Klassenbeschränkung, also diese qualifizierten Kardinalitätsrestriktion. Das fehlt uns noch, das kommt als nächstes. Qualifizierte Kardinalitätsrestriktion Beispiel hier, wir definieren eine Prüfung als irgendetwas, das mindestens
58:42
zwei Prüfer hat und diese zwei Prüfer sollen auch gleichzeitig Professor sein. Und das würde man jetzt ausdrücken in Aul 2, ähnlich wie wir es schon kennen von der Kardinalitätsrestriktion. Ich definiere mir also eine Klasse Prüfung als Subklasse, dann eine Restriktion auf, das Propertie hat Prüfer und dann kommt jetzt hier ein neues Schlüsselwort, nämlich
59:00
Max Qualified Cardinality. Also Max Cardinality kennen Sie schon und wenn dahinter noch eine Klasse kommen soll, dann kommt Qualified Cardinality hin. Dann sage ich, was für ein Datentyp soll das Ganze sein? Non-negative integer und ich sage, die Restriktion, die Zahl, die ich hier einsetze, ist 2. Und dann muss ich natürlich noch sagen, auf welche Klasse ich mich hier beziehe. Das mache ich dann hier
59:21
unten mit all on class und da gebe ich dann letztendlich an, auf welche Klasse ich mich beziehe, nämlich auf die Ressorts Professor. Und das war es dann schon. Da habe ich generell die Schlüsselworte Max Qualified Cardinality, Min Qualified Cardinality und Qualified Cardinality für eine exakte Wertzuweisung. So, jetzt
59:41
fragen wir uns, das funktioniert ja jetzt auf jeden Fall auf abstrakte Rollen. Funktioniert das auch auf konkrete Rollen? Spricht eigentlich nichts dagegen, das Ganze irgendwie auch auf konkreten Rollen irgendwie anzuwenden? Also können Sie sich mal überlegen. Also natürlich macht das oftmals nur Sinn, wenn man
01:00:00
ein funktionales Data-Property hat, dann gibt es nur eine, quasi ein Wert oder ein Property, das hier quasi oder das Property hat da nur einen Wert, aber es könnte auch sein, dass man kann das ja mehrfach zuweisen, dann können mehrere Werte, Strings oder Zahlen, quasi dann als Property einer Instanz zugewiesen werden. Das muss ja nicht unbedingt
01:00:21
eindeutig sein und dann kann ich da natürlich genauso mit Max-Qualified-Cardinality dahinter oder obendrüber dann nicht auf eine abstrakte Rolle hat Prüfer, sondern auch auf eine konkrete Rolle das Ganze anwenden. Ich muss dann aber hergehen und muss hier unten drunter, darf ich nicht schreiben on class, weil dann habe ich dahinten keine Klassenrestriktion, sondern ich muss
01:00:42
dahinter dann entsprechend schreiben on data range und muss dann sagen, auf was für einen Range ich mich beziehe, also dass ich mich da entsprechend dann auf einen ganz bestimmten Datentyp beziehe. Das funktioniert, das können Sie sich mal angucken, in der Hallspezifikation, also in den Standarddokumenten beim W3C, das wird aber so gut wie nie irgendwie
01:01:01
gebraucht, aber es ist möglich, das Ganze auch noch so zu definieren, nur am Rande noch mal bemerkt. Okay, was uns noch fehlt, ist nicht mehr viel, die Selbstgeschichte, dass ich eben ein Individuum über eine Rolle mit sich selbst verknüpfen kann und zwar im Allgemeinen und zwar kann ich hier beispielsweise definieren ein Philosoph, das ist jemand, der sich selbst
01:01:23
kennt und würde ich dann so definieren, dass ich sagen, ein Philosoph ist eine Subklasse von jetzt wieder eine Restriktion auf eine abstrakte Rolle, nämlich kennt und da sage ich dann has self, also damit drücke ich dann quasi dieses Self-Konzept aus und
01:01:43
sage, dass das eben reflektiv sein soll, dass ein Philosoph jemand ist, der sich selbst kennt, also auch eine relativ klare oder logische Variante, wie das All 2 hier miteinander erweitert wird. Was uns noch fehlt, ist quasi eine Rolle zu negieren,
01:02:06
also hier hatten wir wieder das Beispiel, das wir vorher auch haben, dass man diese ist Bruderbeziehung negieren kann und das kann man jetzt so machen mit dem All 2, also das ist eine negative Aussage bezüglich eines Properties und dann muss man sagen, was ist das Source Individual, das bin ich, das Assertion Property, das ist Bruder
01:02:24
oder ist Bruder und Target Individual muss man dann sagen und dann heißt das, dass diese beiden Individuals, die ich hier habe, die sind eben nicht über dieses Property miteinander verbunden, also auch eine ganz einfache Sache. Wenn man es ganz genau nimmt, kommen dann bei All 2 noch bestimmte Datentyprestriktionen dazu, das heißt,
01:02:43
es werden eigentlich alle Datentypen aus All 1, die dort unterstützt werden, weiter unterstützt, es gab ein paar Änderungen, die werden hier gemacht bei Zeitangaben, also da fallen ein paar raus und es kommen ein paar neue Datentypen dazu, sehen Sie hier da unten und dann gibt es noch, das ist vielleicht das Interessanteste in dem Bereich der Datentypen, die Möglichkeit, dass man eben Wertebereiche
01:03:02
konkreter Rollen beschränken kann, indem man Ober- und Untergrenzen bei Zahlen angeben kann, das ist dieses Max-Exclusive und Min-Inclusive, das kennt man schon von XML Schema Definition und dass man es dringend auch noch entsprechend beschränken kann mit minimaler, maximaler Länge und ähnlichen Dingen oder dass man hier auch reguläre Ausdrücke hier verwenden kann über das XSD Pattern, aber das liest man
01:03:23
am besten auch, wie das funktioniert in dem entsprechenden Standarddokument nach. Und das ist jetzt, was wir angeguckt haben, das komplette All 2 DL, also das ist die, oder sagen wir mal, komplett der All 2 Sprachstandard, auf dem man dann wieder diese drei Sprachvarianten, wie wir sie ursprünglich kennen, herleiten kann, durch entsprechende
01:03:41
Einschränkungen des Vokabulars, kriege ich die DL Variante raus, kriege ich die einfacheren Varianten raus und kann auch sagen, wenn ich das jetzt noch mit RDF zusammen sehe, dass ich mir die Full-Variante irgendwie noch mal betrachte. Werfen wir aber, bevor wir diese Profile und Sprachvarianten angucken, einen kurzen Blick auf die Komplexität von Schreuk. Schaeun selbst, also All DL, war schon mal
01:04:02
sehr komplex, immerhin noch entscheidbar, aber es war doch nicht deterministisch und hat exponentielle Zeit gebraucht, um jetzt hier Dinge zu entscheiden, wie beispielsweise die Inferenz oder eben die Erfüllbarkeit und ähnliches. Die Frage ist, wie sieht das Ganze aus mit Schreuk? Und da merkt man eben, einige der Dinge, die wir hier
01:04:21
erweitert haben, die sind nicht wirklich nötig, das heißt, die sind nicht unbedingt so, dass sie die Komplexität hier entsprechend in die Höhe treiben, sind auch redundant, wie beispielsweise transitive Rollen, die kann ich sehr, sehr leicht auch über die Rollen-Inklusion ausdrücken. Symmetrie kann ich eben auch hier über die Inklusion
01:04:40
ausdrücken hier und Irreflexivität könnte ich ausdrücken. Also ich kann mir hier Konstrukte basteln, mit denen ich bestimmte Axiome, die ich hier schon mit verwende, durchaus herleite und benutzen kann. Also das sind Sachen, die jetzt nicht notwendigerweise die Komplexität insgesamt erhöhen. Und hier haben wir auch noch Terminale, beispielsweise könnte ich auch auf diese Art und Weise darstellen, das
01:05:01
können Sie sich mal diese wechselseitigen Ausdrucksweisen können Sie sich mal angucken. Auch qualifizierte Kardinalitätsrestriktionen, die sind auch nicht irgendwie problematisch. Was wirklich problematisch ist oder was neu an Ausdrucksstärke dazu kommt, das sind diese zusätzlichen Rollenaxiome und die allgemeine Rollen- Inklusion. Also das ist wirklich relativ kompliziert, nämlich was man eben
01:05:24
in der Vorlesung sieht, die hat diese Airbox-Regeln, die ähneln sehr stark formalen Grammatiken und jede Rolle definiert quasi eine eigene reguläre Sprache, reguläre Sprache gleich oder zu setzen mit regulären Ausdrücken und endlichen Automaten und was man da eben machen muss, um Beweisverfahren zu entwickeln ist, man muss irgendwie diese Tableau-Verfahren, die wir schon
01:05:42
kennen für die Beschreibungslogik, mit sogenannten Airbox-Automaten erweitern. Das ist aber eine Sache, die schauen wir uns hier in der Vorlesung nicht nochmal an, weil das Ganze wird dann zu kompliziert und würde das Ganze noch weiter vertiefen und wir bräuchten glaube ich noch mindestens zwei Übungen, um das Ganze soweit einzuüben, dass das passt und so wichtig ist das Ganze auch noch nicht. Wichtig ist das alte Tableauverfahren.
01:06:02
Ich sehe schon Jörg atmet auf, dass er es nicht machen muss. Das heißt, es funktioniert, es gibt Erweiterungen dafür, wir brauchen es uns aber hier in dem Zusammenhang nicht nochmal anzugucken. Dadurch, dass eben jetzt dann Tableauverfahren auch für Schreuk verfügbar sind, heißt das generell, Schreuk ist natürlich auch entscheidbar, allerdings sind solche Tableauverfahren ungeeignet für enge Komplexitätsabschätzungen.
01:06:23
Es gibt ein Resultat bezüglich Schreuk, das sagt, dass die Komplexität für die Erfüllbarkeit, die ist doppelt, also nicht deterministisch doppelt exponentiell, was schon sehr, sehr viel ist und eigentlich fürs praktische irgendwie kaum zu benutzen. Aber eben wenn ich jetzt den Tableau-Algorithmus selbst aber hier benutzen möchte, der hat ganz
01:06:41
gute Anpassungseigenschaften, Dinge, die dann nicht benutzt werden, also wenn ich jetzt bestimmte Ausdrücke nicht benutze, dann belaste das so die Abarbeitung oder das Herleiten von solchen endenden Tablos nicht und dann kann ich eben sehr schön und auch sehr schnell im Praktischen damit arbeiten. Generell, gucken wir uns mal an,
01:07:02
haben wir jetzt irgendwas vergessen, irgendwie hatte ich gedacht, da fehlt noch was. Hab ich eine Seite geklaut? Ich habe eine Seite geklaut, das gibt es auch gar nicht. Ja, ich hatte nämlich
01:07:22
noch eine Seite drin, die mir irgendwie sagt, wo liegen denn eigentlich die Probleme, wenn ich mir angucke, ich gehe nochmal hier hin, wie komplex ist denn jetzt eigentlich hier so eine Beschreibungslogik und woran liegt das, dass sie so komplex werden kann? Und das liegt normalerweise daran, dass
01:07:40
irgendwelche Dinge mit reinkommen, die eben dafür sorgen, dass das Ganze oder die Bearbeitung eines solchen Algorithmus nur noch non-deterministisch ablaufen kann beziehungsweise wenn irgendwelche Konstrukte es fordern, dass quasi das komplette Universum abgearbeitet werden muss, wobei wir eine offene Welt haben und nie wissen, ob wir fertig sind oder ob wir nicht fertig sind. Also wenn dort
01:08:02
ein Non-Determinismus auftritt, dass ich raten muss irgendwie oder mit Backtracking oder so arbeiten muss, dann komme ich normalerweise dahin, dass das Ganze sehr, sehr komplex wird. Also ich muss mal gucken, die Folie muss irgendwo noch sein, schauen wir uns nachher nochmal an. Gucken wir, was sonst noch für AOL2-DL gilt.
01:08:20
Also generell, Schreuk ist jetzt die logische Grundlage von AOL2-DL. Es kommen ein paar syntaktische Dinge noch dazu. Also wir hatten uns die Syntax-Erweiterung angeguckt. Es kommen neue Datentyp-Deklaration, Datentyp-Funktionen und neue Datentypen dazu. Es kommen hier diese invers-funktionalen, konkrete Rollen. Das sind diese Keys, die wir gesehen haben dazu. Keys gehören ja jetzt nicht zur
01:08:42
Beschreibungslogik, sondern sind hier jetzt letztendlich nur etwas Prozedurales, was ich dazu verwenden kann, um die Gleichheit von Individuen auszunutzen, um eben jetzt sehr, sehr schnell auf Dinge zugreifen zu können und was man eingeführt hat, um eben jetzt hier vorhandene Legacy-Datenbank-Anwendungen irgendwie in Semantic Web mit reinzubringen. Es gibt noch ein paar weitere nicht logische Aspekte,
01:09:02
um die AOL2 erweitert worden ist. Das eine ist die sogenannte Meta-Modellierung. Meta-Modellierung heißt, ich modelliere jetzt hier Dinge mit oder aus Klassen oder über Klasseninstanzen und Properties und mach Aussagen über Aussagen. Also das, was Sie schon in der Reifikation kennengelernt haben. Das nennt man im Allgemeinen Meta-Modellierung
01:09:20
und da ist in AOL2 nur eine sehr, sehr schwache Variante der Meta-Modellierung erlaubt. Die nennt sich Panning und Panning heißt so viel wie Wortspiel, die sind hier erlaubt. Das schauen wir uns dann nochmal kurz an. Dann habe ich noch die Möglichkeit, Kommentare zur ontologischen Metadaten hier abzugeben, jetzt nicht nur zu ganzen Ontologien oder eben jetzt zu einzelnen Individuen, sondern ich kann zu Axiomen und beliebigen Untergruppierungen
01:09:42
oder Untermengen meiner Ontologie Kommentare abgeben, die jetzt nicht weiter semantisch ausgewertet werden, aber eben dann syntaktisch letztendlich eindeutig dann zugeordnet werden können. Und es kommt noch dazu einige Mechanismen, dass sich Ontologien importieren kann. Was für uns noch wichtiger ist, ist eben diese Meta-Modellierung und da geht es um
01:10:00
die Spezifikation von ontologischen Wissen über einzelne Elemente, also Meta-Modellierung der Ontologie und das schließt jetzt Klassenrollen und Axiome ein und wenn ich jetzt Dinge sagen möchte, wie beispielsweise die Klasse Person wurde, wann am 3.1.2010 und von wen von Jörg angelegt oder für die Klasse Stadt wird das Property Einwohnerzahl
01:10:22
empfohlen oder die Aussage Dresden wurde 1206 gegründet, wurde maschinell ermittelt mit einer Sicherheit von 85 Prozent, dann sind das alles Aussagen über Aussagen, die man irgendwie mit der Reifikation natürlich erschlagen kann, aber die sich natürlich auch mit unseren Bordmitteln bei Aul in irgendeiner Art und Weise modellieren lassen,
01:10:41
nur wenn wir da nicht einige Dinge beachten, enden wir hier genauso wieder in der Unentscheidbarkeit und das wollen wir eigentlich nicht. Insbesondere, also Unentscheidbarkeit, dafür steht dieses Wort gefährlich, also Meta-Modellierung in ausdrucksstarken Logiken ist gefährlich und wenn schon nicht gefährlich, dann ist es wenigstens teuer, das heißt, die Komplexität schreibt sich dann oftmals
01:11:00
in ungeahnte Höhen und was eben unterstützt wird in Aul 2, das ist dieses einfache Panning, da geht es eben jetzt darum, einfach nur drei einfache Regeln, also einmal sagt man, ich kann durchaus die gleichen Namen verwenden für Klassen, für Rollen, für Individuen, also diese Bezeichner für die Klassen, für die Rollen, für die Individuen, die müssen nicht das Jung sein, es kann also hier jetzt ein Individuum
01:11:22
mit dem Namen Person geben und es kann auch eine Klasse mit dem Namen Person geben. Wichtig ist, es gibt keinen semantischen Zusammenhang zwischen zwei Elementen, die jetzt hier einfach nur den gleichen Namen haben. Die sind ja noch lange nicht gleich, hatten wir ja sowieso gesagt, also Gleichheit, wir haben ja bei Aul keine Unique-Name-Assumption, sondern es gibt hier einfach keine logische Beziehung
01:11:41
zwischen Klassen, Individuen und Rollen, gleichen Namen, sondern das ist dann nur was für uns, für unsere pragmatische Interpretation, wenn wir von draußen drauf gucken. Aber ansonsten darf ich denen schon irgendwie gleiche Namen geben und ich kann hier sagen, Harald ist eine Person und ich kann sagen, die Klasse Person wurde erstellt von Jörg. Damit wird jetzt Person noch nicht gleichgesetzt,
01:12:01
dass diese Klasse gleich dieses Individuum ist, ich kann diese Aussagen machen, es wird aber keine jetzt große semantische, logisch formal hierleitbare Interpretation hier rausgezogen. Das kann ich zwar dann machen mit einem Programm, das drüber guckt, aber normalerweise die Logik, die dahinter steckt, die zieht hier keine semantischen Schlüsse daraus
01:12:22
und aus diesem Grund bleibt das Ganze entsprechend noch entscheidbar. Also das ist ein bisschen, man betrügt hier ein klein bisschen, aber das ist nicht weiter schlimm, man darf sie mal hinschreiben. Allerdings ist das keine RDF-Reifikation in dem Sinn, weil mit der Reifikation würden wir uns hier wieder auf unentscheidbares Terrain wagen.
01:12:42
Also hier dieses Panning unterstützt eine einfache Metadaten mit schwacher semantischer Bedeutung. Also hier gibt es keine richtige Semantik, die da rausgezogen werden kann. Kommentare können noch zusätzlich reinkommen. Wir wissen schon, also wir können Ontologien immer über XML-Kommentare natürlich kommentieren. Das kennen wir. Man kann aber auch jetzt hier nicht logische Annotationen
01:13:02
in AOL1 über dieses Annotation Property verwenden. Und das wird ein bisschen erweitert in AOL2. Also was man dort machen kann, man kann jetzt nicht nur einzelne Individuen irgendwie annotieren, sondern man kann auch Annotationen ganzer Axiome oder anderer Teilabschnitte einer Ontologie machen, damit man die von außen lesen kann und entsprechend händisch, manuell
01:13:21
oder auch mit einem Programm weiterverarbeiten kann. Aber natürlich nicht jetzt hier mit einem Reasoner. Für die haben diese Kommentare eigentlich keine Bedeutung. Aber das sind einfach nur Sprachmittel, die hier mit dazu kommen. Okay, und da hatten wir es eigentlich schon fast geschafft. Wir müssen uns jetzt natürlich noch die Sprachvarianten angucken, die es hier bei AOL gibt.
01:13:42
AOL2-Profile sind nichts anderes als Untersprachen von AOL2. Und eine hatten wir uns jetzt die ganze Zeit schon angeguckt. Das ist AOL2.dl. Die entspricht nämlich diesem Schreuk D. AOL2-Full, wenn ich mir angucken würde, das wäre nichts anderes als eben jetzt eine Erweiterung von AOL1-Full, nämlich mit den zusätzlichen Axiomen, die hier hereingekommen sind mit Schreuk D.
01:14:03
Das Ganze bleibt nach wie vor unentscheidbar. AOL2-Full ist eine Modellierungssprache, die nach wie vor auch nur von eigentlich kaum einem Werkzeug jetzt inferenz-technisch, ableitungstechnisch unterstützt wird, weil eben das so ausdrucksmächtig ist, dass man hier keine entscheidbaren Schlussfolgerungen mehr irgendwie ziehen kann.
01:14:22
Jetzt haben wir aber dl und wir haben full. Was wir nicht haben ist AOL-Lite. Und da sieht man wieder, dass entsprechende Erfahrungen aus der Praxis mit reingekommen sind. Auf der einen Seite ist AOL1-Lite, das alte quasi fast genauso komplex gewesen wie AOL1-dl, hatte ich Ihnen ja schon gesagt. Und an sich hat es eine relativ komplizierte Syntax
01:14:42
und vereinfacht AOL1-dl einfach nicht wirklich. Also es gibt keinen richtigen oder einfachen Zugang zu wahrer Ausdrucksstärke, die hier AOL1 bietet, AOL1-Lite. Wenn man es verwendet hat, war die Verwendung meistens eher zufällig als intendiert. Und ursprünglich war das Ganze mal gedacht als einfach und effizient implementierbarer Teil von AOL,
01:15:03
aber es hat sich herausgestellt, wenn ich das implementiere, dann ist das fast genauso komplex, kompliziert und schwierig, als wenn ich AOL2, Quatsch, AOL1-dl mache. Also Lite genauso kompliziert wie dl. Und das, was ich dann letztendlich spare, irgendwie an Berechnungskomplexität, das ist eigentlich auch kaum der Rede wert.
01:15:21
Deshalb hat man es auch kaum benutzt und man hat dann eben einen neuen Ansatz hier in AOL2 verfolgt, dass man gesagt hat, naja gut, wir versuchen dann mal mehrere Sprachprofile möglichst einfach in irgendeiner Art und Weise zu definieren, die dann folgendermaßen aussehen. Also man versucht, hier AOL2-Subsprachen, also Fragmente von AOL2 zu finden, die eben noch in Polynomialzeit entscheidbar sind,
01:15:42
die also deren Abarbeitung maximal Polynomialzeit zur Anzahl der Eingaben eben braucht. Und das ist in der Regel Polynomialzeit, sagt man, das ist noch handhabbar, das ist feasible oder tractable, sagt man im Englischen. Das ist also praktisch durchaus noch benutzbar. Und da ist auch die Folie, die ich vorhin gesucht habe. Wie kommt man denn zu Nichtpolynomialzeit
01:16:01
oder eben zu schwierigen Dingen? Ganz einfach, wenn Non-Determinismus nicht mit in den Spiel kommt, nämlich wenn ich hier irgendwo raten muss oder wenn Backtracking mit reinkommt. Und Raten und Backtracking kommt mit rein, wenn ich hier beispielsweise mit der logischen Disjunktion arbeiten muss, mit einem Oder. Und ein Oder kann ich natürlich auch ausdrücken, das wissen wir über die demorgenschen Gesetze, über die Negation und die Konjunktion.
01:16:22
Das heißt, das sind Dinge, da muss ich irgendwo Einschränkungen treffen, wenn ich eine Logik irgendwie in Polynomialzeit berechenbar machen will, muss ich hier die Disjunktion mit rausnehmen und muss die Negation mit rausnehmen. Dann habe ich eventuell noch Probleme mit Maximum-Kardinalitätsrestriktion. Maximum-Kardinalitätsrestriktion sehen ja irgendwie so aus.
01:16:40
Also Maximum, das heißt, Maximum kleiner gleich. Nee, das ist ja ein Minimum, oder? Doch. Kleiner gleich, irgend ein Maximum. Sind die damit gemeint, oder sind die anderen gemeint? Sind die anderen damit gemeint?
01:17:01
Wenn irgendwas größer gleich. Nee, es ist kleiner gleich mit gemeint. Genau, da komme ich selber auch immer durcheinander. Also kleiner gleich, und dann haben wir hier irgendeine Zahl n. So, jetzt müssen wir uns irgendwie überlegen, warum ist das denn komplizierter, als wenn ich hier so etwas angucken möchte.
01:17:24
Hat jemand eine Idee, warum, wenn ich überprüfen möchte, ob so eine Kardinalitätsrestriktion gilt, die mit größer gleich schneller zu berechnen ist als die mit kleiner gleich.
01:17:51
Genau, also sobald ich wirklich hier die Untergrenze erreicht habe, dann bin ich definiert zu Ende. Dagegen, wenn ich die, hier bin ich definiert zu Ende. Sobald ich aber das andere irgendwie prüfen muss,
01:18:01
muss ich irgendwie alle überprüfen. Und wenn ich eine offene Welt habe, habe ich ja das Problem, wann habe ich alle? Das kann ich hier wieder irgendwie nicht sagen. Also das ist hier das Problem bei den Maximum-Kardinalitätsrestriktoren. Das ist genau dasselbe, wenn hier Alquanturen mit dabei sind oder es in Existenz und Alquanturen irgendwie miteinander in einer Klasse verknickt. Genauso, wenn jetzt hier
01:18:21
infinite Klassendefinitionen dabei sind, da kriege ich dann auch Probleme, wenn ich irgendwas in Polynomialzeit berechnen will. Deshalb ist das in einigen oder bestimmte Varianten davon in den O2-Profilen nicht erlaubt. Aber das sind jetzt nicht die einzigen Features, die irgendwie zu Nondeterminismus oder eben zu schlechter Berechnungskomplexität führen. Das sind halt die wichtigsten, nur dass man sie hier mal gesehen hat.
01:18:41
Und was man jetzt macht, man definiert eben drei verschiedene Fragmente. Also man hat jetzt hier eine neue Aul oder Eulenfamilie. Es gibt jetzt Aul2-EL, QL und RL. Die Namen stammen auch irgendwo hier. Das RL steht von Regeln, also Rule Language. Das QL steht für Query Language. Das hängt mit Datenbanken zusammen.
01:19:00
Und das EL kommt von einer sehr einfachen Beschreibungslogik, die auch EL mit Namen heißt. Und die einfachste wollen wir uns auch mal angucken. Aul2-EL, die einfachste Variante, die basiert nämlich auf der Beschreibungslogik EL++. Und da muss man sich merken, also was gehört dazu? Wir haben die Konjunktion. Wir haben eine existenzielle Restriktion
01:19:20
und wir haben Button und Top noch als Elemente dabei. Dann darf ich hier in dem Fall noch abgeschlossene Klassen verwenden. Ich darf eingeschränkte Rollenbildbereiche definieren. Ich habe die allgemeine Rolleninklusion dabei und die Transitivität. Nicht erlaubt sind Dinge wie Alquanturen, Disjunktion hatten wir ja schon. Komplement ist nicht erlaubt,
01:19:41
weil sonst könnte ich mit Konjunktion und Komplement wieder eine Disjunktion herleiten. Kardinalitätsrestriktoren allgemein sind nicht erlaubt. Also diese ganzen Sachen hier sind nicht erlaubt. Disjunktheit und Diversis von Rollen ist auch nicht erlaubt. Also dort sehen die Produktionsregeln oder die die Ausdrucke, die ich schreiben kann, dann irgendwie so aus, dass ich irgendwie Konjunktionen habe.
01:20:00
Dann habe ich Existenzquantur, Top und Button. Und das habe ich eben auf beiden Seiten von dieser Rolleninklusion. Die Vorteile, die ich dran habe, ist, damit erkaufe ich mir quasi eine polinomielle Komplexität, was wir jetzt hier nicht nachweisen wollen, für alle möglichen Standardinferenztippen, also das heißt für Erfüllbarkeit,
01:20:21
Klassifikationsprobleme, Instanzüberprüfungsproblem und so weiter. Soweit bleibt das Ganze noch sehr, sehr einfach zu implementieren. Und es gibt eine ganze Reihe von Ontologien, die auch praktische Relevanz haben, die jetzt in dieser Sprache ausgedrückt sind, beispielsweise dieses Nomad-Ontologie. Das ist so eine dänische, die heißt Systemized Nomenclature of Medicine Clinical Terms. Also das sind irgendwelche klinischen Ausdrücke
01:20:42
aus der Medizin. Das ist eine Ontologie mit mehr als 100.000 Klassen und Rollen, die vor ein paar Jahren hier im Bereich der Medizin aufgestellt worden ist. Die ist hier schon entsprechend mit diesem AOL2-EL modelliert. Und da dauern wirklich auf diese komplette Wissensbasis mit diesen mehreren 100.000 Klassen,
01:21:02
da kann man Anfragen in Echtzeit stellen, die im Sekundenbereich die Antwort liefern. Und das ist eben jetzt hier wirklich schon sehr schnell, wenn man das Ganze versuchen würde, in dem alten, normalen AOL2-EL würde man hier mit Antworten im Bereich Minuten oder Stunden rechnen müssen, wenn überhaupt. Also das geht hier mit dieser Logik schon sehr schnell.
01:21:21
Und man kann trotzdem noch relativ komplexe Sachen ausdrücken, also hier jetzt ein paar kleine Beispiele, was ich damit ausdrücken kann. Ich kann also den Existenzquantum verwenden. Also beispielsweise, wenn jemand Sorgen hat, dann ist das eine Subklasse von den Leuten, die eben jetzt hier Alkohol haben zum Beispiel. Oder wenn jemand verheiratet ist und gleichzeitig katholischer Priester,
01:21:41
dann ist diese Klasse, die ich damit definiere, eigentlich leer, weil prinzipiell sollte das nicht möglich sein. Oder was haben wir hier noch? German ist eine Subklasse von, man kennt jemanden mit dem Namen Angela. Kann sich denken, was damit gemeint ist. Oder ich kann auch hier rollen, Inklusion wieder beispielsweise verwenden. Also ich kann hier definieren, was hat Großeltern bedeutet,
01:22:05
nämlich als Konkatenation von zweimal hat Eltern. Also solche Sachen kann ich mit AOL2EL schon schreiben. Und das Ganze bleibt noch hier schön einfach in Polynomialzeit berechenbar. Zweite Variante, das ist das AOLQL. Das ist hervorgegangen aus ebenfalls einer Beschreibungslogik,
01:22:22
die nennt sich DL-Lite, Datalog-Lite. Und die ist eigentlich dafür da, dass man das irgendwie für sehr, sehr leicht gewichtige Ontologien verwendet, die so ein Query Answering, also Antwortanfragen, sehr, sehr einfach gestattet durch eine Übersetzung der Struktur relationaler Datenbanken und der SQL-Anfrage.
01:22:43
Also hier kann man sehr, sehr schnell entsprechend Schnittstellen bauen zwischen dem Semantic Web und von Datenbanken. Das funktioniert sehr einfach mit diesem AOL2QL. Man muss dann natürlich entsprechend wieder Regeln beachten, dass nämlich Oberklassen und Unterklassen innerhalb solcher Regeln, da sind wieder nur bestimmte Konstrukturen zu benutzen,
01:23:01
nämlich bei den Oberklassen beispielsweise darf ich nur Konjunktion nicht und Existenz verwenden und bei den Unterklassen darf ich letztendlich hier nur existenzielle Beschränkungen verwenden. Dazu sind noch erlaubte Inverse-Rollen, einfache Rollen-Hierarchien, die A-Box, wie wir sie schon aus Schreuk kennen. Und sie haben hier eine riesenlange Liste von Dingen, die nicht erlaubt sind.
01:23:22
Man kann aber trotzdem immer noch Dinge ausdrücken, wie beispielsweise hier unten kann man sagen, die Klasse der Leute, die verheiratet sind, das entspricht denjenigen Leuten, die nicht mehr frei sind und die Sorgen haben. Lassen wir die semantische Relevanz davon mal dahingestellt sein. Wichtig ist, dass man eben dort
01:23:41
dann eben sogar subpolynomiale Komplexität erreichen kann, weil das, was man damit machen kann, kann man zeigen, ist sehr nah dran an relationalen Datenbanken und damit ist das Instanz-Retrieval schon relativ schnell. Also das Ganze geht in Logspace, das heißt, das ist sehr, sehr schnell und mit nur relativ wenig Platz durchführbar.
01:24:00
Schön ist das Ganze, weil skalierbar, eben man kann Datenbank-Technologie verwenden und deshalb ist es auch kein Problem, das auf sehr, sehr große Datensätze dann anzuwenden. Und neben AOL2-EL und AOL2-QL gibt es dann noch die letzte Variante, das ist AOL2-RL, das ist die Regel oder Rule Language
01:24:21
und das basiert auf einem sogenannten Hornregelfragment von AOL2. Und da geht man eben davon aus, dass man solche Subklassenaxiome, wie wir sie kennen, mit dieser Inklusionsbeziehung, die können natürlich auch als Regel interpretiert werden. Also R ist Subklasse von S, kann interpretiert werden aus R folgt S.
01:24:40
Und dann definiert man so ein Hornregelfragment von AOL2 ebenfalls wieder über Einschränkungen, was darf in den Oberklassen stehen, was darf in den Unterklassen stehen. In den Oberklassen darf dann hier jetzt eine existenzielle Beschränkung stehen oder auch eine universelle Beschränkung und es kann auch eine qualifizierte Kardinalitätsrestriktion drinstehen, in den Unterklassen dagegen kann stehen und oder also Konjunktion, Disjunktion und existenzielle Restriktion.
01:25:04
Genauso sind erlaubt Top und Button und das einzige, was nicht erlaubt ist, sind negierte Fakten und Reflexivität. Ansonsten sind alle Airbox Features in irgendeiner Art und Weise erlaubt. Den Vorteil, den man damit hat, ist man hat immer oder ist immer noch in der polynomialen Berechenbarkeit mit drin,
01:25:21
also polynomielle Komplexität. Es ist relativ einfach zu implementieren, weil man eben die AOL-Aktionen als Regeln implementieren kann und damit hat man eben die Möglichkeit, quasi sehr, sehr einfach schon bestehende Inferenzsysteme oder regelbasierte Systeme hier in Semantik Web reinzuziehen und zu interpretieren. Das heißt, man hat hier sehr, sehr viel Wert gelegt
01:25:41
bei der Definition jetzt dieser Sprachprofile, dass man alte oder schon bestehende Anwendungen auf der einen Seite Datenbanken mit AOL-2QL oder jetzt hier schon bestehende Expertensysteme und andere regelbasierte Systeme mit AOL-2RL sehr, sehr schnell interoperabel in Semantik Web mit reinbringen kann. Also hier ist die Verwandtschaft mit diesen Regelsprachen recht groß.
01:26:02
Ein paar Beispiele dazu kann man sich noch angucken. Was kann denn jetzt AOL-2RL? Dort sieht man dann immer Dinge, die wirklich dann auch wie Regeln aussehen, weil die Regel, die dazu gehört, habe ich drunter geschrieben. Also man kann hier wieder den Großvater ganz einfach noch modellieren oder man kann hier auch einen weißen Kind sehr einfach modellieren. Man muss das Ganze dann eben als Regel oder als Hornklausel modellieren.
01:26:23
Wie Hornklauseln dann modelliert werden oder so was, das schauen wir uns das nächste Mal an, wenn das Ganze um Regeln geht. Monogram ist auch noch eine sehr schöne Sache, dass man eben nur mit einem Ehepartner hier verheiratet sein darf, der jetzt gerade auch noch am Leben ist. Können Sie sich mal angucken. Die Regel kauen wir jetzt nicht im Allgemeinen durch,
01:26:41
warum man das so macht. Das werden wir dann beim nächsten Mal noch sehen, wenn wir dann AOL-2 als regelbasierte Sprache uns anschauen beziehungsweise die Erweiterung um regelbasierte Sprachvarianten visuell uns da betrachten. Und genauso kann ich hier wieder Grandchildren natürlich definieren oder diese Rollen-Inklusionen hier mit benutzen.
01:27:01
Das sind die Einschränkungen, die in Polynomialzeit berechenbar sind, also AOL-2EL, QL und RL, wobei QL und RL auf Legacy-Anwendungen wie Datenbanken und eben hier jetzt Expertensysteme, regelbasierte Systeme irgendwie aufsetzen, also aus der Praxis gewachsen. AOL-Full hatten wir noch nicht ganz besprochen.
01:27:21
Also da geht es ja wirklich nur darum, dass sich eben jetzt hier AOL-1-Full um diese neuen AOL-2-Konstrukte, die wir gerade alle kennengelernt haben, erweitere. Das ist also eine Vereinigung von AOL-2-DL plus RDFS. Die Semantik ist größtenteils dieselbe wie bei AOL-Full, wie wir sie herkennen. Das Problem ist eben genauso wie beim ursprünglichen AOL-Full. Es gibt so gut wie keine Softwareunterstützung für hier automatische Ableitungen.
01:27:44
Und das Zweite ist die logische Konsistenz. Der Spezifikation ist immer noch offen. Man weiß also nicht, was man jetzt machen soll. Also es ist nach wie vor unentscheidbar und man hat noch nicht mal die Konsistenz irgendwie von dem Ganzen geprüft. Und man lässt es eigentlich nur, ja ich weiß eigentlich nicht, warum man es eigentlich noch tatsächlich aufrecht erhält,
01:28:01
weil man eigentlich nur relativ wenig damit arbeiten kann. Man hat es allerdings als allgemeine Modellierungssprache, wenn man RDFS-Datenbanken plus dann noch AOL miteinander verbinden möchte, natürlich noch erhalten. Was schön ist, dass man eben einige Dinge, die jetzt vormals nur in AOL-1-Full
01:28:20
irgendwie ausdrückbar sind, jetzt auch in AOL-2-DL ausdrücken kann, beispielsweise über das Panning. Das hatten wir gesehen. Zu guter Letzt noch einige Reasoner. Das sehen Sie dann in den Handouts. Also genauso wie wir Reasoner hatten zu AOL-1, gibt es jetzt auch schon eine ganze Menge Reasoner zu AOL-2 und auch natürlich für die einzelnen Sprachprofile. Das heißt, es gibt speziell sehr schnelle Reasoner für EL,
01:28:41
für RL und für QL, wobei man für QL sagen muss, im Prinzip kriegt das irgendwie jede SQL-Datenbank hin, weil das nichts anderes ist als das Beantworten von SQL-Abfragen. Nur muss man dazu, um das zu machen, eben entsprechende Umformulierungen vornehmen. Man muss natürlich die Relationale Datenbank irgendwie in AOL-2-QL formulieren und dann natürlich auch die Select-Anfrage.
01:29:01
Das geht. Wir werden uns noch sogenannte konjunktive Anfragen angucken, wie man AOL-Datenbanken irgendwie anfragen kann, weil wir kennen ja bisher nur Sparkle. Und mit Sparkle können wir Anfragen, Triple Stores hatten wir kennengelernt, also RDF können wir abfragen. Aber so komplexe Ontologien mit Sparkle-Abfragen, das geht so einfach nicht,
01:29:20
weil Sparkle ja wirklich nur auf RDF insgesamt definiert worden ist und diese ganze Semantik irgendwie nicht berücksichtigt. Aber man kann das erweitern, diese Sparkle-Semantik, indem man sie eben dann ausdehnt auf sogenannte konjunktive AOL-Abfragen. Und das ist was, das schauen wir uns das nächste Mal an, wenn wir uns anschauen, wie sieht denn jetzt noch mal eine komplette Erweiterung von AOL mit Regeln aus?
01:29:40
Wie kann ich Regeln generell, oder welcher Teil von AOL kann denn jetzt schon als Regel interpretiert werden? Und wie kann ich den denn jetzt auch mit bestehenden regelbasierten Systemen, Experten-Systemen irgendwie zusammenbringen? Und das ist dann noch Thema der nächsten Vorlesungsstunde, wenn wir uns dann Regeln angucken mit SvIRL und mit dem Resource Interchange Format.
01:30:01
Und das ist dann die letzte Vorlesung, die wir hier machen auf dem Ontologie-Level und den werden wir dann entsprechend verlassen, wenn wir Ontology Engineering in der letzten Stunde machen werden. Es ist ja folgendes passiert, die Vorlesung von Herrn Plattner hat sich ja um zwei Tage irgendwie nach vorne verschoben, deshalb wird das so aussehen, dass wir in der nächsten Woche eine Vorlesung haben,
01:30:20
nämlich genau diese hier zu den Regeln. Und die Woche drauf ist dann die Plattner-Vorlesung die Woche und die Woche drauf, das heißt dann ganz knapp vor den Ferien, am ganz am Ende ist dann noch mal ein Dienstag, an dem wir unsere letzte Vorlesung zum Thema Ontology Engineering dann haben werden. Okay, wenn Sie das Ganze heute nachlesen wollen, AOL2 ist jetzt noch nicht in dem roten Buch
01:30:42
Semantic Web Grundlagen beschrieben, sondern nur in dem ganz neuen Semantic Web Technologies oder Foundations of Semantic Web Technologies ebenfalls von fast genau den gleichen Autoren in Englisch und auch erst Anfang oder gegen März, April diesen Jahres erschienen, letzten Jahres erschienen. Ich weiß noch nicht,
01:31:00
ob es tatsächlich schon in der Bibliothek angekommen ist, müssen Sie mal gucken, aber kann man dort dann entsprechend nachlesen. Aber ich werde Ihnen in den Materialienseiten natürlich auch dann wieder sämtliche Dokumente und Arbeiten angeben, die es zu AOL2 gibt und die von uns irgendwie für belang sein sollen. Und in der Übung werden wir natürlich dazu auch noch mal ein paar Übungsaufgaben machen, damit Sie wissen, auf was Sie sich in der Klausur einstellen können.
01:31:23
Okay, das war es für heute. Vielen Dank.