URL je to, co běžný člověk označuje jako „webová adresa“.
http nebo ftp) a síťové umístění.á se změní na %C3%A1).https://fit.cvut.cz/cs/studium/rozvrhURI je nadmnožinou URL. Každé URL je URI, ale ne každé URI musí být URL.
urn:isbn:978-80-01-06841-0 (identifikátor knihy).IRI je nejnovější standard (definovaný v roce 2005) a je to přímé rozšíření URI.
%C3%A1...), vzniklo IRI.https://cs.wikipedia.org/wiki/Hlavní_strana), je IRI. Prohlížeč to teprve při posílání na síť potichu převede na URI (ASCII s procenty), protože staré internetové servery s Unicode neumí pracovat.https://cs.wikipedia.org/wiki/Hlavní_strana (obsahuje í a á), nebo arabské http://مثال.إختبار/.Subjekt - zdroj o kterém je tvrzení (uzel v grafu)
Predikát - vlastnost subjektu nebo typ vztahu mezi subjektem a objektem (orientovaná hrana). Rovněž zdroj s identifikátorem IRI (rozšíření URI s unicode znaky).
Objekt - jiný zdroj nebo literál, který reprezentuju hodnotu daného vztahu (uzel v grafu)
Například uzel "Praha" (subjekt) je spojen hranou "máPočetObyvatel" (predikát) s uzlem "1300000" (objekt).
<http://dbpedia.org/resource/Prague> identifikuje zdroj reprezentující město Praha v rámci projektu DBpedia.foaf:name (jméno osoby z ontologie FOAF - Friend of a Friend) nebo dcterms:creator (Tvůrce dokumentů z Dublic Core Terms)Jsou to datové hodnoty, které nejsou IRI.
Mohou být
"123"),"Prague"@en)"2024-05-15"^^xsd:date) (datové typy nejčastěji pocházejí z XML Schema)Reprezentují zdroje bez explicitního IRI.
Jsou užitečné, když chceme tvrdit existenci nějakého zdroje a popsat jeho vlastnosti, aniž bychom mu museli přidělit globální identifikátor.
Například, pokud chceme popsat adresu osoby jako strukturovanou entitu (ulice, město, PSČ), ale tato adresa sama o sobě nepotřebuje být globálně identifikovatelná, můžeme ji reprezentovat jako anonymní uzel.
Umožňují vytvářet komplexní struktury bez nutnosti "zašpinit" globální jmenný prostor množstvím IRI pro podružné entity.
Často je značíme podtržítkem, například adresu jako _:a1 (N-Triples) nebo do hranatých závorek (Turtle)
Sada RDF trojic tvoří orientovaný graf s pojmenovanými hranami
ex:jan) má jméno "Jan" a zná Petra Horáka (ex:petr).Jedná se o nejjednodušší, velmi rigidní formát.
Každá trojice je zapsána na jednom samostatném řádku.
Všechna IRI musí být zapsána v plném tvaru v lomených závorkách < >.
Řádek vždy končí tečkou .
Literály v uvozovkách " "
Anonymní uzly jsou reprezentovány pomocí syntaxe _:label, kde label je lokální identifikátor anonymního uzlu v rámci dokumentu.
Výhoda: Extrémně snadné a rychlé parsování strojem.
Nevýhoda: Soubory jsou obrovské a pro člověka téměř nečitelné kvůli neustálému opakování plných IRI.
Ukázky v N-Triples:
<http://example.org/jan> <http://xmlns.com/foaf/0.1/name> "Jan" .
<http://example.org/jan> <http://xmlns.com/foaf/0.1/knows> <http://example.org/petr> .
<http://example.org/jan> <http://xmlns.com/foaf/0.1/name> "Jan Novák"@cs.
<http://example.org/jan> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person>.
<http://example.org/jan> <http://xmlns.com/foaf/0.1/knows> _:b1.
_:b1 <http://xmlns.com/foaf/0.1/name> "Petra Svobodová".
_:b1 <http://xmlns.com/foaf/0.1/mbox> <mailto:[email protected]>.
<http://example.org/jan> <http://example.org/ontology#age> "42"^^<http://www.w3.org/2001/XMLSchema#integer>.
Turtle je dnes nejpopulárnější textový formát pro RDF. Přináší "syntaktický cukr", který odstraňuje upovídanost N-Triples.
Snadnější čtení a psaní RDF lidmi a je plně kompatibilní s N-Triples.
Klíčové vlastnosti a zkratky:
@prefix, @base): Umožňují definovat zkratky pro dlouhá IRI. Místo <http://example.org/jan> pak píšeme ex:jan. @base <IRI_reference>. definuje základní IRI, vůči kterému se vyhodnocují relativní IRI v dokumentu.;): Pokud sdílí více trojic stejný subjekt, nemusíme ho opakovat. Oddělíme predikáty středníkem.,): Pokud sdílí více trojic stejný subjekt i predikát, objekty oddělíme čárkou, např. ex:jan foaf:nick "Jenda", "Honza".[]: Umožňuje zapsat vlastnosti anonymního uzlu přímo do hranatých závorek bez vymýšlení identifikátoru _:b1.a: Klíčové slovo a nahrazuje predikát rdf:type (definice třídy/typu objektu).42) jsou automaticky interpretována jako xsd:integer3.14) jako xsd:decimaltrue a false jako xsd:boolean.( ): Zkrácená syntaxe pro RDF kolekce (uspořádané seznamy)
(), což je ekvivalent rdf:nilex:nakup ex:polozky ( ex:mleko ex:chleb ex:maslo ).Stejná ukázka v RDF-Turtle:
@prefix ex: <http://example.org/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
# Použití středníku pro opakující se subjekt ex:jan
ex:jan foaf:name "Jan" ;
foaf:knows ex:petr .
Deklarativní dotazovací jazyk pro RDF grafy (analogie k SQL v relačních databázích).
Princip: Graph Pattern Matching
?)SPARQL endpoint (web HTTP služba), která přijímá SPARQL dotazy, vykonává je nad RDF databází (nazývány triplestore/RDF store) a vrací výsledky v požadovaném formátu (napr. XML, JSON, CSV, TSV).
Typický SPARQL dotaz se skládá z několika klauzulí:
PREFIX: Definice jmenných prostorů (stejně jako v Turtle), aby dotaz nebyl upovídaný.SELECT: Určuje, které proměnné se mají objevit ve výsledné tabulce.WHERE: Obsahuje samotný grafový vzor (množinu trojic s proměnnými), který se v datech hledá.
OPTIONAL: Definuje část grafového vzoru, která v datech může, ale nemusí býtUNION: Umožňuje vyhledat alternativní grafové vzory (logické OR).FILTER: Omezuje výsledky na základě logické podmínkyCONSTRUCT: Sestrojení grafu, vytvoření vztahůASK: Vrací true/false, pokud vzor grafu ve WHERE najde shoduDESCRIBE: Vrací RDF graf, který popisuje zdroje.ORDER BY, LIMIT, OFFSET.PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX dbo: <http://dbpedia.org/ontology/>
? nebo znakem dolaru $) mají být zahrnuty ve výsledné tabulce.SELECT * vrátí všechny proměnné definované v klauzuli WHERESELECT ?jmenoOsoby ?vekOsoby
Obsahuje tzv. vzor grafu (graph pattern), který se má porovnat s daty v RDF úložišti.
Vzor grafu se skládá z jedné nebo více triple patterns, které jsou syntakticky podobné RDF trojicím, ale mohou obsahovat proměnné na pozici subjektu, predikátu a/nebo objektu.
Příklad trojicového vzoru: ?osoba foaf:name?jmenoOsoby.
WHERE {
?osoba rdf:type foaf:Person.
?osoba foaf:name?jmenoOsoby.
?osoba foaf:age?vekOsoby.
}
Vrací zdroje pro které platí, že mají vztah rdf:type se zdrojem foaf:Person a mají specifikované foaf:name jméno a foaf:age věk.
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?name ?email
WHERE {
?person foaf:name ?name.
OPTIONAL {?person foaf:mbox ?email. }
}
UNION spojuje výsledky dvou nebo více alternativních vzorů grafu.PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT?label
WHERE {
{?thing skos:prefLabel ?label. }
UNION
{?thing rdfs:label ?label. }
}
FILTER omezuje sadu řešení na základě vyhodnocení logické podmínky.BOUND(?var)), testování typu termu (isIRI(?var), isLiteral(?var), isBlank(?var)), funkce pro práci s řetězci (např. REGEX(?text,?pattern) pro regulární výrazy, CONTAINS(?text,?substring)), a další.PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX ex: <http://example.org/ontology#>
SELECT ?name ?age
WHERE {
?person foaf:name ?name.
?person ex:age ?age.
FILTER(?age > 30)
}
Tato forma dotazu vrací nový RDF graf.
Graf je sestrojen na základě šablony (template) definované v CONSTRUCT bloku.
Šablona obsahuje trojicové vzory, kde proměnné jsou nahrazeny hodnotami navázanými v WHERE klauzuli.
CONSTRUCT je užitečný pro transformaci RDF dat, extrakci specifických podgrafů nebo generování RDF dat v jiném schématu/slovníku.
PREFIX ex: <http://example.org/ontology#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
CONSTRUCT {
?person1 foaf:knows?person2.
?person2 foaf:knows?person1. # Symetrický vztah
}
WHERE {
?person1 ex:colleagueOf?person2.
}
Vytvoření foaf:knows vztahů na základě existujících dat.
true nebo false).true je vráceno, pokud vzor grafu v WHERE klauzuli najde alespoň jednu shodu v datech; jinak je vráceno false.ASK dotazy jsou užitečné pro ověření existence určitých dat nebo podmínek.PREFIX foaf: <http://xmlns.com/foaf/0.1/>
ASK WHERE {
?person foaf:name "Jan Novák"@cs.
}
Existuje v databázi osoba jménem "Jan Novák"?
DESCRIBE.DESCRIBE <http://example.org/jan>
Vytvořeno: 18. 6. 2026, 16:35
Poslední aktualizace: 19. 6. 2026, 22:08