To jest stara wersja strony!


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. MIW temat

Spotkania

08.03.04

08.04.01

  • 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 wnioskowania dostarczonych z Jeną mechanizmów wnioskujących (reasoners)

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:

<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>

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

Sprawozdanie

Materiały

Basic

Dokumentacja - Dokumentacja do frameworka Jena

IBM - Wprowadzenie do Jena wykonane przez IBMa

RDF - wszytstko o RDF - PDF wykonany przez wydawnictwo O'Reilly

System ekspertowy - Wikipedia

Java Rule Engine API - Getting Started With the Java Rule Engine API (JSR 94): Toward Rule-Based Applications (Sun)

Java Rules Engine API (JSR 94) - Java Rules Engine API (JSR 94) in javaboutique

Jena + SPARQL

RDF in SPARQL - Search RDF data with SPARQL

AQR - Query engine for Jena

Rules Example - Rules example using Jena + Pellet

Prolog

Prolog parser - SWI-Prolog RDF parser

Semantic Web Library - SWI-Prolog Semantic Web Library

RDF in Prolog - RDF Applications with Prolog

pl/miw/miw08_ruleruntimej.1206912179.txt.gz · ostatnio zmienione: 2019/06/27 15:58 (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