SemWeb_RDFStore
Dawid Molenda dawid at molenda.info
RDF Stores - investigate the tools' functionality & possibilities
importing data from Relational Databases into RDF Triple Stores › examples, applications
importing data from various sources (spreadsheets, databases, other…) into RDF Triple Stores
Spotkania
20090521
20090513
-
2 przypadki użycia:
rodzina - powiązania
miasto - wydarzenia
o dbpedii, freebase, yago etc.(opis, linki do danych)
+ to co nie zostało wgrane z poprzedniego razu
20090421
na następny raz:
uzupelnic tabelke por. narzędzi
wykaz istniejacych baz RDF
ok.3 propozycje przypadkow użycia
pdfy, prezentacje - wgrać do wiki z krótkim komentarzem
20090327
20090312
ogólny cel projektu: poznać metody inż.wiedzy w SemWeb, w szczególności zastosowanie RDF, RDFS, OWL w praktycznych aplikacjach
stworzyć prototyp aplikacji
baza danych RDF
Query Engine
-
na następny raz proszę przygotować (opisać w sekcji
Sprawozdanie):
Projekt
Sprawozdanie
Konwersja SQL -> RDF
Relacyjne bazy danych pozwalają na to aby tabela miała dowolną liczbę kolumn których wiersz wyraża informację dotyczącą predykatu w logice pierwszego rzędu z dowolną ilością miejsc. Taki wiersz albo predykat musi być dekomponowany do reprezentacji jako trójka RDF. Prosta forma dekompozycji wprowadza nowy pusty węzeł odpowiadający wierszowi i nowa trójka (triple) jest wprowadzona do jego każdej komórki. Temat każdej trójki to nowy pusty węzeł, predykat odpowiada nazwie kolumny, a obiektem jest wartość wprowadzona do komórki wiersza. Nowy pusty węzeł może mieć także właściwość rdf:type, której wartość odpowiada nazwie tabeli.
Stąd bardziej kompleksowy fakt wyraża się w RDF przy użyciu iloczynu logicznego (logical-AND) prostej relacji dwuargumentowej. RDF nie dostarcza środków do negacji (NOT) czy alternatywy (OR).
Koncepcje i Składnia Abstrakcyjna
Trójka RDF
temat (podmiot) który jest znacznikiem RDF
URI lub pusty węzeł
predykat, który jest znaczniekiem RDF
URI
obiekt, który jest znacznikiem RDF
URI, literałem lub pustym węzłem
RDF/RDFS/OWL
W wielkim skrócie jakie są różnice:
Język opisu zasobów.
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.
Jest to RDFS wzbogacony o predykaty owl:sameAs i owl:InverseFunctionalProperty z języka OWL.
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.
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”.
Serializacja danych RDF
Podstawowa metoda serializacji danych RDF. Jak w każdym dokumencie XML przerost formy nad treścią.
Przykład:
<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>
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:
@prefix dc: <http://purl.org/dc/elements/1.1/>.
<http://en.wikipedia.org/wiki/Tony_Benn>
dc:title "Tony Benn";
dc:publisher "Wikipedia".
http://www.w3.org/DesignIssues/Notation3.html
http://en.wikipedia.org/wiki/Notation_3
Uproszczona wersja (pozdbiór) notacji N3.
http://www.w3.org/TeamSubmission/turtle/
http://en.wikipedia.org/wiki/Turtle_(syntax)
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.
<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>
http://www.w3.org/TR/xhtml-rdfa-primer/
http://www.w3.org/TR/rdfa-syntax/
http://en.wikipedia.org/wiki/RDFa
SPARQL
Dostępne bazy wiedzy
Wikipedia
http://www.wikipedia.org/
http://download.wikipedia.org/
Wikipedia jset olbrzymią bazą wiedzy. Może być wykorzystana do testowania systemów analizy tekstu. Artykuły zawierają duże fragmenty ciągłego tekstu o łatwej do przewidzenia tematyce i co ważne są pisane względnie poprawnym, współcześnie używanym językiem.
Bardzo szybko można bydować bazę wiedzy wykrozystująć szablony używane w Infoboksach. Informacje zawarte w tej części są uporządkowane w formie tabeli klucz → wartość i dotyczą okręślonego typu obiektu (np. miasto, polityk, roślina).
Wykorzystująć linki pomiędzy wersjami językowymi można uzyskać nazwy pojęć w wielu językach (te linki znajdują się w osobnej tabeli 'langlinks', więc nie trzeba analizować treści artykułów).
Przekierowania mogą być wykorzystane do budowy bazy równoznacznych nazw pojęć (także znajdują sie w osobnej tabeli 'redirects').
Kategorie porządkują pojęcia w zbiory dotyczące określonego tematu. Niestety panuję tu duża dowolność i wiele pojęć nie jest przypisanych do odpowiedniej kategorii. Kategorie są opisane w tabeli 'category'.
Kolejnym elementem są linki zewnętrzne, są opisane w osobnej tabeli 'externallinks'. Zazwyczaj trafnie powiązują strony internetowe z danym pojęciem, dodatkowo część posiada tytuł, który opisuje zewnętrzną stronę.
Wikipedii nie ma sensu analizować pobierając strony poszczególnych haseł, należy ściągnąć zrzuty bazy danych i załadować na lokalny serwer. Dane haseł (wraz z treścią) są dostępne w postaci pliku xml, pozostałe dane jako tabele MySQL. Problemem może być rozmiar danych, dla angielskiej wersji XML ma 21GB, a niektóre tabele SQL ponad 200 000 000 wierszy.
WikiProject Geographical coordinates
http://en.wikipedia.org/wiki/Wikipedia:WikiProject_Geographical_coordinates
Projekt przyporządkowywania współrzędnych geograficznych do artykułów wikipedii.
Dla wszystkich artykułów musi być wykorzystywany szablon coord.
Dzięki temu można przeparsować artykuły z wikipedii w celu wydobycia współrzednych, możliwe są 2 metody:
przegląd treści wszystkich artykułów w poszukiwaniu tagu `coord` (pliki *wiki-latest-pages-articles.xml), nie powinno się stosować - nie wszystkie współrzędne są wprost określone za pomocą `coord`, dużo danych jest w infoboxach w innej postaci.
-
Wikipedia-World
Isnieje (istniał) projekt na wiki tools, który parsuje artykuły w poszukiwaniu współrzędnych i tworzy gotowe do pobrania tabele SQL. Niestety ostatnia aktualizacja to 5 sierpnia 2008.
DBpedia
http://www.dbpedia.org/
DBpedia jest bazą wiedzy RDF (zawiera ponad 275 milionów trójek). Dane są tworzone na podstawie wikipedii (14 wersji językowych, także Polska). Opisuje ponad 2.5 miliona haseł (213,000 persons, 328,000 places, 57,000 music albums, 36,000 films, 20,000 companies).
Dane
DBpedia wykorzystuje kilka zbiorów RDF, lista wg przestrzeni nazw:
„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ść (plik infobox_*.nt)
„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)
-
-
-
-
„xsd:” - XML Shema
„rdf:” - wykorzystywany rdf:type - powiązania zasobów z ontologią dbpedia-owl (plik: types-mappingbased.nt)
„rdfs:” - wykorzystywane predykaty: rdfs:comment, rdfs:label
„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.
DBpedia linkuje do kilku innych baz wiedzy, szczegóły na http://wiki.dbpedia.org/Interlinking
Ontologia
Przykładowe hasło
http://dbpedia.org/page/Berlin
Dostęp do danych
http://wiki.dbpedia.org/Architecture?v=1411
Dostępny jest interfejs SPARQL (http://dbpedia.org/sparql), SNORQL - interfejs do SPARQL w html (http://dbpedia.org/snorql/).
Zasoby mogą być prezentowane jako: html, n3, rdf/xml.
Można także pobrać pełny dump bazy (format N3): http://wiki.dbpedia.org/Downloads32.
System parsujący dane z wikipedii
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.
Kod jest bardzo czytelny i jego fragmenty mogą być podstawą do pisania własnego parsera wiki, np. wspomnianego wydobywania współrzędnych geo - w kodzie jest m.in. klasa „GeoExtractor”.
Freebase
http://www.freebase.com/
http://www.freebase.com/view/freebase/faq
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, 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).
Przykładowe hasło
http://www.freebase.com/view/en/berlin
Dostęp do danych
Download - pliki nie są w formacie RDF.
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.
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
Geonames
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/
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
Web Services
http://www.geonames.org/export/web-services.html
Umożliwia zdalne pobieranie danych.
Download:
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
UMBEL
OpenCyc, Cyc
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
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
http://www.dmoz.org/
Publicznie dostępny dump bazy katalogu dmoz jest w formacie rdf, ale jest nie do końca zgodny ze standardami i są problemy z jego załadowaniem przez większość parserów.
Format RDF jest tu prawdopodobnie wykorzystywany ze względu na łatwiejsze opisanie drzewa kategorii niż w bazach relacyjnych.
Baza nie jest ciekawa pod względem bezpośredniego wykorzystania w SemWeb.
Istnieją gotowe narzędzia do konwersji pobranych plików na tabele SQL, np.: suckDMOZ.
DMOZ może być wykorzystany jako lista stron o wstępnie określonej tematyce (choć bardzo niedokładnie), jako taka baza URLi może być wykorzystany do budowy pająka.
RDF Dump
Chef Moz
MusicMoz
Linked Data
Jedna z dziedzin Semantic Web. Zajmuje się łączeniem różnych otwartych zbiorów wiedzy RDF poprzez określenie standardu prezentacji danych.
Jeśli system udostępniaja odpowiedni interfejs to możemy z dowolnego miejsca przeglądać dowolną bazę wiedzy wykrozystując dowolny kompatybilny interfejs (jak strony WWW).
Hasło „Berlin” z DBpedii w dwóch przykładowych przeglądarkach Semantic Web:
http://demo.openlinksw.com/sparql - pod tym adresem znajduje się interfejs sparql umożliwiający wykonywanie zapytań wykorzystujących Linked Data.
Sitemap Extension
RDF Stroes
C/C++:
3store is an RDF „triple store”, written in C and backed by MySQL and Berkeley DB. It is an optimisation and port of an older triple store (WebKBC). It provides access to the RDF data via RDQL or SPARQL over HTTP, on the command line or via a C API.
strona na sourceforge
Redland is a set of free software libraries that provide support for the Resource Description Framework (RDF). The software is available under multiple licenses, namely GPL, LGPL, and Apache License, to simplify reuse.
Posiada biblioteki do PHP i innych jezyków
PHP:
ARC is a flexible RDF system for semantic web and PHP practitioners, developed by Benjamin Nowack. It's open-source, easy to use, and runs in most web server environments. The new version of ARC, ARC 2, is currently available for preview.
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:
AllegroGraph is a disk-based RDF Database, that aims at providing a solid storage layer for powerful geotemporal reasoning, social network analytics and ontology modeling capabilities for today's Semantic Technology applications.
Biblioteki do prologa.
Jena is a Java framework for building Semantic Web applications. It provides a programmatic environment for RDF, RDFS and OWL, SPARQL and includes a rule-based inference engine.
Joseki is an HTTP engine that supports the SPARQL Protocol and the SPARQL RDF Query language.
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.
Mulgara is a scalable open source RDF database written entirely in Java. Mulgara is an open source fork of Kowari.
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:
ClioPatria is the award winning, SWI-Prolog-based platform for Semantic Web Applications. It joins the SWI-Prolog RDF and HTTP infrastructure with a SeRQL/SPARQL query engine, interfacing to the The Yahoo! User Interface Library (YUI) and libraries that support semantic search.
The platform combines a high performance in-core RDF store with flexible reasoning in Prolog, query optimization. Prolog's interactive usage and capabilities of recompiling modified source code while the system remains alive greatly speedup development.
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.
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:
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.
Instalacja i uruchomienie
http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VOSMake Dotyczy wersji OpenLink Virtuoso. Po pobraniu archiwum (źródła) kompilujemy.
./configure
make
Następnie można uruchomić automatyczny skrypt testujący:
make check
Instalacja wymaga uprawnień root i zostanie wykonana po poleceniu:
make install
System nie sprawiał żadnych problemów podczas któregokolwiek etapu.
Benchmark
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.
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")).
}
|+lang(%3Flabel)+%3D+%22pl%22)).%0D%0A}%0D%0A|wynik
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.
}
}
|+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
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.
}
}
|+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
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>.
}
wynik
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.
}
wynik
Prezentacja
Materiały
Czyli zestaw, z którym trzeba się zapoznać:
Na początek
-
URI - w zasadzie wystarczy przeczytać na pl wiki
Narzędzia
RDF store - lista narzędzi na wiki semanticweb.org (nie wszystko aktualne - 5.2009)
LargeTripleStores - lista RDFStores z opisem wydajności różnych silników, już trochę nieaktualne, ale warto przeglądnąć
-
SPARQL - specyfikacja SPARQL na w3.org
-