Hilfe für IBM i Befehle Teil 2

27. Juni 2019 | Von | Kategorie: Wissenschaft und Forschung

Diese Serie soll am Beispiel von Befehlen der IBM i die Möglichkeiten zur Nutzung und zur individuellen Erweiterung von semantischen Analysen zeigen. Gerade im Hinblick auf den Wechsel zu IBM ACS und IBM RDi als Werkzeuge für die Administration und die Entwicklung mit der Verlagerung von Quellen ins IFS hat dies eine besondere Bedeutung in Bezug auf die Abhängigkeiten und die Aktualität: „Passt die angezeigte ­Information im Client zum benutzten IBM i System?“
.

Manfred Sielhorst, Benjamin Walter

Nicht nur die singuläre Analyse eines einzelnen Befehls im Terminal, sondern auch die komplexe Auswertung einer gesamten IBM i Infrastruktur mit allen Kundenanpassungen und Erweiterungen, ist eines der Ziele der semantischen Analyse im Semantic Data Store

© tom-kirchgaessner.de und Jason Leung

Inhaltsverzeichnis dieses Artikels

Hilfe für IBM i Befehle

Teil 2 – Wissen für Computer nutzbar machen – Grundlagen für semantische Auswertungen
Die Bedeutung von Wissen
Geschichtliche Wissensrepräsentation
Formale Wissensrepräsentation
Wissensrepräsentation mit der Web Ontology Language 2 (OWL2)
Das Ressource Description Framework (RDF) RDF als Serialisierung der OWL2
SPARQL
Semantische Anfragen mit SPARQL
Fazit
Ausblick
Literatur
Autoren

Teil 2 – Grundlagen für semantische Auswertungen

Die Bedeutung von Wissen

Im Zeitalter der immer rasanter fortschreitenden Technologien ist Wissen zum zentralen Baustein ­geworden. Menschen erwerben im Laufe ihres Lebens ein umfangreiches Wissen, das mit jeder neuen Erfahrung fortwährend ausgebaut wird.

Ein breites Wissen ermöglicht es den Menschen, sich auf einzelne Aufgaben zu spezialisieren. Aber Wissen ist eine flüchtige Ressource, die verloren geht, wenn Sie nicht gezielt weiter vermittelt wird. In der heutigen Gesellschaft ist Wissen für die Menschen aus vielen Quellen zugänglich und oftmals ertrinkt der einzelne an der Flut der Informationen.

Die großen Suchmaschinen haben dies früh erkannt und ein eigenes Geschäftsmodell daraus generiert, ­Informationen aufzufinden.

Nachfolgend wird die Entwicklung ausgeführt, ­Informationen nicht nur zu speichern, sondern die ­Bedeutung und die Zusammenhänge, also das Wissen für Computer nutzbar zu machen.

Geschichtliche Wissensrepräsentation

Wie eingangs erwähnt ist Wissen eine flüchtige Ressource, die hauptsächlich in den Köpfen der Menschen existiert. Früh ist damit die Idee verbunden Wissen zu sichern, sei es in Wort oder in Schrift, durch mündliche Überlieferung, auf Papyrus, Papier oder neuzeitlich ­digital.

Der Begriff der Ontologie findet erstmals im 17. Jahrhundert Verwendung und wird dann von verschiedenen Autoren aufgegriffen. Er stammt von griechischen „ontologia“ was so viel bedeutet wie „die Lehre vom Sein“.

Erste Schriften zum Thema „Über das Sein“ aus der Zeit um 520-460 v.Chr. gehen auf das Werk von ­Parmenides zurück.

Im Grunde beschäftigten sich diese Diskurse immer mit der Klassifizierung der Welt der Gegenstände und ihren Relationen. Es handelt sich um den Versuch, die Welt und Ihre Beziehungen in Worte zu fassen. Daraus hat sich im Laufe des 20ten Jahrhunderts eine fachübergreifende Disziplin entwickelt, auch Knowledge-Engineering genannt.

Das Themenfeld des Knowledge-Engineering befasst sich mit den Vorgehensweisen und dem Vokabular, wie Wissen zielführend aufgearbeitet und nutzbar gemacht werden kann. Das Knowledge-Engineering spielt eine maßgebliche Rolle für die Arbeit mit Wissen in der ­Informatik.

Formale Wissensrepräsentation

Nicht nur beschränkt auf die Informatik gibt es in den letzten Jahren wieder verstärkt Bemühungen, Wissen für Computer nutzbar zu machen. Allen gemein ist die Klassifizierung und Beschreibung eines Sachverhaltes und dessen Relationen, folglich die Definition einer Ontologie.

In der Informatik wird der Begriff der Ontologie maßgeblich von T. R. Gruber: „An ontology is a formal explicit specification of a shared conceptualization” [4] und M. Uschold, M. Gruninger: „An ontology is a shared understanding of some domain of interest.” [5] eingeordnet.

Diese Definitionen zielen bereits auf eine durch Computer gestützte Verarbeitung des Wissens ab. ­Zusammenfassend hat sich die Definition nach Gruber mit zusätzlichen Einschränkungen etabliert [6]:

„An ontology
is an explicit, formal specification
of a shared conceptualization
of a domain of interest.“

Mit der Einschränkung formal wird auf Maschinen Lesbarkeit abzielt und damit explizit natürliche Sprache ausgeschlossen und mit shared, wird verdeutlicht, dass es sich um Wissen aus einem Konsens und nicht um das private Wissen einer einzelnen Person handelt.

Die Einschränkung domain of interest verdeutlicht darüber hinaus den Geltungsbereich einer Ontologie. Es ist dabei nicht mehr das Ziel, eine allumfassende Weltanschauung zu formulieren, sondern sich auf eine definierte Domäne zu beschränken [6, Seite 12].

Eine Ontologie ermöglicht es, Wissen in ­einem ­maschinenlesbaren und verarbeitbaren Format ­abzulegen.

Im Kontext der IBM i Infrastruktur bieten Ontolo­gien die Möglichkeit, das zugrunde liegende Wissen zum System oder zu einer Anwendung auf dem System zu formulieren und durch Computer nutzbar zu machen.

Aus der Natur des Wissens resultiert dabei jedoch eine Reihe an technischen Herausforderungen. Zum einen bedarf es der Extraktion des Wissens, zum anderen der Speicherung. Aus vielen unterschiedlichen Quellen entstehen dabei Mehrdeutigkeiten (Homonyme), wie etwa das Wort „Bank“ unterschiedliche Bedeutungen haben kann, Bedeutungsgleichheiten (Synonyme), ­Begriffe die unterschiedlich sind, aber das gleiche Aussagen, und Abkürzungen (Akronyme), wie in der Informatik weit verbreitet, zum Beispiel das BIOS für „Basic Input Output System“ oder TIMI für das „Technology ­Independant Machine Interface“.

Diese gilt es für die praktische Umsetzung zu berücksichtigen. Dazu wurden in der Informatik verschiedene Sprachen zur Repräsentation von Wissen erfunden. Die bekanntesten Vertreter sind Frame Logic (F-Logic) [10], die Web Ontology Language (OWL) [12] und DAML+OIL, basierend auf der DARPA Agent Markup Language (DAML) und dem Ontology Inference Layer (OIL) [11].

Im weiteren Verlauf wird die weit verbreiteten ­Web Ontology Language 2 (OWL2) zur ­­Wissens­­repräsentation genutzt.

Wissensrepräsentation mit OWL2

Die Web Ontology Language 2 (OWL2) stammt vom W3C Konsortium und stellt ein zentrales Vokabular zur Darstellung von Klassen/Konzepten und deren Rela­tionen zur Verfügung. Es findet somit eine Beschreibung auf Schema-Ebene statt, welche durch deren ­Instanzen referenziert und mit Daten gefüllt wird. Beide Ebenen zusammen bilden die Ontologie.

