SlideShare uma empresa Scribd logo
1 de 4
Baixar para ler offline
Studiu comparativ privind procesarea RDF sub .NET Framework
SemWeb este o librarie pentru Semantic Web si RDF, scrisă in C# pentru platforma .NET 1.1/2.0. Ea
poate fi folosită pentru a scrie și a citi RDF(XML sau N3), pentru a stoca conținutul RDF într-un mediu
persistent (memorie, MySQL, SQLite, SQL Server, PostgreSQL), pentru a interoga mediul persistent
utilizând limbajul SPARQL sau pentru crea interogări SPARQL pentru diferite resurse de pe web.



Caracteristici

         API ușor de utilizat cu o interoperabilitate completă.
         Scriere și citire RDF/XML. Cititorul lucrează cu fluxuri astfel încât nu este necesară încărcarea
          întregului document în memorie.
         Respectă standardul W3C.
         Suport pentru Notation 3 – scriere și citire Ntriple, Turtle și o marea parte a Notation 3. Se
          folosesc fluxuri care operează la aproximativ 20.000 de declarații pe secundă.
         Validarea URI-ulor și a literalilor XSD când se execută citirea (sau când se cere acest lucru) și
          parsarea tipurilor xsd:dateTime, xsd:date, xsd:time în instanțe ale tipului XsdDateTime.
         Posibilitatea de a genera fișiere în formatul GraphViz.
         Posibilitate de stocare în baze de date pentru SQL Server, MySQL, Sqlite și PostgreSQL. În
          MySQL se pot stoca cel puțin un miliard de înregistrări.
         Se poate folosi ca mediu de stocare și sistemul de fișiere.
         Mediile de stocare persistente suportă o operație Select extinsă pentru a putea interoga mai
          multe lucruri deodată, fiind mai rapidă decât decât operații Select individuale.
         Raționare RDFS și raționare bazată pe reguli.
         Interogări SPARQL peste orice sursă de date cu transformări în SQL de câte ori este posibil.
          Există un client pentru surse de date SPARQL și un protocol SPARQL pentru ASP.NET.
         Interogări pe surse de date Stores ce conțin instanțe ale obiectelor de tipul SelectableSource.
         Librăria este extensibilă pentru a implementa un nou sistem de stocare.



Un program SemWeb simplu:

//   This example creates a few RDF statements and adds
//   them to a MemoryStore. Then it writes out the
//   statements in RDF/XML format to the console. Note
//   that the implicit string-to-Entity and string-to-
//   Literal conversion operators are being used.

using System;
using SemWeb;

public class Example {

         const string RDF = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";

