Skip to content
Snippets Groups Projects
Select Git revision
  • b9f833cc4e6d0c9b934e0be1e7c4c84d67e0441d
  • master default protected
2 results

dbpedia_groundtruth.sparql

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    dbpedia_groundtruth.sparql 2.82 KiB
    PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
    PREFIX dbc: <http://dbpedia.org/resource/Category:>
    PREFIX dbo: <http://dbpedia.org/ontology/>
    PREFIX dct: <http://purl.org/dc/terms/>
    PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
    PREFIX foaf: <http://xmlns.com/foaf/0.1/>
    PREFIX dbp:	<http://dbpedia.org/property/>
    
    SELECT DISTINCT (?movie AS ?Movie)
    
    (GROUP_CONCAT(DISTINCT ?name;separator="|") AS ?Title)
    (GROUP_CONCAT(DISTINCT ?director;separator="|") AS ?Director)
    (GROUP_CONCAT(DISTINCT ?author;separator="|") AS ?Author)
    (GROUP_CONCAT(DISTINCT ?cast_member;separator="|") AS ?Cast)
    (GROUP_CONCAT(DISTINCT ?releaseDate;separator="|") AS ?Published)
    (GROUP_CONCAT(DISTINCT ?subject;separator="|") AS ?Subject)
    (GROUP_CONCAT(DISTINCT ?genre;separator="|") AS ?Genre)
    (GROUP_CONCAT(DISTINCT ?duration/60;separator="|") AS ?Duration)
    (GROUP_CONCAT(DISTINCT ?abstract;separator="|") AS ?Description)
    (GROUP_CONCAT(DISTINCT ?distributor;separator="|") AS ?Distributor)
    (GROUP_CONCAT(DISTINCT ?productionCompanies;separator="|") AS ?ProductionCompanies)
    WHERE {
       {
        SELECT DISTINCT ?movie
        WHERE {
            SELECT DISTINCT ?movie ?min_year ?max_year
            WHERE {
                SELECT DISTINCT ?movie ?director (MIN(?year) AS ?min_year) (MAX(?year) AS ?max_year)
                WHERE{
                  # X type Film
                  {?movie rdf:type dbo:Film.}
    
                  # Imagine a inner join
    
                  # X subject Comedy
                  {?movie dct:subject dbc:Comedy}
                  UNION
                  # X subject Y; Y like "Comedy".
                  {?movie dct:subject ?y FILTER CONTAINS(lcase(str(?y)), "comedy").}
                  UNION
                  # X genre Y; Y like "Comedy".
                  {?movie dbo:genre ?y FILTER CONTAINS (lcase(str(?y)), "comedy").}
                  # X director  Person; Person birth date year
                  {?movie dbo:director ?director.
                   ?director dbo:birthDate ?dob.
                   BIND(xsd:integer(substr(xsd:string(?dob), 0, 4)) as ?year) .
                  }
               } GROUP BY ?movie ?director
           }GROUP BY ?movie HAVING (?min_year = ?max_year)
        }GROUP BY ?movie HAVING (?min_year >= 1970)
       }
       OPTIONAL{?movie foaf:name ?name FILTER(LANG(?name)="en").}
       OPTIONAL{?movie dbo:director ?director.}
       OPTIONAL{?movie dbo:author ?author.}
       OPTIONAL{?movie dbo:starring ?cast_member.}
       OPTIONAL{?movie dbo:releaseDate ?releaseDate.}
       OPTIONAL{?movie dct:subject ?subject FILTER CONTAINS(lcase(str(?subject)), "comedy").}
       OPTIONAL{?movie dbo:genre ?genre FILTER CONTAINS(lcase(str(?genre)), "comedy").}
       OPTIONAL{?movie dbo:runtime ?duration.}
       OPTIONAL{?movie dbo:abstract ?abstract FILTER(LANG(?abstract)="en").}
       OPTIONAL{?movie dbo:distributor  ?distributor.}
       OPTIONAL{?movie dbp:productionCompanies ?productionCompanies FILTER CONTAINS (lcase(str(?productionCompanies)), "http").}
    }GROUP BY ?movie