Snapquery Query Experiment 2025-12-03

From BITPlan cr Wiki
Revision as of 09:32, 3 December 2025 by Wf (talk | contribs) (Created page with "= Prompt = <pre> Given https://gitingest.com/ of https://github.com/WolfgangFahl/pyLodStorage and the example query In which films directed by Garry Marshall was Julia Roberts...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Prompt

Given https://gitingest.com/ of https://github.com/WolfgangFahl/pyLodStorage and the example query
In which films directed by Garry Marshall was Julia Roberts starring? from the paper Understanding the structure of knowledge graphs with ABSTAT profiles https://journals.sagepub.com/doi/pdf/10.3233/SW-223181 create an endpoints.yaml with potential sources such as wikidata and dbpedia and a queries.yaml with parameterized queries that allow to specify director and actor.

⚠️ LLM-generated content notice: Parts of this page may have been created or edited with the assistance of a large language model (LLM). The prompts that have been used might be on the page itself, the discussion page or in straight forward cases the prompt was just "Write a mediawiki page on X" with X being the page name. While the content has been reviewed it might still not be accurate or error-free.

Results

Gemin3 Pro Preview

Based on the pyLodStorage repository structure and the example query about films directed by Garry Marshall starring Julia Roberts, here are the two YAML configuration files:

Endpoints.yaml

# SPARQL Endpoints Configuration
endpoints:
  wikidata:
    name: wikidata
    endpoint: https://query.wikidata.org/sparql
    website: https://query.wikidata.org
    lang: sparql
    method: POST
    database: wikidata
    prefixes: |
      PREFIX wd: <http://www.wikidata.org/entity/>
      PREFIX wdt: <http://www.wikidata.org/prop/direct/>
      PREFIX wikibase: <http://wikiba.se/ontology#>
      PREFIX bd: <http://www.bigdata.com/rdf#>
      PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
    
  dbpedia:
    name: dbpedia
    endpoint: https://dbpedia.org/sparql
    website: https://dbpedia.org/sparql
    lang: sparql
    method: POST
    database: dbpedia
    prefixes: |
      PREFIX dbo: <http://dbpedia.org/ontology/>
      PREFIX dbr: <http://dbpedia.org/resource/>
      PREFIX dbp: <http://dbpedia.org/property/>
      PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
      PREFIX foaf: <http://xmlns.com/foaf/0.1/>

queries.yaml

# Query Definitions
queries:
  films_by_director_and_actor_wd:
    name: films_by_director_and_actor_wd
    title: Films by Director and Actor (Wikidata)
    description: |
      Finds films directed by a specific director and starring a specific actor.
      Example: In which films directed by Garry Marshall was Julia Roberts starring?
    lang: sparql
    endpoint: wikidata
    formats:
      - "*:wikidata"
    params:
      - name: director
        type: string
        default: "Garry Marshall"
      - name: actor
        type: string
        default: "Julia Roberts"
    query: |
      SELECT DISTINCT ?film ?filmLabel ?year WHERE {
        ?directorEntity rdfs:label ?directorLabel .
        FILTER(LANG(?directorLabel) = "en" && LCASE(STR(?directorLabel)) = LCASE("$director$"))
        
        ?actorEntity rdfs:label ?actorLabel .
        FILTER(LANG(?actorLabel) = "en" && LCASE(STR(?actorLabel)) = LCASE("$actor$"))
        
        ?film wdt:P31 wd:Q11424 .          # instance of film
        ?film wdt:P57 ?directorEntity .     # director
        ?film wdt:P161 ?actorEntity .       # cast member
        
        OPTIONAL { ?film wdt:P577 ?pubDate . 
                   BIND(YEAR(?pubDate) AS ?year) }
        
        SERVICE wikibase:label { bd:serviceParam wikibase:language "en" . }
      }
      ORDER BY ?year

  films_by_director_and_actor_dbpedia:
    name: films_by_director_and_actor_dbpedia
    title: Films by Director and Actor (DBpedia)
    description: |
      Finds films directed by a specific director and starring a specific actor using DBpedia.
      Example: In which films directed by Garry Marshall was Julia Roberts starring?
    lang: sparql
    endpoint: dbpedia
    params:
      - name: director
        type: string
        default: "Garry_Marshall"
      - name: actor
        type: string
        default: "Julia_Roberts"
    query: |
      SELECT DISTINCT ?film ?title ?year WHERE {
        ?film a dbo:Film ;
              dbo:director dbr:$director$ ;
              dbo:starring dbr:$actor$ .
        
        OPTIONAL { ?film rdfs:label ?title . FILTER(LANG(?title) = "en") }
        OPTIONAL { ?film dbo:releaseDate ?releaseDate . 
                   BIND(YEAR(?releaseDate) AS ?year) }
      }
      ORDER BY ?year

  films_by_director_and_actor_generic:
    name: films_by_director_and_actor_generic
    title: Films by Director and Actor (Generic)
    description: |
      Generic parameterized query to find films by director and actor.
      Can be used with different SPARQL endpoints.
    lang: sparql
    params:
      - name: director
        type: string
        required: true
        description: "Name of the film director"
      - name: actor
        type: string
        required: true
        description: "Name of the actor/actress"
      - name: limit
        type: integer
        default: 100
        description: "Maximum number of results"
    query: |
      # Query to be adapted based on endpoint
      # This is a template - modify based on your chosen endpoint
      SELECT DISTINCT ?film ?filmLabel ?year WHERE {
        # Add endpoint-specific patterns here
        # Use $director$ and $actor$ as parameter placeholders
      }
      LIMIT $limit$