Содержание

Слайд 2

SPARQL

SPARQL - Standard Protocol and RDF Query Language
SPARQL - язык

SPARQL SPARQL - Standard Protocol and RDF Query Language SPARQL - язык
запросов к данным, представленным в виде RDF-графов, состоящих из триплетов (<субъект, предикат, объект>), а также протокол для передачи этих запросов и ответов на них.

Слайд 3

Структура запроса SPARQL

Объявления префиксов, для сокращения URI.
Определение набора данных, указывающее, какой(ие)

Структура запроса SPARQL Объявления префиксов, для сокращения URI. Определение набора данных, указывающее,
RDF-граф(ы) запрашивается(ются).
Объявление результата, определяющее, какую информацию нужно вернуть в результате запроса.
Шаблон запроса, определяющий, что именно запрашивать в базовом наборе данных.
Модификаторы запроса, позволяющие нарезать, упорядочить и иным образом изменить результаты запроса.

# prefix declarations
PREFIX foo:
# dataset definition
FROM ...
# result clause
SELECT ...
# query pattern
WHERE {
...
}
# query modifiers
ORDER BY ...

Слайд 4

Онтология для экспериментирования

Онтология для экспериментирования

Слайд 5

Запрос 1

Получить все классы
PREFIX owl:
PREFIX rdf:
PREFIX rdfs:
SELECT ?x

Запрос 1 Получить все классы PREFIX owl: PREFIX rdf: PREFIX rdfs: SELECT

WHERE { ?x a owl:Class }

Слайд 6

Запрос 2

Получить все экземпляры
PREFIX owl:
PREFIX rdf:
PREFIX rdfs:
SELECT ?x

Запрос 2 Получить все экземпляры PREFIX owl: PREFIX rdf: PREFIX rdfs: SELECT

WHERE { ?x a owl:NamedIndividual }

Слайд 7

Запрос 3 (1)

Получить все экземпляры с цветом (data property = «цвет»)

Запрос 3 (1) Получить все экземпляры с цветом (data property = «цвет»)
«Синий»
PREFIX owl:
PREFIX rdf:
PREFIX rdfs:
SELECT ?x
WHERE { ?x цвет "Синий" }

Слайд 8

Запрос 3 (2)

Получить все экземпляры с цветом (data property = «цвет»)

Запрос 3 (2) Получить все экземпляры с цветом (data property = «цвет»)
«Синий»
PREFIX owl:
PREFIX rdf:
PREFIX rdfs:
PREFIX this:
SELECT ?x
WHERE { ?x this:цвет "Синий" }

Слайд 9

Запрос 4

Получить все экземпляры класса «Машина»
PREFIX owl:
PREFIX rdf:
PREFIX rdfs:

Запрос 4 Получить все экземпляры класса «Машина» PREFIX owl: PREFIX rdf: PREFIX

PREFIX this:
SELECT ?x
WHERE { ?x a this:Машина }

Слайд 10

Запрос 5 (1)

Получить все экземпляры класса «Машина» с цветом «Синий»
PREFIX owl:

Запрос 5 (1) Получить все экземпляры класса «Машина» с цветом «Синий» PREFIX

PREFIX rdf:
PREFIX rdfs:
PREFIX this:
SELECT ?x
WHERE { ?x a this:Машина .
}

Слайд 11

Запрос 5 (2)

Получить все экземпляры класса «Машина» с цветом «Синий»
PREFIX owl:

Запрос 5 (2) Получить все экземпляры класса «Машина» с цветом «Синий» PREFIX

PREFIX rdf:
PREFIX rdfs:
PREFIX this:
SELECT ?x
WHERE { ?x a this:Машина .
?x this:цвет "Синий"
}

Слайд 12

Запрос 6 (1)

Получить все экземпляры класса «Машина», относящиеся к экземпляру «Даша_Б»
PREFIX

Запрос 6 (1) Получить все экземпляры класса «Машина», относящиеся к экземпляру «Даша_Б»
owl:
PREFIX rdf:
PREFIX rdfs:
PREFIX this:
SELECT ?x
WHERE { ?x a this:Машина .
}

