2017-03-15 1 views
0

다음 Turtle 파일에서 2001-2017 사이의 모든 저널을 반환하는 SPARQL 쿼리의 구문은 무엇입니까?거북이 파일에서 날짜를 반환하는 SPARQL 쿼리

@prefix c:<http://www.example.com/journal#> . 


c:article1 c:title "Benifits of Computer" . 
c:article1 c:author "Jhon Maur" . 
c:article1 c:topic "Computers" . 
c:article1 c:date "12/02/1978" . 

c:article2 c:title "Eating Healthier" . 
c:article2 c:author "Dr. Joe Green" . 
c:article2 c:topic "Health" . 
c:article2 c:date "10/13/1999" . 

c:article3 c:title "Sports in America" . 
c:article3 c:author "Tom Golds" . 
c:article3 c:topic "Sports" . 
c:article3 c:date "02/09/2004" . 

c:article4 c:title "Students Jobs" . 
c:article4 c:author "Harry Parsons" . 
c:article4 c:topic "Commentary" . 
c:article4 c:date "09/19/2012" . 

c:article5 c:title "The Golden Age of IT" . 
c:article5 c:author "Jhon Maur" . 
c:article5 c:topic "Computers" . 
c:article5 c:date "12/02/1990" . 

c:article6 c:title "Health Foods to Avoid" . 
c:article6 c:author "Dr. Joe Green" . 
c:article6 c:topic "Heallth" . 
c:article6 c:date "10/13/2007" . 

c:article7 c:title "Boutique Languages" . 
c:article7 c:author "Allister Rhodes" . 
c:article7 c:topic "Computers" . 
c:article7 c:date "02/09/2004" . 

c:article8 c:title "Big Brother or Government" . 
c:article8 c:author "Tomas Weiss" . 
c:article8 c:topic "Commentary" . 
c:article8 c:date "03/09/2016" . 

c:article9 c:title "Getting a Good Job" . 
c:article9 c:author "Joan Wiley" . 
c:article9 c:topic "Commentary" . 
c:article9 c:date "07/11/2014" . 

c:article10 c:title "Scheduling Jobs in Python" . 
c:article10 c:author "Tony Issacs" . 
c:article10 c:topic "Computers" . 
c:article10 c:date "01/09/2017" . 

답변

2

문자열을 사용하여 날짜를 나타내는 경우 본질적으로 몇 년 동안 문자열 파싱을 수행해야합니다. 당신이 year 기능을 사용할 수 있도록, 시간을 나타내는 : (dateTime을 아마 XSD) 한 다음 바로 이런 일을 수행하는 대신, 당신은 실제 datatyped 리터럴을 사용한다

select ?article { 
    ?article c:date ?date 
    filter (2001 <= year(?date) && year(?date) <= 2017) 
} 

당신이 경우를 날짜에 "mm/dd/yyyy"형식의 문자열을 사용하기로 한 경우 다음과 같은 값을 추출 할 수 있습니다.

select ?article { 
    ?article c:date ?date 
    bind(?year as xsd:int(substr(?date, 7))) 
    filter (2001 <= ?year && ?year <= 2017) 
}