6 SWI-Prolog/XPCE Semantic Web Library. Datenbasis ändern. Module rdf db. Dokumentation: http://www.swi-prolog.org/packages/semweb.html Tool: triple20



Ähnliche Dokumente
RDF Containers. Häufig möchte man eine Gruppe von Dingen beschreiben. Hierfür stellt RDF ein Container-Vokabular zur Verfügung.

Massenversand Dorfstrasse 143 CH Kilchberg Telefon 01 / Telefax 01 / info@hp-engineering.com

PDF-Dateien erstellen mit edocprinter PDF Pro

Datenexport aus JS - Software

Word 2010 Schnellbausteine

PayPal Plus Benutzerhandbuch

Hilfe zu XR PACS ImageproWeb. Inhalt. Windows Updates. IE11 und Windows 7/8

RDF RESOURCE DESCRIPTION FRAMEWORK. Referentin: Claudia Langer

MARCANT - File Delivery System

teamsync Kurzanleitung

BEDIENUNGSANLEITUNG: EINREICH-TOOL

Leitfaden zur Moduleinschreibung

Datenbanken Kapitel 2

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

QTrade GmbH Landshuter Allee München Seite 1

AutoTexte und AutoKorrektur unter Outlook verwenden

Systemvoraussetzung < zurück weiter >

Anleitung zum LPI ATP Portal

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Pflegeberichtseintrag erfassen. Inhalt. Frage: Antwort: 1. Voraussetzungen. Wie können (Pflege-) Berichtseinträge mit Vivendi Mobil erfasst werden?

1) Farbsteuergerät in der Nikobus-Software unter Modul zufügen hinzufügen.

Installation OMNIKEY 3121 USB

CMS.R. Bedienungsanleitung. Modul Cron. Copyright CMS.R Revision 1

LuVHS. Version: ARONET GmbH Alle Rechte vorbehalten.

Bedienungsanleitung: Onlineverifizierung von qualifiziert signierten PDF-Dateien

Lokales Netzwerk Wie kann ich lokal installierte Drucker im Netzwerk für andere Nutzer freigeben? Frage:

Whitepaper. Produkt: combit Relationship Manager 7. combit Relationship Manager -rückläufer Script. combit GmbH Untere Laube Konstanz

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

DELFI. Benutzeranleitung Dateiversand für unsere Kunden. Grontmij GmbH. Postfach Bremen. Friedrich-Mißler-Straße Bremen

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Schnellanleitung: Verbuchung von Studien- und Prüfungsleistungen

Kontakte Dorfstrasse 143 CH Kilchberg Telefon 01 / Telefax 01 / info@hp-engineering.com

Hyperlink-Erstellung in InDesign für

Software-Engineering 2. Übungen zur Wiederholung. IT works. Metris GmbH

MdtTax Programm. Programm Dokumentation. Datenbank Schnittstelle. Das Hauptmenü. Die Bedienung des Programms geht über das Hauptmenü.

BOKUbox. Zentraler Informatikdienst (ZID/BOKU-IT) Inhaltsverzeichnis

Um die Rücklagen ordnungsgemäß zu verbuchen, ist es wichtig, Schritt-für-Schritt vorzugehen:

bla bla OX App Suite Kalender und Kontakte synchronisieren mit CalDAV und CardDAV

Hilfe zur Konfiguration der Software Smart-eShop & Smart-Admin-Bereich

Barcodedatei importieren

Lehrer: Einschreibemethoden

INSIEME als Nachfolger einrichten

Leitfaden für die OB10 IG Rechnungseinreichung

1CONFIGURATION MANAGEMENT

7.3 Einrichtung 13. Monatslohn. Auszahlung Ende Jahr / Ende der Beschäftigung

Anzeige von eingescannten Rechnungen

XML-Austauschformat für Sicherheitsdatenblätter

FH-SY Chapter Version 3 - FH-SY.NET - FAQ -

Eingangsseite Umwelt-online

How to do? Projekte - Zeiterfassung

Erstellen von x-y-diagrammen in OpenOffice.calc

1 BEDIENUNGSANLEITUNG

Anleitung über den Umgang mit Schildern

Das Modul Hilfsmittel ermöglicht den Anwender die Verwaltung der internen Nachrichten, Notizen, Kontakte, Aufgaben und Termine.

cardetektiv.de GmbH Kurzanleitung Version 4.0 Software Cardetektiv Zukauf, Preisfindung, Marktanalyse Autor Christian Müller