Слайд 13

Запрос 6 (2)

Получить все экземпляры класса «Машина», относящиеся к экземпляру «Даша_Б»
PREFIX

Запрос 6 (2) Получить все экземпляры класса «Машина», относящиеся к экземпляру «Даша_Б»
owl:
PREFIX rdf:
PREFIX rdfs:
PREFIX this:
SELECT ?x
WHERE { ?x a this:Машина .
this:Даша_Б this:водить ?x
}

Слайд 14

Запрос 7 (1)

Получить экземпляры класса «Человек» и отобразить транспортные средства, которые

Запрос 7 (1) Получить экземпляры класса «Человек» и отобразить транспортные средства, которые
они водят
PREFIX owl:
PREFIX rdf:
PREFIX rdfs:
PREFIX this:
SELECT ?x
WHERE { ?x a this:Человек .
}

Слайд 15

Запрос 7 (2)

Получить экземпляры класса «Человек» и отобразить транспортные средства, которые

Запрос 7 (2) Получить экземпляры класса «Человек» и отобразить транспортные средства, которые
они водят
PREFIX owl:
PREFIX rdf:
PREFIX rdfs:
PREFIX this:
SELECT ?x ?y
WHERE { ?x a this:Человек .
?x this:водить ?y
}

Слайд 16

Запрос 8 (1)

Получить машины, которые водит Даша
PREFIX owl:
PREFIX rdf:
PREFIX

Запрос 8 (1) Получить машины, которые водит Даша PREFIX owl: PREFIX rdf:
rdfs:
PREFIX this:
SELECT ?x
WHERE { ?x a this:Машина .
?y a this:Человек .
}

Слайд 17

Запрос 8 (2)

Получить машины, которые водит Даша
PREFIX owl:
PREFIX rdf:
PREFIX

Запрос 8 (2) Получить машины, которые водит Даша PREFIX owl: PREFIX rdf:
rdfs:
PREFIX this:
SELECT ?x
WHERE { ?x a this:Машина .
?y a this:Человек .
?y this:водить ?x .
?y this:имя "Даша" .
}

Слайд 18

Запрос 8 (3)

Получить машины, которые водит Даша
PREFIX owl:
PREFIX rdf:
PREFIX

Запрос 8 (3) Получить машины, которые водит Даша PREFIX owl: PREFIX rdf:
rdfs:
PREFIX this:
SELECT ?x
WHERE { ?x a this:Машина .
?y a this:Человек ;
this:водить ?x ;
this:имя "Даша" .
}

Слайд 19

Запрос 9

Получить синие машины, которые водит Даша
PREFIX owl:
PREFIX rdf:
PREFIX

Запрос 9 Получить синие машины, которые водит Даша PREFIX owl: PREFIX rdf:
rdfs:
PREFIX this:
SELECT ?x
WHERE { ?x a this:Машина ;
this:цвет "Синий" .
?y a this:Человек ;
this:водить ?x ;
this:имя "Даша" .
}

Слайд 20

Запрос 10

Получить синие машины, которые водит Даша
PREFIX owl:
PREFIX rdf:
PREFIX

Запрос 10 Получить синие машины, которые водит Даша PREFIX owl: PREFIX rdf:
rdfs:
PREFIX this:
SELECT ?x
WHERE { ?x a this:Машина ;
this:цвет "Синий" .
?y a this:Человек ;
this:водить ?x ;
this:имя "Даша" .
}

Слайд 21

Запрос 11

Получить родственников каждого мужчины и женщины
PREFIX owl:
PREFIX rdf:
PREFIX

Запрос 11 Получить родственников каждого мужчины и женщины PREFIX owl: PREFIX rdf:
rdfs:
PREFIX this:
SELECT ?x ?y
WHERE { ?x this:быть_родственником ?y .
FILTER (?x != ?y)
}

Слайд 22

Запрос 12 (1)

