Rome Kres Hackathon

From STLab

(Difference between revisions)
Jump to: navigation, search
Current revision (07:05, 15 April 2011) (view source)
m (Text replace - '150.146.88.63' to 'wit.istc.cnr.it')
 
(31 intermediate revisions not shown.)
Line 1: Line 1:
-
1)FROM ENGINE GET THE TRIPLE:
+
Link to the work flow: http://stlab.istc.cnr.it/documents/events/kres-hackathon/rome-kres-hackaton-2.png
 +
Link to the photogallery: [[KReSHackathonRomeGallery]]
 +
<center>[[Image:Board.jpg|240px]]</center>
-
curl -X POST -H "Accept: text/rdf+nt" -H "Content-type: text/plain" --data "Una nuova missione per l'agente Ethan Hunt ( Tom Cruise ) che, questa volta, dovrà  cercare di fermare la diffusione di Chimera, un virus geneticamente modificato che produce effetti letali sul sistema nervoso dell'essere umano, capace di mettere in ginocchio il mondo. Al fianco di Ethan il genio dell'informatica Luther Stickell ( Ving Rhames ) e l'affascinante ladra internazionale Nyah Nordoff-Hall (Thandie Newton). Il nemico da combattere, invece, è il perfido Sean Ambrose ( Dougray Scott ) il cui piano è di vendere su scala mondiale al miglior offerente l'antidoto al virus." http://150.146.88.63:9292/engines/
+
LOD resources endpoint is : http://wit.istc.cnr.it:8893/sparql
-
2)INSERT OUTPUT IN virtuoso port:8893
+
Stanbol instance at : http://wit.istc.cnr.it:9292/
-
3)QUERY FOR ACTOR:
+
== Detect dbpedia entities ==
-
select ?z from<prova_dataset> where{
+
===Load enahcnements :: <stanbol>/store===
-
?x <http://fise.iks-project.eu/ontology/entity-type> <http://dbpedia.org/ontology/Actor> .
+
# Create a file with my example text:
 +
#* movie.txt
 +
#* "Una nuova missione per l'agente Ethan Hunt ( Tom Cruise ) che, questa volta, dovrà  cercare di fermare la diffusione di Chimera, un virus geneticamente modificato che produce effetti letali sul sistema nervoso dell'essere umano, capace di mettere in ginocchio il mondo. Al fianco di Ethan il genio dell'informatica Luther Stickell ( Ving Rhames ) e l'affascinante ladra internazionale Nyah Nordoff-Hall (Thandie Newton). Il nemico da combattere, invece, è il perfido Sean Ambrose ( Dougray Scott ) il cui piano è di vendere su scala mondiale al miglior offerente l'antidoto al virus."
 +
# curl -i -X PUT -H "Content-Type:text/plain" -T movie1.txt http://wit.istc.cnr.it:9292/store/content/movie1.txt
 +
# Result: http://wit.istc.cnr.it:9292/store/page/movie1.txt
-
?x <http://fise.iks-project.eu/ontology/entity-reference> ?z}
+
===Select entity references :: <lod-resource>/sparql===
-
OUTPUT:
+
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
-
<http://dbpedia.org/resource/Tom_Cruise>
+
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>  
 +
prefix owl: <http://www.w3.org/2002/07/owl#>
 +
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
 +
 +
select distinct
 +
  ?z
 +
WHERE
 +
{
 +
    ?x <http://fise.iks-project.eu/ontology/extracted-from>  <http://wit.istc.cnr.it:9292/store/content/movie1.txt> .
 +
    ?x <http://fise.iks-project.eu/ontology/entity-reference> ?z
 +
}
 +
OR
-
4)QUERY FOR GET RESOURCE with SAME_AS property
+
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
 +
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
 +
prefix owl: <http://www.w3.org/2002/07/owl#>
 +
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
 +
construct {
 +
  ?z rdf:type owl:Thing
 +
}
 +
WHERE
 +
{
 +
    ?x <http://fise.iks-project.eu/ontology/extracted-from>  <http://wit.istc.cnr.it:9292/store/content/movie1.txt> .
 +
    ?x <http://fise.iks-project.eu/ontology/entity-reference> ?z
 +
}
-
PREFIX oddlinker: <http://data.linkedmdb.org/resource/oddlinker/>
+
===Select owl:sameAs from each LOD source===
 +
====Linked MDB====
-
SELECT ?source ?type
+
PREFIX oddlinker: <http://data.linkedmdb.org/resource/oddlinker/>
 +
