Menü Kapat

Jena ile Java Dilinde SPARQL Sorgusu

JENA İLE SPARSQL
Önceki yazımda Protege üzerinde yapılan sorgulamalar aynı zamanda bir eklenti olan Jena sayesinde java ortamında da yapılabilmektedir. Bu sorgulamalar için Eclipse ya da Netbeans kullanılabilir. Bu çalışmada Eclipse kullanılmıştır. Sonuç olarak Protege üzerinde gerçekleştirilen sorgulardan biri JENA üzerinde denenmiş ve aşağıdaki kodlarla Şekil 1’deki çıktı alınmıştır. Bu uygulamada gerçekleştirilen adımlar şu şekildedir:
1. Bu işlem için öncelikle https://jena.apache.org/download/index.cgi adresinden indirilen Jena kütüphanesi kütüphane ekleme yöntemiyle projeye eklenmiştir.
2. Daha sonra indirilen bu kütüphaneler Java projemizdeki class sayfamızın üst kısmına eklenir. Aşağıdaki kod bloğunda görebilirsiniz.
3. Daha sonra bu kütüphane sayesinde OWL dosyamız java ortamında açılarak içerisinde sorgu yapılabilecek duruma getirilir.
4. Ardından Jena eklentileri ile bir model oluşturulur.
5. PREFIX, Graph ve SPARQL dilinde sorgu cümlesi oluşturularak bu sorgu cümlesi çalıştırılır.
6. Sonucu ekrana yazacak kodlar eklenir.
7. Üst kısımda bulunan menüden Run>Run As>Java Aplication yoluyla uygulama derlenerek sonuçlar konsol ekranında gözlemlenir (Şekil 1).
Jena kütüphanesi yardımıyla Eclipse IDE üzerinde yazılmış Java dilinde SPARQL sorgusu:



import java.io.*;

import org.apache.jena.query.Query;
import org.apache.jena.query.QueryExecution;
import org.apache.jena.query.QueryExecutionFactory;
import org.apache.jena.query.QueryFactory;
import org.apache.jena.query.ResultSet;
import org.apache.jena.query.ResultSetFormatter;
import org.apache.jena.rdf.model.Model;
import org.apache.jena.rdf.model.ModelFactory;
import org.apache.jena.util.FileManager;
public class arkadas_listesi extends Object {
static final String inputFileName = "https://www.fikirjeneratoru.com/2016_Gezi_Plani.owl";

public static void main (String args[]) {
// Bos bir model olusturduk
Model model = ModelFactory.createDefaultModel();
// FileManager ile owl dosyamizi aciyoruz
InputStream in = FileManager.get().open(inputFileName);
//Dosya ve kaynagini dogruluyoruz
if (in == null) {
throw new IllegalArgumentException( "Dosya: " + inputFileName + " bulunamadi!");
}
// OWL dosyamizi okuyoruz
model.read( in, "" );

// Sorgu olusturuyoruz&amp;lt;/pre&amp;gt;</pre>
String sorgu =

"PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n"

+ "PREFIX owl: <http://www.w3.org/2002/07/owl#>\n"

+ "PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>\n"

+ "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\n"

+ "PREFIX gez: <https://www.fikirjeneratoru.com/2016_Gezi_Plani.owl#>\n"

+ "PREFIX gez: <https://www.fikirjeneratoru.com/2016_Gezi_Plani.owl#>"

+"select ?ad ?soyad ?sehir ?telefon"

+" where {"

+"?Arkadaslar rdf:type gez:Arkadaslar;"

+"gez:ad ?ad;"

+"gez:soyad ?soyad;"

+"gez:sehir ?sehir;"

+"gez:telefon ?telefon;  }  ORDER BY ?ad" ;
Query query = QueryFactory.create(sorgu);
// Sorgumuzu calistiriyoruz
QueryExecution qe = QueryExecutionFactory.create(query, model);
ResultSet results = qe.execSelect();
// Sonuclari ekrana yaziyoruz
ResultSetFormatter.out(System.out, results, query);
// Sorgu bittikten sonra kaynaklari serbest birakiyoruz
qe.close();
}


}

Sorgunun çıktısı:

semantik_sekil7
Şekil 1. Gezi ontolojisi üzerinde tüm arkadaşların bilgilerini gösteren Jena ile java dilinde yapılmış SPARQL sorgusu

 

 

Posted in Bilişim, Yapay Zeka

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir