Inferencing#
REDAKTION
Inferencing vs. Reasoning: mechanisches Ableiten, Ausmaterialisieren vs. menschliche Logik
In diesem Skript nur RDFS und OWL: Open World Assumption (OWA); keine Unique Name Assumption (UNA) … Das geht mit OWL und RDFS in der Theorie; Negation ist komplex und teuer; Wunsch nach Monotonie; Vorsicht vor RDF full; RDFS ist langweilig; praxistaugliche OWL2-Profile; … alternative wäre F-Logik: Kiefner 1995, Angele und Angele 2016 (?)
Zunehmend komplexere Aufgaben: Entailment = Ableitung von Beziehungen; Integrität = Identifikation von problematischen Exemplaren; Skolemisierung: Erzeugung neuer Knoten
Zustand des Textes: nur skizzenhaft, cursorisch. Verweis bzgl. Inferencing auf dedizierte andere Publikationen.
Entailment#
REDAKTION
Entailment: Ableitung, explizit machen von implizit bereits enthaltenem Wissen … keine Skolemisierung, keine neue Knoten, sondern “nur” neue Relationen – aber auch das ist schon viel … Beispiele zeigen mit Code: “im Prinzip” hier, ausführbar dann extern: vor allem auch hier Links nach draußen anlegen
ZWAR:
This specification introduces an RDF vocabulary for describing the meaningful use of properties and classes in RDF data. For example, an RDF vocabulary might describe limitations on the types of values that are appropriate for some property, or on the classes to which it makes sense to ascribe such properties. (https://www.w3.org/TR/rdf-schema/#ch_domainrange, auch https://www.w3.org/TR/rdf12-schema/#ch_domainrange)
ABER auch:
The basic facilities provided by rdfs:domain and rdfs:range do not provide any direct way to indicate property restrictions that are local to a class.(https://www.w3.org/TR/rdf12-schema/#ch_properties)
Entailment-regeln in der RDFS-Spezifikation: rdfs:domain
und rdfs:range
als Entailment-Regel … Beispiel …
unintuitive Nebenfolgen
Diskussion: Semantische Netzwerke und REL-Semantik e_rel-semantik
ggf. nur online:
Fehl-Konzeptionen mit domain und range ..
auch als Beispiel OpenWEMI? besser nur Online
RDFS entailment#
Anknüpfen an RDF (Inhalte siehe lesson-rdf12-im-detail
) … dann das “S” erklären in RDFS
legacy aus 2024, aber für unsere Zwecke geeigneter, weil stabil: https://www.w3.org/TR/rdf11-schema/
[AHG20], Chapter RDF Schema https://dl.acm.org/doi/10.1145/3382097.3382106
aktuell in Arbeit ist RDFS 1.2 https://www.w3.org/TR/rdf12-schema/
RDF Schema 1.1, W3C Recommendation 25 February 2014, https://www.w3.org/TR/rdf11-schema/
https://www.w3.org/TR/rdf11-schema/#ch_classes, insbesondere
Intension (Vorsicht: nicht Intention)), extension (Frege Abendstern)
Klasse als Instanz der eigenen Extension? Barbier-Paradox
https://www.w3.org/TR/rdf11-schema/#ch_properties, insbesondere
basic facilities
subProperty
rdfs:range, rdfs:domain
Entailment, logische Ableitung, ausmaterialisieren, implizites Wissen explizit machen:
RDF 1.1 Semantics, W3C Recommendation 25 February 2014, https://www.w3.org/TR/rdf11-mt/
9.2.1 Patterns of RDFS entailment (Informative) https://www.w3.org/TR/rdf11-mt/#patterns-of-rdfs-entailment-informative
RDF 1.1 Turtle, Terse RDF Triple Language. W3C Recommendation 25 February 2014 https://www.w3.org/TR/turtle/
BEISPIEL ONLINE
RDFS plus
Grundlagen:
[AHG20], Chapter RDFS plus https://dl.acm.org/doi/10.1145/3382097.3382107
[AHG20], Chapter Using RDFS-Plus in the wild https://dl.acm.org/doi/10.1145/3382097.3382108, vor allem bezogen auf Linked Open Government Data, z.B. data.gov, aber vor allem auch BRD und Europa
OWL Entailment#
REDAKTION
Nur die Basis (aber immerhin): Restrictions … sind keine Restriktionen, kein Integritätscheck, sondern Entailment-Regeln … OWL1 vs. OWL2; OWL DL, OWL lite, OWL2 RL … Python Inferencing Engine: owlrl
http://link.springer.com/10.1007/978-3-642-23032-5_3 | https://www.uni-ulm.de/fileadmin/website_uni_ulm/iui.inst.090/Lehre/WS_2011-2012/SemWebGrundlagen/LectureNotes.pdf
BEISPIELE ONLINE
Integrität#
REDAKTION
Integritäts-Checks: Das, was man eigentlich will … eigentlich SHACL und ShEx, aber das geht über unsere Einführung hinaus … hier ein ergänzender Ansatz: Integrität durch Entailment und Klassifikation von Exemplaren als “problematisch” … dadurch erhalten wir eine mit RDFS und OWL kompatible formale Semantik für UML-Diagramme in Specs wie insbesondere DCAT
Unser Kontext ist govdata.de, ein Verzeichnis offenener Matadaten. Die Datensätze in govdata müssen einem Schema gehorchen, nämlich DCAT-AP (im Folgenden kurz für https://www.dcat-ap.de/def/dcatde/2.0/spec/, einer Spezialisierung von DCAT2, dem Vorgänger von aktuell https://www.w3.org/TR/vocab-dcat-3/).
Wie viele andere Recommendations auch verwendet DCAT-AP Begriffe aus https://www.rfc-editor.org/rfc/rfc2119.txt, insbesondere DE-Äquivalente von MUST, MUST NOT, SHOULD, SHOULD NOT, MAY, siehe https://www.dcat-ap.de/def/dcatde/2.0/spec/#terminologie-und-definitionen:
Die Begriffe MUSS, SOLL und KANN werden in diesem Dokument entsprechend ihren in RFC2119 definierten Bedeutungen verwendet, wenn sie wie hier gezeigt durchgehend groß geschrieben wurden.
Verpflichtende Klasse: Sender MÜSSEN Informationen über Instanzen dieser Klasse zur Verfügung stellen. Empfänger MÜSSEN Informationen über Instanzen dieser Klasse verarbeiten können.
Empfohlene Klasse: Sender SOLLEN Informationen über Instanzen dieser Klasse zur Verfügung stellen. Sender MÜSSEN Informationen über Instanzen dieser Klasse zur Verfügung stellen, falls solche Informationen verfügbar sind. Empfänger MÜSSEN Informationen über Instanzen dieser Klasse verarbeiten können.
Nun ist DCAT-AP in Form eines RDF(S) Vokabular definiert. Bekanntermaßen kann man in RDF(S) keine Integrity Constraints abbilden. Diese Lücke füllt u.A. die normalsprachliche Beschreibung. Beispiel 4.3 Klasse: Datensatz:
Wir stellen fest:
“Pflicht” wird mit einer Kardinalität
[1..*]
gleichgesetzt“Empfohlen” (lauf rfc2119 synonym mit “Optional”) wird mit einer Kardinalität
[*]
gleichgesetzt
In OWL lässt sich die Kardinalität abbilden, aber das Kardinalität-Inferencing ist kompliziert und teuer. Auch spielt meines Wissens nach OWL für DCAT-AP keine Rolle.
Für DCAT-AP liegt ein Validator vor, siehe z.B. https://www.itb.ec.europa.eu/shacl/dcat-ap/upload. Der Validator überprüft die Norm-Konformität eines RDF-Datensatzes mit Hilfe der Shapes Constraint Language (SHACL). Persönlicher Kontakt mit den Maintainern von govdata.de zeigt, dass die SHACL-Regeln teils automatisch, teil händisch erzeugt und fortgeschrieben werden. Letztlich definiert ein solcher Validator die “Semantik” der rfc2119-Begriffe prozedural durch eine Referenz-Implementierung.
Fragen:
Welche weiteren Möglichkeiten gibt es, die RFC2119-Begriffe zu interpretieren?
Lässt sich sogar eine Abbildung auf eine Modallogik denken?
Welche Modallogik: epistemisch? deontisch?
Wie lassen sich solche modalen Interpretationen von RFC2119-Begriffen wieder in einer Ontologie abbilden?
Wo können wir die Fähigkeiten von OWL- oder anderen Reasonern nutzen; wo wollen wir mit SPARQL arbeiten; wo mit SHACL?
Wie passt das alles zusammen?
RFC 2119#
rfc2119>
https://www.rfc-editor.org/rfc/rfc2119
MUST This word, or the terms “REQUIRED” or “SHALL”, mean that the definition is an absolute requirement of the specification.
MUST NOT This phrase, or the phrase “SHALL NOT”, mean that the definition is an absolute prohibition of the specification.
SHOULD This word, or the adjective “RECOMMENDED”, mean that there may exist valid reasons in particular circumstances to ignore a particular item, but the full implications must be understood and carefully weighed before choosing a different course.
SHOULD NOT This phrase, or the phrase “NOT RECOMMENDED” mean that there may exist valid reasons in particular circumstances when the particular behavior is acceptable or even useful, but the full implications should be understood and the case carefully weighed before implementing any behavior described with this label.
MAY This word, or the adjective “OPTIONAL”, mean that an item is truly optional. […]
Modallogik#
Umgangssprache … verboten - erlaubt - geboten … intuitiv könnte man drei “Modi” in einer Reihe anordnen: verboten - erlaubt - geboten. … Jeder dieser 3 Modi kann man syntaktisch mit einer Negation versehen werden: nicht {geboten|erlaubt|verboten}; und auch jeweils die Handlung. Damit sind Sätze möglich wie:
g(h): Es ist geboten zu helfen
¬g(h): Es ist nicht geboten zu helfen
g(¬h): Es ist geboten nicht zu helfen
¬g(¬h): Es ist nicht geboten nicht zu helfen
Schöne fachliche Einführung für Menschen mit formalwissenschaftichem Hintergrund: [Gar14] https://plato.stanford.edu/archives/win2014/entries/logic-modal/ … auch [Joe10] (S.210), leicht modifiziert in https://scilogs.spektrum.de/die-natur-der-naturwissenschaft/erweiterungen-der-aussagenlogik/ …
Ergebnis: (a) in der Welt von sollen, werden, wissen haben wir die Wahl zwischen verschiedenen Glasperlenspielen; (b) fast überall verbergen sich unintuitive Stolperfallen; (c) für unsere Zwecke zu komplex!
In addition to the TDS, it was traditionally assumed that the following, call it “The Traditional Threefold Classification (TTC)” holds: […] three boxes containg respectively the words Obligatory, Optional, and Impermissible. Obligatory and Optional are braced as Permissible; Obligatory and Impermissible are braced as Non-Optional, and Optional and Impermissilbe are braced as Omissible. (<TDS aus https://plato.stanford.edu/entries/logic-deontic/)
ABBILDUNG
Ergebnis: (a) in der Welt von sollen, werden, wissen haben wir die Wahl zwischen verschiedenen Glasperlenspielen; (b) fast überall verbergen sich unintuitive Stolperfallen; (c) für unsere Zwecke zu komplex!
rfc2119 in GenDifS#
Interpretation von rfc2119 zur Implementierung von Integritätsregeln in GenDifS (Text 2024-09-20).
Beispiel. Wir nehmen an, dass wir als Arbeitgeber in einem Bewerbungsverfahren die Klasse “Person” modellieren wollen. Ein Kollege legt in seiner Excel-Tabelle folgende Spalten an:
Person:
Berufsabschluss
SteuerID
Vorstrafen
sexuelle Orientierung
Interpretation:
Der Berufsabschluss ist ganz klar ein MUST im Sinne von rfc2119: Ohne einen passenden Berufsabschluss ist ein Bewerbungsverfahren schwierig.
Die SteuerID ist ein SHOULD: Wenn es eine solche gibt, muss sie aus Steuergründen mit aufgenommen werden. Wenn wir sie nicht kennen oder erst nachträglich beantragen können, können wir vorläufig einen Dummy-Wert eintragen: Entweder eine Markierung für “unbekannt”, oder einen ad-hoc generierten eindeutigen Wert, den man später dann auf die tatsächliche SteuerID mappen kann.
Ein rfc2119-SHOULD NOT ist die Frage nach Vorstrafen: Im allgemeinen ist sie verboten, aber gibt Ausnahmen:
[…] wenn eine Information wesentlich ist für die ausgeschriebene Tätigkeit, dann ist auch eine standardmäßig verbotene Frage möglicherweise erlaubt. So kann für Positionen mit Budgetverantwortung die Frage nach Verurteilungen wegen Betrug, Unterschlagung oder Veruntreuung und ähnliche Straftaten zulässig sein – aber nicht die pauschale Frage nach Vorstrafen. (https://www.agrobrain.de/news/rund-um-die-bewerbung/verbotene-fragen-und-deren-ausnahmen-im-vorstellungsgespraech)
Ein klares rfc2119-MUST NOT wäre die Frage nach der sexuellen Orientierung, denn die Persönlichkeitsrechte der Person verbieten diese Information.
Im folgenden eine Skizze, wie rfc2119 in GenDifS interpretiert werden könnte:
MUST, REQUIRED, SHALL#
an absolute requirement of the specification.
GenDifS, normativ: Wenn das Item fehlt, ist der Record fehlerhaft
eine Reperatur ist nicht möglich
auch Default-Werte sind nicht zulässig
Was tun, wenn der Typ nicht stimmt?
beim nur einzigen Item: Fehler!
bei mehreren Items: Mindestens eines muss stimmen; denn wegen der OWA können wir nicht ausschließen, dass es irgendwo anders noch andere Werte gibt, und das schon gar nicht überprüfen.
SHOULD, RECOMMENDED#
there may exist valid reasons in particular circumstances to ignore a particular item, but the full implications must be understood and carefully weighed before choosing a different course.
GenDifS: * Der Record ist im Prinzip ok, aber der Wert fehlt. * Wir wollen explizit anzeigen, dass es einen Wert gibt, uns dieser aber unbekannt ist fehlt : pandas.NA, np.nan, None, * in RDF eine BlankNode * ist ggf. getypt! * z.B. Geburtsdatum bei meinem Optiker: Wert für NA ist der 1.1.2000 * siehe auch https://www.w3.org/2011/rdf-wg/wiki/Skolemisation, SKOLEM IRI
MAY, OPTIONAL#
One vendor may choose to include the item because a particular marketplace requires it or because the vendor feels that it enhances the product while another vendor may omit the same item.
An implementation which does not include a particular option MUST be prepared to interoperate with another implementation which does include the option, though perhaps with reduced functionality.
In the same vein an implementation which does include a particular option MUST be prepared to interoperate with another implementation which does not include the option (except, of course, for the feature the option provides.)
GenDifS:
Wenn ein Item als OPTIONAL markiert wird reklamieren wir, dass es für uns eine bestimmte Bedeutung hat
Mitteilung an den Leser (allgemein: an Downstream Agenten), dass wir hier einen Controlled Term haben;
SHOULD NOT, NOT RECOMMENDED#
there may exist valid reasons in particular circumstances when the particular behavior is acceptable or even useful, but the full implications should be understood and the case carefully weighed before implementing any behavior described with this label.
În GenDifS eine mögliche Interpretation am obigen Beispiel Bewerbung: Ein Wert – z.B. eine Vorstrafe – ist explizit gegeben und für eine Anwendung relevant, darf aber nur unter besonderen Bedingungen verwendet, von Bearbeitern eingesehen etc. werden … mögliche Lösung: Ersetzen des expliziten Wertes
durch einen Wert ohne “intrinsic name” (https://www.w3.org/2011/rdf-wg/wiki/Skolemisation), der in einer separaten Tabelle allerdings 1:1 auf den expliziten Wert abgebildet werden kann; in RDF ist das insbesondere eine blank node.
durch einen wirklich anonymen Singleton-Wert wie z.B. NA
MUST NOT, SHALL NOT#
an absolute prohibition of the specification.
GenDifS:
GenDifS, normativ: Wenn das Item vorkommt, ist der Record fehlerhaft