Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

pl:miw:miw08_ruleruntimej [2008/04/01 12:50]
gjn
pl:miw:miw08_ruleruntimej [2019/06/27 15:50]
Linia 1: Linia 1:
-====== Opis ====== 
-Realizujący: ​ 
-**Marcin Gadamer** <​marcin.gadamer@gmail.com>​ 
  
-Investigate runtime integration aspects, mainly ​ 
-Prolog+Java integration possibilities 
-  * input 
-    * Prolog/Java APIs 
-    * JSR94  
-    * Jess  
-    * JenaRules 
-    * integration 
-  * output 
-How to integrate Prolog and Java in the best way regarding performance,​ and coding easiness + examples. 
-[[pl:​miw:​miw2008_tematy#​ruleruntimej|MIW temat]] 
- 
-====== Spotkania ====== 
-===== 08.03.04 ===== 
- 
- 
- 
-===== 080401 ===== 
-  * Porównanie API Jeny i RDF SWI Prologu 
-  * jak zapisywać //reguły// w Jenie? 
-  * jaka jest różnica w sile ekspresji reguł jeny i Prologu? ​ 
-  * opis dostarczonych z Jeną mechanizmów wnioskujących (reasoners) 
- 
-===== 080415 ===== 
-  * przykład [[hekate:​hekate_case_thermostat|termostatu]] w RDF w Jenie  
- 
-====== Projekt ====== 
-  * "​implementacja"​ jsr94 w prologu 
-  * możliwość/​sensowność jess/prolog 
- 
-Ponieważ Jess można używać jedynie przez 30 dni, wykorzystuję do integracji framework Jena.  
- 
-  * Jednym z zalet Jeny jest czytanie/​zapisywanie RDF w RDF/XML, N3 oraz N-Triples. Stąd słuszne wydaje się podejście 
- ​Prolog <​-przedstawienie wiedzy-> RDF <​-przedstawienie wiedzy-> Java 
- 
-  * Mały program w Java, który pokazuje relacje pomiędzy tatą (Jan), mamą (Krystyna), córką (Kasia), synem (Jasiu) 
- 
-Zostały zapisane następujące dane: 
- corka.addProperty(siostra,​ syn); 
- tata.addProperty(ojciec,​ corka); 
- tata.addProperty(ojciec,​ syn); 
- tata.addProperty(malzonek,​ mama); 
- mama.addProperty(malzonek,​ tata); 
- Statement statement1 = model.createStatement(syn,​ dziecko, mama); 
- Statement statement2 = model.createStatement(syn,​ dziecko, tata); 
- Statement statement3 = model.createStatement(corka,​ dziecko, mama); 
- Statement statement4 = model.createStatement(corka,​ dziecko, tata); ​ 
- 
-W pliku RDF: 
-<code xml> 
-<rdf:RDF 
-    xmlns:​rdf="​http://​www.w3.org/​1999/​02/​22-rdf-syntax-ns#"​ 
-    xmlns:​j.0="​http://​purl.org/​vocab/​relacje/"​ >  
-  <​rdf:​Description rdf:​about="​http://​Family/​KowalskiJan">​ 
-    <​j.0:​malzonek rdf:​resource="​http://​Family/​KowalskiKrystyna"/>​ 
-    <​j.0:​ojciec rdf:​resource="​http://​Family/​KowalskiJasiu"/>​ 
-    <​j.0:​ojciec rdf:​resource="​http://​Family/​KowalskiKasia"/>​ 
-  </​rdf:​Description>​ 
-  <​rdf:​Description rdf:​about="​http://​Family/​KowalskiKrystyna">​ 
-    <​j.0:​malzonek rdf:​resource="​http://​Family/​KowalskiJan"/>​ 
-  </​rdf:​Description>​ 
-  <​rdf:​Description rdf:​about="​http://​Family/​KowalskiKasia">​ 
-    <​j.0:​dziecko rdf:​resource="​http://​Family/​KowalskiJan"/>​ 
-    <​j.0:​dziecko rdf:​resource="​http://​Family/​KowalskiKrystyna"/>​ 
-    <​j.0:​siostra rdf:​resource="​http://​Family/​KowalskiJasiu"/>​ 
-  </​rdf:​Description>​ 
-  <​rdf:​Description rdf:​about="​http://​Family/​KowalskiJasiu">​ 
-    <​j.0:​dziecko rdf:​resource="​http://​Family/​KowalskiJan"/>​ 
-    <​j.0:​dziecko rdf:​resource="​http://​Family/​KowalskiKrystyna"/>​ 
-  </​rdf:​Description>​ 
-</​rdf:​RDF>​ 
-</​code>​ 
-Przekazany RDF do Javy daje model z zawartością 9 informacji. 
- 
-Po zadaniu prostych zapytań ​ 
- 
-    syn.listProperties(dziecko);​ 
-    corka.listProperties(dziecko);​ 
-    corka.listProperties(siostra);​ 
-otrzymałem:​ 
- 
-http://​Family/​KowalskiJasiu jest dzieckiem ​ 
-    http://​Family/​KowalskiJan 
-    http://​Family/​KowalskiKrystyna 
-http://​Family/​KowalskiKasia jest dzieckiem ​ 
-    http://​Family/​KowalskiJan 
-    http://​Family/​KowalskiKrystyna 
-http://​Family/​KowalskiKasia ma rodzenstwo 
-    http://​Family/​KowalskiJasiu 
- 
-==SPARQL== 
- ​Zapytania buduje się podobnie jak w języku zapytań SQL z tą różnicą, że podaje się całą trójkę. 
-Zapytanie SPARQL dla podanego powyżej przykładu może wyglądać tak: 
- 
-<​code>​ 
-SELECT ?x ?w ?​q  ​ 
-WHERE {?x  ?w ?q} 
-</​code>​ 
-Oznacza to podgląd całej wiedzy, która jest zawarta w modelu. 
- 
-Na takie zapytanie uzyskałem taką odpowiedź: 
-<​code>​ 
-Jasiu dziecko Jan 
-Jasiu dziecko Krystyna 
-Krystyna malzonek Jan 
-Jan malzonek Krystyna 
-Jan ojciec Jasiu 
-Jan ojciec Kasia 
-Kasia dziecko Jan 
-Kasia dziecko Krystyna 
-Kasia siostra Jasiu 
-</​code>​ 
- 
-Jak widać są to wszytkie informacje, które zawarłem w modelu. (Dla czytelności zostały usunięte URI, aby odpowiedź nie wygdlądała np. tak     ​http://​Family/​KowalskiJan) 
- 
-Znając zasadę tworzenia zapytania, można otrzymać odpowiedź na "​skomplikowane"​ zapytanie. ​ 
- 
-====== Sprawozdanie ====== 
- 
- 
- 
- 
-====== Materiały ====== 
- 
-== Basic === 
-[[http://​jena.sourceforge.net/​documentation.html| Dokumentacja]] - Dokumentacja do frameworka Jena 
- 
-[[http://​www.ibm.com/​developerworks/​xml/​library/​j-jena/​index.html| IBM]] - Wprowadzenie do Jena wykonane przez IBMa 
- 
-[[http://​www.oreilly.com/​catalog/​pracrdf/​chapter/​ch08.pdf|RDF]] - wszytstko o RDF - PDF wykonany przez wydawnictwo O'​Reilly 
- 
-[[http://​pl.wikipedia.org/​wiki/​System_ekspertowy| System ekspertowy]] - Wikipedia 
- 
-[[http://​java.sun.com/​developer/​technicalArticles/​J2SE/​JavaRule.html| Java Rule Engine API]] - Getting Started With the Java Rule Engine API (JSR 94): Toward Rule-Based Applications (Sun) 
- 
-[[http://​javaboutique.internet.com/​tutorials/​rules_engine/​| Java Rules Engine API (JSR 94)]] - Java Rules Engine API (JSR 94) in javaboutique 
- 
-== Jena + SPARQL == 
- 
-[[http://​www.ibm.com/​developerworks/​xml/​library/​j-sparql/​| RDF in SPARQL]] - Search RDF data with SPARQL 
- 
-[[http://​jena.sourceforge.net/​ARQ/​| AQR]] - Query engine for Jena 
- 
-[[http://​2006.ruleml.org/​slides/​tutorial-holger.pdf| Rules Example]] - Rules example using Jena + Pellet (pdf file!) 
- 
-== Jena rules == 
- 
-[[http://​jena.sourceforge.net/​inference/​index.html#​rules| Jena rules page]] - Jena rules documentation 
- 
-[[http://​www.ldodds.com/​blog/​archives/​000219.html| Example]] -  Rules in Jena example 
- 
-[[http://​jena.hpl.hp.com/​juc2006/​proceedings/​reynolds/​rules-slides.ppt| Examlpe2]] - HP Example of using Jena Rules (ppt file!) 
- 
-== Prolog == 
- 
-[[http://​www.swi-prolog.org/​packages/​rdf2pl.html| Prolog parser]] - SWI-Prolog RDF parser 
- 
-[[http://​www.swi-prolog.org/​packages/​semweb.html| Semantic Web Library]] - SWI-Prolog Semantic Web Library 
- 
-[[http://​www.xml.com/​pub/​a/​2001/​07/​25/​prologrdf.html| RDF in Prolog]] - RDF Applications with Prolog 
pl/miw/miw08_ruleruntimej.txt · ostatnio zmienione: 2019/06/27 15:50 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0