Hello Andy, I am getting the below error when i run the query against the dataset shared with you,
PREFIX myfn: <java:samplejena.> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX dc: <http://purl.org/dc/elements/1.1/> PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> SELECT ?title ?r WHERE { ?s rdfs:seeAlso ?r. OPTIONAL {?r dc:title ?title.} FILTER ( isURI(?r) && myfn:LastModified(?r) > "2005-11-06T00:00:00Z"^^xsd:dateTime ) } 13:44:11 WARN NodeValue :: Datatype format exception: "1969-12-31T19:00:00"^^xsd:date Is this because of any old version or something? On Thu, Aug 9, 2018 at 6:34 AM, Andy Seaborne <[email protected]> wrote: > Good question - there is still a noticeable tail of com.hp.hpl, here and > on Stackoverflow. > > Some is due to old apps; that is good in that the software is useful > enough to be used for such a long time. > > I suspect that some of the rest is university courses providing the > materials that have not been updated. > > (Jena3 was 2015-07-29) > > Andy > > > On 09/08/18 06:48, Lorenz Buehmann wrote: > >> I'm always wondering how people that are new to Apache Jena still use >> the old version. I mean, the first hit via Google is the Apache Jena >> webpage which clearly refers to the latest version. >> >> In the current case, he just copied the code example from [1] which >> indeed uses the old version given that the blog entry is from 2005. >> Well, at this time I didn't know about Semantic Web at all... >> >> [1] http://www.ldodds.com/projects/sparql/LastModified.txt >> >> >> On 08.08.2018 22:14, Andy Seaborne wrote: >> >>> com.hp.hpl.jena -- that's Jena2. >>> >>> Packages are "org.apache.jena" in Jena3. >>> >>> The code seems to have been compiled against Jena2 and run against >>> Jena3. That won't work. >>> >>> Andy >>> >>> On 08/08/18 18:14, Arunkumar Krishnamoorthy wrote: >>> >>>> The java code i am executing is, >>>> >>>> package samplejena; >>>> >>>> import com.hp.hpl.jena.query.expr.NodeValue; >>>> import com.hp.hpl.jena.query.function.FunctionBase1; >>>> >>>> import java.net.*; >>>> import java.text.SimpleDateFormat; >>>> import java.util.*; >>>> >>>> public class LastModified extends FunctionBase1 >>>> { >>>> private static final SimpleDateFormat format = new >>>> SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); >>>> private Map _cache; >>>> public LastModified() >>>> { >>>> _cache = new HashMap(); >>>> } >>>> public NodeValue exec(NodeValue nodeValue) >>>> { >>>> String value = nodeValue.asString(); >>>> if (_cache.containsKey(value)) >>>> { >>>> return (NodeValue)_cache.get(value); >>>> } >>>> String lastModified = ""; >>>> try { >>>> lastModified = getLastModified( nodeValue.asString() ); >>>> } catch (Exception e) { >>>> // TODO Auto-generated catch block >>>> e.printStackTrace(); >>>> } >>>> >>>> NodeValue date = NodeValue.makeDate(lastModified); >>>> _cache.put(value, date); >>>> return date; >>>> } >>>> public String getLastModified(String link) throws Exception >>>> { >>>> URL url = new URL(link); >>>> URLConnection connection = url.openConnection(); >>>> connection.setAllowUserInteraction(false); >>>> long secs = connection.getLastModified(); >>>> String xsdDate = dateToXSD(secs); >>>> return xsdDate; >>>> } >>>> public String dateToXSD(long secs) >>>> { >>>> Date date = new Date(secs); >>>> return format.format(date); >>>> } >>>> } >>>> >>>> >>>> >>>> On Wed, Aug 8, 2018 at 1:14 PM, Arunkumar Krishnamoorthy >>>> <[email protected]> >>>> wrote: >>>> >>>> Hello Andy, >>>>> >>>>> I am getting the following issue when i run the code, >>>>> >>>>> Caused by: java.lang.ClassNotFoundException: com.hp.hpl.jena.query. >>>>> function.FunctionBase1 >>>>> at java.net.URLClassLoader.findClass(URLClassLoader.java:381) >>>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:424) >>>>> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.j >>>>> >>>>> I have added the .class file in the directory. Do i need to package the >>>>> dependancy jars also? Please advice. >>>>> >>>>> Regards, >>>>> Arun >>>>> >>>>> On Tue, Aug 7, 2018 at 2:11 PM, Arunkumar Krishnamoorthy < >>>>> [email protected]> wrote: >>>>> >>>>> It is executing now Andy. Thanks a lot. I missed to add the directory. >>>>>> Thanks again for this help. >>>>>> >>>>>> On Tue, Aug 7, 2018 at 2:06 PM, Andy Seaborne <[email protected]> >>>>>> wrote: >>>>>> >>>>>> >>>>>>> >>>>>>> On 07/08/18 18:07, Arunkumar Krishnamoorthy wrote: >>>>>>> >>>>>>> So my JENA_CP >>>>>>>> is JENA_CP='/home/ak/Downloads/apache-jena-3.8.0/lib/*:/home/ak >>>>>>>> /Documents'. >>>>>>>> >>>>>>>> >>>>>>> Does the file >>>>>>> >>>>>>> /home/ak/Documents/samplejena/LastModified.class >>>>>>> >>>>>>> exist? >>>>>>> >>>>>>> >>>>>>> >>>>>>> /home/ak/Documents location has the classfile/jar of the code >>>>>>>> >>>>>>>> But still when i run this command, >>>>>>>> >>>>>>>> /home/ak/Downloads/apache-jena-3.8.0/bin/arq --data >>>>>>>> /home/ak/Desktop/dataset.rdf --query /home/ak/Desktop/query.rq >>>>>>>> >>>>>>>> I am getting the below error, >>>>>>>> >>>>>>>> ak@akrish12:~$ /home/ak/Downloads/apache-jena-3.8.0/bin/arq --data >>>>>>>> /home/ak/Desktop/dataset.rdf --query /home/ak/Desktop/query.rq >>>>>>>> 12:41:35 WARN ClsLoader :: Class not found: >>>>>>>> samplejena.LastModified >>>>>>>> 12:41:35 WARN exec :: URI >>>>>>>> <java:samplejena.LastModified> >>>>>>>> has no registered function factory >>>>>>>> ------------- >>>>>>>> | title | r | >>>>>>>> ============= >>>>>>>> ------------- >>>>>>>> >>>>>>>> >>>>>>>> Regards, >>>>>>>> Arun >>>>>>>> >>>>>>>> On Tue, Aug 7, 2018 at 12:20 PM, Andy Seaborne <[email protected]> >>>>>>>> wrote: >>>>>>>> >>>>>>>> The list doesn't accept attachments. >>>>>>>> >>>>>>>>> >>>>>>>>> JENA_CP="$JENA_HOME"'/home/ak/Documents' >>>>>>>>> >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> This needs to be a valid java classpath. >>>>>>>>> >>>>>>>>> $JENA_HOME is directory of the Jena installation. >>>>>>>>> >>>>>>>>> In the original it says: >>>>>>>>> >>>>>>>>> JENA_CP="$JENA_HOME"'/lib/*' >>>>>>>>> >>>>>>>>> the .../lib/* (NB single quotes - no * expansion) puts all the >>>>>>>>> jars in >>>>>>>>> that direct on the classpath. >>>>>>>>> >>>>>>>>> For you: >>>>>>>>> >>>>>>>>> JENA_CP='/home/ak/Downloads/apache-jena-3.8.0/lib/*' >>>>>>>>> >>>>>>>>> You need to add the package/classfile tree for you code. >>>>>>>>> >>>>>>>>> As you have: java:samplejena >>>>>>>>> >>>>>>>>> Suppoose /DIR is the top of that directory tree so "samplejena" >>>>>>>>> is one >>>>>>>>> directory within /DIR. >>>>>>>>> >>>>>>>>> You then want: >>>>>>>>> >>>>>>>>> JENA_CP='/home/afs/jlib/apache-jena/lib/*:/DIR' >>>>>>>>> >>>>>>>>> : is the classpath separator. >>>>>>>>> >>>>>>>>> Andy >>>>>>>>> >>>>>>>>> On 07/08/18 16:25, Arunkumar Krishnamoorthy wrote: >>>>>>>>> >>>>>>>>> Hello, >>>>>>>>> >>>>>>>>>> >>>>>>>>>> I have attached the file with the change, i am getting Could >>>>>>>>>> not find >>>>>>>>>> or >>>>>>>>>> load main class arq.arq >>>>>>>>>> >>>>>>>>>> My classpath location is /home/ak/Documents. Please let me know >>>>>>>>>> whether >>>>>>>>>> my change is correct. >>>>>>>>>> >>>>>>>>>> Regards, >>>>>>>>>> Arun >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Tue, Aug 7, 2018 at 11:11 AM, Andy Seaborne <[email protected] >>>>>>>>>> <mailto: >>>>>>>>>> [email protected]>> wrote: >>>>>>>>>> >>>>>>>>>> Hi - Please send email to the jena users mailing list. >>>>>>>>>> >>>>>>>>>> (It is correct if it works!) >>>>>>>>>> >>>>>>>>>> Andy >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>> >>>>> >>>> >> >>