Klassen werden durch owl:Class ­bezeichnet. Beziehungen zwischen Klassen werden als owl:ObjectProperty und Beziehungen zwischen Klassen und Werten werden als owl:DataProperty ­bezeichnet.

Die OWL2 bietet bei Beziehungen zusätzliche Möglichkeiten zur Auszeichnung der Beziehung. Die Berücksichtigung von Mengenangaben, die Quantifizierung, sind ebenso ein Teil der OWL2 wie die ­Eingrenzungen von Klassen (rdfs:subClassOf) und die Bildung von Äquivalenzklassen (owl:sameAs).

Damit ist es möglich Homonyme, Synonyme und Akronyme darzustellen und voneinander abzugrenzen [7].

Abb. 1: Grundelemente der IBM i Ontology

Am Beispiel der IBM i können Bibliotheken ­(Library), Objekte (Object) und Befehle (Command) wie folgt in der OWL als Klassen abgebildet werden.

Befehle und Bibliotheken sind spezielle Ausprägungen von Objekten (Subclass of).

Objekte sind zudem Teil von Bibliotheken (­memberOf). Folglich sind auch Befehle Teil von ­Bibliotheken.

In der funktionalen Schreibweise der OWL werden diese Beziehungen wie folgt als die Klassen Object, Library und Command beschrieben:

Declaration( Class( ibmi:Object ) ) 
Declaration( Class( ibmi:Library ) ) 
Declaration( Class( ibmi:Command ) )

Die Beziehung memberOf als eine Beziehung zwischen Klassen (ObjectProperty):

Declaration( ObjectProperty( ibmi:memberOf  ) )

Zusätzlich die Einschränkung, dass die Beziehung memberOf nur von Objekten (Domain) auf Bibliotheken (Range) zeigen kann:

ObjectPropertyRange( ibmi:memberOf ibmi:Library ) 
ObjectPropertyDomain( ibmi:memberOf ibmi:Object )

Weitere Eigenschaften mit den Einschränkungen der Klassen, auf die sie sich beziehen:

Declaration( DataProperty( ibmi:name ) ) 
DataPropertyRange( ibmi:name ibmi:Object ) 

Declaration( DataProperty( ibmi:description ) ) 
DataPropertyRange( ibmi:description ibmi:Object ) 

Declaration( DataProperty( ibmi:type ) ) 
DataPropertyRange( ibmi:type ibmi:Object ) 

Declaration( DataProperty( ibmi:creator ) ) 
DataPropertyRange( ibmi:creator ibmi:Command ) 

SubClassOf( ibmi:Library ibmi:Object ) 
SubClassOf( ibmi:Command ibmi:Object )

RDF als Serialisierung der OWL2

Mit der OWL2 ist es möglich komplexe Sachverhalte abzubilden. Um diese Sachverhalte für Anwendungen zugänglich zu machen, kann die OWL2 mit der ­Hilfe des Ressource Description Frameworks (RDF) [8] ­abgelegt werden.
RDF ist ein spezielles XML basiertes Format in dem Aussagen in der Form von Tripeln formuliert werden, eben durch formale Definitionen von „Subjekt Prädikat Objekt“. Die Aussagen werden Tripel genannt. Die ­Tripel werden im Kontext von RDF und von Ontologien als Fakten bezeichnet.

rdf:Statement the class of RDF statements 
rdf:subject [rdf:Statement → rdfs:Resource] 
rdf:predicate [rdf:Statement → rdfs:Resource] 
rdf:object [rdf:Statement → rdfs:Resource]

Als Beispiel für ein solches Tripel im Kontext einer Ontologie dient die folgende Aussage:

Declaration( Class( ibmi:Library ) )

Diese kann im übertragenen Sinne wie folgt als ­Tripel ausgedrückt werden:

Bibliothek ist Eine Klasse

Oder mit der Abkürzung ‚a‘ für

ibmi:Library a owl:Class

Damit wird in RDF der Fakt geschaffen, dass eine Bibliothek eine Klasse der Ontologie ist.

RDF erzwingt kein festes Schema, sondern ermöglicht es, Daten deskriptiv an beliebiger Stelle hinzuzufügen. Eine Ontologie dient als Orientierung und ­Referenz für die Daten, ist aber nicht bindend.
Alle Aussagen die mit der OWL formuliert werden, können mit RDF serialisiert und abgelegt werden. Hierzu das gleiche Beispiel in der RDF Darstellung:

<?xml version="1.0" encoding="utf-8"?> 
<rdf:RDF xmlns:rdf = 
"http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
xmlns:rdfs = 
"http://www.3.org/2000/01/rdf-schema#" 
xmlns:owl = "http://www.w3.org/2002/07/owl#" 

<owl:Ontology rdf:about="http://semantic- 
data-store.de/resource/sds/"> 
:: 
</owl:Ontology> 
<owl:Class rdf:ID="http://semantic-data- 
store.de/resource/sds/Library"> 
:: 
</owl:Class> 
</rdf:RDF>

Damit die Ontologie für Computer und Benutzer zugänglich wird, werden die Aussagen in einem sogenannten Triple-Data-Store (TDS) gespeichert. Mit der Abfragesprache SPARQL wird ein strukturiertes ­Abfragen der RDF Daten unterstützt.
Aus den Tripeln von RDF wird in Tripel-Data-Stores keine klassische Tabellenstruktur, sondern ein ­gerichteter Graph gebildet. In diesem Graph können simultan die Schemabeschreibung durch die Ontologie, sowie die Daten selbst zur Nutzung zur Verfügung stehen (vgl. [1]).

Damit sind die Schemainformationen aktiver ­Bestandteil der Daten und können analog als solche abgefragt und genutzt werden.
Diese Abfragen finden mit der für Tripel optimierten Abfragesprache SPARQL statt [9].

In diesem Kontext ist es für Benutzer möglich, sich explorativ durch Daten zu bewegen und selbstständig für individuelle Analysen in der Struktur des Graphen aktiv zu werden. Abfragen können somit sowohl das Schema als auch die Instanzen der Daten betreffen.

SPARQL

Die Bezeichnung ist ein rekursives Akronym, „SPARQL Protocol And RDF Query Language“. Der Aufbau von SPARQL Abfragen strukturiert sich über eine XML-Spezifikation [8]. Grundlegende Sprachelemente sind folgende Gruppen von Schlüsselwörtern:

Grundstruktur: 
PREFIX WHERE 

Ausgabeformate: Modifikatoren: 
SELECT ORDER BY 
CONSTRUCT LIMIT 
ASK OFFSET 
DESCRIBE DISTINCT 

Filter: 
BOUND isURI isBLANK 
isLITERAL STR LANG 
DATATYPE sameTERM langMATCHES 
REGEX

Es werden die folgenden Datentypen (rdfs:Datatype) nativ unterstützt:

xsd:decimal xsd:double xsd:float 
xsd:int xsd:integer xsd:long xsd:short 
xsd:negativeInteger xsd:positiveInteger 
xsd:nonPositiveInteger xsd:nonNegativeInteger 
xsd:unsignedLong xsd:unsignedInt 
xsd:unsignedShort xsd:anyURI 
xsd:base64Binary xsd:boolean 
xsd:byte xsd:hexBinary 
xsd:unsignedByte xsd:date 
xsd:dateTime xsd:time 
xsd:gYearMonth xsd:gYear 
xsd:gMonthDay xsd:gDay 
xsd:gMonth xsd:string 
xsd:normalizedString xsd:token 
xsd:language xsd:NMTOKEN 
xsd:Name xsd:NCName

Diese Sprachelemente finden in den Konstrukten Verwendung, mit denen die Tripel definiert werden:

rdfs:Resource 
rdf:type → rdfs:Class 
rdfs:label → rdfs:Literal 
rdfs:comment → rdfs:Literal 
rdfs:seeAlso → rdfs:Resource 
rdfs:isDefinedBy → rdfs:Resource 
rdf:value → rdfs:Resource 
rdfs:Literal 
rdf:XMLLiteral 
rdfs:Class 
rdfs:subClassOf → rdfs:Class 
rdf:Property 
rdfs:subPropertyOf → rdf:Property 
rdfs:domain → rdfs:Class 
rdfs:range → rdfs:Class 
rdfs:Container 
rdfs:member → rdfs:Resrouce 
rdf:_1, rdf:_2,... → sub-properties of 
rdfs:member 

rdf:Alt container of altern. 
rdf:Bag unordered container 
rdf:Seq ordered container 
rdfs:ContainerMembershipProperty 
all sub-prop's of 
rdfs:member 

rdf:List 
rdf:first → rdfs:Resource 
rdf:rest → rdf:List 

rdf:nil → rdf:List,empty List

Die Namen der Variablen werden durch ‚?‘ oder ‚$‘ gekennzeichnet, wobei ‚?name‘ zu ‚$name‘ ­dieselbe ­Bedeutung besitzt und ein Triple wie ein Satz mit ­einem ‚.‘ abgeschlossen wird.

Semantische Anfragen mit SPARQL

Mit Hilfe der Ontologie ist es für einen Benutzer ein Leichtes, gezielte Anfragen mit SPARQL zu stellen. Die Abb. 1 hat die Struktur der Daten bereits übersichtlich dargestellt.

Will ein Benutzer zum Beispiel wissen, in welcher Bibliothek welcher Befehl liegt, so kann er folgende SPARQL Anfragen aus der Darstellung der Ontologie herleiten:

SELECT ?libName ?cmdName { 
# Beziehe Objekte vom Typ Bibliothek ein 
?lib a ibmi:Library. 

# Hole den Bibliotheksnamen als Variable 
?lib ibmi:name ?libName. 
# Beziehe Objekte vom Typ Befehle ein 
?cmd a ibmi:Command. 

# Hole den Befehlsnamen als Variable 
?cmd ibmi:name ?cmdName. 

# Filtere alle Befehle die mit ‘WRK’ begin 
nen 
FILTER STRSTARTS(?cmdName, ‘WRK’). 

# Filtere alle Befehle deren Namenslänge größer 3 und kleiner 8 ist 
FILTER (STRLEN(?cmdName) > 3 && STRLEN(?cmdName) < 8) 

# Verknüpfe die beiden Teile der Anfrage 
?cmd ibmi:memberOf ?lib. 
} 
# Sortiere absteigend zuerst nach Biblio theksname und dann nach Befehlsname 
ORDER BY DESC(?libName) DESC(?cmdName) 
# Beschränke das Ergebnis auf die ersten 10 
LIMIT 10

Wir wählen aus 2271 Befehlen, 234 beginnend mit ‚WRK‘, 71 der passenden Länge mit 4-7 Zeichen die Top10.

Das Ergebnis kann wie folgt exemplarisch als Tabelle dargestellt werden:

?libName ?cmdName 
QSYS WRKALR 
QSYS WRKALRD 
QSYS WRKAUT 
QSYS WRKAUTL 
QSYS WRKCFGL 
QSYS WRKCLS 
QSYS WRKCLU 
QSYS WRKCMD 
QSYS WRKCNNL 
QSYS WRKCOSD

Fazit

Mit der Beschreibung von Ontologien durch die OWL und den Möglichkeiten der Persistierung mit RDF und der Abfragesprache SPARQL ist es möglich, das Wissen formal besser nutzbar zu machen.
Einfache visuelle Darstellungen helfen den Benutzern bei komplexen Herausforderungen, die Übersicht über die Datenstrukturen zu behalten und daraus die Abfragen selbstständig abzuleiten.

