Thanks Andy. Yes looks like I have some upgrading to do... Can you provide more info about that FileManager adapter and how it works with OntDocumentManager?
Regarding static methods, I don't have a use case at hand, I was just wondering if that's a good design decision. I'm always trying to leave methods public and non-static, in case anyone needs to override them. RDFLanguages seems useful, I was missing this functionality in the previous Jena version I used. Is there some Jena exception that would be appropriate to throw when RDFLanguages.contentTypeToLang() returns null? I.e. when the program does not support reading/writing a certain media type? Martynas On Fri, Dec 6, 2013 at 10:09 AM, Andy Seaborne <[email protected]> wrote: > On 06/12/13 00:21, Martynas Jusevičius wrote: >> >> I was using SPIN API 1.3.0, I think it depends on ARQ 2.9.2. Now I >> switched to SPIN API 1.3.1 that depends on Jena 2.11.0. > > > TopQuadrant only jump in large version steps so you may well find that many > small steps have become one large step for you. Not a lot we can do about > that. > > >> I found the Lang class - there seems to be some overlap in >> functionality as well? > > > Lang is the constant symbols. No statics. > > RDFLanguages is the system registry. You can add languages. > > >> I also started looking at RDFDataMgr, to see wether it could replace >> my DataManager (FileManager subclass) to do content negotiation and >> stuff. FileManager did a poor job at conneg, that's true, but I think >> RDFDataMgr is not a great solution either: >> - RDFDataMgr is not a subclass of FileManager, so it cannot be used >> with OntDocumentManager? > > > There is a FileManager adapter that is installed. > > >> - why static methods? Cannot override :( > > > What do you want to override? > > >> - is it possible to specify qualified media types for content >> negotiation? I mean different "q" values for different media types in >> the "Accept" header. I have an example that does that (which I'm now >> upgrading to Jena's new classes): > > > The conneg accept headers are: > > text/turtle,application/n-triples;q=0.9,application/rdf+xml;q=0.8,application/xml;q=0.7,*/*;q=0.5 > > application/trig,application/n-quads;q=0.9,text/x-nquads;q=0.8,application/x-trig;q=0.7,*/*;q=0.5 > > text/turtle,application/n-triples;q=0.9,application/rdf+xml;q=0.8,application/xml;q=0.7,application/trig,application/n-quads;q=0.9,text/x-nquads;q=0.8,application/x-trig;q=0.7,*/*;q=0.5 > > or add your own org.apache.jena.riot.stream.Locator. > >> >> https://github.com/Graphity/graphity-browser/blob/master/src/main/java/org/graphity/client/locator/LocatorLinkedData.java > > > Locators still exist, albeit rewritten. > > Fixed > > >> - was a separate class necessary at all, if conneg can be handled by a >> Locator, as the example above shows? > > > RDFDataMgr is not just about conneg. > > All the non-XML based readers and writer have been rewritten. > > Systematic handing of triples and quads. > > model.read(url) does full conneg. > > RDFDataMgr is the "one stop shop" for I/O. > > >> The JavaDoc states that "RDFDataMgr superceeds the FileManager" - but >> it doesn't look like it can be simply used as a replacement? > > > No. > >> >> http://jena.apache.org/documentation/io/rdf-input.html#example-2-using-the-rdfdatamgr > > > and a few lines lower down: > http://jena.apache.org/documentation/io/rdf-input.html#streammanager-and-locationmapper > >> >> Martynas > > > You could submit a patch. > > Andy > > >> >> On Fri, Dec 6, 2013 at 1:01 AM, Andy Seaborne <[email protected]> wrote: >>> >>> Which version were you using? >>> >>> org.apache.jena.riot.WebContent >>> WebContent.contentTypeToLang >>> >>> but better: >>> >>> RDFLanguages.contentTypeToLang(String) >>> >>> and use constants not Strings. >>> >>> Andy >>> >>> >>> On 05/12/13 22:57, Martynas Jusevičius wrote: >>>> >>>> >>>> Or rather, what functionality can replace langFromContentType() that I >>>> was using to convert media type to Jena syntax name: >>>> >>>> String syntax = langFromContentType(in.getMimeType()); >>>> model.read(in.getInput(), filenameOrURI, syntax); >>>> >>>> >>>> public static String langFromContentType(String mimeType) >>>> { >>>> if ( mimeType == null ) >>>> return null ; >>>> return LANGS.get(mimeType.toLowerCase()) ; >>>> } >>>> >>>> public static final Map<String, String> LANGS = new HashMap<>() ; >>>> static >>>> { >>>> LANGS.put(WebContent.contentTypeRDFXML, >>>> WebContent.langRDFXML); >>>> LANGS.put(WebContent.contentTypeTurtle, WebContent.langTurtle); >>>> // snip >>>> } >>>> >>>> >>>> Martynas >>>> >>>> On Thu, Dec 5, 2013 at 11:45 PM, Martynas Jusevičius >>>> <[email protected]> wrote: >>>>> >>>>> >>>>> Hey, >>>>> >>>>> I'm using constants from org.openjena.riot.WebContent, such as >>>>> WebContent.contentTypeRDFXML, WebContent.langRDFXML etc. >>>>> >>>>> After upgrading to Jena 2.11.0 (as part of SPIN API 1.3.1), the >>>>> WebContent class is not there anymore. What can I use instead? >>>>> >>>>> Thanks. >>>>> >>>>> Martynas >>> >>> >>> >