         public static void Main() {
             MemoryStore store = new MemoryStore();


                                                     1
Entity   computer = new Entity("http://example.org/robot");
           Entity   says = "http://example.org/says";
           Entity   wants = "http://example.org/wants";
           Entity   desire = new BNode();
           Entity   description = new Entity("http://example.org/description");

        store.Add(new Statement(computer, says, (Literal)"Hello world from
me, the robot!"));
        store.Add(new Statement(computer, wants, desire));
        store.Add(new Statement(desire, description, (Literal)"to have a
heart like humans"));
        store.Add(new Statement(desire, RDF+"type",
(Entity)"http://example.org/Desire"));

           using (RdfWriter writer = new RdfXmlWriter(Console.Out)) {
               writer.Namespaces.AddNamespace("http://example.org/", "ex");
               writer.Write(store);
           }
    }
}

Rezultatul acestui program este următorul:

<?xml version="1.0"?>
<rdf:RDF xmlns:ex="http://example.org/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
    <rdf:Description rdf:about="http://example.org/robot">
        <ex:says>Hello world from me, the robot!</ex:says>
        <ex:wants>
            <ex:Desire>
                <ex:description>to have a heart like
humans</ex:description>
            </ex:Desire>
        </ex:wants>
    </rdf:Description>
</rdf:RDF>



Citire RDF

Pentru a putea citi RDF, se folosește clasa MemoryStore. cu ajutorul metodei Import, se pot
încărca în memorie fișiere RDF/XML, N-Triple, Turtle, Notation 3. Se pot încărca resurse de
pe web specificând URI-ul lor, folosind metoda LoadFromUri, care determină formatul
fișiserului (XML sau N3) în funcție de tipul MIME trimis de către server.

Exemple:

MemoryStore store = new MemoryStore();
store.Import(new RdfXmlReader("myRDFdata.rdf"));

store.Import(new N3Reader("myN3data.n3"));

store.Import(RdfReader.LoadFromUri(new
Uri("http://www.microsoft.com/news.rdf")));




                                             2
Declarația SELECT

Numele „SELECT” este derivat din sintaxa SQL, unde este folosit pentru a extrage rânduri
după un anumit criteriu. În libăria SemWeb, declarația SELECT este folosită pentru a extrage
resurse potrivit unor filtre. La fel ca în SQL, când nici un filtru este prezent, toate resursele
sunt extrase.

Exemple:
store.Select(sink); // selecteză toate afirmațiile
store.Select(new Statement(null, null, null), sink); // la fel ca mai sus
store.Select(Statement.All, sink); // la fel ca mai sus, doar mai scurt

store.Select(new Statement(subj, null,             null), sink);     // orice afirmație cu
subiectul ”subj”
store.Select(new Statement(subj, pred,             null), sink);     // orice afirmație cu
subiectul ”subj” și predicatul ”pred”
store.Select(new Statement(subj, pred,             obj), sink); // doar afirmația cu
subiectul ”subj”, predicatul ”pred” și             valoarea ”obj”.


Folosirea bazelor de date

În afară de MemoryStore, librăria SemWeb asigură și 4 sisteme de stocare persistente bazate
pe SQL: MySQL, PostgreSQL, SQL Server și SqlLite.

Viziune asupra performațelor

Stocarea în MySQL este de mai multe ori mai rapidă decât stocarea SQLite, cel puțin pentru
adăugarea afirmațiilor în mediul persistent. Cu SQLite este mai uşor de lucrat și poate fi
folosit pentru baze de date mici de până la 100.000 de declarații. Folosind metoda de import
pentru MySQL, se pot încărca peste zece milioane de declarații în cel mult 45 minute pe
sisteme modeste, adică aproximativ 4500 declarații pe secundă. SQLite încarcă datele la o
viteză de 1400 declarații pe secundă. Viteza depinde foarte mult de structura de date care va
fi încărcată.


Selectarea folosind filtre

Pentru orice sursă de declarații în afară de MemoryStore, la fiecare cerere pentru o
declarație apare o prelucrare complicată pentru a extrage datele din baza de date. Se
preferă ca în loc de câte o intrucțiune SELECT trimisă către baza de date de fiecare dată, să
se creeze on intrucțiune pentru un filtru mult mai complicat.




                                               3
SPARQL

Librăria SemWeb oferă suport pentru interogări SPARQL pentru surse de date care suportă
limbajul de interogare SPARQL și pentru a executa interogări peste diferite endpont-uri
SPARQL.

LinqToRdf

Librăria SemWeb este folosită pentru a implementa LinqToRdf, ceea ce oferă o platformă
pentru lucrul cu OWL și SPARQL.

Greengrass

Un alt framework C# care oferă un API de nivel înalt este Greengrass, ce permite parsarea,
stocarea și manipularea tripelor RDF. Oferă suport pentru serializarea și deserializarea
tipurilor din Common Language Runtime în format RDF, OWL sau alte vocabulare RDF.

ROWLEX

Rowlex este o librărie .NET care poate fi folosită pentru a crea și parcurge fișiere RDF într-un
mod simplu. Ascunde nivelul triplelor RDF și ridică nivelul de programare la clasele OWL si
proprietățile lor.




                                               4

Mais conteúdo relacionado

Destaque

лилия
лилиялилия
лилияfarcrys
 
James Metcalfe's Real Estate Market Update 11,11
James Metcalfe's Real Estate Market Update 11,11James Metcalfe's Real Estate Market Update 11,11
James Metcalfe's Real Estate Market Update 11,11James Metcalfe
 
Icon General Company Presentation
Icon General Company PresentationIcon General Company Presentation
Icon General Company Presentationmckenzies
 
Caloosa Tech Times October 2009
Caloosa Tech Times October 2009Caloosa Tech Times October 2009
Caloosa Tech Times October 2009ITbyTheSea
 
祝莹会跳绳的小企鹅拆卸
祝莹会跳绳的小企鹅拆卸祝莹会跳绳的小企鹅拆卸
祝莹会跳绳的小企鹅拆卸zust
 
Good Old Jonas
Good Old JonasGood Old Jonas
Good Old Jonasmagnhild
 
Greig s - trail presentation
Greig s - trail presentationGreig s - trail presentation
Greig s - trail presentationTrailplan
 
Brite Conference Presentation 4 1 10
Brite Conference Presentation 4 1 10Brite Conference Presentation 4 1 10
Brite Conference Presentation 4 1 10SheSpeaks Inc.
 
T560 model lesson_student_experience
T560 model lesson_student_experienceT560 model lesson_student_experience
T560 model lesson_student_experienceLindsayTBellino
 
презентация Microsoft Power Point
презентация Microsoft Power Pointпрезентация Microsoft Power Point
презентация Microsoft Power Pointnatysik
 
Mining and analyzing social media bollywood w pajek - hicss47 tutorial - da...
Mining and analyzing social media   bollywood w pajek - hicss47 tutorial - da...Mining and analyzing social media   bollywood w pajek - hicss47 tutorial - da...
Mining and analyzing social media bollywood w pajek - hicss47 tutorial - da...Dave King
 
Submit In-Class Presentation #3
Submit In-Class Presentation #3Submit In-Class Presentation #3
Submit In-Class Presentation #3tykl94
 
The colourful friends
The colourful friendsThe colourful friends
The colourful friendsAlka Rao
 
Submit In-Class Presentation #4-2
Submit In-Class Presentation #4-2Submit In-Class Presentation #4-2
Submit In-Class Presentation #4-2tykl94
 

Destaque (20)

лилия
лилиялилия
лилия
 
James Metcalfe's Real Estate Market Update 11,11
James Metcalfe's Real Estate Market Update 11,11James Metcalfe's Real Estate Market Update 11,11
James Metcalfe's Real Estate Market Update 11,11
 
10 College Myths about Safer Sex
10 College Myths about Safer Sex 10 College Myths about Safer Sex
10 College Myths about Safer Sex
 
Ferrol
FerrolFerrol
Ferrol
 
Icon General Company Presentation
Icon General Company PresentationIcon General Company Presentation
Icon General Company Presentation
 
Caloosa Tech Times October 2009
Caloosa Tech Times October 2009Caloosa Tech Times October 2009
Caloosa Tech Times October 2009
 
祝莹会跳绳的小企鹅拆卸
祝莹会跳绳的小企鹅拆卸祝莹会跳绳的小企鹅拆卸
祝莹会跳绳的小企鹅拆卸
 
Good Old Jonas
Good Old JonasGood Old Jonas
Good Old Jonas
 
Greig s - trail presentation
Greig s - trail presentationGreig s - trail presentation
Greig s - trail presentation
 
Brite Conference Presentation 4 1 10
Brite Conference Presentation 4 1 10Brite Conference Presentation 4 1 10
Brite Conference Presentation 4 1 10
 
T560 model lesson_student_experience
T560 model lesson_student_experienceT560 model lesson_student_experience
T560 model lesson_student_experience
 
6
66
6
 
Delilah
DelilahDelilah
Delilah
 
презентация Microsoft Power Point
презентация Microsoft Power Pointпрезентация Microsoft Power Point
презентация Microsoft Power Point
 
Mining and analyzing social media bollywood w pajek - hicss47 tutorial - da...
Mining and analyzing social media   bollywood w pajek - hicss47 tutorial - da...Mining and analyzing social media   bollywood w pajek - hicss47 tutorial - da...
Mining and analyzing social media bollywood w pajek - hicss47 tutorial - da...
 
Submit In-Class Presentation #3
Submit In-Class Presentation #3Submit In-Class Presentation #3
Submit In-Class Presentation #3
 
Mother
MotherMother
Mother
 
The colourful friends
The colourful friendsThe colourful friends
The colourful friends
 
Submit In-Class Presentation #4-2
Submit In-Class Presentation #4-2Submit In-Class Presentation #4-2
Submit In-Class Presentation #4-2
 
Moodle1
Moodle1Moodle1
Moodle1
 

Semelhante a Procesare Rdf Sub .Net Framework

Tool-uri java pentru RDF
Tool-uri java pentru RDFTool-uri java pentru RDF
Tool-uri java pentru RDFioanaciprian
 
WADe 2014—2015 (06/12): Semantic Web—Managementul datelor RDF. Interogarea da...
WADe 2014—2015 (06/12): Semantic Web—Managementul datelor RDF. Interogarea da...WADe 2014—2015 (06/12): Semantic Web—Managementul datelor RDF. Interogarea da...
WADe 2014—2015 (06/12): Semantic Web—Managementul datelor RDF. Interogarea da...Sabin Buraga
 
WADe 2017-2018 (6/12) RDF Data Management. Accessing RDF Data via SPARQL
WADe 2017-2018 (6/12) RDF Data Management. Accessing RDF Data via SPARQLWADe 2017-2018 (6/12) RDF Data Management. Accessing RDF Data via SPARQL
WADe 2017-2018 (6/12) RDF Data Management. Accessing RDF Data via SPARQLSabin Buraga
 
Web 2016 (09/13) Procesarea datelor XML & HTML. Simple API for XML. Procesări...
Web 2016 (09/13) Procesarea datelor XML & HTML. Simple API for XML. Procesări...Web 2016 (09/13) Procesarea datelor XML & HTML. Simple API for XML. Procesări...
Web 2016 (09/13) Procesarea datelor XML & HTML. Simple API for XML. Procesări...Sabin Buraga
 
WADe 2017-2018 (5/12) Data Modeling in RDF (Resource Description Framework)
WADe 2017-2018 (5/12) Data Modeling in RDF (Resource Description Framework)WADe 2017-2018 (5/12) Data Modeling in RDF (Resource Description Framework)
WADe 2017-2018 (5/12) Data Modeling in RDF (Resource Description Framework)Sabin Buraga
 
Fundamentele Limbajului Java
Fundamentele Limbajului JavaFundamentele Limbajului Java
Fundamentele Limbajului Javacolaru
 
Fii linked data
Fii linked dataFii linked data
Fii linked datateodora001
 
Fii linked data
Fii linked dataFii linked data
Fii linked datateodora001
 
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Sabin Buraga
 
Dezvoltarea Aplicatiilor Web
Dezvoltarea Aplicatiilor WebDezvoltarea Aplicatiilor Web
Dezvoltarea Aplicatiilor Webdanielnastase
 
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea da...
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea da...Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea da...
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea da...Sabin Buraga
 
Biblioteci JavaScript pentru Ajax.pptx
Biblioteci JavaScript pentru Ajax.pptxBiblioteci JavaScript pentru Ajax.pptx
Biblioteci JavaScript pentru Ajax.pptxCostea112
 
J boss seam framework
J boss seam frameworkJ boss seam framework
J boss seam frameworkbeatrisrusu
 
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Sabin Buraga
 

Semelhante a Procesare Rdf Sub .Net Framework (20)

Tool-uri java pentru RDF
Tool-uri java pentru RDFTool-uri java pentru RDF
Tool-uri java pentru RDF
 
ARC vs RAP
ARC vs RAPARC vs RAP
ARC vs RAP
 
WADe 2014—2015 (06/12): Semantic Web—Managementul datelor RDF. Interogarea da...
WADe 2014—2015 (06/12): Semantic Web—Managementul datelor RDF. Interogarea da...WADe 2014—2015 (06/12): Semantic Web—Managementul datelor RDF. Interogarea da...
WADe 2014—2015 (06/12): Semantic Web—Managementul datelor RDF. Interogarea da...
 
WADe 2017-2018 (6/12) RDF Data Management. Accessing RDF Data via SPARQL
WADe 2017-2018 (6/12) RDF Data Management. Accessing RDF Data via SPARQLWADe 2017-2018 (6/12) RDF Data Management. Accessing RDF Data via SPARQL
WADe 2017-2018 (6/12) RDF Data Management. Accessing RDF Data via SPARQL
 
Web 2016 (09/13) Procesarea datelor XML & HTML. Simple API for XML. Procesări...
Web 2016 (09/13) Procesarea datelor XML & HTML. Simple API for XML. Procesări...Web 2016 (09/13) Procesarea datelor XML & HTML. Simple API for XML. Procesări...
Web 2016 (09/13) Procesarea datelor XML & HTML. Simple API for XML. Procesări...
 
WADe 2017-2018 (5/12) Data Modeling in RDF (Resource Description Framework)
WADe 2017-2018 (5/12) Data Modeling in RDF (Resource Description Framework)WADe 2017-2018 (5/12) Data Modeling in RDF (Resource Description Framework)
WADe 2017-2018 (5/12) Data Modeling in RDF (Resource Description Framework)
 
Fundamentele Limbajului Java
Fundamentele Limbajului JavaFundamentele Limbajului Java
Fundamentele Limbajului Java
 
Fii linked data
Fii linked dataFii linked data
Fii linked data
 
Fii linked data
Fii linked dataFii linked data
Fii linked data
 
Fii linked data
Fii linked dataFii linked data
Fii linked data
 
Fii linked data
Fii linked dataFii linked data
Fii linked data
 
Fii linked data
Fii linked dataFii linked data
Fii linked data
 
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
 
diSparql
diSparqldiSparql
diSparql
 
Dezvoltarea Aplicatiilor Web
Dezvoltarea Aplicatiilor WebDezvoltarea Aplicatiilor Web
Dezvoltarea Aplicatiilor Web
 
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea da...
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea da...Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea da...
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea da...
 
Biblioteci JavaScript pentru Ajax.pptx
Biblioteci JavaScript pentru Ajax.pptxBiblioteci JavaScript pentru Ajax.pptx
Biblioteci JavaScript pentru Ajax.pptx
 
J boss seam framework
J boss seam frameworkJ boss seam framework
J boss seam framework
 
Stroia_Laurentiu
Stroia_LaurentiuStroia_Laurentiu
Stroia_Laurentiu
 
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
 

Procesare Rdf Sub .Net Framework

  • 1. Studiu comparativ privind procesarea RDF sub .NET Framework SemWeb este o librarie pentru Semantic Web si RDF, scrisă in C# pentru platforma .NET 1.1/2.0. Ea poate fi folosită pentru a scrie și a citi RDF(XML sau N3), pentru a stoca conținutul RDF într-un mediu persistent (memorie, MySQL, SQLite, SQL Server, PostgreSQL), pentru a interoga mediul persistent utilizând limbajul SPARQL sau pentru crea interogări SPARQL pentru diferite resurse de pe web. Caracteristici  API ușor de utilizat cu o interoperabilitate completă.  Scriere și citire RDF/XML. Cititorul lucrează cu fluxuri astfel încât nu este necesară încărcarea întregului document în memorie.  Respectă standardul W3C.  Suport pentru Notation 3 – scriere și citire Ntriple, Turtle și o marea parte a Notation 3. Se folosesc fluxuri care operează la aproximativ 20.000 de declarații pe secundă.  Validarea URI-ulor și a literalilor XSD când se execută citirea (sau când se cere acest lucru) și parsarea tipurilor xsd:dateTime, xsd:date, xsd:time în instanțe ale tipului XsdDateTime.  Posibilitatea de a genera fișiere în formatul GraphViz.  Posibilitate de stocare în baze de date pentru SQL Server, MySQL, Sqlite și PostgreSQL. În MySQL se pot stoca cel puțin un miliard de înregistrări.  Se poate folosi ca mediu de stocare și sistemul de fișiere.  Mediile de stocare persistente suportă o operație Select extinsă pentru a putea interoga mai multe lucruri deodată, fiind mai rapidă decât decât operații Select individuale.  Raționare RDFS și raționare bazată pe reguli.  Interogări SPARQL peste orice sursă de date cu transformări în SQL de câte ori este posibil. Există un client pentru surse de date SPARQL și un protocol SPARQL pentru ASP.NET.  Interogări pe surse de date Stores ce conțin instanțe ale obiectelor de tipul SelectableSource.  Librăria este extensibilă pentru a implementa un nou sistem de stocare. Un program SemWeb simplu: // This example creates a few RDF statements and adds // them to a MemoryStore. Then it writes out the // statements in RDF/XML format to the console. Note // that the implicit string-to-Entity and string-to- // Literal conversion operators are being used. using System; using SemWeb; public class Example { const string RDF = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"; public static void Main() { MemoryStore store = new MemoryStore(); 1
  • 2. Entity computer = new Entity("http://example.org/robot"); Entity says = "http://example.org/says"; Entity wants = "http://example.org/wants"; Entity desire = new BNode(); Entity description = new Entity("http://example.org/description"); store.Add(new Statement(computer, says, (Literal)"Hello world from me, the robot!")); store.Add(new Statement(computer, wants, desire)); store.Add(new Statement(desire, description, (Literal)"to have a heart like humans")); store.Add(new Statement(desire, RDF+"type", (Entity)"http://example.org/Desire")); using (RdfWriter writer = new RdfXmlWriter(Console.Out)) { writer.Namespaces.AddNamespace("http://example.org/", "ex"); writer.Write(store); } } } Rezultatul acestui program este următorul: <?xml version="1.0"?> <rdf:RDF xmlns:ex="http://example.org/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="http://example.org/robot"> <ex:says>Hello world from me, the robot!</ex:says> <ex:wants> <ex:Desire> <ex:description>to have a heart like humans</ex:description> </ex:Desire> </ex:wants> </rdf:Description> </rdf:RDF> Citire RDF Pentru a putea citi RDF, se folosește clasa MemoryStore. cu ajutorul metodei Import, se pot încărca în memorie fișiere RDF/XML, N-Triple, Turtle, Notation 3. Se pot încărca resurse de pe web specificând URI-ul lor, folosind metoda LoadFromUri, care determină formatul fișiserului (XML sau N3) în funcție de tipul MIME trimis de către server. Exemple: MemoryStore store = new MemoryStore(); store.Import(new RdfXmlReader("myRDFdata.rdf")); store.Import(new N3Reader("myN3data.n3")); store.Import(RdfReader.LoadFromUri(new Uri("http://www.microsoft.com/news.rdf"))); 2
  • 3. Declarația SELECT Numele „SELECT” este derivat din sintaxa SQL, unde este folosit pentru a extrage rânduri după un anumit criteriu. În libăria SemWeb, declarația SELECT este folosită pentru a extrage resurse potrivit unor filtre. La fel ca în SQL, când nici un filtru este prezent, toate resursele sunt extrase. Exemple: store.Select(sink); // selecteză toate afirmațiile store.Select(new Statement(null, null, null), sink); // la fel ca mai sus store.Select(Statement.All, sink); // la fel ca mai sus, doar mai scurt store.Select(new Statement(subj, null, null), sink); // orice afirmație cu subiectul ”subj” store.Select(new Statement(subj, pred, null), sink); // orice afirmație cu subiectul ”subj” și predicatul ”pred” store.Select(new Statement(subj, pred, obj), sink); // doar afirmația cu subiectul ”subj”, predicatul ”pred” și valoarea ”obj”. Folosirea bazelor de date În afară de MemoryStore, librăria SemWeb asigură și 4 sisteme de stocare persistente bazate pe SQL: MySQL, PostgreSQL, SQL Server și SqlLite. Viziune asupra performațelor Stocarea în MySQL este de mai multe ori mai rapidă decât stocarea SQLite, cel puțin pentru adăugarea afirmațiilor în mediul persistent. Cu SQLite este mai uşor de lucrat și poate fi folosit pentru baze de date mici de până la 100.000 de declarații. Folosind metoda de import pentru MySQL, se pot încărca peste zece milioane de declarații în cel mult 45 minute pe sisteme modeste, adică aproximativ 4500 declarații pe secundă. SQLite încarcă datele la o viteză de 1400 declarații pe secundă. Viteza depinde foarte mult de structura de date care va fi încărcată. Selectarea folosind filtre Pentru orice sursă de declarații în afară de MemoryStore, la fiecare cerere pentru o declarație apare o prelucrare complicată pentru a extrage datele din baza de date. Se preferă ca în loc de câte o intrucțiune SELECT trimisă către baza de date de fiecare dată, să se creeze on intrucțiune pentru un filtru mult mai complicat. 3
  • 4. SPARQL Librăria SemWeb oferă suport pentru interogări SPARQL pentru surse de date care suportă limbajul de interogare SPARQL și pentru a executa interogări peste diferite endpont-uri SPARQL. LinqToRdf Librăria SemWeb este folosită pentru a implementa LinqToRdf, ceea ce oferă o platformă pentru lucrul cu OWL și SPARQL. Greengrass Un alt framework C# care oferă un API de nivel înalt este Greengrass, ce permite parsarea, stocarea și manipularea tripelor RDF. Oferă suport pentru serializarea și deserializarea tipurilor din Common Language Runtime în format RDF, OWL sau alte vocabulare RDF. ROWLEX Rowlex este o librărie .NET care poate fi folosită pentru a crea și parcurge fișiere RDF într-un mod simplu. Ascunde nivelul triplelor RDF și ridică nivelul de programare la clasele OWL si proprietățile lor. 4