SPARQL CONSTRUCT queries transform graph-05 into graph-06 using the tm: vocabulary. Persons keep schema:Person properties, works become org:Membership, professions become schema:Occupation, enumerations become skos:Concept with tm: subtypes. Split 010-occupations into two query files (passthrough + retype). Includes step-06 binary, Rakefile tasks, and example data for Irene Abendroth.
41 lines
1.1 KiB
SPARQL
41 lines
1.1 KiB
SPARQL
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
|
PREFIX owl: <http://www.w3.org/2002/07/owl#>
|
|
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
|
|
PREFIX schema: <https://schema.org/>
|
|
PREFIX org: <http://www.w3.org/ns/org#>
|
|
PREFIX wgs84: <http://www.w3.org/2003/01/geo/wgs84_pos#>
|
|
PREFIX wdtn: <http://www.wikidata.org/prop/direct-normalized/>
|
|
PREFIX tm: <https://daniel.degu.cl/ontologies/theatre-migrants/>
|
|
PREFIX person: <http://example.org/migrants/person/>
|
|
|
|
CONSTRUCT {
|
|
?s ?p ?o .
|
|
}
|
|
WHERE {
|
|
{
|
|
# Hop 0: Triples about Irene Abendroth (as subject)
|
|
?s ?p ?o .
|
|
FILTER(?s = person:AbeIre-00)
|
|
}
|
|
UNION
|
|
{
|
|
# Hop 1 (incoming): Triples about nodes referencing the anchor
|
|
?s ?p ?o .
|
|
?s ?ref person:AbeIre-00 .
|
|
}
|
|
UNION
|
|
{
|
|
# Hop 1 (outgoing): Triples about IRI nodes referenced by the anchor
|
|
?s ?p ?o .
|
|
person:AbeIre-00 ?ref ?s .
|
|
FILTER(isIRI(?s))
|
|
}
|
|
UNION
|
|
{
|
|
# Hop 2: Triples about IRI nodes referenced by hop-1 nodes
|
|
?s ?p ?o .
|
|
?hop1 ?r1 person:AbeIre-00 .
|
|
?hop1 ?r2 ?s .
|
|
FILTER(isIRI(?s) && ?s != person:AbeIre-00)
|
|
}
|
|
}
|