@andrei - , ?isBusAvailable - , , ?travelMethod.
, , IFs - , , " IF- SPARQL?"
, "Take bus", ; , " ", ; , " ". psuedo-, IF AVAIL bus, THEN take bus, ELSE ( IF AVAIL bike, THEN take bike, ELSE take taxi ).
@joshua-taylor - SELECT DISTINCT IF (…) , - , , ( ) -
SELECT DISTINCT ( IF ( ( 1 = 1 )
, "true"
, "false"
) AS ?test )
WHERE { ?x ?y ?z }
LIMIT 1
. , (SELECT ?value … LIMIT 1) 1 -
SELECT ?travelMethod
WHERE
{
SELECT DISTINCT
( IF
(
(
1 > 0
)
, "Take Bus"
, (
IF (
(
1 > 0
)
, "Take Bike"
, "Take Taxi"
)
)
) AS ?travelMethod
)
FROM data:
WHERE { ?1 ?2 ?3 }
}
- (SELECT ?value … LIMIT 1) -
SELECT ?value
WHERE
{
GRAPH data: { ?obsValueID ontology:value ?value }
GRAPH data: { ?obsValueID rdf:label "Availability" }
GRAPH data: { ?obsValueID ontology:isObservedValueOf ?obsID }
GRAPH data: { ?obsID ssn:observationResultTime ?time }
GRAPH data: { ?obsID ssn:observedBy ?id }
GRAPH meta: { ?id rdf:label "MyBusService" }
}
ORDER BY DESC (?time)
LIMIT 1
, - , sparql.org , , , , . , , DBpedia, !
SELECT ?travelMethod
WHERE
{
SELECT DISTINCT
( IF
(
(
( SELECT ?value
WHERE
{
GRAPH data: { ?obsValueID ontology:value ?value }
GRAPH data: { ?obsValueID rdf:label "Availability" }
GRAPH data: { ?obsValueID ontology:isObservedValueOf ?obsID }
GRAPH data: { ?obsID ssn:observationResultTime ?time }
GRAPH data: { ?obsID ssn:observedBy ?id }
GRAPH meta: { ?id rdf:label "MyBusService" }
}
ORDER BY DESC (?time)
LIMIT 1
) > 0
)
, "Take Bus"
, (
IF (
(
( SELECT ?value
WHERE
{
GRAPH data: { ?obsValueID ontology:value ?value }
GRAPH data: { ?obsValueID rdf:label "Availability" }
GRAPH data: { ?obsValueID ontology:isObservedValueOf ?obsID }
GRAPH data: { ?obsID ssn:observationResultTime ?time }
GRAPH data: { ?obsID ssn:observedBy ?id }
GRAPH meta: { ?id rdf:label "MyBikeService" }
}
ORDER BY DESC (?time)
LIMIT 1
) > 0
)
, "Take Bike"
, "Take Taxi"
)
)
) AS ?travelMethod
)
FROM data:
WHERE { ?1 ?2 ?3 }
}
, , , -
SELECT ?travelMethod
WHERE
{
SELECT DISTINCT
( IF
(
(
( SELECT ?value
WHERE
{
GRAPH data: { ?obsValueID ontology:value ?value
; rdf:label "Availability"
; ontology:isObservedValueOf ?obsID
. ?obsID ssn:observationResultTime ?time
; ssn:observedBy ?id
}
GRAPH meta: { ?id rdf:label "MyBusService" }
}
ORDER BY DESC (?time)
LIMIT 1
) > 0
)
, "Take Bus"
, (
IF (
(
( SELECT ?value
WHERE
{
GRAPH data: { ?obsValueID ontology:value ?value
; rdf:label "Availability"
; ontology:isObservedValueOf ?obsID
. ?obsID ssn:observationResultTime ?time
; ssn:observedBy ?id
}
GRAPH meta: { ?id rdf:label "MyBikeService" }
}
ORDER BY DESC (?time)
LIMIT 1
) > 0
)
, "Take Bike"
, "Take Taxi"
)
)
) AS ?travelMethod
)
FROM data:
WHERE { ?1 ?2 ?3 }
}