(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
Semantic Web(Web 3.0) SPARQL
1. Web 3.0
SPARQL / XML Query
Presenter Um Dae jin (mrumx@naver.com)
Internet Technology
Graduate school of information & Telecommunications in KONKUK University
5. RDF(Resource Description Framework)
Resource Description Framework
어떤것을 기술하기 위한 구조(틀)일 뿐!!!
Resource : URI를 갖는 모든것(웹페이지,이미지,동영상 등)
Description : Resource들의 속성, 특성, 관계 기술
Framework : 위의 것들을 기술하기 위한 모델, 언어, 문법
6. RDF(Resource Description Framework)
Subject Predicate Object
주어 술어 목적어
(Resource) (Property, Relation) (Resource, Literal)
URI URI URI
Blank Node Literal
This is the Framework!!!
8. PingtheSemanticWeb.com is a repository for RDF documents. http://pingthesemanticweb.com/
RDF(Resource Description Framework)
These namespaces are used to describe entities in X number of documents
2009.11.23
2008.7.16 2008.11.04 2009.1.8
9. Picture
Music
Person
Dictionary
Region
SPARQL
GRDDL(Gleaning Resource Descriptions from Dialects of Languages)
24. Play #
umdaejin의 영문이름을 가진 사람의 email은?
:email
_person mrumx@naver.com
:name
SELECT ?email
umdaejin@en
WHERE {
?person :name “umdaejin”@en.
?person :email ?email.
}
25. Syntax - RDF Term Syntax
IRI
<http://example.org/book/book1>
BASE <http://example.org/book/>
<book1>
PREFIX book: <http://example.org/book/>
book:book1
26. Syntax -Triple Pattern Syntax
PREFIX, BASE
PREFIX dc: <http://purl.org/dc/elements/purl.org/>
SELECT ?title
WHERE { <http://example.org/book/book> dc:title ?title }
PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX : <http://example.org/book/>
SELECT $title
WHERE { :book1 dc:title $title }
BASE <http://example.org/book/>
PREFIX dc: <http://purl.org/dc/elements/1.1/>
SELECT $title
WHERE { <book1> dc:title $title }
27. Play #
daejin의 영문이름을 가진 사람의 책제목은?
:like
_person Book:book_3
:name book:name
“daejin@en” “ANT”
BASE <http://RDFTutorial.net/2009/>
PREFIX book:http://example.org/book/>
SELECT ?book_name
WHERE {
?person :like book:book_3.
book:book_3 book:name ?book_name.
}
28. Syntax - RDF Term Syntax
Query Var
?var or $var
Blank
[ :p “v”]. == [] :p “v”.
Unique Blank - 다른 IRI과 연결용
_b57 :p “v”. //기본 예
[ foaf:name ?name ;
foaf:mbox <mailto:ss@c.com>] / / 확장 예
_b11 foaf:name ?name ;은 S에 PO를 연속해서 붙일 수 있다.
_b11 foaf:mbox <mailto:ss@c.com>
29. Play #
foaf:name이 umdaejin사람이 사랑하는 사람 name?
:love
_a _b
foaf:name name
“umdaejin” “sunyoung”
PREFIX foaf: <http://xmlns.com/foaf/0.1/>.
PREFIX : <http://RDFTutorial.net/2009/>.
SELECT $name
WHERE {
?_a foaf:name “umdaejin”.
?_a :love $_b.
$_b <http://RDFTutorial.net/2009/name> $name.
}
37. Solution Sequences and Modifiers
Order
SELECT ?people, ?name
WHERE {
?people :name ?name
}
ORDER BY ?name //기본 오름차순 A-Z, DESC(?name)
SELECT ?s ?p ?o
WHERE {
?s ?p ?o
} //모든 SPO반환
ORDER BY ?o
38. Play #
나이순으로 정렬?
_a _b _c _d
:age :age :age :age
21 33 26 45
PREFIX : <http://RDFTutorial.net/2009/>.
SELECT ?user
WHERE {
?user :age ?age.
}
ORDER BY ?age.
39. Solution Sequences and Modifiers
Offset
SELECT ?s ?p ?o
WHERE {
?s ?p ?o.
}
OFFSET 10 //11번째 부터 solutions 반환
LIMIT
SELECT ?s ?p ?o SELECT ?s ?p ?o
WHERE { WHERE {
?s ?p ?o.
?s ?p ?o.
}
} LIMIT 5
LIMIT 10 //10개 solutions 반환 OFFSET 10 //함께 사용 가능
40. Play #
나이순으로 정렬후, 결과 2개?
_a _b _c _d
:age :age :age :age
21 33 26 45
PREFIX : <http://RDFTutorial.net/2009/>.
SELECT ?user
WHERE {
?user :age ?age.
}
ORDER BY ?age.
LIMIT 2 .