BC:xtalas:SesameAPI: Porovnání verzí

Z FI WIKI
Přejít na: navigace, hledání
(Sesame API)
(Sesame API)
Řádka 13: Řádka 13:
  
  
===Repository API===
+
====Repository API====
 
http://openrdf.org/doc/sesame/users/ch07.html#d0e2134
 
http://openrdf.org/doc/sesame/users/ch07.html#d0e2134
  
Řádka 49: Řádka 49:
 
  service.login("USERNAME", "PASSWORD");
 
  service.login("USERNAME", "PASSWORD");
  
===Komunikace se serverem===
+
====Komunikace se serverem====
 
The Sesame server is represented by the class org.openrdf.sesame.server.SesameServer. Among other things, this class allows us to retrieve the LocalService that is used by the server by calling the getLocalService() method:  
 
The Sesame server is represented by the class org.openrdf.sesame.server.SesameServer. Among other things, this class allows us to retrieve the LocalService that is used by the server by calling the getLocalService() method:  
 
LocalService service = SesameServer.getLocalService();
 
LocalService service = SesameServer.getLocalService();
Řádka 56: Řádka 56:
  
  
===Dotazování repozitáře===
+
====Dotazování repozitáře====
 
  String query = "SELECT * FROM {x} p {y}";
 
  String query = "SELECT * FROM {x} p {y}";
 
  QueryResultsTable resultsTable = myRepository.performTableQuery(QueryLanguage.SERQL, query);
 
  QueryResultsTable resultsTable = myRepository.performTableQuery(QueryLanguage.SERQL, query);
Řádka 75: Řádka 75:
 
  }
 
  }
  
===Přidání záznamů===
+
====Přidání záznamů====
 
Z lokálního souboru, z webu nebo pomocí Stringu. Ale přes API repository nejdou přidat jednotlivé RDF záznamy, na to je potřeba jít přes Graph API.
 
Z lokálního souboru, z webu nebo pomocí Stringu. Ale přes API repository nejdou přidat jednotlivé RDF záznamy, na to je potřeba jít přes Graph API.
 
Přidává se metodou addData(), první parametr je zdroj dat(String, java.net.URL, java.io.File, java.io.InpuStream). Listener zachytává hlášení a chyby.
 
Přidává se metodou addData(), první parametr je zdroj dat(String, java.net.URL, java.io.File, java.io.InpuStream). Listener zachytává hlášení a chyby.
Řádka 86: Řádka 86:
  
  
 
+
===Graph API===
  
  

Verze z 25. 11. 2007, 15:28

Sesame API

Sail API

Storage and inference API - vnitřní, abstrahuje zbytek systému od způsobu uložení (databáze, paměť) a přidává podporu pro odvozování.


Access API

Dělí se na Graph API(přidávání/odebírání tvrzení) a Repository API(dotazování, ukládání RDF).

Provádí komunikaci mezi sesame moduly a aplikací s ním komunikující.


Repository API

http://openrdf.org/doc/sesame/users/ch07.html#d0e2134

Rozhraní jsou v balíku: org.openrdf.sesame.repository. V podbalíčcích jsou implementace těchto rozhraní pro lokální i vzdálené repositories.

Pro práci s repozitářem je nejprve třeba vytvořit objekt SesameRepository, který ho bude reprezentovat.

Lokální repozitáře:

Používané přímo v aplikacích pokud je potřeba, vytvoření odvozovacího repozitáře v paměti:

 LocalService service = Sesame.getService();
 boolean inferencing = true;
 LocalRepository myRepository = service.createRepository("myRep", inferencing);

Objekt RepositoryConfig změní nastavení repozitáře, např.aby používal soubor pro tvalé uložení

RepositoryConfig repConfig = new RepositoryConfig("myCustomRep");
SailConfig syncSail = new SailConfig("org.openrdf.sesame.sailimpl.sync.SyncRdfSchemaRepository");
SailConfig memSail = new org.openrdf.sesame.sailimpl.memory.RdfSchemaRepositoryConfig(
                                                "C:\\tmp\\myCustomRep.rdf", RDFFormat.RDFXML);
repConfig.addSail(syncSail);
repConfig.addSail(memSail);
repConfig.setWorldReadable(true);
repConfig.setWorldWriteable(true);


Je hotová specifikace a zbývá vytvořit repozitář:

LocalRepository myCustomRepository = service.createRepository(repConfig);


Vzdálené repozitáře:

java.net.URL sesameServerURL = new java.net.URL("http://HOSTNAME/SESAME_DIR/");
SesameService service = Sesame.getService(sesameServerURL);
service.login("USERNAME", "PASSWORD");

Komunikace se serverem

The Sesame server is represented by the class org.openrdf.sesame.server.SesameServer. Among other things, this class allows us to retrieve the LocalService that is used by the server by calling the getLocalService() method: LocalService service = SesameServer.getLocalService();

Using this object we can get to the available repositories in an identical fashion as in the local repository scenario.


Dotazování repozitáře

String query = "SELECT * FROM {x} p {y}";
QueryResultsTable resultsTable = myRepository.performTableQuery(QueryLanguage.SERQL, query);
int rowCount = resultsTable.getRowCount();
int columnCount = resultsTable.getColumnCount();
for (int row = 0; row < rowCount; row++) {
   for (int column = 0; column < columnCount; column++) {
       Value value = resultsTable.getValue(row, column);
       if (value != null) {
           System.out.print(value.toString());
       }
       else {
           System.out.print("null");
       }
       System.out.print("\t");
   }
   System.out.println();
}

Přidání záznamů

Z lokálního souboru, z webu nebo pomocí Stringu. Ale přes API repository nejdou přidat jednotlivé RDF záznamy, na to je potřeba jít přes Graph API. Přidává se metodou addData(), první parametr je zdroj dat(String, java.net.URL, java.io.File, java.io.InpuStream). Listener zachytává hlášení a chyby.

java.net.URL myRDFData = new java.net.URL("http://www.foo.com/bar/myRdfFile.rdf");
String baseURI = "http://my.base.uri#";
boolean verifyData = true;
AdminListener myListener = new StdOutAdminListener();
myRepository.addData(myRDFData, baseURI, RDFFormat.RDFXML, verifyData, myListener);


Graph API

-