Logikai programozás 10..

Slides:



Advertisements
Hasonló előadás
4. alkalom – Hálózat Kezelés
Advertisements

A hálózat működése 1. A DHCP és az APIPA
KSHXML internetes adatgyűjtési rendszer Az utolsó módosítás dátuma: december 18.
Hálózati és Internet ismeretek
Programozás III HÁLÓZAT.
Virtuális méréstechnika Hálózati kommunikáció 1 Mingesz Róbert V
Informatikai tudásleképezés paradigmái és problémái Szekeres András Márk.
2007 ISP TANFOLYAM ÉSZAKNET, LH COM. USER AUTHENTIKÁCIÓ •MAC – IP •MAC – DHCP •MAC – IP – RADIUS •PPPoE – RADIUS.
megismerése, mintaadatbázis létrehozása
HTML űrlapok kezelése és feldolgozása PHP segítségével
Hadoop Gyakorlat 1 Korszerű adatbázisok Parancsok Listázás – hadoop fs –ls Kiírja egy fájl tartalmát – hadoop fs –cat Betöltés – hadoop fs –put.
Hálózati alkalmazások
Sztringek.
Bevezetés a Java programozásba
Bevezetés a Java programozásba
Fejlett Programozási Technológiák II. Világos Zsolt 1. gyakorlat.
A CLIPS keretrendszer CLIPS "C" Language Integration Production System.
Egy feladat megoldásának gondolatmenete. Feladat: Generáljuk véletlen számokat 1 és 6 között, amíg legalább 10 darab egyes és 10 darab hatos nem lesz.
A Java programozási nyelvSoós Sándor 1/28 Java programozási nyelv 10. rész – Input/output kezelés Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai.
WEB Technológiák Dr. Pance Miklós – Kolcza Gábor Miskolci Egyetem.
WEB Technológiák Coldfusion ME Általános Informatikai Tsz. dr. Kovács László.
Hálózatkezelés, java.net Elek Tibor
Hadoop Gyakorlat 2 Korszerű adatbázisok Parancsok Listázás – hadoop fs –ls Kiírja egy fájl tartalmát – hadoop fs –cat Betöltés – hadoop fs –put.
PHP I. Alapok. Mi a PHP? PHP Hypertext Preprocessor Szkriptnyelv –Egyszerű, gyors fejlesztés –Nincs fordítás (csak értelmező) Alkalmazási lehetőségek:
PHP VII Sütik, munkamenetek. Sütik Mi az a süti? A süti (cookie) állapotot tárol a felhasználó böngészőjében. Pl. ha egy oldalon beállítható, hogy milyen.
VI. Konténerek 18. Tömbök 19. Rendezés, keresés, karbantartás
Budapest, június 28. Ontológia kezelő modul tervezése szöveges információt kezelő informatikai rendszer számára Förhécz András BME Méréstechnika.
Feladat: 1.Írjunk eljárást amely egy paraméterként megadott stringből kitörli az összes ‘b’ betűt. 2.Írjunk eljárást amely beolvassa egy személy adatait.
Szintaktikai, szemantikai szabályok
1 A bannernek is van szeme. Erre ma már megvannak az eszközök! 6.
1. Gyakorlat - Alapok 1. Írjon konzolprogramot, amely kiírja a “Hello ELTE” üzenetet! Használja a System.out.println() -t! 2. Írjon konzolprogramot, amely.
Készítette: Lipp Marcell
Script nyelvek alkalmazása a webkartográfiában 1/14 Script nyelvek alkalmazása a webkartográfiában Gede Mátyás MFTTT, március 22.
Server, Client. Client-Server Client numPlayers Id ServerMessage ClientMessage Server numPlayers ClientMessages[] ServerMessage Ha a kliens ugyanazt az.
3. előadás.  Apache szerver tudnivalók  Az index.php .htaccess – web-szerverünk beállításai  Konfigurációs állományok  Adatbázis kapcsolódás beállítása.
1 Verseny 2000 gyakorlat ODBC Adatforrás létrehozása.
Java programozási nyelv Adatbekérés konzolról
Adatbázis kezelés.
WEB Technológiák WEB-DB és XML ME Általános Informatikai Tsz. dr. Kovács László.
Csempe Programozás érettségi mintafeladat
Logikai programozás 6.. Problémafelvetés: diak(jani, 3.3, pecs). diak(laci, 3.7, kaposvar). diak(matyi, 4.1, pecs). diak(kati, 2.3, barcs). diak(jeno,
Web fejlesztés V. Illés Zoltán ELTE Informatikai Kar
Illés Zoltán ELTE Informatikai Kar
Logikai programozás 8.. Adatok: ISMÉTLÉS: ADATBÁZISKEZELÉS A külső adatok a hatására bekerülnek a memóriába Lekérdezés: Ahogy eddig – pl.: szereti(jani,
Logikai programozás 8.. KIINDULÓ PÉLDÁK
Levéláradat az online levelezésben Tippek, ötletek az átlátható és (általunk) ellenőrzött folyamatokért október 09.
Fontos tudnivalók A MATLAB egy fajta objektummal dolgozik (Mátrix)
Mérés és adatgyűjtés laboratóriumi gyakorlat Hálózati kommunikáció 1 Makan Gergely, Mingesz Róbert, Nagy Tamás V
Minuet: A Scalable Distributed Multiversion B-Tree Írta: Benjamin Sowell, Wojciech Golab, Mehul A. Shah Feldolgozta: Fokin Miklós, Hodosy Gábor, Tóth Tamás.
Java web programozás 7-8..
Serial PLC Link terület 4-6. Serial PLC Link terület A Serial PLC Link terület 90 szót tartalmaz a CIO 3100 –tól CIO 3189 –ig terjedő területen. ( CIO.
Webes MES keretrendszer fejlesztése Kiss Miklós Dániel G-5S8 Tervezésvezető: Dr. Hornyák Olivér.
Java web programozás 5..
Számítógépes Hálózatok 9. gyakorlat. Gyakorlatok Nov 18,20 - Socket Nov 25,27 - Socket Dec 2,4 - ZH Dec 9,11 - pótZH Számítógépes hálózatok GY2 Gombos.
Palotás Ádám és Fodor Gergely Oracle Data Integrator Bemutató és gyakorlat
Hadoop Gyakorlat 1 Korszerű adatbázisok.
1 Függvények használata – az első függvénynél a formulát háromszor be kell írni, rendre az x, x+h, x-h argumentumokkal, – a második függvénynél az új (feltételes.
TÁMOP /1-2F JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam Osztályok, objektumok definiálása és alkalmazása. Saját.
Programozás III JPA.
COMPU-CONSULT Ltd. Saját kábeltv IP kamerával Előadók: Szabó Bence, COMPU-CONSULT Kft. Imre Gábor Panasonic, Előadás közben telefonálhat:
Hálózatos programok készítése
PHP függvények MySQL adatbázisok kezelésére
Logikai programozás 8..
A CLIPS keretrendszer
Hálózatkezelés Java-ban
Novell+Hálózat Szekció
CONNECTRA rendszer bevezetése
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
B M Java Programozás 1. Gy: Java alapok IT A N Ismétlés ++
B M Java Programozás 5. Gy: Java alapok IT A N Adatkezelő 1.rész
Előadás másolata:

Logikai programozás 10.

KIINDULÓ PÉLDÁK

http://www.csupomona.edu/~jrfisher/www/prolog_tutorial/8_4.html

Forrás: Horváth Gábor szakdolgozata

Forrás: Schunk Máté szakdolgozata

Forrás: Balázs Lajos szakdolgozata

Forrás: Fenyvesi Tamás szakdolgozata

JAVA – PROLOG KAPCSOLAT Kliens-szerver kapcsolat JPL egyéb

JAVA – PROLOG KAPCSOLAT Szerver: Ugyanolyan Java szerver, mint amilyet Java-ban tanultunk, egyetlen dologra kell odafigyelni: Ha Prolog kliensnek küldünk üzenetet, akkor az üzenet végére pontot kell írnunk.

JAVA – PROLOG KAPCSOLAT Ehhez a szerverhez bármilyen kliens kapcsolódhat, Java is és Prolog is. Mi kell ahhoz, hogy létrejöjjön a kapcsolat? Meg kell adni a szerver IP címét és a megfelelő portot, és definiálni kell a szükséges socketet. Meg kell adni a szükséges input/output csatornákat.

connect(Port) :- tcp_socket(Socket), tcp_connect(Socket,localhost:Port), % most a localhost-ra kapcsolódik tcp_open_socket(Socket,INs,OUTs), % megadjuk az Input/Output csatornákat assert(connectedReadStream(INs)), assert(connectedWriteStream(OUTs)), % tároljuk őket egy adatbázisban write(OUTs,prolog), % azonositja magat a szervernek küldött szóval nl(OUTs), % a sorvégjelet is kiküldi flush_output(OUTs), % fizikailag is kiküldi sleep(1). % kis várakoztatás :- connect(3700).

JAVA – PROLOG KAPCSOLAT Ezek után oda kell figyelni a megoldandó protokollokra. Beolvasás: connectedReadStream(IStream), % kiveszi az adatbázisból az input csatornát read(IStream,In), % beolvassa az adatot

JAVA – PROLOG KAPCSOLAT Ezek után oda kell figyelni a megoldandó protokollokra. Kiíratás: connectedWriteStream(OStream), % kiveszi az adatbázisból az output csatornát write(OStream,Out), nl(OStream), flush_output(OStream), % kiírja rá az adatot (Out) és kiküldi fizikailag is

JAVA – PROLOG KAPCSOLAT Példa: Java szerver, Java ill. Prolog kliens. A szerver beolvassa a klienstől kapott számot, és visszaadja annak négyzetét. A Java kliens egyetlen beolvasott szám négyzetét kéri le, a Prolog kliens pedig elküldi a szervernek az első tíz számot, lekéri a négyzetüket és kiíratja.

start(Szam) :- Szam>10,writeln('vége'). start(Out) :- connectedWriteStream(OStream), % kiveszi az adatbázisból az output csatornát write(OStream,Out), nl(OStream), flush_output(OStream), % kiírja rá az adatot (Out) és kiküldi fizikailag is connectedReadStream(IStream), read(IStream,In), % kiveszi az adatbázisból az input csatornát és beolvassa az % adatot writef('%w négyzete: %w \n',[Out,In]), % kiírja a képernyőre UjOut is Out+1, sleep(1), % várakozik, majd a következő számmal újra meghívja % az eljárást start(UjOut). :- start(1). % ez is automatikusan indul

Szerver: BufferedReader in … PrintWriter out … ID=in.readLine(); // beolvassa a kliens azonosítóját keres=in.readLine(); valasz= Integer.parseInt(keres); valasz= valasz*valasz; if(ID.equals("prolog")){ out.println(String.valueOf(valasz)+'.'); out.flush(); }else if(ID.equals("java")){ out.println(String.valueOf(valasz)); }

JAVA – PROLOG KAPCSOLAT Másik példa: Már megint kocsma. Adjunk meg Java-ban egy nevet, és kérjük le a Prolog-tól azt, hogy az illető milyen kocsmákba jár.

JAVA – PROLOG KAPCSOLAT Szerver: két klienst enged, egy Java és egy Prolog alkalmazást: private ServerSocket ss; private Socket[] s = new Socket[2]; while (db < 2) { s[db] = ss.accept(); System.out.println("Létrejött a " + (db + 1) + ". kapcsolat"); db++; } kiszolgal();

in1 = new BufferedReader(…(s[0].getInputStream())); out1 = new PrintWriter(s[0].getOutputStream()); in2 = new BufferedReader(…(s[1].getInputStream())); out2 = new PrintWriter(s[1].getOutputStream()); ID1 = in1.readLine(); // azonosítja a klienst ID2 = in2.readLine(); if (ID1.equals("java")) { inp = in2; outp = out2; inj = in1; outj = out1; } else { inp = in1; outp = out1; inj = in2; outj = out2; }

connectedReadStream(IStream), read(IStream,Nev), writeln(Nev), start :- writeln('elindult'), connectedReadStream(IStream), read(IStream,Nev), writeln(Nev), forall(jar(Nev,Kocsma), ki(Kocsma)), connectedWriteStream(OStream), write(OStream,vege), nl(OStream), flush_output(OStream). ki(Kocsma) :- write(OStream,Kocsma), :- start.

JAVA – PROLOG KAPCSOLAT A szerver-kliens kapcsolat során el kell indítani a szervert Java klienst Prolog klienst Nehézkes, elavult.

JAVA – PROLOG KAPCSOLAT (2) Korszerűbb megoldás: JPL Kétirányú Java-Prolog kapcsolat. Eszköze: swipl\lib\jpl.jar Használatához be kell állítani a path-ban: C:\Program Files\swipl\bin; C:\Program Files\swipl\lib\jpl.jar; C:\Program Files\Java\jdk1.7.0_51\bin; (vagy újabb – de ez úgyis be van ) + NetBeans Libraries\Add Jar (hozzáadni a jpl.jar-t) vagy Maven beállítás

JAVA – PROLOG KAPCSOLAT (2) Maven beállítás: Maven projekt létrehozása, a pom.xml-be beleírni ezt: <dependencies> <dependency> <groupId>jpl</groupId> <artifactId>jpl</artifactId> <version>3.1.4-alpha</version> </dependency> </dependencies>

JAVA – PROLOG KAPCSOLAT (2) Ez a kapcsolat csak a 6-os SWI verzióig működik. A 7… verziókban (2015 nyarától) már a JPL7 szerepel, ahhoz nem jó ez a függőség. (Újabbat nem találtam ) Használatához mintapéldák pl. itt: https://github.com/SWI-Prolog/packages-jpl/tree/8fc80a5d946ece7c16efb7d895420b7604485bd8 https://github.com/SWI-Prolog/packages-jpl/tree/master/examples/java doksi: http://jpl7.org/ Megjegyzés: vagy mindkettő 32 bites vagy mindkettő 64 bites legyen.

JAVA – PROLOG KAPCSOLAT (2) JPL példa: prolog mappa: src mappa mellett

JAVA – PROLOG KAPCSOLAT (2) JPL példa:

JAVA – PROLOG KAPCSOLAT (2) JPL példa:

JAVA – PROLOG KAPCSOLAT (2) JPL példa:

JAVA – PROLOG KAPCSOLAT (2)

JAVA – PROLOG KAPCSOLAT (2)

JAVA – PROLOG KAPCSOLAT (2)

JAVA – PROLOG KAPCSOLAT (2) Mivel bármelyik tabulált felülettel kezdhetjük, ezért a konzultációt célszerű a frame betöltésekor hívni.

JAVA – PROLOG KAPCSOLAT A kiadott példa + http://jpl7.org/ https://github.com/SWI-Prolog/packages-jpl/tree/8fc80a5d946ece7c16efb7d895420b7604485bd8 https://github.com/SWI-Prolog/packages-jpl/tree/master/examples/java http://www.swi-prolog.org/pldoc/man?section=jpl www.google.com Egyéb Java-Prolog kapcsolódási lehetőségek: http://kaminari.istc.kobe-u.ac.jp/PrologCafe/ http://platform.netbeans.org/tutorials/60/nbm-prolog.html Prolog + web (tutorial): http://www.pathwayslms.com/swipltuts/html/

EGY KIS KITEKINTÉS Néhány alkalmazási terület: Szakértői rendszerek Nyelvészeti alkalmazások Ontológiák, szemantikus web alapja Ontológia (nagyon pongyolán): fogalmak, viszonyok leírásá-ra szolgáló rendszer (a programspecifikáció általánosítása). Szemantikus web (nagyon pongyolán): tartalomra alapozott internetes keresési technológiák.

EGY KIS KITEKINTÉS stb. http://jena.apache.org/ http://home.mit.bme.hu/~fandrew/diplomaterv_hu.html http://www.cs.man.ac.uk/~horrocks/FaCT/ http://www.tankonyvtar.hu/hu/tartalom/tamop425/0005_34_internetes_keresorendszerek_scorm_10/1032_a_szemantikus_web.html http://www.tankonyvtar.hu/hu/tartalom/tamop425/0005_34_internetes_keresorendszerek_scorm_10/1034_ontolgia.html stb.