Ausblick

Im 3. Teil wird die Analyse beschrieben, wie man zu detailliertem Wissen für die Befehle der IBM i gelangt und dieses formal beschreibt.
In Teil 4 können Sie lesen wie Befehle, die „CMD“ als Teil des Namens tragen (mit Bezug zu einem Objekttyp oder einer Aktion), abgefragt werden.
Die nächsten Folgen werden das Vorgehen detailliert beschreiben, so dass Sie am Ende in der Lage sein werden, eigene semantische Analysen mit dem Semantic Data Store auszuführen:

Über die Autoren

Manfred Sielhorst

Autor Manfred Sielhorst

Geschäftsführer der Sielhorst iT Beratung UG und Lehrbeauftragter der Hochschule Darmstadt im Fachbereich Informatik.

Benjamin Walter

Autor Benjamin Walter

Dualer Masterstudent an der Hochschule Darmstdt und seit 2013 bei der managetopia GmbH, Aschaffenburg.

Artikel dieser Serie:

Hilfe für IBM i Befehle

1. Teil 1 — Vom Terminal zu modernen Client-Umgebungen
• Wissen und Semantik
• Befehle in der IBM i Infrastruktur
• Exemplarische Suche von Befehlen
• Informationen zu Objekten und Befehlen suchen
• Einsatz in Client Werkzeugen

2. Grundlagen zu semantischen Auswertungen
Diesen Artikel lesen Sie gerade.

3. Analyse von IBM i Befehlen
• N-Gram Analyse von Befehlen
• Klassifizierung, Gruppen von Befehlen

4. Semantische Analysen zu IBM i Befehlen
• Modellierung einer Ontologie
• Abfragen erstellen

5. Semantic Data Store (SDS)
• Individuelle Auswertungen
• Lösung von Aufgaben

Literatur

[1] B. Walter, „Modellierung eines Schemas zur Erfassung von Metadaten mit der Web Ontology Language 2”, Bachelor Thesis, Hochschule Darmstadt, Darmstadt, Germany, März 2017.

[4] T. R. Gruber, „An ontology is a formal explicit specification of a shared conceptualization”

[5] M. Uschold, M. Gruninger, „An ontology is a shared under-standing of some domain of interest.”

[6] M. Ehrig, „Ontology Alignment: Bridging the Semantic Gap”, vol. 4 of Semantic Web and Beyond: Computing for Human Experience. Springer, 2007.

[7] https://www.w3.org/TR/2012/REC-owl2-rdf-based-semantics-20121211/

[8] F. Gandon and G. Schreiber, „RDF 1.1 XML syntax,” W3C recommendation, W3C, Feb. 2014. http://www.w3.org/TR/2014/RECrdf-syntax-grammar-20140225/.

[9] A. Seaborne and S. Harris, „SPARQL 1.1 query language,” W3C recommendation, W3C, Mar. 2013. http://www.w3.org/TR/2013/REC-sparql11-query-20130321/.

[10] M.Kifer, G.Lausen, and J.Wu. „Logical foundations of object-oriented and frame-based languages“. Journal of the ACM, 42(4):741-843, 1995

[11] D.Connolly, F.van Harmelen, I.Horrocks, D.L.McGuinness, P.F.Patel-Schneider and L.Andrea Stein ”DAML+OIL (March 2001) Reference Description,” W3C recommendation, W3C, Dec. 2011. https://www.w3.org/TR/daml+oil-reference.

[12] B. Motik, P.F. Patel-Schneider and B.Parsia ”OWL 2 Web Ontology Language Structural Specification and Functional-Style Syntax (Second Edition) ,” W3C recommendation, W3C, Dec. 2012. https://www.w3.org/TR/2012/REC-owl2-syntax-20121211/.

Schlagworte: , , , , , , , , ,

Schreibe einen Kommentar

Sie müssen eingeloggt sein, um einen Kommentar schreiben.