Difference between revisions of "Snapquery Query Experiment 2025-12-03"
Jump to navigation
Jump to search
(→Grok 4) |
|||
| Line 191: | Line 191: | ||
- director | - director | ||
- actor | - actor | ||
| + | </source> | ||
| + | = GPT-5 = | ||
| + | === Endpoints.yaml === | ||
| + | <source lang='yaml'> | ||
| + | # SPARQL endpoints for common open knowledge graph sources | ||
| + | endpoints: | ||
| + | wikidata: | ||
| + | name: wikidata | ||
| + | website: https://query.wikidata.org | ||
| + | endpoint: https://query.wikidata.org/sparql | ||
| + | method: POST | ||
| + | # Optional: will be prepended if you run with --prefixes | ||
| + | prefixes: |- | ||
| + | PREFIX wd: <http://www.wikidata.org/entity/> | ||
| + | PREFIX wdt: <http://www.wikidata.org/prop/direct/> | ||
| + | PREFIX wikibase: <http://wikiba.se/ontology#> | ||
| + | PREFIX p: <http://www.wikidata.org/prop/> | ||
| + | PREFIX ps: <http://www.wikidata.org/prop/statement/> | ||
| + | PREFIX pq: <http://www.wikidata.org/prop/qualifier/> | ||
| + | PREFIX bd: <http://www.bigdata.com/rdf#> | ||
| + | PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> | ||
| + | |||
| + | dbpedia: | ||
| + | name: dbpedia | ||
| + | website: https://dbpedia.org/sparql | ||
| + | endpoint: https://dbpedia.org/sparql | ||
| + | method: GET | ||
| + | prefixes: |- | ||
| + | PREFIX dbo: <http://dbpedia.org/ontology/> | ||
| + | PREFIX dbr: <http://dbpedia.org/resource/> | ||
| + | PREFIX dbp: <http://dbpedia.org/property/> | ||
| + | PREFIX foaf: <http://xmlns.com/foaf/0.1/> | ||
| + | PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> | ||
| + | </source> | ||
| + | === queries.yaml === | ||
| + | <source lang='yaml'> | ||
| + | # Parameterized SPARQL queries (director / actor) | ||
| + | # Placeholders: | ||
| + | # {director} - a case-insensitive full label match for the director | ||
| + | # {actor} - a case-insensitive full label match for the actor | ||
| + | language: sparql | ||
| + | queries: | ||
| + | |||
| + | films_by_director_and_actor_wikidata: | ||
| + | title: Films by director and actor (Wikidata) | ||
| + | description: > | ||
| + | Returns films where an actor starred and the film was directed by the specified director, | ||
| + | resolved by English labels on Wikidata. | ||
| + | endpoint: wikidata | ||
| + | # Optional: Use Wikidata-aware value formatting in pyLoDStorage result docs | ||
| + | formats: | ||
| + | - "*:wikidata" | ||
| + | parameters: | ||
| + | director: | ||
| + | example: Garry Marshall | ||
| + | actor: | ||
| + | example: Julia Roberts | ||
| + | query: |- | ||
| + | PREFIX wd: <http://www.wikidata.org/entity/> | ||
| + | PREFIX wdt: <http://www.wikidata.org/prop/direct/> | ||
| + | PREFIX bd: <http://www.bigdata.com/rdf#> | ||
| + | PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> | ||
| + | |||
| + | SELECT ?film ?filmLabel ?publicationDate | ||
| + | WHERE { | ||
| + | ?film wdt:P31 wd:Q11424 ; # instance of film | ||
| + | wdt:P57 ?dir ; # director | ||
| + | wdt:P161 ?actor . # cast member | ||
| + | |||
| + | # match director by English label (case-insensitive exact match) | ||
| + | ?dir rdfs:label ?dirName . | ||
| + | FILTER(LANG(?dirName) = "en") | ||
| + | FILTER(LCASE(STR(?dirName)) = LCASE("{director}")) | ||
| + | |||
| + | # match actor by English label (case-insensitive exact match) | ||
| + | ?actor rdfs:label ?actorName . | ||
| + | FILTER(LANG(?actorName) = "en") | ||
| + | FILTER(LCASE(STR(?actorName)) = LCASE("{actor}")) | ||
| + | |||
| + | OPTIONAL { ?film wdt:P577 ?publicationDate. } | ||
| + | SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". } | ||
| + | } | ||
| + | ORDER BY ?filmLabel | ||
| + | |||
| + | films_by_director_and_actor_dbpedia: | ||
| + | title: Films by director and actor (DBpedia) | ||
| + | description: > | ||
| + | Returns films where an actor starred and the film was directed by the specified director, | ||
| + | resolved by English labels on DBpedia. | ||
| + | endpoint: dbpedia | ||
| + | parameters: | ||
| + | director: | ||
| + | example: Garry Marshall | ||
| + | actor: | ||
| + | example: Julia Roberts | ||
| + | query: |- | ||
| + | PREFIX dbo: <http://dbpedia.org/ontology/> | ||
| + | PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> | ||
| + | |||
| + | SELECT DISTINCT ?film ?filmLabel ?releaseDate | ||
| + | WHERE { | ||
| + | ?film a dbo:Film ; | ||
| + | dbo:director ?dir ; | ||
| + | dbo:starring ?actor . | ||
| + | |||
| + | # match director/actor by English label (case-insensitive exact match) | ||
| + | ?dir rdfs:label ?dirLabel . | ||
| + | FILTER(LANGMATCHES(LANG(?dirLabel), "en")) | ||
| + | FILTER(LCASE(STR(?dirLabel)) = LCASE("{director}")) | ||
| + | |||
| + | ?actor rdfs:label ?actorLabel . | ||
| + | FILTER(LANGMATCHES(LANG(?actorLabel), "en")) | ||
| + | FILTER(LCASE(STR(?actorLabel)) = LCASE("{actor}")) | ||
| + | |||
| + | OPTIONAL { | ||
| + | ?film rdfs:label ?filmLabel . | ||
| + | FILTER(LANGMATCHES(LANG(?filmLabel), "en")) | ||
| + | } | ||
| + | OPTIONAL { ?film dbo:releaseDate ?releaseDate . } | ||
| + | } | ||
| + | ORDER BY ?filmLabel | ||
</source> | </source> | ||
Revision as of 10:57, 3 December 2025
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$
Grok 4
Endpoints.yaml
# endpoints.yaml
# Configuration for SPARQL endpoints
wikidata:
name: Wikidata
endpoint: https://query.wikidata.org/sparql
lang: sparql
website: https://query.wikidata.org/
method: GET
dbpedia:
name: DBpedia
endpoint: http://dbpedia.org/sparql
lang: sparql
website: https://dbpedia.org/sparql
method: GET
queries.yaml
# Parameterized queries for films directed by a specified director starring a specified actor
films_by_director_starring_actor_wikidata:
title: Films directed by {director} starring {actor}
query: |
SELECT ?film ?filmLabel WHERE {
?film wdt:P31 wd:Q11424 . # instance of film
?film wdt:P57 wd:{director} .
?film wdt:P161 wd:{actor} .
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
lang: sparql
endpoints:
- wikidata
parameters:
- director
- actor
films_by_director_starring_actor_dbpedia:
title: Films directed by {director} starring {actor}
query: |
SELECT ?film WHERE {
?film a dbo:Film .
?film dbo:director dbr:{director} .
?film dbo:starring dbr:{actor} .
}
lang: sparql
endpoints:
- dbpedia
parameters:
- director
- actor
GPT-5
Endpoints.yaml
# SPARQL endpoints for common open knowledge graph sources
endpoints:
wikidata:
name: wikidata
website: https://query.wikidata.org
endpoint: https://query.wikidata.org/sparql
method: POST
# Optional: will be prepended if you run with --prefixes
prefixes: |-
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX wikibase: <http://wikiba.se/ontology#>
PREFIX p: <http://www.wikidata.org/prop/>
PREFIX ps: <http://www.wikidata.org/prop/statement/>
PREFIX pq: <http://www.wikidata.org/prop/qualifier/>
PREFIX bd: <http://www.bigdata.com/rdf#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
dbpedia:
name: dbpedia
website: https://dbpedia.org/sparql
endpoint: https://dbpedia.org/sparql
method: GET
prefixes: |-
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbr: <http://dbpedia.org/resource/>
PREFIX dbp: <http://dbpedia.org/property/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
queries.yaml
# Parameterized SPARQL queries (director / actor)
# Placeholders:
# {director} - a case-insensitive full label match for the director
# {actor} - a case-insensitive full label match for the actor
language: sparql
queries:
films_by_director_and_actor_wikidata:
title: Films by director and actor (Wikidata)
description: >
Returns films where an actor starred and the film was directed by the specified director,
resolved by English labels on Wikidata.
endpoint: wikidata
# Optional: Use Wikidata-aware value formatting in pyLoDStorage result docs
formats:
- "*:wikidata"
parameters:
director:
example: Garry Marshall
actor:
example: Julia Roberts
query: |-
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX bd: <http://www.bigdata.com/rdf#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?film ?filmLabel ?publicationDate
WHERE {
?film wdt:P31 wd:Q11424 ; # instance of film
wdt:P57 ?dir ; # director
wdt:P161 ?actor . # cast member
# match director by English label (case-insensitive exact match)
?dir rdfs:label ?dirName .
FILTER(LANG(?dirName) = "en")
FILTER(LCASE(STR(?dirName)) = LCASE("{director}"))
# match actor by English label (case-insensitive exact match)
?actor rdfs:label ?actorName .
FILTER(LANG(?actorName) = "en")
FILTER(LCASE(STR(?actorName)) = LCASE("{actor}"))
OPTIONAL { ?film wdt:P577 ?publicationDate. }
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
ORDER BY ?filmLabel
films_by_director_and_actor_dbpedia:
title: Films by director and actor (DBpedia)
description: >
Returns films where an actor starred and the film was directed by the specified director,
resolved by English labels on DBpedia.
endpoint: dbpedia
parameters:
director:
example: Garry Marshall
actor:
example: Julia Roberts
query: |-
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT DISTINCT ?film ?filmLabel ?releaseDate
WHERE {
?film a dbo:Film ;
dbo:director ?dir ;
dbo:starring ?actor .
# match director/actor by English label (case-insensitive exact match)
?dir rdfs:label ?dirLabel .
FILTER(LANGMATCHES(LANG(?dirLabel), "en"))
FILTER(LCASE(STR(?dirLabel)) = LCASE("{director}"))
?actor rdfs:label ?actorLabel .
FILTER(LANGMATCHES(LANG(?actorLabel), "en"))
FILTER(LCASE(STR(?actorLabel)) = LCASE("{actor}"))
OPTIONAL {
?film rdfs:label ?filmLabel .
FILTER(LANGMATCHES(LANG(?filmLabel), "en"))
}
OPTIONAL { ?film dbo:releaseDate ?releaseDate . }
}
ORDER BY ?filmLabel