flickr galerie | Twitter @Padáček | Facebook profil | Foursquare profil | LinkedIn profil

Zápisky.info


Vestavěné slovníky v RAP

RAP ve verzi 0.9.1 poskytuje již v základní instalaci slovníky zdrojů 8 nejpoužívanějších RDF schémat - RDF, RDF Schema, OWL, Dublin Core, FOAF, RSS, Atom a vCard. To je velmi dobrá zpráva pro všechny, protože se tím velice zpřehlední kód a zjednoduší práce. Má to však své velké ale!

Způsob, jakým byly tyto slovníky napsány a jakým se používají, se liší skoro verze od verze. Je pravda, že RAP je zatím (skoro) plně zpětně kompatibilní, takže aplikace, která byla vyvíjena na verzi 0.1 by měla jet, i kdyby jste jí „podstrčili“ poslední build z CVS, ale jsou zde jistá omezení ... která mě trošku potrápila a vadí mi.

Ani taková banalita, jako „instalace“ slovníků, nezůstala nedotčena. Původně se načítání nastavovalo přímo v jádru RdfApi.php, kde stačilo příslušné volání funkce require( string $path ) (za/od)komentovat. Ve verzi 0.8 byla zavedena konstanta, přes kterou šlo celý balíček slovníků načíst:

require( RDFAPI_INCLUDE_DIR . PACKAGE_VOCABULARY );

Verze 0.9 šla ještě dál a nyní si můžete načíst v rámci konkrétního PHP soubor přesně ty knihovny, které potřebujete a navíc máte výběr mezi „statement-centric“ a „resource-centric“ modelem.

Také použití se změnilo. Původně stačilo k získání určité vlastnosti/třídy vědět, jak se jmenuje její konstanta a tu zapsat do zdrojového kódu. Takže třeba vlastnost rdf:type byla definována jako $RDF_type. Nově jsou všechny vlastnosti sdruženy do třídy, kde jsou vytvářeny „statickými“ metodami - ty uvozovky jsou zde proto, že RAP je stále napsáno v PHP4 a to statické metody nepodporuje. K získání výše uvedené vlastnosti nyní musíme volat metodu příslušné třídy:

RDF::TYPE();
// nebo pro resource–centric model
RDF_RES::TYPE();

Poznamenejme, že jmenné prostory jednotlivých slovníků nejsou uchovávány uvnitř tříd, ale v mamutím souboru, který definuje všechny konstanty RAP. Možná je to přehnané, populistické, ale proč by nešlo napsat ty slovníky nějak takhle:

class RDF {
  // definice jmenného prostoru
  const NS = ' ... URI jmenného prostoru RDF ... ';
  // zakážeme vytváření instancí této třídy
  private function __construct() {}
  // funkce vytvářející vlastnost "rdf:type"
  public static function TYPE() {
    return new Resource( self::NS . 'type' );
  }
  // Stejně tak i pro ostatní třídy
}

Bylo by to krásné, ale nemá cenu přepisovat balík slovníku do PHP5, když nebude ve stejném duchu napsaný celý model knihovny RAP, parsery, ošetření chybových stavů pomocí výjimek. No, jak řekl jeden z autorů této knihovny, bude to chtít prodiskutovat a hodně času na promyšlenou. Jediné, co mě může těšit, je, že RAP je plně funkční i pod PHP5.

Vloženo 24.06. 2005 v 21:35 | PHP | Zobrazeno 2029x

Nový komentář:

V komentáře lze použít následující „tagy“:

  • [a href=http://url.com]titulek odkazu[/a] – bude převeden na odkaz
  • [abbr title=text]abbr[/abbr] – bude převeden na <abbr>.
  • [cite], [code], [em], [strong], [q], [li] — obdobně.

Komentáře musí být před publikováním schváleny. Děkuji!

Kontrola proti SPAMu

Vlož znaky zobrazené na obrázku:


Navigace

Vyhledávání

 Vyhledávání 

Povolené operátory: AND, OR a NOT

Kategorie

Nejčtenější

Poslední komentáře

  • honza: Diky autore, ani nevis jak moc jsi mi timhle clankem pomohl. Porad mi kod nefungoval, vymyslel jsem kdeco, ale reseni...
  • Milan: [2] Místo řádku: class SampleConfigKeyNotDefinedException extends Exception má zřejmě být řádek class SampleTemplatedNotFoundException extends Exception...
  • Jan-Sebastian Fabík: Zdravím, nevím, co dělám špatně, ale když jsem použil tyto skripty, hlásí mi to chybu:Fatal error: Cannot redeclare class SampleConfigKeyNotDefinedException in...
  • Max: proc ne pouzit nazev Controller (podle MVC) ale Application?nechat abstraktni tridyController Model Viewbyl by mensi zmatek pro zacatecniky, jinak pekny vzorek...
  • Ola: Napis jim na podporu znova vyser se na banan .. Jinak ocenuju ze pouzivas BLOG:CMS, kazdej debilek na nej...

Odkazy

Statistiky návštěvnosti [TOPlist]
PageRank Checking Icon
Valid XHTML 1.0 Strict

Obsah © 2004 – 2006 Josef Petrák

Grafika © 2004 Dlouhý Webdesign

Redakční systém BLOG:CMS