BlueEvidence Services in Elexis

Anmelden und Vorträge einreichen auf der JBFOne-Website Inhalt

Word-Vorlagen-System mit Outlookanbindung

Bedienungsanleitung für Mitglieder von Oberstdorf Aktiv e.v. zur Verwaltung Ihres Benutzeraccounts auf

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

Quick XMP Ü bertaktungseinstellungen

Der Kundenmanager. Der Kundenmanager der Firma AED-SICAD ist ein Bestandteil des Web Order System (WOS) und unterscheidet zwischen folgenden Kunden:

xgu 2.0 Installationsanleitung Installationsanleitung Excel Add-In zu ASTAG GU Kalkulationsgrundlage Bern, 19. August 2014 Version: 01.

Umwandeln und Exportieren von Adobe-Illustrator-Dateien in Illustrator für Artcut

StudyDeal Accounts auf

Nikon Message Center

... MathML XHTML RDF

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook ( ) Zentrum für Datenverarbeitung der Universität Tübingen

GS-Buchhalter/GS-Office 2015 Saldovorträge in folgenden Wirtschaftsjahren erfassen

Die Statistiken von SiMedia

Inhaltverzeichnis 1 Einführung Zugang zu den Unifr Servern Zugang zu den Druckern Nützliche Links... 6

Process4.biz Release Features Übersicht. Repository. Das Schützen von Diagrammen wurde optimiert (check-in, check-out)

Auktionen erstellen und verwalten mit dem GV Büro System und der Justiz Auktion

CampusNet Webportal SRH Heidelberg

Anwendertreffen 20./21. Juni

Webseiten mit fragwürdigen Aufrufen von "spy & track" - Unternehmen

Verknüpfte Daten abfragen mit SPARQL. Thomas Tikwinski, W3C.DE/AT

Anleitung zu htp Mail Business htp WebMail Teamfunktionen

Password Depot für ios

Gezielt über Folien hinweg springen

Anlegen einer neuen Newsmeldung

ASA Schnittstelle zu Endian Firewall Hotspot aktivieren. Konfiguration ASA jhotel

Tracking-Beispiele. Inhalt: Standard Tracking / Cookie Tracking Anchor-Tracking Direct Tracking Referer Tracking Tracking von Produkt-Feeds

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

Vorgehensweise bei Lastschriftverfahren

Quickreferenz V1.1. Frank Naumann

Dokumentation. Black- und Whitelists. Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser

Datenabgleich. Meine Welt auf einen Blick erleben.

Parkraumverwaltung. Im Hauptmenü anklicken: Fuhrparkmanagement. Copyright by rw data 2012 Bedienungsanleitung Parkraumverwaltung Seite 1 von 13

Webalizer HOWTO. Stand:

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

TECHNISCHE DOKUMENTATION ZUM TURBO-FREEZER XL 3 & XE 1

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

SharePoint für Site Owner. Dr. Benjamin S. Bergfort. 1. Ausgabe, 1. Aktualisierung, November 2014 ISBN: SHPSO2013

eurovat Magento Extension Magento - Extension Extension V1.4.2 Dokumentation Version 1.0 SNM-Portal UG (haftungsbeschränkt) & Co. KG Vorherstraße 17

BEDIENUNG ABADISCOVER

Installationsanleitung. Ab Version

1. Die Signaturen auf den PDF-Dokumenten der Deutschen Rentenversicherung werden als ungültig ausgewiesen oder mit Gültigkeit unbekannt gekennzeichnet

SmartDispatch DMR-Dispatcher. Bestellablauf. SmartDispatch-Bestellablauf V1.0

Transkript:

