이 내 최소 데이터입니다 : 이것은 내 쿼리입니다이 예제에서는 작동하지 유착
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX rs: <http://www.SemanticRecommender.com/rs#>
PREFIX mo: <http://www.musicontology.com/mo#>
PREFIX : <http://www.musicsemanticontology.com/mso#>
mo:5th_symphony_for_beethoven a mo:GermanSymphony .
:symphonyFestival2016 a rs:TemporalContext ; rs:appliedOnItems mo:GermanSymphony ; rs:canBeRecommendedFrom "2016-07-01T00:00:00-00:00"^^xsd:dateTime ; rs:canBeRecommendedUntil "2016-09-01T00:00:00-00:00"^^xsd:dateTime .
:
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX rs: <http://www.SemanticRecommender.com/rs#>
PREFIX mo: <http://www.musicontology.com/mo#>
PREFIX : <http://www.musicsemanticontology.com/mso#>
SELECT ?item ?resultForMe ?matchedWeight ?defaultMatchedTemporalContext
WHERE
{
values ?item {mo:5th_symphony_for_beethoven}
VALUES (?defaultMatchedTemporalContext ?defaultNotMatchedTemporalContext ?defaultNoTemporalContext) {(2 0.5 1)}
?temporalContext
rdf:type rs:TemporalContext ; rs:appliedOnItems ?itemClass .
OPTIONAl { ?item rdf:type ?itemClass
OPTIONAL { ?temporalContext rs:canBeRecommendedFrom ?fromLimit }
OPTIONAL { ?temporalContext rs:canBeRecommendedUntil ?untilLimit }
OPTIONAL { ?temporalContext rs:hasWeightIfContextMatched ?matchedWeight }
OPTIONAL { ?temporalContext rs:hasWeightIfContextDoesNotMatch ?unmatchedWeight }
BIND(if(((?fromLimit <= now()) && (now() <= ?untilLimit)) , coalesce (?matchedWeight, ?defaultMatchedTemporalContext),2) as ?resultForMe)
}
}
이
는 결과입니다resultForMe 봐, 어떤 값이없는, 이유는 무엇입니까? 이 질문은이지만 defaultMatchedTemporalContext에는 값이 있습니다.
나는 당신에게 당신이 원하는 경우에, 당신이 문제는 값 절이었다이었다
질문은 1) IF식이 작동하는지 여부가 나에게 잘 보이고 2) 먼저 평가되는 것이 무엇인지, VALUES 또는 'BIND'. – AKSW
그건 그렇고, 간단하게 모든 선택 항목을 제거 할 것입니다. – AKSW
@AKSW 귀하의 의견을 보내 주셔서 감사합니다. 1) 예. IF가 확실한 경우, 합치기를 임의의 값으로 바꾸십시오. 3) 2) 값은 바인드 이전이므로 먼저 평가해야합니다. (최소한 신참자의 지식에) –