Slide 1

Slide 1 text

,PUMJOͰΫΤϦݴޠͷ ΫϥΠΞϯτΛ࡞ͬͨ࿩ ʹ͜͠Γ͞ͿΖʙ!TVCSPI@

Slide 2

Slide 2 text

ࣗݾ঺հ w ʹ͜͠Γ͞ͿΖʙ w גࣜձࣾ#FBS5BJM w "OESPJEΤϯδχΞ ,PUMJO+BWB ˑ w 8FCΤϯδχΞ 3BJMT3FBDU w ,PUMJOྺ໿೥ ೥݄ʙ w झຯͰαʔόαΠυɺ,PUMJO+4 5XJUUFS*%!TVCSPI@

Slide 3

Slide 3 text

໨࣍ ,PUMJO੡41"32-ΫϥΠΞϯτʮ0UPOBTIJʯͷ঺հ w 41"32-ͷղઆ w ੡࡞ͷϞνϕʔγϣϯ ࣮૷ղઆ ίʔσΟϯάσϞ

Slide 4

Slide 4 text

࡞ͬͨϞϊ w ,PUMJO੡41"32-ΫϥΠΞϯτʮ0UPOBTIJʯ w (JUIVCTVCSPIPUPOBTIJ w 3%'༻ΫΤϦݴޠͷ41"32-Λ,PUMJOͰॻ͖΍͘͢͢ΔϥΠϒϥϦ w JOpYؔ਺ɾϥϜμࣜɾԋࢉࢠΦʔόʔϩʔυ౳Λ׆༻

Slide 5

Slide 5 text

41"32-ͱ͸ w 3%'༻ΫΤϦݴޠ ن֨8$ w 3%'Ͱද͞Εͨ-JOLFE0QFO%BUBͷݕࡧʹ࢖͏ΫΤϦݴޠ w ྫ%#1FEJB 8JLJQFEJBΛ3%'ԽɺΫΤϦݕࡧ͠΍ͨ͘͢͠Ϟϊ

Slide 6

Slide 6 text

࣮ࡍͷΫΤϦ w ೔ຊͷ౎ಓ෎ݝ໊ͱ8JLJQFEJBͷΞϒετϥΫτΛऔಘ select ?pref_name ?abstract where { ?pref rdf:type schema:AdministrativeArea; dbo:country ?country; rdfs:label ?pref_name; dbo:abstract ?abstract. filter( contains(str(?country), "日本") ) } ݁Ռ ੜΫΤϦ

Slide 7

Slide 7 text