6 SWI-Prolog/XPCE Semantic Web Library Dokumentation: http://www.swi-prolog.org/packages/semweb.html Tool: triple20 rdf reachable(?subject, +Predicate,?Object): gibt an, welche Objekte vom Subjekt über das Prädikat erreichbar sind. Module rdf db 81 83 Dokumentation: http://www.swi-prolog.org/packages/semweb.html speichert RDF Triples als 5-Tuple: {Subject Predicate Object File Line} elementares Prädikat: rdf(?subject,?predicate,?object): Subject, Predicate sind Atome (textuelle Repräsentaten von URIs) Object ist entweder Atom (repräsentiert eine Resource) oder literal(value) Beispiel:?- rdf(subject, Predicate, Object). Subject = http://www.w3.org/2000/01/rdf-schema#resource Predicate = http://www.w3.org/1999/02/22-rdf-syntax-ns#type Object = http://www.w3.org/2000/01/rdf-schema#class ; Subject = http://www.w3.org/2000/01/rdf-schema#resource Predicate = http://www.w3.org/2000/01/rdf-schema#label Object = literal(lang(en, Resource )) ; Subject = http://www.w3.org/2000/01/rdf-schema#resource Predicate = http://www.w3.org/2000/01/rdf-schema#comment Object = literal( The class resource, everything. ) ; 82 Datenbasis ändern rdf assert(+subject, +Predicate, +Object): fügt ein neues Triple hinzu rdf retractall(?subject,?predicate,?object): entfernt alle passenden Triples rdf update(+subject, +Predicate, +Object, +Action): Ersetzt eines der drei Felder des passenden Triples: subject(resource): Ändert das erste Feld des Triples predicate(resource): Ändert das zweite Feld des Triples object(object): Ändert das dritte Feld des Triples durch eine Resource oder ein literal(value). 84

Laden und Speichern von Dateien rdf load(+in): Lädt die Datei +In rdf unload(+spec): löscht alle Triples der Datei +Spec rdf save(+file): speichert alle Triples in der Datei +Datei rdf save(+file, +Options): speichert bestimmte Triples rdf make: lädt alle Dateien neu, die sich seit dem letzten Laden geändert haben. Modul RDFS rdfs subproperty of(?subproperty,?property): gibt an, ob es sich um eine Sub-Property handelt rdfs subclass of(?subclass,?class): gibt an, ob es sich um eine Sub Klasse handelt rdfs class property(+class,?property): gibt an, +Class in der Domain von?property liegt rdfs individual of(?resource,?class): gibt an, ob?resource von?class ist. 85 Collections und Containers 87 Namespace rdf db:ns(?ns,?resource): gibt definierte Namespaces an rdf register ns(+alias, +URL): definiert neuen Namespace (muss definiert sein, bevor Datei geladen wird, die Namespace benutzt) rdfs member(?resource, +Set): testet oder konstruiert eine Mitglieder eines Containers oder einer RDFS Liste (+Set) Beispiel: <rdf:list rdf:about="http://www.ba-horb.de/~pl#a_element"> <rdf:first rdf:resource="http://www.ba-horb.de/~pl#_1"/> <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/> </rdf:list>?- rdfs_member(resource, http://www.ba-horb.de/~pl#a_element ). Resource = http://www.ba-horb.de/~pl#_1 rdfs list to prolog list(+set, -List): übertragt die RDF Liste in eine prolog Liste. Beispiel:?- rdfs_list_to_prolog_list( http://www.ba-horb.de/~pl#a_element, List). List = [ http://www.ba-horb.de/~pl#_1 ] rdfs assert list(+list, -Resource): trägt eine prolog Liste in die RDF Datenbasis als RDF Liste ein. 86 88

Institution und Subklassen Beispiel Es soll an einem Tag eine Liste von Firmen besucht werden. Der Start ist um 8 Uhr in Horb. Das Prolog Programm soll die günstigste Reihenfolge bestimmen, in der die Firmen besucht werden sollen (früheste Endzeit). Der dadurch entstandene Terminkalender des Professors soll zunächst zur RDF Datenbasis im Prolog Laufzeitsystem hinzugefügt werden. Danach sollen die ergänzten Triple in eine RDF Datei rausgeschrieben werden. Als Grundlage dient die RDF Spezifikation von Folie 66. <rdfs:class rdf:about="&pl;institution" rdfs:label="institution"> <rdfs:subclassof rdf:resource="&rdfs;termin_beschreibung"/> <rdf:property rdf:about="&pl;anschrift" rdfs:label="anschrift"> <rdfs:domain rdf:resource="&pl;institution"/> <rdfs:range rdf:resource="&pl;adresse"/> <rdfs:class rdf:about="&pl;firma" rdfs:label="firma"> <rdfs:subclassof rdf:resource="&pl;institution"/> <rdf:property rdf:about="&pl;angestellt" rdfs:label="angestellt"> <rdfs:domain rdf:resource="&pl;firma"/> <rdfs:range rdf:resource="&pl;betreuer"/> <rdfs:class rdf:about="&pl;ba" rdfs:label="ba"> <rdfs:subclassof rdf:resource="&pl;institution"/> 89 Adresse 91 RDF Datei <?xml version= 1.0 encoding= ISO-8859-1?> <!DOCTYPE rdf:rdf [ <!ENTITY pl http://www.ba-horb.de/~pl# > <!ENTITY rdf http://www.w3.org/1999/02/22-rdf-syntax-ns# > <!ENTITY rdfs http://www.w3.org/2000/01/rdf-schema# > <!ENTITY xsd http://www.w3.org/2001/xmlschema# > ]> <rdf:rdf xmlns:pl="&pl;" xmlns:rdf="&rdf;" xmlns:rdfs="&rdfs;" xmlns:xsd="&xsd;" > <rdfs:class rdf:about="&pl;adresse" rdfs:label="adresse"/> <rdf:property rdf:about="&pl;strasse" rdfs:label="strasse"> <rdfs:domain rdf:resource="&pl;adresse"/> <rdfs:range rdf:resource="&rdfs;literal"/> <rdf:property rdf:about="&pl;plz" rdfs:label="plz"> <rdfs:domain rdf:resource="&pl;adresse"/> <rdfs:range rdf:resource="&xsd;int"/> <rdf:property rdf:about="&pl;ort" rdfs:label="ort"> <rdfs:domain rdf:resource="&pl;adresse"/> <rdfs:range rdf:resource="&rdfs;literal"/> 90 92

Diplomarbeit <rdfs:class rdf:about="&pl;diplomarbeit" rdfs:label="diplomarbeit"/> <rdf:property rdf:about="&pl;diplomand" rdfs:label="diplomand"> <rdfs:range rdf:resource="&pl;studierender"/> <rdf:property rdf:about="&pl;thema" rdfs:label="thema"> <rdfs:range rdf:resource="&rdfs;literal"/> <rdf:property rdf:about="&pl;betreuenderprof" rdfs:label="betreuenderprof"> <rdfs:range rdf:resource="&pl;prof"/> <rdf:property rdf:about="&pl;fa_betreuer" rdfs:label="fa-betreuer"> <rdfs:range rdf:resource="&pl;betreuer"/> Subklassen von Person: Professor/Studierender/Betreuer <rdfs:class rdf:about="&pl;prof" rdfs:comment="personenkreis der Professoren" rdfs:label="prof"> <rdfs:subclassof rdf:resource="&pl;person"/> <rdfs:class rdf:about="&pl;studierender" rdfs:comment="personenkreis der Studierenden" rdfs:label="studierender"> <rdfs:subclassof rdf:resource="&pl;person"/> <rdfs:class rdf:about="&pl;betreuer" rdfs:comment="personenkreis der Betreuer" rdfs:label="betreuer"> <rdfs:subclassof rdf:resource="&pl;person"/> 93 95 Terminkalender Person <rdfs:class rdf:about="&pl;person" rdfs:label="person"/> <rdf:property rdf:about="&pl;kalender" rdfs:label="kalender"> <rdfs:domain rdf:resource="&pl;person"/> <rdfs:range rdf:resource="&pl;terminkalender"/> <rdfs:class rdf:about="&pl;terminkalender" rdfs:label="terminkalender"/> <rdf:property rdf:about="&pl;terminliste" rdfs:label="terminliste"> <rdfs:domain rdf:resource="&pl;terminkalender"/> <rdfs:range rdf:resource="&rdf;list"/> <rdfs:range rdf:resource="&rdf;list"/> ist eine Liste von Elementen vom Typ &pl;termin. 94 96

Termin <rdfs:class rdf:about="&pl;termin" rdfs:label="termin"/> <rdf:property rdf:about="&pl;start" rdfs:label="start"> <rdfs:range rdf:resource="&pl;pair"/> <rdf:property rdf:about="&pl;ende" rdfs:label="ende"> <rdfs:range rdf:resource="&pl;pair"/> <rdf:property rdf:about="&pl;beschreibung" rdfs:label="beschreibung"> <rdfs:range rdf:resource="&rdfs;termin_beschreibung"/> Prolog Programm makedaytimetable(liste_der_firmen, Termine):- mitglied(mem, Liste_der_Firmen, [], Restliste_der_Firmen), nextvisits( http://www.ba-horb.de, zeit(08,00), Mem, Restliste_der_Firmen, Termine) Liste der Firmen: Liste der Firmen die besucht werden sollen Termine: Liste der berechneten Termine mitglied: bestimmt ein beliebiges Mitglied einer Liste nextvisits: berechnet die Liste der Termine. <rdfs:class rdf:about="&rdfs;termin_beschreibung" rdfs:label="termin_beschreibung"/> 97 99 Pair (von Stunden und Minuten) <rdf:property rdf:about="&pl;start" rdfs:label="start"> <rdfs:range rdf:resource="&pl;pair"/> <rdfs:class rdf:about="&pl;pair" rdfs:label="pair"/> <rdf:property rdf:about="&pl;fst" rdfs:label="first"> <rdfs:domain rdf:resource="&pl;pair"/> <rdfs:range rdf:resource="&xsd;int"/> mitglied %Mitglied, Liste, Hilfsliste, Liste ohne Mitglied %Mitglied kann mehrfach vorkommen. mitglied(m, [H T], Fstmems, X) :- (M = H, concat(fstmems, T, X)) ; mitglied(m, T, [H Fstmems], X). concat( [], L, L ). concat( [H T ], L, [H NeueListe] ) :- concat( T, L, NeueListe ). <rdf:property rdf:about="&pl;snd" rdfs:label="second"> <rdfs:domain rdf:resource="&pl;pair"/> <rdfs:range rdf:resource="&xsd;int"/> 98 100

nextvisits nextvisits(vorheriger, Vorh_endzeit, Naechster, [], [termin(start(naechster_start), ende(naechster_ende), beschreibung(naechster)) []]) :- fahrtzeit(vorheriger, Naechster, Fahrtzeit), addtime(vorh_endzeit, Fahrtzeit, Naechster_start), addtime(naechster_start, 60, Naechster_ende). nextvisits(vorheriger, Vorh_endzeit, Naechster, [Firma Liste_der_Firmen], [termin(start(naechster_start), ende(naechster_ende), beschreibung(naechster)) Termine]) :- fahrtzeit(vorheriger, Naechster, Fahrtzeit), addtime(vorh_endzeit, Fahrtzeit, Naechster_start), addtime(naechster_start, 60, Naechster_ende), mitglied(mem, [Firma Liste_der_Firmen], [], Restliste_der_Firmen), nextvisits(naechster, Naechster_ende, Mem, Restliste_der_Firmen, Termine). addtime: addiert Minuten zu einer Uhrzeit Aufgabe Schreiben Sie das Prädikat terminassert. terminassert([termin []], ThisListNode, Ausgabedatei) :- terminnode(termin, NTermin, Ausgabedatei), %muss noch %programmiert werden rdf_node(thislistnode), rdf_assert(thislistnode, http://www.w3.org/1999/02/22-rdf-syntax-ns#type, http://www.w3.org/1999/02/22-rdf-syntax-ns#list, Ausgabedatei), rdf_assert(thislistnode, http://www.w3.org/1999/02/22-rdf-syntax-ns#first, NTermin, Ausgabedatei), rdf_assert(thislistnode, http://www.w3.org/1999/02/22-rdf-syntax-ns#rest, http://www.w3.org/1999/02/22-rdf-syntax-ns#nil, Ausgabedatei). terminassert([termin Termine], ThisListNode, Ausgabedatei) :-... 101 103 main main(liste, F, Node, Ausgabedatei) :- rdfs_list_to_prolog_list(liste, PListe), findall(x, makedaytimetable(pliste, X), [Fst Rest]), termin(start(_), ende(zeit(h, M)), beschreibung(_)) = Last, last(fst, Last), fruehzeit(rest, zeit(h,m), Fst, Liste_von_Terminen), terminassert(liste_von_terminen, Node, Ausgabedatei), rdf_save(ausgabedatei, Ausgabedatei). findall: bildet Liste aller Ergebnisse fruehzeit: berechnet die früheste Endzeit. terminassert: fügt die Triple des Terminkalenders zur Datenbasis hinzu rdf save: schreibt die Triple in die Datei Ausgabedatei Aufgabe Schreiben Sie eine RDF Liste von 4 zu besuchenden Firmen als Eingabe für main. Schreiben Sie für die 4 zu besuchenden Firmen das Prädikat fahrtzeit, in dem jedes mögliches Paar von Fahrtzeiten angegeben werden muss: fahrtzeit( http://www.ba-horb.de/~pl#homag, http://www.ba-horb.de/~pl#schuler, 10). fahrtzeit( http://www.ba-horb.de/~pl#schuler, http://www.ba-horb.de/~pl#homag, 10). fahrtzeit( http://www.ba-horb.de/~pl#homag, http://www.ba-horb.de/~pl#arburg, 30). fahrtzeit( http://www.ba-horb.de/~pl#arburg, http://www.ba-horb.de/~pl#homag, 30).. 102 104