Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
pl:miw:2009:miw09_semweb_rdfstore [2009/06/19 02:48]
jsi08
pl:miw:2009:miw09_semweb_rdfstore [2019/06/27 15:50] (aktualna)
Linia 62: Linia 62:
 W wielkim skrócie jakie są różnice: W wielkim skrócie jakie są różnice:
   * **RDF**   * **RDF**
 +Język opisu zasobów.
  
   * **RDFS**   * **RDFS**
 +O ile RDF zawiera jedynie informacje w postaci grafu skierowanego,​ to RDF Schema wprowadza podstawowe pojęcia, pozwalające na strukturalne uporządkowanie tego grafu. RDF Schema stanowi bazę dla języka OWL.
 +Wprowadza pojęcie klasy i właściwości.
  
-  * **RDFS+**+  * **RDFS+ ​(OWL RDFS+)** 
 +Jest to RDFS wzbogacony o predykaty owl:sameAs i owl:​InverseFunctionalProperty z języka OWL.
  
   * **OWL**   * **OWL**
-OWL Lite+OWL dodaje więcej słownictwa dla opisywania właściwości I klas: między innymi, relacje między klasami (np. rozłączność),​ liczebność (np. dokładnie jeden), równość, bogatsze grupowanie właściwości,​ cechy właściwości (np. symetryczność),​ oraz ponumerowane klasy.
  
-OWL DL+Istnieją 3 podjęzyki OWL o wzrastającej ekspresyjności:​ 
 + 
 +**OWL Lite** 
 +Udostępnia jedynie proste ograniczenia (np. liczebność tylko 0 lub 1). 
 + 
 +**OWL DL** 
 +Udostępnia pełny model OWL ale z ograniczeniami gwarantującymi obliczeniową kompletność (wszystkie są wykonywalne obliczeniowo). Najczęściej wykorzystywany przy budowie ontologi OWL. 
 + 
 +**OWL Full** 
 +Udostępnia bez ograniczeń pełny model OWL i składniową dowolność RDF. Jak podaje W3C "mało prawdopodobne jest, by jakiekolwiek oprogramowanie logiczne będzie w stanie wspierać kompletne rozumowanie logiczne dla każdej cechy OWL Full".
  
-OWL Full 
  
 ===== Serializacja danych RDF ===== ===== Serializacja danych RDF =====
   * **XML**   * **XML**
 +Podstawowa metoda serializacji danych RDF. Jak w każdym dokumencie XML przerost formy nad treścią.
 +
 +Przykład:
 +<​code>​
 +<rdf:RDF
 +    xmlns:​rdf="​http://​www.w3.org/​1999/​02/​22-rdf-syntax-ns#"​
 +    xmlns:​dc="​http://​purl.org/​dc/​elements/​1.1/">​
 +  <​rdf:​Description rdf:​about="​http://​en.wikipedia.org/​wiki/​Tony_Benn">​
 +    <​dc:​title>​Tony Benn</​dc:​title>​
 +    <​dc:​publisher>​Wikipedia</​dc:​publisher>​
 +  </​rdf:​Description>​
 +</​rdf:​RDF>​
 +</​code>​
  
   * **Notation3 (N3)**   * **Notation3 (N3)**
 +Obecnie najpolularniejsza metoda serializacji danych RDF, po definicji przestrzeni nazw (@prefix) nie trzeba używać pełnych URI. Dokument przedstawia po kolei trójki RDF bez dodatkowych tagów.
 +
 +Przykład:
 +<​code>​
 +@prefix dc: <​http://​purl.org/​dc/​elements/​1.1/>​.
 +
 +<​http://​en.wikipedia.org/​wiki/​Tony_Benn>​
 +  dc:title "Tony Benn";
 +  dc:​publisher "​Wikipedia"​.
 +</​code>​
 +[[http://​www.w3.org/​DesignIssues/​Notation3.html]]
 +[[http://​en.wikipedia.org/​wiki/​Notation_3]]
  
   * **Turtle**   * **Turtle**
 +Uproszczona wersja (pozdbiór) notacji N3.
 +
 +[[http://​www.w3.org/​TeamSubmission/​turtle/​]]
 +[[http://​en.wikipedia.org/​wiki/​Turtle_(syntax)]]
  
   * **RDFa**   * **RDFa**
 +Standard pozwalający na dołączanie dancyh RDF do zwykłych stron XHTML. Każdemu elementowu HTML możemy przypisać dane RDF w ten sposób opisując wyrażeniami sieci semantycznej zwykłą treść strony.
 +<​code>​
 +<div xmlns:​dc="​http://​purl.org/​dc/​elements/​1.1/">​
 +   <​div about="/​alice/​posts/​trouble_with_bob">​
 +      <h2 property="​dc:​title">​The trouble with Bob</​h2>​
 +      <h3 property="​dc:​creator">​Alice</​h3>​
 +      ...
 +   </​div>​
 +   ...
 +</​div>​
 +</​code>​
 +[[http://​www.w3.org/​TR/​xhtml-rdfa-primer/​]]
 +[[http://​www.w3.org/​TR/​rdfa-syntax/​]]
 +[[http://​en.wikipedia.org/​wiki/​RDFa]]
 +
 +
 +===== SPARQL =====
 +Jest to język zapytań RDF.
 +[[http://​en.wikipedia.org/​wiki/​SPARQL]]
 +[[http://​www.w3.org/​TR/​rdf-sparql-query/​]]
 +
  
 ===== Dostępne bazy wiedzy ===== ===== Dostępne bazy wiedzy =====
Linia 126: Linia 188:
 ** Dane ** ** Dane **
  
-DBpedia wykorzystuje kilka zbiorów ​trójek ​RDF umieszczonych w osobnych przestrzeniach ​nazw:+DBpedia wykorzystuje kilka zbiorów RDF, lista wg przestrzeni ​nazw:
   * "​dbpedia:"​ - nazwy zasobów (hasła).   * "​dbpedia:"​ - nazwy zasobów (hasła).
-  * "​dbpprop:"​ - dane z infoboxów, są to zupełnie nie powiązane ze sobą trójki zawierające informacje przepisane wprost z infoboxów, wg. zasady klucz -> wartość +  * "​dbpprop:"​ - dane z infoboxów, są to zupełnie nie powiązane ze sobą trójki zawierające informacje przepisane wprost z infoboxów, wg. zasady klucz -> wartość ​(plik infobox_*.nt) 
-  * "​dbpedia-owl:"​ - przetworzone dane z infoboxów, wszystkie predykaty tworzą uporządkowaną ontologie OWL ([[http://​wiki.dbpedia.org/​Ontology]],​ [[http://​www4.wiwiss.fu-berlin.de/​dbpedia/​dev/​ontology.htm]]), aktualnie ilość danych jest znacznie mniejsza w stosunku do "​dbpprop:"​. +  * "​dbpedia-owl:"​ - przetworzone dane z infoboxów, wszystkie predykaty tworzą uporządkowaną ontologie OWL, aktualnie ilość danych jest znacznie mniejsza w stosunku do "​dbpprop:" ​(plik infobox-mappingbased-loose.nt, types-mappingbased.nt) 
-  * "​foaf:"​ - http://​xmlns.com/​foaf/​spec/​ +  * "​foaf:"​ - [[http://​xmlns.com/​foaf/​spec/​]] (m.in. plik persondata_*.nt) 
-  * "​skos:"​ - http://​www.w3.org/​TR/​2009/​CR-skos-reference-20090317/​skos.html +  * "​skos:"​ - [[http://​www.w3.org/​TR/​2009/​CR-skos-reference-20090317/​skos.html]] - powiązania z kategorami wikipedii (skos:​subject,​ plik articlecategories_*.nt,​ skoscategories_*.nt) 
-  * "​geo:"​ - http://​www.w3.org/​2003/​01/​geo/,​ współrzędne geograficzne +  * "​geo:"​ - [[http://​www.w3.org/​2003/​01/​geo/​]], współrzędne geograficzne ​(plik: geo_*.nt) 
-  * "​georss:"​ - http://​www.georss.org/​georss/​point,​ współrzędne geograficzne+  * "​georss:"​ - [[http://​www.georss.org/​georss/​point]], współrzędne geograficzne ​(plik: geo_*.nt)
   * "​xsd:"​ - XML Shema   * "​xsd:"​ - XML Shema
-  * "​rdf:"​ - wykorzystywane predykaty: ​rdf:type+  * "​rdf:"​ - wykorzystywany ​rdf:​type ​- powiązania zasobów z ontologią dbpedia-owl (plik: types-mappingbased.nt)
   * "​rdfs:"​ - wykorzystywane predykaty: rdfs:​comment,​ rdfs:label   * "​rdfs:"​ - wykorzystywane predykaty: rdfs:​comment,​ rdfs:label
   * "​owl:"​ - wykorzystywane predykaty: owl:sameAs - linki do innych baz   * "​owl:"​ - wykorzystywane predykaty: owl:sameAs - linki do innych baz
  
 Dla "​rdf:",​ "​rdfs:",​ "​owl:"​ podałem tylko predykaty używane do opisu "​haseł",​ opis ontologi wykorzystuje pełny RDFS / OWL-DL. Dla "​rdf:",​ "​rdfs:",​ "​owl:"​ podałem tylko predykaty używane do opisu "​haseł",​ opis ontologi wykorzystuje pełny RDFS / OWL-DL.
 +
 +DBpedia linkuje do kilku innych baz wiedzy, szczegóły na [[http://​wiki.dbpedia.org/​Interlinking]]
  
 ** Ontologia ** ** Ontologia **
  
-DBpedia linkuje do kilku innych baz wiedzy, szczegóły na [[http://​wiki.dbpedia.org/​Interlinking]]+  * [[http://​wiki.dbpedia.org/​Ontology|strona na wiki.dbpedia.org]] 
 +  * Opis ontologi: [[http://​downloads.dbpedia.org/​3.2/​en/​dbpedia-ontology.owl]] 
 +  * Graf klas: [[http://​www4.wiwiss.fu-berlin.de/​dbpedia/​dev/​ontology.htm]] 
 +  * Ontologie można przeglądać za pomocą interfejsu HTML, np.: [[http://​dbpedia.org/​ontology/​Place|klasa "​Place"​]],​ [[http://​dbpedia.org/​ontology/​elevation|właściwość "​elevation"​]].
  
-**Przykładowe hasło**+** Przykładowe hasło **
  
 [[http://​dbpedia.org/​page/​Berlin]] [[http://​dbpedia.org/​page/​Berlin]]
Linia 153: Linia 220:
 [[http://​wiki.dbpedia.org/​Architecture?​v=1411]] [[http://​wiki.dbpedia.org/​Architecture?​v=1411]]
  
-Dostępny jest interfejs SPARQL ([[http://​dbpedia.org/​sparql]]),​ SNORQL ([[http://​dbpedia.org/​snorql/​]]).+Dostępny jest interfejs SPARQL ([[http://​dbpedia.org/​sparql]]),​ SNORQL ​- interfejs do SPARQL w html ([[http://​dbpedia.org/​snorql/​]]).
  
 Zasoby mogą być prezentowane jako: [[http://​dbpedia.org/​page/​Berlin|html]],​ [[http://​dbpedia.org/​data/​Berlin.n3|n3]],​ [[http://​dbpedia.org/​data/​Berlin.rdf|rdf/​xml]]. Zasoby mogą być prezentowane jako: [[http://​dbpedia.org/​page/​Berlin|html]],​ [[http://​dbpedia.org/​data/​Berlin.n3|n3]],​ [[http://​dbpedia.org/​data/​Berlin.rdf|rdf/​xml]].
Linia 159: Linia 226:
 Można także pobrać pełny dump bazy (format N3): [[http://​wiki.dbpedia.org/​Downloads32]]. Można także pobrać pełny dump bazy (format N3): [[http://​wiki.dbpedia.org/​Downloads32]].
  
-==== yago ==== +** System parsujący dane z wikipedii ** 
-[[http://www.mpi-inf.mpg.de/​yago-naga/​yago/]] +Dokumentacja i link do kodu poprzez SVN: [[http://wiki.dbpedia.org/Documentation]], całość napisana w PHP, można pobrać pełny kod w tar.gz. 
-[[http://​uniat5401.ag5.mpi-sb.mpg.de:​8180/​view.html?​entity=Albert_Einstein&​n=5]]+Kod jest bardzo czytelny i jego fragmenty mogą być podstawą do pisania własnego parsera wiki, npwspomnianego wydobywania współrzędnych geo w kodzie jest m.inklasa "​GeoExtractor"​. 
  
 ==== Freebase ==== ==== Freebase ====
Linia 168: Linia 236:
 [[http://​www.freebase.com/​view/​freebase/​faq]] [[http://​www.freebase.com/​view/​freebase/​faq]]
  
-Freebase jest otwartą bazą wiedzy tworzoną przez użytkowników (częściowo danych pochodzi także z innych źródeł). +Freebase jest otwartą bazą wiedzy tworzoną przez użytkowników (ale część danych pochodzi także z innych ​zaimportowanych ​źródeł). 
-Freebase prezentuje trochę inne podejście niż pozostałe bazy wiedzy. Jest pełnym systemem prezentacji i edycji danych a dostęp Linked Data jest tylko kolejną możliwością przeglądania bazy.+Freebase prezentuje trochę inne podejście niż pozostałe bazy wiedzy. Jest pełnym systemem prezentacji i edycji danych a dostęp Linked Data jest tylko kolejną możliwością przeglądania bazy, udostępnioną znacznie później niż inne interfejsy.
  
 Baza zawiera bardzo uporządkowane dane w ściśle określonych kategoriach,​ dla każdego hasła są wybrane odpowiednie zestawy właściwości,​ pojedyncze właściwości mogą odpowiadać predykatom RDF (np. zestaw "​Location"​ zawiera informacje o lokalizacji geograficznej). Baza zawiera bardzo uporządkowane dane w ściśle określonych kategoriach,​ dla każdego hasła są wybrane odpowiednie zestawy właściwości,​ pojedyncze właściwości mogą odpowiadać predykatom RDF (np. zestaw "​Location"​ zawiera informacje o lokalizacji geograficznej).
Linia 183: Linia 251:
 A full dump of Freebase assertions in a simple utf8 text format. This is a complete "low level" dump of data which is suitable for post processing into RDF or XML datasets. The format of the link export is a series of lines, one assertion per line. The lines are tab separated quadruples, <​source>,​ <​property>,​ <​destination>,​ <​value>​ An assertion is a statement of fact about the <​source>​ object. In any assertion, either the <​destination>​ or <​value>​ or both <​destination>​ and <​value>​ are present. A full dump of Freebase assertions in a simple utf8 text format. This is a complete "low level" dump of data which is suitable for post processing into RDF or XML datasets. The format of the link export is a series of lines, one assertion per line. The lines are tab separated quadruples, <​source>,​ <​property>,​ <​destination>,​ <​value>​ An assertion is a statement of fact about the <​source>​ object. In any assertion, either the <​destination>​ or <​value>​ or both <​destination>​ and <​value>​ are present.
  
-[[http://​rdf.freebase.com/​|Dostęp RDF]] - interfejs pozwalajaćy przeglądać pojedyncze hasła w formacie RDF (stworzy ​aby Freebase mogło być linkowane z innymi bazami RDF).+[[http://​rdf.freebase.com/​|Dostęp RDF]] - interfejs pozwalajaćy przeglądać pojedyncze hasła w formacie RDF (stworzony ​aby Freebase mogło być linkowane z innymi bazami RDF).
  
 Przykładowe hasło w RDF: [[http://​rdf.freebase.com/​rdf/​en/​berlin]] Przykładowe hasło w RDF: [[http://​rdf.freebase.com/​rdf/​en/​berlin]]
Linia 191: Linia 259:
 [[http://​www.geonames.org/​]] [[http://​www.geonames.org/​]]
  
 +Jest to baza danych geograficznych dla całego świata. Udostępniania na licencji Creative Commons Attribution 3.0 License (jednak niektóre inne otwarte systemy, np. OpenStreetMap nie chcą korzystać z geonames ponieważ baza jest częściowo stworzona z komercyjnych zasobów bez otwartej licencji).
 +
 +Baza zawiera informacje zarówno o krajach, jednostach administracyjnych,​ miastach jak i innych obiektach geograficznych takich jak jeziora, szczyty, doliny. Aktualnie baza nie zawiera informacji o dzielnicach i ulicach.
 +
 +Każdy obiekt jest przydzielony do odpowiedniej kategorii ([[http://​www.geonames.org/​export/​codes.html]]). Do każdego rekordu jest dołączona informacja o połorzeniu geograficznym (współrzędne geograficzne,​ kraj, podział administracyjny),​ populacji (tam gdzie pasuje), wysokością,​ obliczoną wysokością na podstawie danych GTOPO30, strefie czasowej. Dodatkowo dla krajów jest dostarczonych więcej informacji - nr kierunkowy, schemat kodów pocztowych, kody FIPS10-4, kody ISO, itp.
 +
 +Jedną z większych zalet geonames jest olbrzymia baza nazw alternatywnych,​ zawierająca skróty, nazwy potoczne oraz nazwy w kilkudziesięciu językach.
 +
 +
 +** Ontologia **
 [[http://​www.geonames.org/​ontology/​]] [[http://​www.geonames.org/​ontology/​]]
 +RDF endpoint http://​sws.geonames.org/​ serwuje dane rdf zgodne z Linked Data. Ontologia definiuje kilka klas, m.in.:
 +  * #Class - klasa (kategoria)
 +  * #Code - kod obiektu
 +  * #Country - kraj
 +  * #Feature - id obiektu w bazie geonames
 +  * #​WikipediaArticle - artykuł z wikipedi o obiekcie
 +owl:​DatatypeProperty:​
 +  * #​alternateName - nazwa alternatywna
 +  * #name - nazwa
 +  * #​officialName - nazwa oficjalna
 +  * #population - populacja
 +  * #postalCode - kod pocztowy
 +  * #wgs84_pos - współrzędne
 +owl:​ObjectProperty:​
 +  * #​childrenFeatures - link do "​potomków"​
 +  * #inCountry - kod iso kraju
 +  * #locatedIn - połorzenie wewnątrz innego obiektu
 +  * #nearby - obiekty połorzone w pobliżu
 +  * #​nearbyFeatures - link do obiektów połorzonych w pobliżu
 +  * #neighbour - obiekty sąsiadujące
 +  * #​neighbouringFeatures - link do obiektów sąsiadujących
 +  * #​parentFeature - obiekt "​rodzic"​
 +Dodatkowo w ontologi są zdefiniowane wszystkie kategorie obiektów (#​featureClass,​ #​featureCode) jako linki owl:sameAs do stron [[http://​www.eionet.europa.eu/​gemet/​]],​ np. "​kanał":​ [[http://​www.eionet.europa.eu/​gemet/​concept/​1126]].
  
 +Podsumowując ontologia pozwala na wyszukiwanie obiektów połorzonych w pobliżu, sąsiadujących i nadrzędnych do danego.
 +
 +** Przykładowe zapytania **
 +  * [[http://​demo.openlinksw.com/​ode/?​uri=http://​sws.geonames.org/​3094802/​]] - Kraków
 +  * [[http://​demo.openlinksw.com/​ode/?​uri=http://​sws.geonames.org/​3094802/​nearby.rdf]] - obiekty w pobliżu krakowa
 +
 +** Web Services **
 +
 +[[http://​www.geonames.org/​export/​web-services.html]]
 +Umożliwia zdalne pobieranie danych.
  
 ** Download: ** ** Download: **
 +
 [[http://​download.geonames.org/​export/​dump/​]] [[http://​download.geonames.org/​export/​dump/​]]
 +Pliki są w formacie tekstu rozdzielanego tabulatorami. Aby załadować dane do bazy SQL najlepiej stworzyć tabele i posłużyć się komendą LOAD DATA INFILE.
 +
 +
 +
 +==== yago ====
 +[[http://​www.mpi-inf.mpg.de/​yago-naga/​yago/​]]
 +
 +YAGO is a huge semantic knowledge base. Currently, YAGO knows more than 2 million entities (like persons, organizations,​ cities, etc.). It knows 20 million facts about these entities. Unlike many other automatically assembled knowledge bases, YAGO has a manually confirmed accuracy of 95%.
 +
 +** Przykładowe zapytania **
 +[[http://​www.mpi-inf.mpg.de/​yago-naga/​yago/​demo.html]]
 +
  
 ==== UMBEL ==== ==== UMBEL ====
Linia 201: Linia 325:
  
 Umbel jest ontlogią posiadającą połączenia z innymi ontologiami oraz z innymi bazami wiedzy (dbpedia, yago). Sam projekt nie jest bazą wiedzy. W pełni wykorzystuje OWL-Full. Umbel jest ontlogią posiadającą połączenia z innymi ontologiami oraz z innymi bazami wiedzy (dbpedia, yago). Sam projekt nie jest bazą wiedzy. W pełni wykorzystuje OWL-Full.
 +
 +Dokumentacja:​ [[http://​www.umbel.org/​documentation.html]]
  
 **Przykładowe hasło**: **Przykładowe hasło**:
Linia 207: Linia 333:
  
  
-==== SUMO (Suggested Upper Merged Ontology) ​==== +==== OpenCyc, Cyc ==== 
-[[http://​www.ontologyportal.org/]]+[[http://​pl.wikipedia.org/​wiki/​Cyc]] 
 +[[http://​www.opencyc.org/doc]] 
 + 
 +OpenCyc is the open source version of the Cyc technology, the world'​s largest and most complete general knowledge base and commonsense reasoning engine. OpenCyc contains the full set of (non-proprietary) Cyc terms as well as millions of assertions about the. Cycorp offers this ontology at no cost and encourages you to make use of it as you see fit. 
 + 
 +Release 1.0 of OpenCyc includes the entire Cyc ontology containing hundreds of thousands of terms, along with millions of assertions relating the terms to each other, forming an upper ontology whose domain is all of human consensus reality. 
  
 ==== WordNET ==== ==== WordNET ====
 [[http://​wordnet.princeton.edu/​]] [[http://​wordnet.princeton.edu/​]]
 +[[http://​wordnet.princeton.edu/​obtain]]
 +
 +WordNet® is a large lexical database of English, developed under the direction of George A. Miller. Nouns, verbs, adjectives and adverbs are grouped into sets of cognitive synonyms (synsets), each expressing a distinct concept. Synsets are interlinked by means of conceptual-semantic and lexical relations. The resulting network of meaningfully related words and concepts can be navigated with the browser. WordNet is also freely and publicly available for download. WordNet'​s structure makes it a useful tool for computational linguistics and natural language processing.
 +
 +
 +
 +==== SUMO (Suggested Upper Merged Ontology) ====
 +[[http://​www.ontologyportal.org/​]]
 +  * Mappings to all of WordNet
 +  * Largest free, formal ontology available, with 20,000 terms and 70,000 axioms when all domain ontologies are combined.
 +
  
 ==== DMOZ ==== ==== DMOZ ====
Linia 225: Linia 368:
  
 [[http://​rdf.dmoz.org/​|RDF Dump]] [[http://​rdf.dmoz.org/​|RDF Dump]]
 +
  
 ==== Chef Moz ==== ==== Chef Moz ====
Linia 270: Linia 414:
   * http://​www5.wiwiss.fu-berlin.de/​marbles/?​uri=http://​dbpedia.org/​resource/​Berlin   * http://​www5.wiwiss.fu-berlin.de/​marbles/?​uri=http://​dbpedia.org/​resource/​Berlin
   * http://​demo.openlinksw.com/​ode/?​uri=http://​dbpedia.org/​resource/​Berlin   * http://​demo.openlinksw.com/​ode/?​uri=http://​dbpedia.org/​resource/​Berlin
 +
 +[[http://​demo.openlinksw.com/​sparql]] - pod tym adresem znajduje się interfejs sparql umożliwiający wykonywanie zapytań wykorzystujących Linked Data.
  
  
Linia 278: Linia 424:
  
 ===== RDF Stroes ===== ===== RDF Stroes =====
 +[[http://​en.wikipedia.org/​wiki/​Triplestore]]
  
 ^ Nazwa ^ Język ^ RDFS / OWL ^ Składowanie ^ Interfejs ^ Uwagi ^ Web ^ ^ Nazwa ^ Język ^ RDFS / OWL ^ Składowanie ^ Interfejs ^ Uwagi ^ Web ^
Linia 287: Linia 434:
 | Jena | Java | RDFS \\ OWL | Memory \\ Database | SPARQL | Możliwość wyboru zakresu RDFS i OWL \\ Słaba wydajność RDFS/OWL dla baz danych (dobra tylko w pamięci) \\ Dla samego RDF bardzo dobra wydajność | [[http://​jena.sourceforge.net/​]] | | Jena | Java | RDFS \\ OWL | Memory \\ Database | SPARQL | Możliwość wyboru zakresu RDFS i OWL \\ Słaba wydajność RDFS/OWL dla baz danych (dobra tylko w pamięci) \\ Dla samego RDF bardzo dobra wydajność | [[http://​jena.sourceforge.net/​]] |
 | Mulgara | Java | - | Memory \\ Database | SPARQL | RDFS/OWL planowany | [[http://​www.mulgara.org/​]] | | Mulgara | Java | - | Memory \\ Database | SPARQL | RDFS/OWL planowany | [[http://​www.mulgara.org/​]] |
-| Sesame | Java | | | [[http://​www.openrdf.org/​]] |+| Sesame | Java | RDFS Memory \\ MySQL, PostgreSQL, Oracle ​SeRQL \\ API | | [[http://​www.openrdf.org/​]] |
 | Oracle 11g | | RDFS \\ OWL Full | | | Darmowy dla deweloperów | [[http://​www.oracle.com/​technology/​tech/​semantic_technologies/​index.html]] | | Oracle 11g | | RDFS \\ OWL Full | | | Darmowy dla deweloperów | [[http://​www.oracle.com/​technology/​tech/​semantic_technologies/​index.html]] |
-| ClioPatria | Prolog | | Memory | SeRQL \\ SPARQL | | [[http://​e-culture.multimedian.nl/​software/​ClioPatria.shtml]] |+| Virtuoso | | RDFS \\ OWL Full | | | | [[http://​virtuoso.openlinksw.com/​|Virtuoso]] \\ [[http://​virtuoso.openlinksw.com/​dataspace/​dav/​wiki/​Main/​|Virtuoso Open-Source Edition]] | 
 +| ClioPatria | Prolog | | Memory | SeRQL \\ SPARQL | | [[http://​e-culture.multimedian.nl/​software/​ClioPatria.shtml]] |
  
 ==== C/C++: ==== ==== C/C++: ====
Linia 307: Linia 455:
   * [[http://​www4.wiwiss.fu-berlin.de/​bizer/​rdfapi/​|RAP]]   * [[http://​www4.wiwiss.fu-berlin.de/​bizer/​rdfapi/​|RAP]]
 RAP, the RDF API for PHP, is a software package for parsing, searching, manipulating,​ serializing and serving RDF models. RAP, the RDF API for PHP, is a software package for parsing, searching, manipulating,​ serializing and serving RDF models.
 +
 +Model wykorzystujący bazę danych nie obsługuje RDFS i OWL, wnioskowanie jest obsługiwane jedynie w modelach przechowujących bazę wiedzy w pamięci.
 +
 +** Instalacja i uruchomienie **
 +
 +Całość jest napisana w PHP więc nie jest wymagana instalacja - wystarczy po rozpakowaniu dołączyć do projektu (skryptu) odpowiednie pliki PHP i zyskujemy dostęp do RDF API.
 +
  
 ==== Java: ==== ==== Java: ====
Linia 318: Linia 473:
 **Joseki** is an HTTP engine that supports the SPARQL Protocol and the SPARQL RDF Query language. **Joseki** is an HTTP engine that supports the SPARQL Protocol and the SPARQL RDF Query language.
 [[http://​www.joseki.org/​]] [[http://​www.joseki.org/​]]
 +
 +** Instalacja i uruchomienie **
 +
 +Po pobraniu wystarczy rozpakować archiwum i jeśli mamy zainstalowaną odpowiednią wersję java wszystko powinno działać. W pakiecie jest dostarczony skrypt testujący działanie.
  
   * [[http://​www.mulgara.org/​|Mulgara]] (500M)   * [[http://​www.mulgara.org/​|Mulgara]] (500M)
Linia 324: Linia 483:
   * [[http://​www.openrdf.org/​|Sesame]]   * [[http://​www.openrdf.org/​|Sesame]]
 [[http://​www.aduna-software.com/​home/​overview.view]] [[http://​www.aduna-software.com/​home/​overview.view]]
 +Sesame is an open source RDF framework with support for RDF Schema inferencing and querying. Originally, it was developed by Aduna (then known as Aidministrator) as a research prototype for the EU research project On-To-Knowledge. Now, it is further developed and maintained by Aduna in cooperation with NLnet Foundation, developers from Ontotext, and a number of volunteer developers who contribute ideas, bug reports and fixes.
  
 +** Instalacja i uruchomienie **
 +
 +[[http://​www.openrdf.org/​doc/​sesame/​users/​ch02.html]]
 +Po pobraniu wystarczy rozpakować archiwum i jeśli mamy zainstalowaną odpowiednią wersję java wszystko powinno działać. Można wykonać test uruchamiając konsole.
  
 ==== Prolog: ==== ==== Prolog: ====
Linia 333: Linia 497:
  
 Key figures Up to about 25 million RDF triples on 32-bit hardware, only limited by memory on 64-bit hardware. Exploits multi-CPU and multi-core hardware to answer requests over HTTP concurrently. Runs on Windows, MacOS X, Linux and most Unix flavours, supporting both 32-bit and 64-bit operating systems. 64-bit systems are recommended for servers with lots of data or many users. Key figures Up to about 25 million RDF triples on 32-bit hardware, only limited by memory on 64-bit hardware. Exploits multi-CPU and multi-core hardware to answer requests over HTTP concurrently. Runs on Windows, MacOS X, Linux and most Unix flavours, supporting both 32-bit and 64-bit operating systems. 64-bit systems are recommended for servers with lots of data or many users.
 +
 +  * [[http://​www.semanticweb.gr/​TheaOWLLib/​|Thea]]
 +Thea is a Prolog library for generating and manipulating OWL (Web Ontology Language) content. Thea version 0.5 consists of: OWL parser, OWL generator and SQL to OWL converter.
 +
  
 ==== Inne: ==== ==== Inne: ====
   * [[http://​virtuoso.openlinksw.com/​|Virtuoso]] (1B)   * [[http://​virtuoso.openlinksw.com/​|Virtuoso]] (1B)
 +[[http://​virtuoso.openlinksw.com/​dataspace/​dav/​wiki/​Main/​]]
 +Jeden z bardziej wydajnych silników. Wersja OpenLink Virtuoso używany m.in. przez DBpedia.
 +
 Virtuoso Universal Server s a middleware and database engine hybrid that combines the functionality of a traditional RDBMS, ORDBMS, virtual database, Resource Description Framework (RDF), XML, free-text, Web Application Server, and File Server functionality in a single server product offering. Rather than have dedicated servers for each of the aforementioned functionality realms, Virtuoso is a "​universal server";​ it enables a single multithreaded server process that implements multiple protocols. The open source edition of Virtuoso Universal Server is also known as OpenLink Virtuoso. Virtuoso Universal Server s a middleware and database engine hybrid that combines the functionality of a traditional RDBMS, ORDBMS, virtual database, Resource Description Framework (RDF), XML, free-text, Web Application Server, and File Server functionality in a single server product offering. Rather than have dedicated servers for each of the aforementioned functionality realms, Virtuoso is a "​universal server";​ it enables a single multithreaded server process that implements multiple protocols. The open source edition of Virtuoso Universal Server is also known as OpenLink Virtuoso.
 +
 +** Instalacja i uruchomienie **
 +
 +[[http://​virtuoso.openlinksw.com/​dataspace/​dav/​wiki/​Main/​VOSMake]] Dotyczy wersji OpenLink Virtuoso. Po pobraniu archiwum (źródła) kompilujemy.
 +<​code>​
 +./configure
 +make
 +</​code>​
 +Następnie można uruchomić automatyczny skrypt testujący:
 +<​code>​
 +make check
 +</​code>​
 +Instalacja wymaga uprawnień root i zostanie wykonana po poleceniu:
 +<​code>​
 +make install
 +</​code>​
 +
 +System nie sprawiał żadnych problemów podczas któregokolwiek etapu.
  
   * [[http://​www.oracle.com/​global/​pl/​tgb/​produkty_oracle/​database.html|Oracle 11g]]   * [[http://​www.oracle.com/​global/​pl/​tgb/​produkty_oracle/​database.html|Oracle 11g]]
 +
 +===== Benchmark =====
 +  * [[http://​www4.wiwiss.fu-berlin.de/​benchmarks-200801/​]] - bardzo dobry test wydajności systemów RDF
 +  * [[http://​www4.wiwiss.fu-berlin.de/​bizer/​BerlinSPARQLBenchmark/​]] - nowa, jeszcze lepsza wersja testu, wszystko dokładnie omówione
 +
 +Podczas własnych testów zauważyłem,​ że ważna jest odpowiednia ilość pamięci (minimum 2GB), OpenLink Virtuoso podczas działania skryptu testującego zajmował około 1GB. Wszystkie środowiska uzyskują odpowiednią wydajność wtedy gdy dane są przechowywane w pamięci RAM. Przechowywanie danych RDF w bazie MySQL znacznie zmniejsza wydajność,​ a w niektórych prostych systemach wyłącza wnioskowanie.
 +
 +===== Przykłady użycia =====
 +Przykłady opierają się na dbpedii.
 +
 +  * Obiekty połorzone w pobliżu Krakowa:
 +<​code>​
 +SELECT ?subject ?label ?lat ?long WHERE {
 +<​http://​dbpedia.org/​resource/​Krak%C3%B3w>​ geo:lat ?myLat .
 +<​http://​dbpedia.org/​resource/​Krak%C3%B3w>​ geo:long ?myLong .
 +?subject geo:lat ?lat.
 +?subject geo:long ?long.
 +?subject rdfs:label ?label.
 +FILTER(xsd:​float(?​lat) - xsd:​float(?​myLat) <= 0.05 &&
 +xsd:​float(?​myLat) - xsd:​float(?​lat) <= 0.05 &&
 +xsd:​float(?​long) - xsd:​float(?​myLong) <= 0.05 &&
 +xsd:​float(?​myLong) - xsd:​float(?​long) <= 0.05 &&
 +(lang(?​label) = "​en"​ || lang(?​label) = "​pl"​)).
 +}
 +</​code>​
 +[[http://​dbpedia.org/​snorql/?​query=SELECT+%3Fsubject+%3Flabel+%3Flat+%3Flong+WHERE+{%0D%0A%3Chttp%3A%2F%2Fdbpedia.org%2Fresource%2FKrak%25C3%25B3w%3E+geo%3Alat+%3FmyLat+.%0D%0A%3Chttp%3A%2F%2Fdbpedia.org%2Fresource%2FKrak%25C3%25B3w%3E+geo%3Along+%3FmyLong+.%0D%0A%3Fsubject+geo%3Alat+%3Flat.%0D%0A%3Fsubject+geo%3Along+%3Flong.%0D%0A%3Fsubject+rdfs%3Alabel+%3Flabel.%0D%0AFILTER(xsd%3Afloat(%3Flat)+-+xsd%3Afloat(%3FmyLat)+%3C%3D+0.05+%26%26%0D%0Axsd%3Afloat(%3FmyLat)+-+xsd%3Afloat(%3Flat)+%3C%3D+0.05+%26%26%0D%0Axsd%3Afloat(%3Flong)+-+xsd%3Afloat(%3FmyLong)+%3C%3D+0.05+%26%26%0D%0Axsd%3Afloat(%3FmyLong)+-+xsd%3Afloat(%3Flong)+%3C%3D+0.05+%26%26%0D%0A(lang(%3Flabel)+%3D+%22en%22+||+lang(%3Flabel)+%3D+%22pl%22)).%0D%0A}%0D%0A|wynik]]
 +
 +  * Uniwersytety w Krakowie:
 +<​code>​
 +SELECT ?subject ?label ?lat ?long 
 +WHERE {
 +     ?​subject rdfs:label ?label.
 +     ?​subject dbpprop:​city <​http://​dbpedia.org/​resource/​Krak%C3%B3w>​.
 + ?subject rdf:type <​http://​dbpedia.org/​ontology/​University>​.
 + FILTER (
 + (lang(?​label) = "​en"​ || lang(?​label) = "​pl"​)
 + ).
 + OPTIONAL {
 +    ?subject geo:lat ?lat.
 + ?subject geo:long ?long.
 + }
 +}
 +</​code>​
 +[[http://​dbpedia.org/​snorql/?​query=SELECT+%3Fsubject+%3Flabel+%3Flat+%3Flong+%0D%0AWHERE+{%0D%0A+++++%3Fsubject+rdfs%3Alabel+%3Flabel.%0D%0A+++++%3Fsubject+dbpprop%3Acity+%3Chttp%3A%2F%2Fdbpedia.org%2Fresource%2FKrak%25C3%25B3w%3E.%0D%0A%09%3Fsubject+rdf%3Atype+%3Chttp%3A%2F%2Fdbpedia.org%2Fontology%2FUniversity%3E.%0D%0A%09+FILTER+(%0D%0A%09(lang(%3Flabel)+%3D+%22en%22+||+lang(%3Flabel)+%3D+%22pl%22)%0D%0A%09).%0D%0A%09OPTIONAL+{%0D%0A++++%3Fsubject+geo%3Alat+%3Flat.%0D%0A%09%3Fsubject+geo%3Along+%3Flong.%0D%0A%09}%0D%0A}%0D%0A|wynik]]
 +
 +  * Obiekty powiązane z Krakowem:
 +<​code>​
 +SELECT ?subject ?label ?lat ?long ?type
 +WHERE {
 +     ?​subject rdfs:label ?label.
 +     ?​subject dbpprop:​city <​http://​dbpedia.org/​resource/​Krak%C3%B3w>​.
 + ?subject rdf:type ?type.
 + FILTER (
 + (lang(?​label) = "​en"​ || lang(?​label) = "​pl"​)
 + ).
 + OPTIONAL {
 +    ?subject geo:lat ?lat.
 + ?subject geo:long ?long.
 + }
 +}
 +</​code>​
 +[[http://​dbpedia.org/​snorql/?​query=SELECT+%3Fsubject+%3Flabel+%3Flat+%3Flong+%3Ftype%0D%0AWHERE+{%0D%0A+++++%3Fsubject+rdfs%3Alabel+%3Flabel.%0D%0A+++++%3Fsubject+dbpprop%3Acity+%3Chttp%3A%2F%2Fdbpedia.org%2Fresource%2FKrak%25C3%25B3w%3E.%0D%0A%09%3Fsubject+rdf%3Atype+%3Ftype.%0D%0A%09+FILTER+(%0D%0A%09(lang(%3Flabel)+%3D+%22en%22+||+lang(%3Flabel)+%3D+%22pl%22)%0D%0A%09).%0D%0A%09OPTIONAL+{%0D%0A++++%3Fsubject+geo%3Alat+%3Flat.%0D%0A%09%3Fsubject+geo%3Along+%3Flong.%0D%0A%09}%0D%0A}%0D%0A|wynik]]
 +
 +  * Polscy piłkarze:
 +<​code>​
 +SELECT DISTINCT ?name ?type
 +WHERE {
 +    ?subject ?func <​http://​dbpedia.org/​resource/​Poland>​.
 + ?func rdfs:label ?type.
 +    ?subject foaf:name ?name .
 +    ?subject rdf:type <​http://​dbpedia.org/​ontology/​FootballPlayer>​.
 +}
 +</​code>​
 +[[http://​dbpedia.org/​snorql/?​query=SELECT+DISTINCT+%3Fname+%3Ftype%0D%0AWHERE+{%0D%0A++++%3Fsubject+%3Ffunc+%3Chttp%3A%2F%2Fdbpedia.org%2Fresource%2FPoland%3E.%0D%0A%09%3Ffunc+rdfs%3Alabel+%3Ftype.%0D%0A++++%3Fsubject+foaf%3Aname+%3Fname+.%0D%0A++++%3Fsubject+rdf%3Atype+%3Chttp%3A%2F%2Fdbpedia.org%2Fontology%2FFootballPlayer%3E.%0D%0A}%0D%0A|wynik]]
 +
 +  * Osoby powiązane z Berlinem:
 +<​code>​
 +SELECT ?name ?type ?ffa ?fff
 +WHERE {
 +    ?subject ?func <​http://​dbpedia.org/​resource/​Berlin>​.
 + ?func rdfs:label ?type.
 +    ?subject foaf:name ?name .
 +    ?subject rdf:type <​http://​dbpedia.org/​ontology/​Person>​.
 + ?subject rdf:type ?ffa.
 + ?ffa rdfs:label ?fff.
 +}
 +</​code>​
 +[[http://​dbpedia.org/​snorql/?​query=SELECT+%3Fname+%3Ftype+%3Fffa+%3Ffff%0D%0AWHERE+{%0D%0A++++%3Fsubject+%3Ffunc+%3Chttp%3A%2F%2Fdbpedia.org%2Fresource%2FBerlin%3E.%0D%0A%09%3Ffunc+rdfs%3Alabel+%3Ftype.%0D%0A++++%3Fsubject+foaf%3Aname+%3Fname+.%0D%0A++++%3Fsubject+rdf%3Atype+%3Chttp%3A%2F%2Fdbpedia.org%2Fontology%2FPerson%3E.%0D%0A%09%3Fsubject+rdf%3Atype+%3Fffa.%0D%0A%09%3Fffa+rdfs%3Alabel+%3Ffff.%0D%0A}%0D%0A|wynik]]
 +
  
 ====== Prezentacja ====== ====== Prezentacja ======
pl/miw/2009/miw09_semweb_rdfstore.1245372495.txt.gz · ostatnio zmienione: 2019/06/27 15:58 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0