Die Daten befinden sich auf LINDAS in den folgenden beiden Named-Graphs:
- https://lindas.admin.ch/sbb/nova
- https://lindas.admin.ch/sbb/nova-dv
- https://lindas.admin.ch/sbb/didok
Mit dem ersten Query erstellen wir uns ein Inhaltsverzeichnis über diese zwei Graphen. Es zeigt, von welchen Klassen es wieviele Instanzen im jeweiligen Named-Graph hat:
SELECT ?g ?cls (COUNT(?s) AS ?count) WHERE {
{
SELECT DISTINCT ?g
WHERE {
GRAPH ?g {
}
}
}
GRAPH ?g {
?s a ?cls
}
} GROUP BY ?g ?cls
ORDER BY ?g ?cls
VALUES ?g {
<https://lindas.admin.ch/sbb/nova>
<https://lindas.admin.ch/sbb/nova-dv>
<https://lindas.admin.ch/sbb/didok>
}
Häufig benötigen wir für Abfragen die IRIs von bestimmten Resourcen, kennen diese aber nicht auswendig. Mit Hilfe der Volltextsuche können wir die IRI herausfinden, beispielsweise für die Haltestelle "Oerlikon":
PREFIX gtfs: <http://vocab.gtfs.org/terms#>
SELECT DISTINCT ?s ?l
WHERE {
?s a gtfs:Station.
?s ?p ?l.
(?l ?score) <tag:stardog:api:property:textMatch> 'oerlikon'.
} LIMIT 10
Mit DESCRIBE
können wir uns anschliessend alle Statements zu einer oder mehreren Resourcen ansehen. Beispielsweise für eine Haltestelle und ihre Geometrie:
DESCRIBE
## Zurich Oerlikon
<https://lod.opentransportdata.swiss/didok/8503006>
<https://lod.opentransportdata.swiss/didok/8503006/geometry>
DESCRIBE
antwortet mit einem Graph. Diesen können wir mit Sketch visualisieren, mit copy/paste der Statements ins Formularfeld "RDF Editor".
Verwendet man für die Abrage das Web-UI, dann wird das Resultat des Queries auf der Karte visualisiert Geo
PREFIX sc: <http://purl.org/science/owl/sciencecommons/>
PREFIX gtfs: <http://vocab.gtfs.org/terms#>
PREFIX schema: <http://schema.org/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX otd: <https://lod.opentransportdata.swiss/vocab/>
PREFIX dcterms: <http://purl.org/dc/terms/>
SELECT distinct ?Station ?Name ?Coord ?departureID
WHERE {
?Kante a otd:Relation;
otd:zoningPlan <https://lod.opentransportdata.swiss/zoningplan/libero/libero-billett-libero>;
gtfs:stop ?Station .
?Station rdfs:label ?Name ;
<http://www.opengis.net/ont/geosparql#hasGeometry>/<http://www.opengis.net/ont/geosparql#asWKT> ?Coord;
dcterms:identifier ?departureID .
}
limit 10000
PREFIX schema: <http://schema.org/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix otd: <https://lod.opentransportdata.swiss/vocab/>
SELECT *
FROM <https://lindas.admin.ch/sbb/nova>
WHERE {
?Zonenplan a otd:ZoningPlan;
rdfs:label ?namen.
}
LIMIT 100
PREFIX dcterm: <http://purl.org/dc/terms/>
PREFIX dct: <http://purl.org/dc/terms/>
PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX gtfs: <http://vocab.gtfs.org/terms#>
PREFIX schema: <http://schema.org/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX otd: <https://lod.opentransportdata.swiss/vocab/>
PREFIX vcard: <http://www.w3.org/2006/vcard/ns#>
PREFIX dcterms: <http://purl.org/dc/terms/>
#SELECT DISTINCT ?VerbundBezeichnung ?ZonenplanBezeichnung ?ZonenCode ?VerkehrsmittelBezeichnung ?Didok ?HaltestelleBezeichnung
SELECT ?VerbundBezeichnung ?ZonenplanBezeichnung ?ZonenCode ?ZonenEignerCode ?ZonenEignerKuerzel ?VerkehrsmittelBezeichnung ?stop1id ?stop1Name ?stop2id ?stop2Name
WHERE {
?Verbund a otd:Alliance ;
rdfs:label ?VerbundBezeichnung .
?Zonenplan a otd:ZoningPlan ;
otd:alliance ?Verbund ;
otd:zone ?Zone ;
rdfs:label ?ZonenplanBezeichnung .
?Zone a otd:Zone ;
schema:identifier ?ZonenCode;
schema:provider ?ZonenEigner.
?ZonenEigner a schema:Organization;
schema:alternateName ?ZonenEignerKuerzel;
schema:identifier ?ZonenEignerCode.
?Relation a otd:Relation;
otd:zone ?Zone;
otd:meanOfTransport ?VerkehrsmittelBezeichnung;
gtfs:stop ?stop1 ;
gtfs:stop ?stop2 .
?stop1 rdfs:label ?stop1Name ;
dcterms:identifier ?stop1id .
?stop2 rdfs:label ?stop2Name ;
dcterms:identifier ?stop2id .
FILTER( xsd:integer(?stop1id) > xsd:integer(?stop2id) )
} LIMIT 100
PREFIX gtfs: <http://vocab.gtfs.org/terms#>
PREFIX schema: <http://schema.org/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX otd: <https://lod.opentransportdata.swiss/vocab/>
PREFIX vcard: <http://www.w3.org/2006/vcard/ns#>
PREFIX dcterms: <http://purl.org/dc/terms/>
#SELECT DISTINCT gibt nur einzigartige Kombinationen aus.
SELECT DISTINCT ?verbund_name ?didok ?haltestelle_bezeichnung
FROM <https://lindas.admin.ch/sbb/nova>
WHERE {
# Ausgabe zu Zonenplan
?Kante a otd:Relation;
otd:zoningPlan ?Zonenplan;
gtfs:stop ?haltestelle.
?Zonenplan otd:alliance ?verbund.
?verbund rdfs:label ?verbund_name.
FILTER(?Zonenplan IN (<https://lod.opentransportdata.swiss/zoningplan/libero/libero-abo-libero>))
SERVICE <https://int.lindas.admin.ch/query> {
?haltestelle rdfs:label ?haltestelle_bezeichnung;
dcterms:identifier ?didok.
}
}
LIMIT 1000
Verwendet man für die Abrage das Web-UI, dann wird das Resultat des Queries auf der Karte visualisiert Geo
PREFIX gtfs: <http://vocab.gtfs.org/terms#>
PREFIX schema: <http://schema.org/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX otd: <https://lod.opentransportdata.swiss/vocab/>
PREFIX vcard: <http://www.w3.org/2006/vcard/ns#>
PREFIX dcterms: <http://purl.org/dc/terms/>
# Dieses Query gibt alle Haltestellen zum Zonenplan Onde Verte Billet aus und stellt sie grafisch dar.
SELECT DISTINCT ?geometrie
WHERE {
# Ausgabe zu Zonenplan
?Kante a otd:Relation;
otd:zoningPlan ?Zonenplan;
gtfs:stop ?haltestelle.
FILTER(?Zonenplan IN (<https://lod.opentransportdata.swiss/zoningplan/onde-verte/onde-verte-billett>))
?haltestelle <http://www.opengis.net/ont/geosparql#hasGeometry>/<http://www.opengis.net/ont/geosparql#asWKT> ?geometrie
}
PREFIX gtfs: <http://vocab.gtfs.org/terms#>
PREFIX schema: <http://schema.org/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX otd: <https://lod.opentransportdata.swiss/vocab/>
PREFIX vcard: <http://www.w3.org/2006/vcard/ns#>
PREFIX dcterms: <http://purl.org/dc/terms/>
# Select: wählt im Ergebnis die Variablen aus, welche angezeigt werden sollen .
#SELECT ?Zonenplan ?zonenplan_name ?zone ?zone_name
SELECT *
FROM <https://lindas.admin.ch/sbb/nova>
WHERE {
# Ausgabe zu Zonenplan
?Kante a otd:Relation;
otd:zoningPlan ?Zonenplan;
gtfs:stop ?haltestelle.
FILTER(?Zonenplan IN (<https://lod.opentransportdata.swiss/zoningplan/onde-verte/onde-verte-billett>))
}
LIMIT 1000
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX gtfs: <http://vocab.gtfs.org/terms#>
PREFIX otd: <https://lod.opentransportdata.swiss/vocab/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX schema: <http://schema.org/>
SELECT ?departure ?departureCoord ?departureID ?arrival ?arrivalCoord ?arrivalID
WHERE {
?Kante a otd:Relation;
otd:zoningPlan <https://lod.opentransportdata.swiss/zoningplan/libero/libero-billett-libero>;
gtfs:stop ?departurePoint ;
gtfs:stop ?arrivalPoint .
?departurePoint rdfs:label ?departure ;
<http://www.opengis.net/ont/geosparql#hasGeometry>/<http://www.opengis.net/ont/geosparql#asWKT> ?departureCoord;
dcterms:identifier ?departureID .
?arrivalPoint rdfs:label ?arrival ;
<http://www.opengis.net/ont/geosparql#hasGeometry>/<http://www.opengis.net/ont/geosparql#asWKT> ?arrivalCoord;
dcterms:identifier ?arrivalID.
FILTER(?departurePoint IN (<https://lod.opentransportdata.swiss/didok/8580425>))
}
limit 100
Hinweis: Query funktioniert nicht mehr, da die Angabe zu otd:routeType
auf der Relation fehlt.
PREFIX sc: <http://purl.org/science/owl/sciencecommons/>
PREFIX dcterm: <http://purl.org/dc/terms/>
PREFIX dct: <http://purl.org/dc/terms/>
PREFIX gtfs: <http://vocab.gtfs.org/terms#>
PREFIX schema: <http://schema.org/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX otd: <https://lod.opentransportdata.swiss/vocab/>
PREFIX dcterms: <http://purl.org/dc/terms/>
prefix geo: <http://www.opengis.net/ont/geosparql#>
prefix geof: <http://www.opengis.net/def/function/geosparql/>
prefix unit: <http://qudt.org/vocab/unit#>
SELECT ?Relation ?Zonenplan ?stNam1 ?stNam2 ?distance
WHERE {
?Relation a otd:Relation;
otd:zoningPlan ?Zonenplan;
otd:routeType ?RouteType;
gtfs:stop ?stop1 ;
gtfs:stop ?stop2.
?stop1 geo:hasGeometry ?geom1 ;
rdfs:label ?stNam1;
dcterms:identifier ?didok1 .
?stop2 geo:hasGeometry ?geom2 ;
rdfs:label ?stNam2;
dcterms:identifier ?didok2 .
BIND(geof:distance(?geom1, ?geom2, unit:Meter) as ?distance)
?geom1 geo:asWKT ?loc1 .
?geom2 geo:asWKT ?loc2 .
BIND(CONCAT("Connection ", ?stNam1, " - ", ?stNam2, "/", STR(?distance),"m") AS ?loc1Label)
BIND( ?loc1Label AS ?loc2Label)
BIND(STRDT(concat("LINESTRING ",strafter(strbefore(str(?loc1),")"),"POINT"), ",", strafter(str(?loc2),"POINT(")), <http://www.opengis.net/ont/geosparql#wktLiteral> ) as ?line)
FILTER (?RouteType="KURZ"^^xsd:string)
}
ORDER BY DESC (?distance)
LIMIT 100
PREFIX gtfs: <http://vocab.gtfs.org/terms#>
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX schema: <http://schema.org/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix otd: <https://lod.opentransportdata.swiss/vocab/>
SELECT *
FROM <https://lindas.admin.ch/sbb/nova>
WHERE {
?Kante a otd:LocalNetwork;
rdfs:label ?name;
}
ORDER BY ASC (?name)
LIMIT 1000
Hinweis: Query funktioniert nicht
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX gtfs: <http://vocab.gtfs.org/terms#>
PREFIX schema: <http://schema.org/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX otd: <https://lod.opentransportdata.swiss/vocab/>
PREFIX vcard: <http://www.w3.org/2006/vcard/ns#>
PREFIX dcterms: <http://purl.org/dc/terms/>
SELECT * WHERE {
{ SELECT ?startingPoint (COUNT(?Kante) AS ?kurzstreckeDeparture) WHERE {
?Kante a otd:Relation;
otd:zoningPlan <https://lod.opentransportdata.swiss/zoningplan/libero/libero-billett-libero>;
schema:departureStation ?startingPoint ;
schema:arrivalStation ?arrivalStation .
} GROUP BY ?startingPoint
}
# ?arrivalStation rdfs:label ?arrivalStationLabel .
{ SELECT (COUNT(?kante2) AS ?kurzstrecke2Departure) WHERE {
?kante2 a otd:Relation;
otd:zoningPlan <https://lod.opentransportdata.swiss/zoningPlan/libero/libero-billett-libero>;
schema:departureStation ?arrivalStation;
schema:arrivalStation ?startingPoint .
} GROUP BY ?startingPoint
}
#?kante2Kantenende rdfs:label ?kante2KantenendeLabel .
FILTER( ?kurzstreckeDeparture != ?kurzstrecke2Departure)
}
(Duplikat/Variante von Haltestelle2ZplOndeVerteBillet_geometry.rq
)
PREFIX gtfs: <http://vocab.gtfs.org/terms#>
PREFIX schema: <http://schema.org/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX otd: <https://lod.opentransportdata.swiss/vocab/>
PREFIX vcard: <http://www.w3.org/2006/vcard/ns#>
PREFIX dcterms: <http://purl.org/dc/terms/>
# Select: wählt die Variablen aus, welche angezeigt werden sollen im Ergebnis.
SELECT DISTINCT ?geometrie
WHERE {
# Ausgabe zu Zonenplan
?Kante a otd:Relation;
otd:zoningPlan ?Zonenplan;
gtfs:stop ?haltestelle.
FILTER(?Zonenplan IN (<https://lod.opentransportdata.swiss/zoningplan/libero/libero-billett-libero>))
?haltestelle <http://www.opengis.net/ont/geosparql#hasGeometry>/<http://www.opengis.net/ont/geosparql#asWKT> ?geometrie
}
PREFIX schema: <http://schema.org/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX otd: <https://lod.opentransportdata.swiss/vocab/>
PREFIX vcard: <http://www.w3.org/2006/vcard/ns#>
PREFIX dcterms: <http://purl.org/dc/terms/>
# Select: wählt die Variablen aus, welche angezeigt werden sollen im Ergebnis.
SELECT ?Zonenplan ?zonenplan_name ?zone ?zone_name
FROM <https://lindas.admin.ch/sbb/nova>
WHERE {
# Ausgabe zu Zonenplan
?Zonenplan a otd:ZoningPlan;
rdfs:label ?zonenplan_name;
otd:zone ?zone.
# Ausgabe zu Zone
?zone rdfs:label ?zone_name.
}
PREFIX gtfs: <http://vocab.gtfs.org/terms#>
PREFIX schema: <http://schema.org/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX otd: <https://lod.opentransportdata.swiss/vocab/>
PREFIX vcard: <http://www.w3.org/2006/vcard/ns#>
PREFIX dcterms: <http://purl.org/dc/terms/>
# Select: wählt die Variablen aus, welche angezeigt werden sollen im Ergebnis.
#SELECT ?Zonenplan ?zonenplan_name ?zone ?zone_name
SELECT DISTINCT ?geometrie ?geometrieLabel
#SELECT *
#FROM <https://lindas.admin.ch/sbb/nova>
WHERE {
# Ausgabe zu Zonenplan
?Kante a otd:Relation;
otd:zoningPlan ?Zonenplan;
otd:zone <https://lod.opentransportdata.swiss/zone/libero/libero-abo-libero/300> ;
gtfs:stop ?haltestelle .
# gtfs:stop <https://lod.opentransportdata.swiss/didok/8593380> .
#FILTER(
# FILTER(?Zonenplan IN (<https://lod.opentransportdata.swiss/zoningplan/onde-verte/onde-verte-billett>))
?haltestelle <http://www.opengis.net/ont/geosparql#hasGeometry>/<http://www.opengis.net/ont/geosparql#asWKT> ?geometrie ;
rdfs:label ?geometrieLabel .
}
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX gtfs: <http://vocab.gtfs.org/terms#>
PREFIX schema: <http://schema.org/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX otd: <https://lod.opentransportdata.swiss/vocab/>
PREFIX vcard: <http://www.w3.org/2006/vcard/ns#>
PREFIX dcterms: <http://purl.org/dc/terms/>
SELECT DISTINCT ?haltestelle ?geometrie ?geometrieLabel WHERE {
?Kante a otd:Relation;
otd:zoningPlan <https://lod.opentransportdata.swiss/zoningplan/libero/libero-abo-libero> ;
# otd:zoningPlan <https://lod.opentransportdata.swiss/zoningplan/libero/libero-billett-libero> ;
gtfs:stop ?haltestelle .
MINUS {
?Kante a otd:Relation;
# otd:zoningPlan <https://lod.opentransportdata.swiss/zoningplan/libero/libero/libero-billett-libero> ;
otd:zoningPlan <https://lod.opentransportdata.swiss/zoningplan/libero/libero-uberzonenplan-libero-tageskarte> ;
gtfs:stop ?haltestelle .
}
?haltestelle <http://www.opengis.net/ont/geosparql#hasGeometry>/<http://www.opengis.net/ont/geosparql#asWKT> ?geometrie ;
rdfs:label ?geometrieLabelSingle ;
dcterms:identifier ?uic .
BIND( CONCAT( ?geometrieLabelSingle, " (" ,?uic, ")") AS ?geometrieLabel )
#FILTER( CONTAINS( ?haltestelleLabel, "Wabern"))
}
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX schema: <http://schema.org/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix otd: <https://lod.opentransportdata.swiss/vocab/>
prefix vcard: <http://www.w3.org/2006/vcard/ns#>
SELECT *
FROM <https://lindas.admin.ch/sbb/nova>
WHERE {
?Kante a otd:Relation;
otd:zoningPlan ?zonenplan.
}
LIMIT 100
PREFIX gtfs: <http://vocab.gtfs.org/terms#>
PREFIX otd: <https://lod.opentransportdata.swiss/vocab/>
PREFIX schema: <http://schema.org/>
SELECT ?stop1 ?stop2 ?stop1Name ?stop2Name ?tarifwert WHERE {
# Relationsgebiet "Heiden - Rorschach Hafen"
?dvRelation otd:relationsgebiet <https://lod.opentransportdata.swiss/dv-relationsgebiet/ids__6195732000001> .
?dvRelation gtfs:stop ?stop1 .
?dvRelation gtfs:stop ?stop2 .
?dvRelation otd:tarifwert ?tarifwert .
FILTER (?stop1 != ?stop2)
?stop1 schema:name ?stop1Name .
?stop2 schema:name ?stop2Name .
VALUES (?stop2 ?stop2Position) {
(<https://lod.opentransportdata.swiss/didok/8506354> 1)
(<https://lod.opentransportdata.swiss/didok/8506353> 2)
(<https://lod.opentransportdata.swiss/didok/8506352> 3)
(<https://lod.opentransportdata.swiss/didok/8506400> 4)
(<https://lod.opentransportdata.swiss/didok/8506278> 5)
(<https://lod.opentransportdata.swiss/didok/8506311> 6)
(<https://lod.opentransportdata.swiss/didok/8506306> 7)
}
} ORDER BY ?stop1Position ?stop2Position
VALUES (?stop1 ?stop1Position) {
(<https://lod.opentransportdata.swiss/didok/8506354> 1)
(<https://lod.opentransportdata.swiss/didok/8506353> 2)
(<https://lod.opentransportdata.swiss/didok/8506352> 3)
(<https://lod.opentransportdata.swiss/didok/8506400> 4)
(<https://lod.opentransportdata.swiss/didok/8506278> 5)
(<https://lod.opentransportdata.swiss/didok/8506311> 6)
(<https://lod.opentransportdata.swiss/didok/8506306> 7)
}
Alle relationen des DV bei denen die werte von Tarifwerte / effektive Kilometer anders sind wenn der Antoss Preis oder Kilometer ist
Interpretation der Fragestellung:
- Relationen haben identische Haltestellen
- Relationen sind in Relationsgebieten mit identischem Label
- Preistabellen unterscheiden sich im Anstosstyp
- Relationen unterscheiden sich im Tarifwert
PREFIX gtfs: <http://vocab.gtfs.org/terms#>
PREFIX otd: <https://lod.opentransportdata.swiss/vocab/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX schema: <http://schema.org/>
SELECT ?gebietLabel ?stop1 ?stop2 ?stop1Name ?stop2Name ?tarifwert1 ?tarifwert2 WHERE {
?dvRelation1 otd:relationsgebiet/rdfs:label ?gebietLabel .
?dvRelation1 otd:relationsgebiet/otd:preistabelle/otd:anstossTyp "PREIS" .
?dvRelation1 gtfs:stop ?stop1 .
?dvRelation1 gtfs:stop ?stop2 .
?dvRelation1 otd:tarifwert ?tarifwert1 .
?dvRelation2 otd:relationsgebiet/rdfs:label ?gebietLabel .
?dvRelation2 otd:relationsgebiet/otd:preistabelle/otd:anstossTyp "KILOMETER" .
?dvRelation2 gtfs:stop ?stop1 .
?dvRelation2 gtfs:stop ?stop2 .
?dvRelation2 otd:tarifwert ?tarifwert2 .
FILTER (?stop1 != ?stop2)
FILTER (?dvRelation1 != ?dvRelation2)
FILTER (?tarifwert1 != ?tarifwert2)
?stop1 schema:name ?stop1Name .
?stop2 schema:name ?stop2Name .
}
LIMIT 100
VALUES ?gebietLabel {
"Heiden - Rorschach Hafen"
}
Interpretation der Fragestellung:
- Relationen haben identische Haltestellen
- Relationen unterscheiden sich im Typ (DV, Zoning)
PREFIX gtfs: <http://vocab.gtfs.org/terms#>
PREFIX otd: <https://lod.opentransportdata.swiss/vocab/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX schema: <http://schema.org/>
SELECT distinct ?stop1 ?stop2 ?stop1Name ?stop2Name ?relation ?zusatz WHERE {
{
?relation a otd:DvRelation .
?relation gtfs:stop ?stop1 .
?relation gtfs:stop ?stop2 .
?relation otd:relationsgebiet/otd:preistabelle/rdfs:label ?zusatz .
?zoneRelation a otd:Relation.
?zoneRelation gtfs:stop ?stop1 .
?zoneRelation gtfs:stop ?stop2 .
FILTER (?stop1 != ?stop2)
FILTER (?relation != ?zoneRelation)
}
UNION
{
?relation a otd:Relation .
?relation gtfs:stop ?stop1 .
?relation gtfs:stop ?stop2 .
?dvRelation a otd:DvRelation.
?dvRelation gtfs:stop ?Dvstop1 .
?dvRelation gtfs:stop ?Dvstop2 .
FILTER (?stop1 != ?stop2)
FILTER (?relation != ?dvRelation)
}
?stop1 schema:name ?stop1Name .
?stop2 schema:name ?stop2Name .
}
ORDER BY ?relation
LIMIT 100
VALUES (?stop1 ?stop2) {
(<https://lod.opentransportdata.swiss/didok/8504300> <https://lod.opentransportdata.swiss/didok/8504414>)
}