ARC vs RAP

914 views

Published on

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
914
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

ARC vs RAP

  1. 1. ARC2(Appmosphere RDF classes) vs RAP( RDF API for PHP)<br /> <br /> ARC - este o colecţie open-source de script-uri PHP optimizata pentru RDF, dezvoltare găzduită pe servere Web. În prezent, aceasta constă dintr-un parser RDF / XML, un N-Triples Serializer, şi o clasa Model Simplu, care furnizeaza metodele comune de lucru cu descrieri de resurse. Cele trei clase principale sunt de sine stătătoare, cu un singur fişier de script-uri, facilitând astfel gruparea cu aplicaţii PHP existente. Prin parţial, utilizând arrays in loc de obiecte, ARC oferă îmbunătăţiri de viteză faţă de toolkit-uri care urmează abordări complet bazat pe obiecte PHP.<br /> RAP - RDF API pentru PHP este un set de instrumente Semantic Web pentru dezvoltatorii de PHP. Acesta ofera functii pentru parsarea, manipularea, depozitarea, interogari, servire, precum şi serializari grafice RDF. RAP a fost început ca un proiect open source de către Freie Universität Berlin, în 2002 şi a fost prelungită cu codul de contribuţii din partea comunităţii de Semantic Web. Ultima versiune(v0.9.1) include printre altele: o declaraţie API pentru manipularea graficelor RDF ca un set de situaţii, o resursă API-centrice pentru manipularea grafice RDF ca un set de resurse cu proprietăţi, un up-to-date RDF / XML Parser şi serializer, sprijinul pentru alte tehnici de serializare (de exemplu, N-Triple , Notation3, RDF încorporat în XHTML, suport pentru limbaj de interogare RDQL.<br /> RAP este desfăşurat ca un API integrat, astfel că modificările de versiune necesită, de obicei să înlocuiască complet o instalare prealabilă. ARC1 foloseste clase mai usoare, de sine statatoare, în scopul de a permite utilizarea independenta şi pentru a facilita modernizarea sarcinii de lucru.<br /> Cum spuneam in introducere ARC constă din trei clase de fişiere de bază pentru lucrul cu date Semantic Web: Un RDF / XML Parser, N-Triples Serializer, şi o clasa Model Simplu care prevede metodele comune de lucru cu descrieri de resurse. Aici putem detalia pentru fiecare situatie in parte:<br /> RDF / XML Parser poate fi folosit pentru a analiza un şir de caractere, pentru a încărca şi analiza datelor de la maşina locală, sau pentru a încărca şi analiza datelor de pe Web. Built-in Web Reader nu urmeaza redirecţionările HTTP încă, dar acceptă difetii parametri pentru a lucra de exemplu, cu proxy-uri, trimite antetele HTTP custom, sau limiteaza numărul de linii de analizat. În plus, clasa pot fi configurata pentru a prelua content-negociated RDF/XML (prin intermediul unui header HTTP Accept).<br /> Parser-ul nu verifică codul de analizat pentru validarea RDF, numai erorile XML şi unele erori de sintaxa RDF / XML sunt detectate. Rezultat al procesului de analiză este fie un mesaj de eroare sau o serie de triplete.<br /> Clasa serializer generează un string N-Triples de la un array de triple. Structura de matrice a triplei date trebuie să fie conforme cu următoarele structura a matricei de tripla ARC:<br /> Fiecare intrare este un tablou asociativ cu chei s, p, si o:<br /> - S (o matrice de nod subiect) <br />- p (un şir de predicat URI) <br />- o (o matrice nod obiect)<br />O matrice nod subiect poate avea următoarele chei: <br />- type (“uri” sau “bnode”)<br /> - uri (dacă este de tip “uri”)<br /> - bnode_id (dacă este de tip “bnode”)<br /> Un array de noduri obiect poate conţine chei suplimentare perechi-valoare: <br />- type ( " uri”, sau “bnode”, sau “literală”)<br /> - uri (dacă este de tip “uri”) <br />- bnode_id (dacă este de tip “bnode”) <br />- Val (dacă este de tip “literal”)<br /> - DT (datatype URI dacă este disponibil şi este de tip “literal”)<br /> - Lang (codul de limbaj dacă este disponibil şi este de tip “literal”)<br /> În Rap, graficele RDF sunt reprezentate ca instanţe ale clasei Model. Elemente într-un model sunt Statements; fiecare statement cuprinde trei Noduri: subiectul, predicatul şi obiectul. Un nod reprezintă o resursă(Resource) identificata de un URI, un BlankNode (de asemenea cunoscut ca nodul bNode sau anonim), sau un Literal. <br /> RAP oferă trei interfeţe de programare pentru manipularea graficelor RDF: statement-centric Model API care permite manipularea unui graf RDF ca un set de declaraţii, resource-centric ResModel API pentru manipularea unui graf RDF ca un set de resurse având proprietăţi, precum şi ontology-centric OntModel API care oferă funcţionalităţi suplimentare pentru manipularea ontologiilor.<br /> RAP suporta compararea şi combinaţia de grafice multiple. Fiecare din API-urile de mai sus pot verifica dacă sunt sau nu două grafice egale, sau au declaraţii comune. Mai mult decât atât, unind două grafice, scăzând un grafic din altul, precum şi crearea unei intersecţii dintre două grafice sunt de asemenea suportate. Nu există nici o restricţie în ceea ce priveşte mecanismul de stocare a graficelor, ceea ce înseamnă că se poate compara, de exemplu, şi de asemenea combina un in-memory grafic cu un grafic persistent.<br /> Model API expune un grafic RDF ca un set de declaraţii RDF. Acest API este foarte asemănător cu structura de depozitare a declaraţiilor şi conduce la un overhead scazut în accesarea graficului. Metodele de bază pentru modificarea graficelor RDF suporta adăugarea, ştergerea, şi înlocuirea declaratiilor unice în interiorul unui grafic. StatementIterators permite accesul secvenţial la toate declaratiile din grafic. Partea cea mai semnificativă din aceast API sunt metodele find() şi findAsIterator() care ofera un mod rapid şi uşor de interogare a declaraţiilor RDF.<br /> Un alt exemplu de interogare simplu este metoda findRegex(), în care S / P / O din modelul triple sunt indicate folosind expresii regulate Perl-style.<br />Input/Output <br /> RAP ofera primitive de bază pentru citirea si scrierea graficelor RDF într-o gamă de limbi Semantic Web. Limbile suportate sunt RDF / XML , N3 (de asemenea cunoscut ca Notation3), şi N-Triple. În plus, parserul GRDDL al RAP-lui permite extragerea de date din documentele XHTML. GRDDL vine de la " Gleaning Resource Description from Dialects of Languages; si utilizeaza XSLT pentru a extrage date RDF din XHTML.<br /> RDF / XML- Serializer permite programatorilor de a alege între diferite moduri de output. Utilizatorii pot decide, de exemplu, dacă tripletele ar trebui să fie grupate în funcţie de subiect, entităţi folosite pentru URI-uri, nume calificate utilizate pentru elemente RDF rezervate.<br /> RAP oferă de asemenea o metodă convenabilă pentru afişarea un model RDF într-o fereastra a browser-ului, în forma unui tabel HTML care conţine un set de triplete.<br />Depozitare<br /> Elementul central al RAP sunt două implementări de depozitare a statement-urilor, care tin graficele RDF fie în memorie sau într-un “magazin" persistent. Lucrul cu modele în memorie, cu toate acestea, are un singur dezavantaj major: după terminarea executării unui script PHP, toate modelele create şi manipulate se pierd, cu excepţia cazului în care sunt salvate într-un fişier. Dar chiar dacă serializat intr-un fisier, documentul care conţine date RDF ar trebui să fie analizat în orice moment in care un script PHP. Ambele procese consuma destul de mult timp, mai ales în timp ce lucraţi cu modele în-memorie de mari dimensiuni. Pentru a rezolva această problemă, RDF API pentru PHP susţine depozitarea persistente de modele RDF într-o bază de date relationala. Stocarea modelelor într-o bază de date nu numai că economiseşte memorie principală, dar în plus permite accesul rapid la date RDF prin utilizarea indexarii interne şi a capacităţilor de interogare optimizate a bazei de date.<br />Depozitare In-memory <br /> Acest tip de depozitare tine un grafic RDF ca o colecţie de declaraţii într-o matrice în memoria de sistem. Pentru a îmbunătăţi performanţa interogării RAP creeaza trei indici de cautare asupra subiectului, predicatului, şi obiectului declaratiei. Cu toate acestea, programatorii pot personaliza, de asemenea, indicii de folosit, în concordanta cu querie-le lor.Imediat ce noi statements sunt adăugate sau eliminate din deposit, indicele de statement-ului este instantaneu actualizat în scopul de a accelera interogările viitoare.<br />Depozitare Persistenta<br /> Nucleul bazei de date RAP este construit de două clase: DbStore şi DbModel. Former-ul este folosit pentru a stabili o conexiune la baza, precum şi pentru a crea, stoca, lista, şi prelua modele RDF, întrucât acestea din urmă oferă metode pentru manipularea fiecarui model. Pentru a asigura o portabilitate largă RAP utilizeaza ADOdb Database Abstraction Library for PHP, care suportă o mare varietate de baze de date diferite (inclusiv MySQL, Oracle, DB2, MS SQL Server, MS Access, ODBC) si permite conectarea la bazele de date multiple în acelaşi timp.<br />Performanta<br /> RAP SimpleRdfParser ARC<br />Processing (total) 2.921 s 1.984 s 0.834 s<br />Triples/s (total) ~116 ~170 ~405<br />Triples/s (excl. compiling) ~149 ~265 ~431<br /> Concluzii:<br />ARC este o alternativă la RAP-API atunci cand se cere numai o funcţionalitate limitată, cum ar fi parsarea sau afişarea. Fiind open source şi scrise în întregime în PHP, clasele RDF pot fi asociate cu framework-uri PHP şi utilizate în comun de mediile web care ofera hosting. Ideea de baza a ARC este de a oferi clase RDF simple, spre deosebire de RAP. Cu toate acestea, mai multe opţiuni au fost deja adăugate la ARC, care ar putea sa nu fie necesare in anumite cazuri. Este planificat a se construi un serviciu de parsare simplu, care va permite dezvoltatorilor sa adapteze script-uri ARC la nevoile lor.. Împreună cu alte opţiuni de configurare dimensiunea parser-ului ar putea fi redus la 20KB sau mai puţin. Cu toate acestea, momentan RAP reprezinta varianta mai matura in implementare, care ofera functionalitati multiple, cu toate ca si ARC detine o comunitate activa care este in continua crestere, ceea ce va duce implicit la dezvoltarea acestui Api. <br />Bibliografie<br /> <br />ADOdb Database Abstraction Library for PHP http://adodb.sourceforge.net<br />ARC - appmosphere RDF classes. http://www.appmosphere.com/pages/en-arc <br />D. Beckett: RDF/XML Syntax Specification (Revised). W3C Recommendation. 10 February 2004. http://www.w3.org/TR/rdf-syntax-grammar<br />G. Klyne, J. Carroll: Resource Description Framework (RDF): Concepts and Abstract Syntax, W3C Recommendation. 10 February 2004. http://www.w3.org/TR/rdf-concepts<br />PHP XML Classes. http://phpxmlclasses.sourceforge.net<br /> This work is in the Public Domain. To view a copy of the public domain certification, visit http://creativecommons.org/licenses/publicdomain/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.<br />

×