I'm running queries against the data set available at

http://basekb.com/

     The following query fails w/ VOS 6.1.5

sparql

prefix basekb: <http://rdf.basekb.com/ns/>
prefix graph: <http://rdf.basekb.com/graph/>
prefix public: <http://rdf.basekb.com/public/>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>


select ?year count(*) { {
select year(?date) as ?year  {
   ?p public:knownAs basekb:people.person.date_of_birth .
   ?person ?p ?date .
   FILTER(datatype(?date)=xsd:dateTime) .
}
} } group by ?year

I get the error message

SQLState: 22007

Message: DT001: Function year needs a datetime, date or time as argument 1, not 
an arg of type rdf (246)

If I only run the subselect,  the query works correctly

sparql

prefix basekb:<http://rdf.basekb.com/ns/>
prefix graph:<http://rdf.basekb.com/graph/>
prefix public:<http://rdf.basekb.com/public/>
prefix rdfs:<http://www.w3.org/2000/01/rdf-schema#>


select year(?date) as ?year  {
   ?p public:knownAs basekb:people.person.date_of_birth .
   ?person ?p ?date .
   FILTER(datatype(?date)=xsd:dateTime) .
}



Reply via email to