Получить родственников Паши_У
PREFIX owl:
PREFIX rdf:
PREFIX rdfs:
PREFIX

Запрос 12 (1) Получить родственников Паши_У PREFIX owl: PREFIX rdf: PREFIX rdfs:
this:
SELECT ?x ?y
WHERE { ?x this:быть_родственником ?y .
FILTER (?x != ?y) .
FILTER (?x = this:Паша_У)
}

Слайд 23

List of SPARQL aggregate functions

COUNT - counts the number of times a

List of SPARQL aggregate functions COUNT - counts the number of times
given expression has a value within the aggregate group.
SUM - returns the numeric value obtained by summing the values within the aggregate group.
AVG - calculates the average value for an expression over a group.
MIN - returns the minimum value from a group respectively.
MAX - returns the maximum value from a group respectively.
GROUPCONCAT - performs a string concatenation across the values of an expression with a group.
SAMPLE - returns an arbitrary value from the multiset passed to it.

Слайд 24

List of SPARQL Filter Functions

Logical: !, &&, ||
! - not, negation
&&: and
||:

List of SPARQL Filter Functions Logical: !, &&, || ! - not,
or
Math: +, -, *, /
+: addition
-: subtraction
*: multiplication
/: division
Comparison: =, !=, >, <, IN, NOT IN...
=: is equal to
!=: is not equal to
>, <; greater than and less than
IN, NOT IN: determine if an item is or is not in a set

Слайд 25

List of SPARQL Filter Functions
SPARQL tests: isIRI, isURI, isBlank, isLiteral, isNumeric, bound
isIRI,

List of SPARQL Filter Functions SPARQL tests: isIRI, isURI, isBlank, isLiteral, isNumeric,
isURI: returns true if the term is an IRI or a URI
isBlank: returns true if the term is a blank node
isLiteral: returns true if the term is a literal
isNumeric: returns true if the term is a numeric value
bound: returns true if a variable is assigned a value (INF or infinite, and NaN or not a number are considered valid values)
SPARQL accessors: str, lang, datatype
Other: sameTerm, langMatches, regex, REPLACE
Conditionals: IF, COALESCE, EXISTS, NOT EXISTS
Constructors: URI, BNODE, STRDT, STRLANG, UUID, STRUUID
Strings: STRLEN, SUBSTR, UCASE, LCASE, STRSTARTS, STRENDS, CONTAINS, STRBEFORE, STRAFTER, CONCAT, ENCODE_FOR_URI
More math: abs, round, ceil, floor, RAND
Date/time: now, year, month, day, hours, minutes, seconds, timezone, tz

Слайд 26

Запрос 12 (2)

Получить родственников Паши_У
PREFIX owl:
PREFIX rdf:
PREFIX rdfs:
PREFIX

Запрос 12 (2) Получить родственников Паши_У PREFIX owl: PREFIX rdf: PREFIX rdfs:
this:
SELECT ?x ?y
WHERE { ?x this:быть_родственником ?y .
FILTER (?x != ?y && ?x = this:Паша_У)
}

Слайд 27

Запрос 12 (2)

Получить родственников Паши_У старше 20 лет
PREFIX owl:
PREFIX rdf:

Запрос 12 (2) Получить родственников Паши_У старше 20 лет PREFIX owl: PREFIX

PREFIX rdfs:
PREFIX this:
SELECT ?x ?y
WHERE { ?x this:быть_родственником ?y .
?y this:возраст ?z.
FILTER (?x != ?y && ?x = this:Паша_У && ?z >= “20“^^xsd:integer)
}

Слайд 28

Запрос 13

Получить число машин у людей
PREFIX owl:
PREFIX rdf:
PREFIX rdfs:

Запрос 13 Получить число машин у людей PREFIX owl: PREFIX rdf: PREFIX

PREFIX this:
SELECT ?x (COUNT (?y) AS ?кол_во_машин)
WHERE { ?x a this:Человек ;
this:водить ?y.
?y a this:Машина .
}
GROUP BY ?x