੡࡞ͷϞνϕʔγϣϯ w ༷ʑͳΤϯυϙΠϯτ͕ଘࡏ w ࠃཱࠃձਤॻؗͷయڌσʔλ IUUQJEOEMHPKQJOGPSNBUJPOTQBSRM w ژ౎ࢢͷࢪઃσʔλ IUUQTTQBSRMDJUZLZPUPMHKQTQBSRM w JN!TQBSRM IUUQTTQBSRMDSTTOLZYZ[JNBT ৭ʑͳΤϯυϙΠϯτ͕͋ͬͯ໘നͦ͏ "DUJWF3FDPSEͬΆ͘ΧδϡΞϧʹΫΤϦୟ͚ͨΒָͦ͠͏ ͱ͍͏͔JN!TQBSRMͰແݶʹ༡ͼ͍ͨ ຊԻ ˞ΞΠυϧϚελʔͷΩϟϥΫλʔɾָۂɾ୆ࢺ౳ͷσʔλ

Slide 8

Slide 8 text

0WFSWJFX w ೔ຊͷ౎ಓ෎ݝ໊ͱ8JLJQFEJBͷΞϒετϥΫτΛऔಘ select ?pref_name ?abstract where { ?pref rdf:type schema:AdministrativeArea; dbo:country ?country; rdfs:label ?pref_name; dbo:abstract ?abstract. filter( contains(str(?country), "日本") ) } ੜΫΤϦ client.where { v("pref") be { rdfP.type to schemaC.administrativeArea and iri("dbo:country") to v("country") and rdfsP.label to v("pref_name") and iri("dbo:abstract") to v("abstract") } filter { contains(str(v("country")), "日本") } }.select { + v("pref_name") + v("abstract") } 0UPOBTIJ

Slide 9

Slide 9 text

࣮૷ղઆ w 5SJQMFͷදݱ w ओޠɾड़ޠɾ໨తޠͰߏ੒͞ΕΔʮτϦϓϧɾύλʔϯʯ ?pref rdf:type schema:AdministrativeArea. v("pref") be { rdfP.type to schemaC.administrativeArea }

Slide 10

Slide 10 text

࣮૷ղઆ w 5SJQMFͷදݱ w ओޠɾड़ޠɾ໨తޠͰߏ੒͞ΕΔʮτϦϓϧɾύλʔϯʯ ?pref rdf:type schema:AdministrativeArea. v("pref") be { rdfP.type to schemaC.administrativeArea } ओޠ ड़ޠ ໨తޠ ओޠ ड़ޠ ໨తޠ

Slide 11

Slide 11 text

࣮૷ղઆ w 5SJQMFͷදݱ w ओޠɾड़ޠɾ໨తޠͰߏ੒͞ΕΔʮτϦϓϧɾύλʔϯʯ ?pref rdf:type schema:AdministrativeArea. v("pref") be { rdfP.type to schemaC.administrativeArea } ओޠ ड़ޠ ໨తޠ ओޠ ड़ޠ ໨తޠ JOpYؔ਺

Slide 12

Slide 12 text

JOpYؔ਺ w ʮؔ਺ͷϨγʔόʔʯʮؔ਺໊ʯʮҾ਺ʯΛฒ΂ͯॻ͚Δؔ਺ w ϝϯόؔ਺PS֦ுؔ਺ w ୯ҰͷҾ਺ w ʮJOpYʯΩʔϫʔυ͕͍͍ͭͯΔ

Slide 13

Slide 13 text

࣮૷ͨؔ͠਺ infix fun TripleItem.be(pattern: TriplePattern.() -> Unit): GraphPattern { patterns.add(TriplePattern(this, vocabulary).apply(pattern)) return this@GraphPattern } infix fun TripleItem.to(`object`: TripleItem): Triple { triples.addAll(listOf(Triples(subject, this, `object`), Period)) return Triple(subject, this, `object`) } CFؔ਺ (SBQI1BUUFSOΫϥε಺ UPؔ਺ 5SJQMF1BUUFSOΫϥε಺

Slide 14

Slide 14 text

࣮૷ͨؔ͠਺ infix fun TripleItem.be(pattern: TriplePattern.() -> Unit): GraphPattern { patterns.add(TriplePattern(this, vocabulary).apply(pattern)) return this@GraphPattern } infix fun TripleItem.to(`object`: TripleItem): Triple { triples.addAll(listOf(Triples(subject, this, `object`), Period)) return Triple(subject, this, `object`) } CFؔ਺ (SBQI1BUUFSOΫϥε಺ UPؔ਺ 5SJQMF1BUUFSOΫϥε಺

Slide 15

Slide 15 text

࣮૷ͨؔ͠਺ infix fun TripleItem.be(pattern: TriplePattern.() -> Unit): GraphPattern { patterns.add(TriplePattern(this, vocabulary).apply(pattern)) return this@GraphPattern } infix fun TripleItem.to(`object`: TripleItem): Triple { triples.addAll(listOf(Triples(subject, this, `object`), Period)) return Triple(subject, this, `object`) } CFؔ਺ (SBQI1BUUFSOΫϥε಺ UPؔ਺ 5SJQMF1BUUFSOΫϥε಺

Slide 16

Slide 16 text

࣮૷ͨؔ͠਺ infix fun TripleItem.be(pattern: TriplePattern.() -> Unit): GraphPattern { patterns.add(TriplePattern(this, vocabulary).apply(pattern)) return this@GraphPattern } infix fun TripleItem.to(`object`: TripleItem): Triple { triples.addAll(listOf(Triples(subject, this, `object`), Period)) return Triple(subject, this, `object`) } CFؔ਺ (SBQI1BUUFSOΫϥε಺ UPؔ਺ 5SJQMF1BUUFSOΫϥε಺

Slide 17

Slide 17 text

࣮૷ղઆ w 5SJQMFͷදݱ w ओޠɾड़ޠɾ໨తޠͰߏ੒͞ΕΔʮτϦϓϧɾύλʔϯʯ ?pref rdf:type schema:AdministrativeArea. v("pref") be { rdfP.type to schemaC.administrativeArea } ओޠ ड़ޠ ໨తޠ ओޠ ड़ޠ ໨తޠ

Slide 18

Slide 18 text

࣮૷ղઆ w 5SJQMFͷදݱ w ओޠɾड़ޠɾ໨తޠͰߏ੒͞ΕΔʮτϦϓϧɾύλʔϯʯ ?pref rdf:type schema:AdministrativeArea. v("pref") be { rdfP.type to schemaC.administrativeArea } ओޠ ड़ޠ ໨తޠ ओޠ ड़ޠ ໨తޠ ϥϜμࣜ

Slide 19

Slide 19 text

ϥϜμࣜ w ؔ਺Λએݴͤͣɺͦͷ৔Ͱม਺ͷΑ͏ʹ౉͢ w ؔ਺ͷϨγʔόʔΛ ࢦఆ͢Δ͜ͱ΋Մೳ class HTML { fun body() { ... } } fun html(init: HTML.() -> Unit): HTML { val html = HTML() html.init() return html } html { // レシーバ付きラムダがここから始まる body() // レシーバオブジェクトのメソッドを呼んでいる }

Slide 20

Slide 20 text

ϥϜμࣜ w ؔ਺Λએݴͤͣɺͦͷ৔Ͱม਺ͷΑ͏ʹ౉͢ w ؔ਺ͷϨγʔόʔΛ ࢦఆ͢Δ͜ͱ΋Մೳ class HTML { fun body() { ... } } fun html(init: HTML.() -> Unit): HTML { val html = HTML() html.init() return html } html { // レシーバ付きラムダがここから始まる body() // レシーバオブジェクトのメソッドを呼んでいる } Ϩγʔόʔ෇ϥϜμࣜ ˠϨγʔόʔʹ)5.-ΫϥεΛࢦఆ

Slide 21

Slide 21 text

ϥϜμࣜ w ؔ਺Λએݴͤͣɺͦͷ৔Ͱม਺ͷΑ͏ʹ౉͢ w ؔ਺ͷϨγʔόʔΛ ࢦఆ͢Δ͜ͱ΋Մೳ class HTML { fun body() { ... } } fun html(init: HTML.() -> Unit): HTML { val html = HTML() html.init() return html } html { // レシーバ付きラムダがここから始まる body() // レシーバオブジェクトのメソッドを呼んでいる } )5.-ܕΠϯελϯεੜ੒ ˠϨγʔόʔࢦఆɺ࣮ߦ

Slide 22

Slide 22 text

ϥϜμࣜ w ؔ਺Λએݴͤͣɺͦͷ৔Ͱม਺ͷΑ͏ʹ౉͢ w ؔ਺ͷϨγʔόʔΛ ࢦఆ͢Δ͜ͱ΋Մೳ class HTML { fun body() { ... } } fun html(init: HTML.() -> Unit): HTML { val html = HTML() html.init() return html } html { // レシーバ付きラムダがここから始まる body() // レシーバオブジェクトのメソッドを呼んでいる } JOJU͕࣮ࡍʹ࣮ߦ͞Ε͍ͯΔͱ͜Ζ ˠதׅހJOJUͷॲཧ ˠதׅހͷதͷUIJT͸)5.-Ϋϥε ɹʹͳΔ

Slide 23

Slide 23 text

࣮૷ղઆ w ͳͥϥϜμࣜΛ࢖͏ͷ͔ w ϥϜμࣜΛ࢖Θͳ͍৔߹ w CF΋UP΋5SJQMF*UFNΫϥεಉ࢜Λͭͳ͙JOpYؔ਺ ˠແݶʹܨ͛ΒΕͯ͠·͏ʂɹߏจΤϥʔ͕࣮ߦ͢Δ·Ͱ෼͔Βͳ͍ʂ v("pref") be rdfP.type be schemaC.administrativeArea be … v("pref") to rdfP.type to schemaC.administrativeArea to … v("pref") be { rdfP.type to schemaC.administrativeArea }

Slide 24

Slide 24 text

࣮૷ղઆ w ϥϜμࣜΛ࢖ͬͨ৔߹ w CFؔ਺ˠ(SBQI1BUUFSOΫϥε಺ʹ࣮૷ɺҾ਺͸5SJQMF1BUUFSO 6OJU w UPؔ਺ˠ5SJQMF1BUUFSOΫϥε಺ʹ࣮૷ infix fun TripleItem.be(pattern: TriplePattern.() -> Unit): GraphPattern { patterns.add(TriplePattern(this, vocabulary).apply(pattern)) return this@GraphPattern } ʜCF\ʜUPʜ^ͱ͔͠ॻ͚ͳ͍Α͏ʹڧ੍ʂ ΫΤϦΛୟ͘·Ͱ෼͔Βͳ͔ͬͨߏจΤϥʔ͕࣮ߦલʹ෼͔Δʂ

Slide 25

Slide 25 text

ίʔσΟϯάσϞ

Slide 26

Slide 26 text

·ͱΊ w ,PUMJOͰ41"32-ΫϥΠΞϯτΛ࣮૷ͨ͠ w ύζϧͬΆָ͍ͯ͘͠ʂ w ීஈ͋·Γ৮Βͳ͍,PUMJOͷݴޠ࢓༷Λ༗ޮʹ׆༻Ͱ͖ͯ໘ന͍ʂ w ϓϩμΫτʹ׆͔͢ʹ͸ w αʔόʔαΠυ,PUMJOͰෳࡶͳݕࡧΫΤϦΛؾ࣋ͪΑ͘ॻ͖͍ͨ࣌ w ۀ຿ϩδοΫʹϢʔβʔ͕ΧελϜՄೳͳܭࢉ͕ࣜݱΕΔ࣌ ྫฐࣾͷܦඅਫ਼ࢉαʔϏεͷ೔౰ܭࢉࣜ

Slide 27

Slide 27 text

IUUQTHJUIVCDPNTVCSPIPUPOBTIJ

Slide 28

Slide 28 text

IUUQTHJUIVCDPNTVCSPIPUPOBTIJ

Slide 29

Slide 29 text

,PUPSJ3BUF#BEHF IUUQTHJUIVCDPNTVCSPI,PUPSJ3BUF#BEHF

Slide 30

Slide 30 text

,PUPSJ3BUF#BEHF IUUQTHJUIVCDPNTVCSPI,PUPSJ3BUF#BEHF ˞͜ͷϨϙδτϦࣗମ͸+BWBTDSJQU