CONSTRUCT {
 +
  ?Subject ?type ?source
 +
}
 +
FROM <lmdb_dataset>
 +
 +
WHERE
 +
{
 +
?x oddlinker:link_source ?source .
 +
?x oddlinker:link_type ?type .
 +
?x oddlinker:link_target ?Subject .
 +
FILTER ( ?type = "owl:sameAs" || ?type = "rdfs:SeeAlso") .
 +
FILTER (
 +
    ?Subject = <http://sws.geonames.org/2118968/> ||
 +
    ?Subject = <http://dbpedia.org/resource/Tom_Cruise> ||
 +
    ?Subject = <http://sws.geonames.org/556951/> ||
 +
    ?Subject = <http://dbpedia.org/resource/Al_Pacino> ||
 +
    ?Subject = <http://sws.geonames.org/106281/> ||
 +
    ?Subject = <http://dbpedia.org/resource/Al_Gore>
 +
  )
 +
}
 +
LIMIT 10000
-
FROM <lmdb_dataset>
+
And the result is:
-
WHERE{
+
{| class=smwtable
-
?x oddlinker:link_source ?source .
+
! Subject
-
?x oddlinker:link_type ?type .
+
! type
-
?x oddlinker:link_target <http://dbpedia.org/resource/Tom_Cruise> .
+
! source
-
FILTER ( ?type = "owl:sameAs" || ?type = "rdfs:SeeAlso")
+
|-
-
}
+
| http://dbpedia.org/resource/Al_Gore
 +
| owl:sameAs
 +
| http://data.linkedmdb.org/resource/actor/12737
 +
|-
 +
| http://dbpedia.org/resource/Al_Pacino
 +
| owl:sameAs
 +
| http://data.linkedmdb.org/resource/actor/12748
 +
|-
 +
| http://dbpedia.org/resource/Tom_Cruise
 +
| owl:sameAs
 +
| http://data.linkedmdb.org/resource/actor/28241
 +
|}
-
ORDER BY ?source
+
===Compute owl:sameAs with the reasoner :: /enrich===
-
LIMIT 10000
+
-
CURL:
+
==Fetch the information from LOD sources==
-
curl -L -v -H "Accept:text/rdf+nt" http://150.146.88.63:8893/sparql?query=PREFIX+oddlinker%3A+%3Chttp%3A%2F%2Fdata.linkedmdb.org%2Fresource%2Foddlinker%2F%3E%0D%0A%0D%0ASELECT+%3Fsource+%3Ftype%0D%0A%0D%0AFROM+%3Clmdb_dataset%3E%0D%0A%0D%0AWHERE%7B+%3Fx+oddlinker%3Alink_source+%3Fsource+.+%3Fx+oddlinker%3Alink_type+%3Ftype+.+%3Fx+oddlinker%3Alink_target+%3Chttp%3A%2F%2Fdbpedia.org%2Fresource%2FTom_Cruise%3E+.+FILTER+%28+%3Ftype+%3D+%22owl%3AsameAs%22+%7C%7C+%3Ftype+%3D+%22rdfs%3ASeeAlso%22%29+%7D%0D%0A%0D%0AORDER+BY+%3Fsource+LIMIT+10000+&format=text%2Fhtml
+
-
OUTPUT:
+
SELECT *
-
http://data.linkedmdb.org/resource/actor/28241 <--risultato
+
FROM <lmdb_dataset>
-
<http://data.linkedmdb.org/resource/actor/29671> <--ID con più dati.
+
WHERE{
 +
  {<http://dbpedia.org/resource/Al_Gore> ?p ?o}
 +
  UNION
 +
  {?s ?pp <http://dbpedia.org/resource/Al_Gore>}
 +
  UNION
 +
  {<http://dbpedia.org/resource/Al_Pacino> ?p ?o}
 +
  UNION
 +
  {?s ?pp <http://dbpedia.org/resource/Al_Pacino>}
 +
  UNION
 +
  {<http://dbpedia.org/resource/Tom_Cruise> ?p ?o}
 +
  UNION
 +
  {?s ?pp <http://dbpedia.org/resource/Tom_Cruise>}
 +
  UNION
 +
  {<http://data.linkedmdb.org/resource/actor/12737> ?p ?o}
 +
  UNION
 +
  {?s ?pp <http://data.linkedmdb.org/resource/actor/12748>}
 +
  UNION
 +
  {<http://data.linkedmdb.org/resource/actor/12737> ?p ?o}
 +
  UNION
 +
  {?s ?pp <http://data.linkedmdb.org/resource/actor/12748>}
 +
  UNION
 +
  {?s ?pp <http://data.linkedmdb.org/resource/actor/28241>}
 +
  UNION
 +
  {<http://data.linkedmdb.org/resource/actor/28241> ?p ?o}
 +
}
-
4.bis)
+
== Select the Recipe and do /refactor ==
-
SELECT *
+
-
FROM <lmdb_dataset>
+
<source lang="xml">
 +
google = <http://rdf.data-vocabulary.org/#> .
 +
mdb = <http://data.linkedmdb.org/resource/movie/> .
 +
dcterms = <http://purl.org/dc/terms/> .
 +
foaf = <http://xmlns.com/foaf/0.1/> .
-
WHERE{?actor <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://data.linkedmdb.org/resource/movie/actor> . ?actor <http://www.w3.org/2000/01/rdf-schema#label> ?label. FILTER regex(str(?label),"Tom Cruise" ,"i")}
+
!film2product[
 +
is(mdb:Film, ?film)
 +
->
 +
is(google:Product, ?film)
 +
] .
-
OUTPUT:
+
!actor2person[
-
http://data.linkedmdb.org/resource/actor/29671
+
is(mdb:Actor, ?actor)
 +
->
 +
is(google:Person, ?actor) .  
 +
values(google:title, ?actor, "Actor")
 +
] .
-
5)QUERY SPARQL TO GET ALL INFORMATION FOR actor
+
actorname[
-
PREFIX oddlinker: <http://data.linkedmdb.org/resource/oddlinker/>
+
is(google:Person, ?p) .
 +
values(mdb:actor_name, ?p, ?name) .  
 +
->
 +
values(google:name, ?p, ?name)
 +
] .
-
SELECT *
+
actorCharacter[
 +
is(google:Person, ?p) .
 +
has(mdb:performance, ?p, ?performance) .
 +
has(mdb:performance_character, ?performance, ?character) .
 +
values(performance_film, ?performance, ?film) .
 +
->
 +
values(google:role, ?character) .
 +
values(google:affiliation, ?film)
 +
] .
-
FROM <lmdb_dataset>
+
actorPage[
-
 
+
is(google:Person, ?p) .
-
WHERE{{<http://data.linkedmdb.org/resource/actor/29671> ?p ?o} UNION {?s ?pp <http://data.linkedmdb.org/resource/actor/29671>}}
+
has(foaf:page, ?p, ?page) .
 +
let(?pageString, str(?page))
 +
->
 +
values(google:role, ?pageString)
 +
]
 +
</source>

Current revision

Link to the work flow: http://stlab.istc.cnr.it/documents/events/kres-hackathon/rome-kres-hackaton-2.png

Link to the photogallery: KReSHackathonRomeGallery

LOD resources endpoint is : http://wit.istc.cnr.it:8893/sparql

Stanbol instance at : http://wit.istc.cnr.it:9292/

Contents

Detect dbpedia entities

Load enahcnements :: <stanbol>/store

  1. Create a file with my example text:
    • movie.txt
    • "Una nuova missione per l'agente Ethan Hunt ( Tom Cruise ) che, questa volta, dovrà cercare di fermare la diffusione di Chimera, un virus geneticamente modificato che produce effetti letali sul sistema nervoso dell'essere umano, capace di mettere in ginocchio il mondo. Al fianco di Ethan il genio dell'informatica Luther Stickell ( Ving Rhames ) e l'affascinante ladra internazionale Nyah Nordoff-Hall (Thandie Newton). Il nemico da combattere, invece, è il perfido Sean Ambrose ( Dougray Scott ) il cui piano è di vendere su scala mondiale al miglior offerente l'antidoto al virus."
  2. curl -i -X PUT -H "Content-Type:text/plain" -T movie1.txt http://wit.istc.cnr.it:9292/store/content/movie1.txt
  3. Result: http://wit.istc.cnr.it:9292/store/page/movie1.txt

Select entity references :: <lod-resource>/sparql

prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
prefix owl: <http://www.w3.org/2002/07/owl#> 
prefix xsd: <http://www.w3.org/2001/XMLSchema#> 

select distinct 
  ?z 
WHERE
{ 
    ?x <http://fise.iks-project.eu/ontology/extracted-from>  <http://wit.istc.cnr.it:9292/store/content/movie1.txt> .
    ?x <http://fise.iks-project.eu/ontology/entity-reference> ?z
}

OR

prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
prefix owl: <http://www.w3.org/2002/07/owl#> 
prefix xsd: <http://www.w3.org/2001/XMLSchema#> 
construct {
 ?z rdf:type owl:Thing
}
WHERE
{ 
   ?x <http://fise.iks-project.eu/ontology/extracted-from>  <http://wit.istc.cnr.it:9292/store/content/movie1.txt> .
   ?x <http://fise.iks-project.eu/ontology/entity-reference> ?z
}

Select owl:sameAs from each LOD source

Linked MDB

PREFIX oddlinker: <http://data.linkedmdb.org/resource/oddlinker/>
CONSTRUCT {
 ?Subject ?type ?source
}
FROM <lmdb_dataset>

WHERE
{
?x oddlinker:link_source ?source .
?x oddlinker:link_type ?type .
?x oddlinker:link_target ?Subject .
FILTER ( ?type = "owl:sameAs" || ?type = "rdfs:SeeAlso") .
FILTER ( 
    ?Subject = <http://sws.geonames.org/2118968/> ||
    ?Subject = <http://dbpedia.org/resource/Tom_Cruise> ||
    ?Subject = <http://sws.geonames.org/556951/> ||
    ?Subject = <http://dbpedia.org/resource/Al_Pacino> ||
    ?Subject = <http://sws.geonames.org/106281/> ||
    ?Subject = <http://dbpedia.org/resource/Al_Gore>
 )
}
LIMIT 10000

And the result is:

Subject type source
http://dbpedia.org/resource/Al_Gore owl:sameAs http://data.linkedmdb.org/resource/actor/12737
http://dbpedia.org/resource/Al_Pacino owl:sameAs http://data.linkedmdb.org/resource/actor/12748
http://dbpedia.org/resource/Tom_Cruise owl:sameAs http://data.linkedmdb.org/resource/actor/28241

Compute owl:sameAs with the reasoner :: /enrich

Fetch the information from LOD sources

SELECT *
FROM <lmdb_dataset>
WHERE{
 {<http://dbpedia.org/resource/Al_Gore> ?p ?o} 
 UNION 
 {?s ?pp <http://dbpedia.org/resource/Al_Gore>}
 UNION
 {<http://dbpedia.org/resource/Al_Pacino> ?p ?o} 
 UNION 
 {?s ?pp <http://dbpedia.org/resource/Al_Pacino>}
 UNION
 {<http://dbpedia.org/resource/Tom_Cruise> ?p ?o} 
 UNION 
 {?s ?pp <http://dbpedia.org/resource/Tom_Cruise>}
 UNION
 {<http://data.linkedmdb.org/resource/actor/12737> ?p ?o} 
 UNION 
 {?s ?pp <http://data.linkedmdb.org/resource/actor/12748>}
 UNION
 {<http://data.linkedmdb.org/resource/actor/12737> ?p ?o} 
 UNION 
 {?s ?pp <http://data.linkedmdb.org/resource/actor/12748>}
 UNION 
 {?s ?pp <http://data.linkedmdb.org/resource/actor/28241>}
 UNION
 {<http://data.linkedmdb.org/resource/actor/28241> ?p ?o} 
}

Select the Recipe and do /refactor

google = <http://rdf.data-vocabulary.org/#> . 
mdb = <http://data.linkedmdb.org/resource/movie/> . 
dcterms = <http://purl.org/dc/terms/> . 
foaf = <http://xmlns.com/foaf/0.1/> . 
 
!film2product[
	is(mdb:Film, ?film)
		->
	is(google:Product, ?film)
] . 
 
!actor2person[
	is(mdb:Actor, ?actor)
		->
	is(google:Person, ?actor) . 
	values(google:title, ?actor, "Actor")
] . 
 
actorname[
	is(google:Person, ?p) . 
	values(mdb:actor_name, ?p, ?name) . 
		->
	values(google:name, ?p, ?name)
] . 
 
actorCharacter[
	is(google:Person, ?p) . 
	has(mdb:performance, ?p, ?performance) .
	has(mdb:performance_character, ?performance, ?character) . 
	values(performance_film, ?performance, ?film) .
		->
	values(google:role, ?character) . 
	values(google:affiliation, ?film)
] . 
 
actorPage[
	is(google:Person, ?p) . 
	has(foaf:page, ?p, ?page) . 
	let(?pageString, str(?page))
		->
	values(google:role, ?pageString)
]
Personal tools