vocamp seoul2009 sparql
DESCRIPTION
VoCamp Seoul 2009 - Sparql speaker - kwangsub kim [email protected]TRANSCRIPT
RDF
SPARQL
Play
2009년 5월 29일 금요일
RDF
어떤것(Thing)에 대한 개념, 추상하기 위한 데이터 모델
2009년 5월 29일 금요일
RDF
어떤것(Thing)에 대한 개념, 추상하기 위한 데이터 모델
Subject - Predicate - Object
2009년 5월 29일 금요일
RDF
어떤것(Thing)에 대한 개념, 추상하기 위한 데이터 모델
Subject - Predicate - Object
2009년 5월 29일 금요일
RDF
어떤것(Thing)에 대한 개념, 추상하기 위한 데이터 모델
Subject - Predicate - Object
나 - 발표하다 - SPARQL
2009년 5월 29일 금요일
RDF
웹상에서 표현되는 개념들
어떤것(Thing)에 대한 개념, 추상하기 위한 데이터 모델
Subject - Predicate - Object
나 - 발표하다 - SPARQL
2009년 5월 29일 금요일
RDF
웹상에서 표현되는 개념들
어떤것(Thing)에 대한 개념, 추상하기 위한 데이터 모델
Subject - Predicate - Object
블로그, 온라인매체 (RSS)
사람, 친구 (FOAF)
나 - 발표하다 - SPARQL
2009년 5월 29일 금요일
RDF
웹상에서 표현되는 개념들
어떤것(Thing)에 대한 개념, 추상하기 위한 데이터 모델
Subject - Predicate - Object
블로그, 온라인매체 (RSS)
사람, 친구 (FOAF)
나 - 발표하다 - SPARQL
!"#$%&
Semantic Web
Kwangsub
2009. 05. 29
'(')*
+,-./'*
/,'0"1
2009년 5월 29일 금요일
SPARQLSPARQL
Simple Protocol And RDF Query Language
Pattern Match
SPO (Subject, Predicate, Object)
2009년 5월 29일 금요일
SPARQL
Graph (Subject, Predicate, Object)안에
매치된 SPO들을 찾기 위한 Query Language
SPARQL
Simple Protocol And RDF Query Language
Pattern Match
SPO (Subject, Predicate, Object)
2009년 5월 29일 금요일
_:a !"#$%&'
2009년 5월 29일 금요일
_:a !"#$%&'
_:a - name - ?x
2009년 5월 29일 금요일
_:a !"#$%&'
_:a - name - ?x
2009년 5월 29일 금요일
_:a !"#$%&'
_:a - name - ?x
SELECT ?x WHERE{?a name ?x .
}
2009년 5월 29일 금요일
_:a !"#$%&'
_:a - name - ?x
?x = “김광섭”
SELECT ?x WHERE{?a name ?x .
}
2009년 5월 29일 금요일
Homework!"#$%"
&'(
)#*+,-./-01,0+-%.2#0
*+0"
"0+-%
&34
/5+*,)67./-01,0+-%.2#0
*+0"
"0+-%
89$"
89$"
/*#5) +::;"))
<=>?
+::;"))
@#2+8-#*
&AB
)#*+,-./-01,0+-%.2#0
*+0"
CD
/*#5)
E"0+*8-2!F"7
+::;")) *+0"
89$"
89$"
89$" *+0"
-*8";")8
-*8";")8
GHIH
JJH
+,"
+,"
+,""0+-%
2009년 5월 29일 금요일
BASE <http://example.org/> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX foaf: <http://xmlns.com/foaf/0.1/> # This is a relative IRI to BASE above PREFIX ex: <properties/1.0#> SELECT DISTINCT $person ?name $age FROM <http://rdf.example.org/personA.rdf> FROM <http://rdf.example.org/personB.rdf> WHERE{ $person a foaf:Person ;
foaf:name ?name. OPTIONAL { $person ex:age $age } . FILTER (!REGEX(?name, “Bob”))
} ORDER BY ASC(?name) LIMIT 10 OFFSET 20
SPARQL Example
* SPARQL RDF Query Language Reference v1.8 by Dave Beckett.
2009년 5월 29일 금요일
2009년 5월 29일 금요일
Terms
Sytax
Pattern
2009년 5월 29일 금요일
Terms
IRI : URI reference within an RDF graph<http://www.w3.org><http://semantic.naver.com/#Movie><abc.rdf> //base URI에 의존
<>foaf:name //prefix이용해 URI표현, PREFIX 정의
#x00 (X) //UNICODE문자 내에 허용
datatype IRI : datatype URI<http://www.w3.org/2001/XMLSchema#string><http://www.w3.org/2001/XMLSchema#integer>
2009년 5월 29일 금요일
Plain Literal : lexical form, optionally language tag, @ko“Semantic web” , “김광섭”@ko
Typed Literal : lexical form, datatype URI“30”^^xsd:integer“kwangsub”^^http://www.w3.org/2001/XMLSchema#string
Terms
Blank node : dummy node, node들간의 연결표현용, 무작위생성
_:a, _n06968595988
2009년 5월 29일 금요일
NameSpace : Vocabulary가 있는 URIhttp://www.w3.org/1999/02/22-rdf-syntax-ns#http://purl.org/dc/elements/1.1/http://xmlns.com/foaf/0.1/
Prefix : URI의 경로를 대표하는 접두어rdf, dc, foaf
Terms
2009년 5월 29일 금요일
Terms
RDF Graph : A Set of RDF Triples
RDF Triple : S-P-O
Subject : IRI or Blank Node
Predicate : IRI
Object : IRI or Blank Node or Literal
2009년 5월 29일 금요일
Match : Graph내 SPO가 Query Pattern에 Match되는 상황
Terms
Solutions : Match되어 반환된 결과들
Query Variable : Solutions을 바인딩하기 위한 변수
?x = “김광섭”
_:a !"#$%&'
_:a - name - ?x
?x or $name
2009년 5월 29일 금요일
Match : Graph내 SPO가 Query Pattern에 Match되는 상황
Terms
Solutions : Match되어 반환된 결과들
Query Variable : Solutions을 바인딩하기 위한 변수
?x = “김광섭”
_:a !"#$%&'
_:a - name - ?x
?x or $name
2009년 5월 29일 금요일
Simple Query
2009년 5월 29일 금요일
Simple Query
SELECT ?x WHERE{?a name ?x .
}
2009년 5월 29일 금요일
Syntax - RDF Term Syntax
IRI
<http://example.org/book/book1>
BASE <http://example.org/book/><book1>
PREFIX book: <http://example.org/book/>book:book1
2009년 5월 29일 금요일
Literals
“VoCampSeoul”
“VoCampSeoul”@en
“VoCampSeoul”^^xsd:string
1 == “1”^^xsd:integer
true == “true”^^xsd:boolean
1.3 == “1.3”^^xsd:decimal
Syntax - RDF Term Syntax
2009년 5월 29일 금요일
Query Var
?var or $var
Syntax - RDF Term Syntax
Blank
[ :p “v”]. == [] :p “v”.
_b57 :p “v”. //기본예
Unique Blank - 다른 IRI과 연결용
[ foaf:name ?name ; foaf:mbox <mailto:[email protected]>]
_b11 foaf:name ?name_b11 foaf:mbox <mailto:[email protected]>
//확장예
;은 S에 PO를 연속해서 붙일 수 있다.
,는 SP에 O를 연속해서 붙일 수 있다.
2009년 5월 29일 금요일
PREFIX, BASE
PREFIX dc: <http://purl.org/dc/elements/1purl.org.1/>SELECT ?titleWHERE { <http://example.org/book/book1> dc:title ?title }
Syntax -Triple Pattern Syntax
PREFIX dc: <http://purl.org/dc/elements/1.1/>PREFIX : <http://example.org/book/>
SELECT $titleWHERE { :book1 dc:title $title }
BASE <http://example.org/book/>PREFIX dc: <http://purl.org/dc/elements/1.1/>
SELECT $titleWHERE { <book1> dc:title ?title }
2009년 5월 29일 금요일
; ,
?people foaf:name ?name ; foaf:mbox ?mbox .
Syntax ; ,
?people foaf:name ?name .?people foaf:mbox ?mbox .
==
?people foaf:nick "Alice" , "Alice_" .
?people foaf:nick "Alice" . ?people foaf:nick "Alice_" .
==
2009년 5월 29일 금요일
Basic Graph Pattern
Pattern
Group Graph Pattern
{?people foaf:name "kwangsub".}
{{?people foaf:name "kwangsub".}{?people foaf:email "[email protected]".}
} //두 패턴이 모두 만족해야
{?people foaf:name ?name.FILTER regex (?name, “kw”)
}
Filter
2009년 5월 29일 금요일
Pattern
Optional Graph Pattern
_:a rdf:type foaf:Person ._:a foaf:name "Alice" ._:a foaf:mbox <mailto:[email protected]> ._:a foaf:mbox <mailto:[email protected]> .
_:b rdf:type foaf:Person ._:b foaf:name "Bob" .
SELECT ?name ?mboxWHERE {
?people foaf:name ?name . OPTIONAL { ?people foaf:mbox ?mbox } }
2009년 5월 29일 금요일
Pattern
Optional Graph Pattern + FILTER
SELECT ?people ?mboxWHERE {
?people foaf:name ?name . OPTIONAL { ?people foaf:mbox ?mbox . FILTER regex(?mbox, “@gmail”)} } //OPTIONAL을 여러개 추가 가능
Alternative Graph Pattern
SELECT ?people ?mboxWHERE {
{?people foaf:name ?name .}UNION{?people naver:name ?name .}
}//UNON대상 여러가 추가 가능{?people foaf:name ?name . ?people foaf:knows ?name}UNION{? people naver:name ?name. ?people naver:knows ?name}
2009년 5월 29일 금요일
String Value Constraint
Constraint
Numeric Value Constraint
SELECT ?people, ?nameWHERE {
?people :name ?name FILTER regex(?name, “^kwan”, “i”) } //kwan으로 시작하는 사람
SELECT ?people, ?ageWHERE {
?people :age ?age. FILTER (?age > 30) } //30 이상인 사람
2009년 5월 29일 금요일
Order
Solution Sequences and Modifiers
SELECT ?s ?p ?oWHERE {
?s ?p ?o } //모든 SPO반환ORDER BY ?o // ???
SELECT ?people, ?nameWHERE {
?people :name ?name}ORDER BY ?name //기본 오름차순 A-Z, DESC(?name)
1. unbound2. blank3. uri4. datatype
우선순위 (asc경우)
2009년 5월 29일 금요일
Projection
Solution Sequences and Modifiers
SELECT ?sWHERE {
?s ?p ?o } //하나의 칼럼 var로 반환
Distinct
SELECT DISTINCT ?interestWHERE { ?people :interest ?interest. } //중복제거
2009년 5월 29일 금요일
Offset
Solution Sequences and Modifiers
SELECT ?s ?p ?oWHERE { ?s ?p ?o.}OFFSET 10 //11번째 부터 solutions 반환
LIMIT
SELECT ?s ?p ?oWHERE { ?s ?p ?o.}LIMIT 10 //10개 solutions 반환
SELECT ?s ?p ?oWHERE { ?s ?p ?o.}LIMIT 5OFFSET 10 //함께 사용 가능
2009년 5월 29일 금요일
SELECT
Query Form
SELECT ?s ?p ?oWHERE { ?s ?p ?o.}
CONSTRUCT //데이터를 입맛에 맞게 조합
CONSTRUCT { ?x vcard:N _:v . _:v vcard:givenName ?gname . _:v vcard:familyName ?fname }WHERE { { ?x foaf:firstname ?gname } UNION { ?x foaf:givenname ?gname } . { ?x foaf:surname ?fname } UNION { ?x foaf:family_name ?fname } . }
2009년 5월 29일 금요일
ASK
Query Form
PREFIX foaf: <http://xmlns.com/foaf/0.1/>ASK { ?x foaf:name "Alice" }
DESCRIBE
DESCRIBE <http://example.org/>
2009년 5월 29일 금요일
2009년 5월 29일 금요일
Let’s Play!"#$%"
&'(
)#*+,-./-01,0+-%.2#0
*+0"
"0+-%
&34
/5+*,)67./-01,0+-%.2#0
*+0"
"0+-%
89$"
89$"
/*#5) +::;"))
<=>?
+::;"))
@#2+8-#*
&AB
)#*+,-./-01,0+-%.2#0
*+0"
CD
/*#5)
E"0+*8-2!F"7
+::;")) *+0"
89$"
89$"
89$" *+0"
-*8";")8
-*8";")8
GHIH
JJH
+,"
+,"
+,""0+-%
2009년 5월 29일 금요일
Homeworks
- [email protected] 메일을 사용하는 사람들?- kwangsub과 동일한 관심을 같은 사람들?- 나이가 50이하인 사람들?- 같은 동네에 사는 사람들?
- "@gmai.com"을 사용하는 사람들 FILTER(?mail, "@gmail.com");- 20세 이하의 사람들의 관심 주제는?
- kwangsub이 아는 사람중에 대전에 사는 사람?
2009년 5월 29일 금요일
링크http://delicious.com/kwangsub.kim/%23VoCampSeoul2009
http://groups.google.com/group/semanticwebstudy?hl=ko
2009년 5월 29일 금요일
감사합니다.
2009년 5월 29일 금요일