You can subscribe to this list here.
2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
(1) |
Nov
|
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2010 |
Jan
|
Feb
(11) |
Mar
(17) |
Apr
(12) |
May
(2) |
Jun
(20) |
Jul
(2) |
Aug
(2) |
Sep
(2) |
Oct
(2) |
Nov
|
Dec
(5) |
2011 |
Jan
(4) |
Feb
(1) |
Mar
(2) |
Apr
(2) |
May
(5) |
Jun
|
Jul
(12) |
Aug
(4) |
Sep
(5) |
Oct
(1) |
Nov
(38) |
Dec
(27) |
2012 |
Jan
(46) |
Feb
(182) |
Mar
(83) |
Apr
(22) |
May
(68) |
Jun
(47) |
Jul
(135) |
Aug
(84) |
Sep
(57) |
Oct
(45) |
Nov
(27) |
Dec
(61) |
2013 |
Jan
(59) |
Feb
(78) |
Mar
(66) |
Apr
(107) |
May
(27) |
Jun
(56) |
Jul
(53) |
Aug
(3) |
Sep
(19) |
Oct
(41) |
Nov
(44) |
Dec
(54) |
2014 |
Jan
(49) |
Feb
(72) |
Mar
(22) |
Apr
(41) |
May
(63) |
Jun
(27) |
Jul
(45) |
Aug
(12) |
Sep
(3) |
Oct
(8) |
Nov
(27) |
Dec
(16) |
2015 |
Jan
(3) |
Feb
(20) |
Mar
(6) |
Apr
(4) |
May
(15) |
Jun
(2) |
Jul
(4) |
Aug
|
Sep
(1) |
Oct
(1) |
Nov
|
Dec
|
2016 |
Jan
|
Feb
|
Mar
|
Apr
(16) |
May
(9) |
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Rob V. <rv...@do...> - 2012-10-02 00:18:51
|
Hi All Per Tom's suggestions here is a quick summary of what I have planned for 0.8 through to 1.0.0 right now. 0.8.0 is intended to be the first release candidate for a stable 1.0, so the features I plan to work on are primarily clean up and hardening related. Fluent Query API is the only real new feature I have planned for the release. The aim is to get 0.8.0 out as a first release candidate by the end of November, have a short release cycle to 0.9.0 as a second release candidate with bug fixes only at the end of December and then have a stable 1.0.0 release again with bug fixes only at the end of January. After that we can start talking new features again and considering a more major refactor which would be the 1.9/2.0 I talked about in a previous email. Specifically for 0.8.0 I have the following planned: Code Clean Up and Refactoring * Follow deprecation policy, anything to be deprecated is marked obsolete usable, stuff currently marked obsolete usable becomes obsolete unusable, stuff marked obsolete unusable gets removed (In Progress Mostly Complete) * Some refactoring and clean up in MimeTypesHelper to make usage more consistent and safer (In Progress) * Some refactoring in the SPARQL engine about how aggregates and project expressions are applied to make the code more consistent and maintainable (Planned) New Features * Fluent Query API Tom working on this (In Progress) Tests * Refactor old non-unit tests from dotNetRDFTest project into dotNetRDFUnitTest project * Remove dotNetRDFTest project once done * Add more unit test coverage for existing features as appropriate Full Text Library * Upgrade dependency to Lucene.Net 3.0.3, this gives a more .Net like API and allows us to sign the packages, use proper NuGet dependency for the NuGet package and use the same version of Lucene.Net across all builds Any further suggestions are welcome Rob |
From: <tr...@do...> - 2012-09-27 20:48:56
|
<p>The following issue has been updated by Rob Vesse:</p> <table border="0"> <tr> <td width="90px" valign="top"><b>Title:</b></td> <td>Set up CI servers</td> </tr> <tr> <td><b>Project:</b></td> <td>Core Library (dotNetRDF.dll)</td> </tr> <tr> <td colspan="2"><b>Changes:</b></td> </tr> <tr> <td colspan="2"> <ul> <li>Priority changed from "High" to "Low" </li> </ul> </td> </tr> </table> <p> More information on this issue can be found at <a href="http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=276" target="_blank">http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=276</a></p> <p style="text-align:center;font-size:8pt;padding:5px;"> If you no longer wish to receive notifications, please visit <a href="http://www.dotnetrdf.org/tracker/Account/UserProfile.aspx" target="_blank">your profile</a> and change your notifications options. </p> |
From: <tr...@do...> - 2012-09-27 20:45:17
|
<p>A new comment has been added to the following issue.</p> <table border="0"> <tr> <td width="90px" valign="top"><b>Title:</b></td> <td>Set up CI servers</td> </tr> <tr> <td><b>Project:</b></td> <td>Core Library (dotNetRDF.dll)</td> </tr> <tr> <td><b>Created By:</b></td> <td>Rob Vesse</td> </tr> <tr> <td><b>Date:</b></td> <td>2012-09-27 09:43 PM</td> </tr> <tr> <td><b>Comment:</b></td> </tr> <tr> <td colspan="2"><p> Nice to have but may not be possible given the time and resources avaialble to the project</p></td> </tr> </table> <p> More information on this issue can be found at <a href="http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=276" target="_blank">http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=276</a></p> <p style="text-align:center;font-size:8pt;padding:5px;"> If you no longer wish to receive notifications, please visit <a href="http://www.dotnetrdf.org/tracker/Account/UserProfile.aspx" target="_blank">your profile</a> and change your notifications options. </p> |
From: Tomasz P. <tom...@gm...> - 2012-09-27 20:33:50
|
Nothing to add there really. Only that maybe you could share the documented changes you plan for the next releases or maybe made it public for discussion on the group. I will be be happy to work on the fluent queries as I will be needing it more and more for the LINQ implementation. I should refactor the interface the way I mentioned earlier during the weekend. Good night ;) Tom On Thu, Sep 27, 2012 at 10:05 PM, Rob Vesse <rv...@do...> wrote: > Comments inline > > On 9/25/12 4:37 AM, "Tomasz Pluskiewicz" <tom...@gm...> > wrote: > >>Thanks for your reply. >> >>You know, there problem with dotNetRDF is that there are quite a few >>classes with overlapping functionality and it does get quite >>confusing. > > Yes, not every problem needs a hammer but also a lot of problems need ever > so slightly different hammers > > Right now I'm focuses on getting to a stable 1.0 with only adding minor > features (such as the fluent query API) which I'm aiming to do fairly > rapidly with 4-8 week release cycles up to 1.0 > > Beyond that anything is fair game, I have a lot of ideas floating around > my head about how I'd restructure things if I had the chance to do a major > refactor (think lots of significant breaking changes) and I'm getting > towards the stage of writing that up into a design document. This > includes simplification and modularization of the API, memory footprint > reduction, code deprecation and clean up etc. > > My thinking is likely that after 1.0.0 I will start a 1.9 branch which > will be where the major refactoring takes place and maintain the default > branch as bug fixes and minor feature for the 1.0.x series of releases. > Once the refactoring in 1.9 is sufficiently done I'll start making > parallel beta releases of 1.9.x and once that is sufficiently stable and > tested we can merge that back into default, bump the version to 2.0 and > release. Parallel to 1.9 as things start getting removed/changed in the > 1.9 branch we'd be updating the 1.0.x releases to mark the things that > will disappear in 2.0 as deprecated so users who are interested can try > out 1.9 with fore knowledge of what the breaking changes are. > >> >>Yesterday I have also again bumped into PersistentTripleStore, which >>wraps an IStorageProvider. How does that work? >> >>And what should I do? Wrap IStorageProvider with PersistentTripleStore >>or wrap triple stores with a InMemoryManager. Are there some clearly >>defined advantages and disadvantages? > > A PersistentTripleStore is an in-memory cache of some underlying triple > store with the ability to enforce some level of transaction support on > changes that happen in-memory. Disadvantages is that it requires you to > hold data in memory to make changes, advantages are the transaction > support and the use of the more user friendly ITripleStore API. > > Rob > >> >>Thanks, >>Tom >> >>On Mon, Sep 24, 2012 at 7:05 PM, Rob Vesse <rv...@do...> wrote: >>> Ok, comments inline >>> >>> On 9/24/12 5:25 AM, "Tomasz Pluskiewicz" <tom...@gm...> >>> wrote: >>> >>>>Rob, >>>> >>>>I think I can devise my own common denominator just for the sake of >>>>executing SPARQL and that won't be a big thing. I would like to >>>>confront you with some basic idea how I think the ORM solution could >>>>work: >>>> >>>>1. The mapping API is used to map .net types to some rdf classes and >>>>their methods/properties to rdf properties. This could get complicated >>>>if one wants to achieve a more sophisticated workflow. For example >>>>saving triples for particular relation to another graph. A trivial >>>>example could be that an example graph: >>>> >>>>ex:FordFiesta a ex:Car ; ex:speed 150 ; ex:passengers 5 . >>>>ex:HondaCivic a ex:Car ; ex:speed 160 ; ex:passengers 5 . >>>> >>>>could be used to retrieve Car (this being a .net type) instances, each >>>>having a integer-valued Car#Speed property. >>> >>> Yep, with you so far >>> >>>> >>>>2. The configuration API takes those mappings and creates a context >>>>factory, which is used to wrap graphs, stores and endpoints thus >>>>creating a context. A context will be something like NHibernate's >>>>ISession or Entity Framewor's ObjectContext. The context is used to >>>>access the underlying datasource transparently for example: >>>> >>>>IEnumerable<Car> cars = context.GetAll<Car>().Where(car => car.Speed > >>>>150); // transform LINQ into SPARQL >>>>Car fordFiesta = context.Get<Car>("ex:FordFiesta"); // here possibly >>>>do a DESCRIBE or a ?s ?p ?o query on the given source >>>> >>>>I initially thought that for IGraph I could use simple triple-based >>>>access but apparently the querying is quite complex from the start and >>>>thus it would be a wasted effort, because at some point it would best >>>>be switched to SPARQL anyway (hence my other SPARQL-building topic). >>>> >>>>3. Accessing property values would have to differ based on the source. >>>>For in-memory sources it is easy: if the requested triple is present, >>>>retrieve a value. For remote sources perform a query to get the actual >>>>value for the accessed property. >>> >>> >>> For points 2 and 3 you might want to talk to Graham and Kal offline, >>>what >>> you are trying to do sounds very like what they do with BrightstarDB >>> >>> On point 3 take a look at Andrew Matthew's old LinqToRdf code, his >>> approach used class generation so not necessarily a direct parallel but >>> essentially he would have an intermediate reference to the value inside >>>a >>> property and the first time it was accessed resolve it, this is >>> particularly useful for properties that establish relationships between >>> classes since it avoids having to build the entire object graph at one >>>time >>> >>> In essence lazy load >>> >>>> >>>>The question here is how do I best work with remote sources, >>>>especially sparql endpoints. Does dotNetRDF provide some cache for >>>>retrieved data, so that it isn't necessary to poll it every time for >>>>the same triples. This seems easy to achieve for CONSTRUCT queries, >>>>but how should it work for SELECT? >>> >>> No there is no cache currently, for CONSTRUCT results just stick them >>>in a >>> Graph/TripleCollection >>> >>> Maybe the better option is to always use CONSTRUCT >>> >>>> >>>>Looking just now at the interfaces IStorageProvider is likely what I >>>>may suit my needs. Please confirm that I could/should use the >>>>InMemoryManager to access in-memory graphs and triple stores and the >>>>other implementations to access sparql endopints and third party >>>>stores. >>> >>> Yes that would work, InMemoryManager wraps the in-memory query engine >>>with >>> the standard IStorageProvider interface so using IStorageProvider as >>>your >>> common denominator may work best for you >>> >>> Rob >>> >>>> >>>>Thanks, >>>>Tom >>>> >>>>On Fri, Sep 21, 2012 at 10:30 PM, Rob Vesse <rv...@do...> >>>>wrote: >>>>> Well IGraph and ITripleStore can both be wrapped by ISparqlDataset >>>>> instances >>>>> >>>>> For remote things I am planning to write a dataset implementation that >>>>> would wrap another query engine (I.e. convert the calls into SPARQL >>>>> queries onto whatever the underlying engine is) because that helps >>>>>address >>>>> another open task I have but I haven't got very far with it just yet. >>>>> >>>>> So I'd recommend using ISparqlDataset as the common denominator >>>>>provided >>>>> you're OK with talking to remote endpoints via this interface not >>>>>being >>>>> supported just yet. >>>>> >>>>> Rob >>>>> >>>>> On 9/21/12 1:08 PM, "Tomasz Pluskiewicz" >>>>><tom...@gm...> >>>>> wrote: >>>>> >>>>>>Hi Rob >>>>>> >>>>>>As you already know I have started working on a ORM-like mapper based >>>>>>on dotNetRDF. I intend it to be as thin as possible and rely mostly on >>>>>>the underlying powers of your library. To make it possible I have >>>>>>defined an interfaces called IRomanticContext+dynamic proxies, which >>>>>>will hide the details of how RDF triples and graphs are manipulated. >>>>>> >>>>>>The question I have comes form the fact the I need multiple context >>>>>>types for different types of underlying data. I have indentified the >>>>>>IGraph, ITripleStore, ISparqlDataset and BaseEndopint types, which >>>>>>give access to various sources of RDF. Will I really need to wrap all >>>>>>of those to provide a uniform abstraction layer over dotNetRDF? Is >>>>>>there some kind of common denominator? >>>>>> >>>>>>Regards, >>>>>>Tom >>>>>> >>>>>>---------------------------------------------------------------------- >>>>>>-- >>>>>>-- >>>>>>---- >>>>>>Got visibility? >>>>>>Most devs has no idea what their production app looks like. >>>>>>Find out how fast your code is with AppDynamics Lite. >>>>>>http://ad.doubleclick.net/clk;262219671;13503038;y? >>>>>>http://info.appdynamics.com/FreeJavaPerformanceDownload.html >>>>>>_______________________________________________ >>>>>>dotNetRDF-develop mailing list >>>>>>dot...@li... >>>>>>https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>>----------------------------------------------------------------------- >>>>>-- >>>>>----- >>>>> Got visibility? >>>>> Most devs has no idea what their production app looks like. >>>>> Find out how fast your code is with AppDynamics Lite. >>>>> http://ad.doubleclick.net/clk;262219671;13503038;y? >>>>> http://info.appdynamics.com/FreeJavaPerformanceDownload.html >>>>> _______________________________________________ >>>>> dotNetRDF-develop mailing list >>>>> dot...@li... >>>>> https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop >>>> >>>>------------------------------------------------------------------------ >>>>-- >>>>---- >>>>Live Security Virtual Conference >>>>Exclusive live event will cover all the ways today's security and >>>>threat landscape has changed and how IT managers can respond. >>>>Discussions >>>>will include endpoint security, mobile security and the latest in >>>>malware >>>>threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ >>>>_______________________________________________ >>>>dotNetRDF-develop mailing list >>>>dot...@li... >>>>https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop >>> >>> >>> >>> >>> >>> >>>------------------------------------------------------------------------- >>>----- >>> Live Security Virtual Conference >>> Exclusive live event will cover all the ways today's security and >>> threat landscape has changed and how IT managers can respond. >>>Discussions >>> will include endpoint security, mobile security and the latest in >>>malware >>> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ >>> _______________________________________________ >>> dotNetRDF-develop mailing list >>> dot...@li... >>> https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop >> >>-------------------------------------------------------------------------- >>---- >>Live Security Virtual Conference >>Exclusive live event will cover all the ways today's security and >>threat landscape has changed and how IT managers can respond. Discussions >>will include endpoint security, mobile security and the latest in malware >>threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ >>_______________________________________________ >>dotNetRDF-develop mailing list >>dot...@li... >>https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop > > > > > > ------------------------------------------------------------------------------ > Everyone hates slow websites. So do we. > Make your web apps faster with AppDynamics > Download AppDynamics Lite for free today: > http://ad.doubleclick.net/clk;258768047;13503038;j? > http://info.appdynamics.com/FreeJavaPerformanceDownload.html > _______________________________________________ > dotNetRDF-develop mailing list > dot...@li... > https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop |
From: Rob V. <rv...@do...> - 2012-09-27 20:10:58
|
Hey Ron Did you ever get a chance to look into this more or do you want me to take this? Rob From: Ron Michael Zettlemoyer <ro...@ze...> Reply-To: dotNetRDF User Help and Support <dot...@li...> Date: Thursday, August 30, 2012 8:23 AM To: dotNetRDF User Help and Support <dot...@li...> Subject: [dotNetRDF-Support] Problem deleting data in a graph in Stardog > I've dug around a little in the code but not been able to figure this out > myself. This delete statement does not seem to work when talking to Stardog: > > DELETE { graph ?g { ?s ?p ?o } } > WHERE > { > graph ?g { > ?s ?p ?o. > } > filter (datatype(?o)=xsd:datetime) > } > > I debugged using Fiddler and I can see dotNetRDF does a query to get the data > that matches the where clause, and it initiates a transaction but then it > simply ends the transaction without performing any changes. Which is odd since > I thought I updated the Stardog portion of the code to not initiate a > transaction if no change was going to be made but it may be getting called in > some places that isn't checking for this yet. > > I'm not sure if my statement is just not correct or if it's a bug somewhere. > Any thoughts? > > ------------------------------------------------------------------------------ > Live Security Virtual Conference Exclusive live event will cover all the ways > today's security and threat landscape has changed and how IT managers can > respond. Discussions will include endpoint security, mobile security and the > latest in malware threats. > http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/_____________________ > __________________________ dotNetRDF-Support mailing list > dot...@li... > https://lists.sourceforge.net/lists/listinfo/dotnetrdf-support |
From: Rob V. <rv...@do...> - 2012-09-27 20:06:41
|
Comments inline On 9/25/12 4:37 AM, "Tomasz Pluskiewicz" <tom...@gm...> wrote: >Thanks for your reply. > >You know, there problem with dotNetRDF is that there are quite a few >classes with overlapping functionality and it does get quite >confusing. Yes, not every problem needs a hammer but also a lot of problems need ever so slightly different hammers Right now I'm focuses on getting to a stable 1.0 with only adding minor features (such as the fluent query API) which I'm aiming to do fairly rapidly with 4-8 week release cycles up to 1.0 Beyond that anything is fair game, I have a lot of ideas floating around my head about how I'd restructure things if I had the chance to do a major refactor (think lots of significant breaking changes) and I'm getting towards the stage of writing that up into a design document. This includes simplification and modularization of the API, memory footprint reduction, code deprecation and clean up etc. My thinking is likely that after 1.0.0 I will start a 1.9 branch which will be where the major refactoring takes place and maintain the default branch as bug fixes and minor feature for the 1.0.x series of releases. Once the refactoring in 1.9 is sufficiently done I'll start making parallel beta releases of 1.9.x and once that is sufficiently stable and tested we can merge that back into default, bump the version to 2.0 and release. Parallel to 1.9 as things start getting removed/changed in the 1.9 branch we'd be updating the 1.0.x releases to mark the things that will disappear in 2.0 as deprecated so users who are interested can try out 1.9 with fore knowledge of what the breaking changes are. > >Yesterday I have also again bumped into PersistentTripleStore, which >wraps an IStorageProvider. How does that work? > >And what should I do? Wrap IStorageProvider with PersistentTripleStore >or wrap triple stores with a InMemoryManager. Are there some clearly >defined advantages and disadvantages? A PersistentTripleStore is an in-memory cache of some underlying triple store with the ability to enforce some level of transaction support on changes that happen in-memory. Disadvantages is that it requires you to hold data in memory to make changes, advantages are the transaction support and the use of the more user friendly ITripleStore API. Rob > >Thanks, >Tom > >On Mon, Sep 24, 2012 at 7:05 PM, Rob Vesse <rv...@do...> wrote: >> Ok, comments inline >> >> On 9/24/12 5:25 AM, "Tomasz Pluskiewicz" <tom...@gm...> >> wrote: >> >>>Rob, >>> >>>I think I can devise my own common denominator just for the sake of >>>executing SPARQL and that won't be a big thing. I would like to >>>confront you with some basic idea how I think the ORM solution could >>>work: >>> >>>1. The mapping API is used to map .net types to some rdf classes and >>>their methods/properties to rdf properties. This could get complicated >>>if one wants to achieve a more sophisticated workflow. For example >>>saving triples for particular relation to another graph. A trivial >>>example could be that an example graph: >>> >>>ex:FordFiesta a ex:Car ; ex:speed 150 ; ex:passengers 5 . >>>ex:HondaCivic a ex:Car ; ex:speed 160 ; ex:passengers 5 . >>> >>>could be used to retrieve Car (this being a .net type) instances, each >>>having a integer-valued Car#Speed property. >> >> Yep, with you so far >> >>> >>>2. The configuration API takes those mappings and creates a context >>>factory, which is used to wrap graphs, stores and endpoints thus >>>creating a context. A context will be something like NHibernate's >>>ISession or Entity Framewor's ObjectContext. The context is used to >>>access the underlying datasource transparently for example: >>> >>>IEnumerable<Car> cars = context.GetAll<Car>().Where(car => car.Speed > >>>150); // transform LINQ into SPARQL >>>Car fordFiesta = context.Get<Car>("ex:FordFiesta"); // here possibly >>>do a DESCRIBE or a ?s ?p ?o query on the given source >>> >>>I initially thought that for IGraph I could use simple triple-based >>>access but apparently the querying is quite complex from the start and >>>thus it would be a wasted effort, because at some point it would best >>>be switched to SPARQL anyway (hence my other SPARQL-building topic). >>> >>>3. Accessing property values would have to differ based on the source. >>>For in-memory sources it is easy: if the requested triple is present, >>>retrieve a value. For remote sources perform a query to get the actual >>>value for the accessed property. >> >> >> For points 2 and 3 you might want to talk to Graham and Kal offline, >>what >> you are trying to do sounds very like what they do with BrightstarDB >> >> On point 3 take a look at Andrew Matthew's old LinqToRdf code, his >> approach used class generation so not necessarily a direct parallel but >> essentially he would have an intermediate reference to the value inside >>a >> property and the first time it was accessed resolve it, this is >> particularly useful for properties that establish relationships between >> classes since it avoids having to build the entire object graph at one >>time >> >> In essence lazy load >> >>> >>>The question here is how do I best work with remote sources, >>>especially sparql endpoints. Does dotNetRDF provide some cache for >>>retrieved data, so that it isn't necessary to poll it every time for >>>the same triples. This seems easy to achieve for CONSTRUCT queries, >>>but how should it work for SELECT? >> >> No there is no cache currently, for CONSTRUCT results just stick them >>in a >> Graph/TripleCollection >> >> Maybe the better option is to always use CONSTRUCT >> >>> >>>Looking just now at the interfaces IStorageProvider is likely what I >>>may suit my needs. Please confirm that I could/should use the >>>InMemoryManager to access in-memory graphs and triple stores and the >>>other implementations to access sparql endopints and third party >>>stores. >> >> Yes that would work, InMemoryManager wraps the in-memory query engine >>with >> the standard IStorageProvider interface so using IStorageProvider as >>your >> common denominator may work best for you >> >> Rob >> >>> >>>Thanks, >>>Tom >>> >>>On Fri, Sep 21, 2012 at 10:30 PM, Rob Vesse <rv...@do...> >>>wrote: >>>> Well IGraph and ITripleStore can both be wrapped by ISparqlDataset >>>> instances >>>> >>>> For remote things I am planning to write a dataset implementation that >>>> would wrap another query engine (I.e. convert the calls into SPARQL >>>> queries onto whatever the underlying engine is) because that helps >>>>address >>>> another open task I have but I haven't got very far with it just yet. >>>> >>>> So I'd recommend using ISparqlDataset as the common denominator >>>>provided >>>> you're OK with talking to remote endpoints via this interface not >>>>being >>>> supported just yet. >>>> >>>> Rob >>>> >>>> On 9/21/12 1:08 PM, "Tomasz Pluskiewicz" >>>><tom...@gm...> >>>> wrote: >>>> >>>>>Hi Rob >>>>> >>>>>As you already know I have started working on a ORM-like mapper based >>>>>on dotNetRDF. I intend it to be as thin as possible and rely mostly on >>>>>the underlying powers of your library. To make it possible I have >>>>>defined an interfaces called IRomanticContext+dynamic proxies, which >>>>>will hide the details of how RDF triples and graphs are manipulated. >>>>> >>>>>The question I have comes form the fact the I need multiple context >>>>>types for different types of underlying data. I have indentified the >>>>>IGraph, ITripleStore, ISparqlDataset and BaseEndopint types, which >>>>>give access to various sources of RDF. Will I really need to wrap all >>>>>of those to provide a uniform abstraction layer over dotNetRDF? Is >>>>>there some kind of common denominator? >>>>> >>>>>Regards, >>>>>Tom >>>>> >>>>>---------------------------------------------------------------------- >>>>>-- >>>>>-- >>>>>---- >>>>>Got visibility? >>>>>Most devs has no idea what their production app looks like. >>>>>Find out how fast your code is with AppDynamics Lite. >>>>>http://ad.doubleclick.net/clk;262219671;13503038;y? >>>>>http://info.appdynamics.com/FreeJavaPerformanceDownload.html >>>>>_______________________________________________ >>>>>dotNetRDF-develop mailing list >>>>>dot...@li... >>>>>https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop >>>> >>>> >>>> >>>> >>>> >>>> >>>>----------------------------------------------------------------------- >>>>-- >>>>----- >>>> Got visibility? >>>> Most devs has no idea what their production app looks like. >>>> Find out how fast your code is with AppDynamics Lite. >>>> http://ad.doubleclick.net/clk;262219671;13503038;y? >>>> http://info.appdynamics.com/FreeJavaPerformanceDownload.html >>>> _______________________________________________ >>>> dotNetRDF-develop mailing list >>>> dot...@li... >>>> https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop >>> >>>------------------------------------------------------------------------ >>>-- >>>---- >>>Live Security Virtual Conference >>>Exclusive live event will cover all the ways today's security and >>>threat landscape has changed and how IT managers can respond. >>>Discussions >>>will include endpoint security, mobile security and the latest in >>>malware >>>threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ >>>_______________________________________________ >>>dotNetRDF-develop mailing list >>>dot...@li... >>>https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop >> >> >> >> >> >> >>------------------------------------------------------------------------- >>----- >> Live Security Virtual Conference >> Exclusive live event will cover all the ways today's security and >> threat landscape has changed and how IT managers can respond. >>Discussions >> will include endpoint security, mobile security and the latest in >>malware >> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ >> _______________________________________________ >> dotNetRDF-develop mailing list >> dot...@li... >> https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop > >-------------------------------------------------------------------------- >---- >Live Security Virtual Conference >Exclusive live event will cover all the ways today's security and >threat landscape has changed and how IT managers can respond. Discussions >will include endpoint security, mobile security and the latest in malware >threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ >_______________________________________________ >dotNetRDF-develop mailing list >dot...@li... >https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop |
From: Rob V. <rv...@do...> - 2012-09-27 17:01:06
|
Hi All We're pleased to announce the availability of dotNetRDF 0.7.2 Beta [1] and the dotNetRDF Toolkit 0.6.2 Beta [2] Highlights of this release: * Bug Fixes > * As ever there are a variety of bug fixes for both minor and serious bugs in > this release, thanks to everyone in the community who reported or helped to > fix bugs. * Core API > * We've changed the internal storage of triples to a new data structure which > should boost performance a little and slightly reduce memory usage though > effects may differ depending on your data. We've also continued the > deprecation and removal of defunct code. * Dependencies > * We've updated our 3rd party dependencies to their latest versions where > possible, our NuGet packages are now using NuGet dependencies rather than > shipping DLLs where possible. * Configuration API > * The Configuration API has received a number of fixes and improvements, > including more auto-configuration capabilities and helper methods for loading > in Configuration Graphs. * Parsing > * Improves support for Turtle 1.1 to be near 100% compliant * SPARQL > * SPARQL 1.1 support has been updated to be near 100% compliant with the > latest specification (98-99% compliant). > * We've also introduced some new abstractions into the SPARQL engine to allow > for future extensions, this release is the first to support using the + and - > operators for date time arithmetic. * Storage > * IStorageServer IStorageServer implementations are now separate classes, the > parent server of a IStorageProvider may be obtained (where available) from the > new ParentServer property. * Source Code > * In case you haven't noticed we've moved to Mercurial for source control, you > can now find our latest sources in our Mercurial Repository > http://bitbucket.org/dotnetrdf/dotnetrdf As always thanks to everyone who helped with this release, particularly to those in the community who took the time to help report and fix bugs Rob Vesse [1]: http://www.dotnetrdf.org/content.asp?pageID=Download%20dotNetRDF [2]: http://www.dotnetrdf.org/content.asp?pageID=Download%20dotNetRDF%20Toolkit%2 0for%20Windows |
From: <tr...@do...> - 2012-09-25 23:59:07
|
<p>The following issue has been updated by Rob Vesse:</p> <table border="0"> <tr> <td width="90px" valign="top"><b>Title:</b></td> <td>Upgrade to Lucene.Net 3.0.3</td> </tr> <tr> <td><b>Project:</b></td> <td>Query.FullText (dotNetRDF.Query.FullText.dll)</td> </tr> <tr> <td colspan="2"><b>Changes:</b></td> </tr> <tr> <td colspan="2"> <ul> <li>Milestone changed from "Unscheduled" to "0.5.0 Beta" </li> </ul> </td> </tr> </table> <p> More information on this issue can be found at <a href="http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=275" target="_blank">http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=275</a></p> <p style="text-align:center;font-size:8pt;padding:5px;"> If you no longer wish to receive notifications, please visit <a href="http://www.dotnetrdf.org/tracker/Account/UserProfile.aspx" target="_blank">your profile</a> and change your notifications options. </p> |
From: <tr...@do...> - 2012-09-25 23:39:29
|
<p>A new comment has been added to the following issue.</p> <table border="0"> <tr> <td width="90px" valign="top"><b>Title:</b></td> <td>Upgrade to Lucene.Net 3.0.3</td> </tr> <tr> <td><b>Project:</b></td> <td>Query.FullText (dotNetRDF.Query.FullText.dll)</td> </tr> <tr> <td><b>Created By:</b></td> <td>Rob Vesse</td> </tr> <tr> <td><b>Date:</b></td> <td>2012-09-26 12:37 AM</td> </tr> <tr> <td><b>Comment:</b></td> </tr> <tr> <td colspan="2"><p> As part of this upgrade we should also switch the FullText NuGet package to use Lucene.Net as a proper dependency</p></td> </tr> </table> <p> More information on this issue can be found at <a href="http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=275" target="_blank">http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=275</a></p> <p style="text-align:center;font-size:8pt;padding:5px;"> If you no longer wish to receive notifications, please visit <a href="http://www.dotnetrdf.org/tracker/Account/UserProfile.aspx" target="_blank">your profile</a> and change your notifications options. </p> |
From: Tomasz P. <tom...@gm...> - 2012-09-25 11:38:10
|
Thanks for your reply. You know, there problem with dotNetRDF is that there are quite a few classes with overlapping functionality and it does get quite confusing. Yesterday I have also again bumped into PersistentTripleStore, which wraps an IStorageProvider. How does that work? And what should I do? Wrap IStorageProvider with PersistentTripleStore or wrap triple stores with a InMemoryManager. Are there some clearly defined advantages and disadvantages? Thanks, Tom On Mon, Sep 24, 2012 at 7:05 PM, Rob Vesse <rv...@do...> wrote: > Ok, comments inline > > On 9/24/12 5:25 AM, "Tomasz Pluskiewicz" <tom...@gm...> > wrote: > >>Rob, >> >>I think I can devise my own common denominator just for the sake of >>executing SPARQL and that won't be a big thing. I would like to >>confront you with some basic idea how I think the ORM solution could >>work: >> >>1. The mapping API is used to map .net types to some rdf classes and >>their methods/properties to rdf properties. This could get complicated >>if one wants to achieve a more sophisticated workflow. For example >>saving triples for particular relation to another graph. A trivial >>example could be that an example graph: >> >>ex:FordFiesta a ex:Car ; ex:speed 150 ; ex:passengers 5 . >>ex:HondaCivic a ex:Car ; ex:speed 160 ; ex:passengers 5 . >> >>could be used to retrieve Car (this being a .net type) instances, each >>having a integer-valued Car#Speed property. > > Yep, with you so far > >> >>2. The configuration API takes those mappings and creates a context >>factory, which is used to wrap graphs, stores and endpoints thus >>creating a context. A context will be something like NHibernate's >>ISession or Entity Framewor's ObjectContext. The context is used to >>access the underlying datasource transparently for example: >> >>IEnumerable<Car> cars = context.GetAll<Car>().Where(car => car.Speed > >>150); // transform LINQ into SPARQL >>Car fordFiesta = context.Get<Car>("ex:FordFiesta"); // here possibly >>do a DESCRIBE or a ?s ?p ?o query on the given source >> >>I initially thought that for IGraph I could use simple triple-based >>access but apparently the querying is quite complex from the start and >>thus it would be a wasted effort, because at some point it would best >>be switched to SPARQL anyway (hence my other SPARQL-building topic). >> >>3. Accessing property values would have to differ based on the source. >>For in-memory sources it is easy: if the requested triple is present, >>retrieve a value. For remote sources perform a query to get the actual >>value for the accessed property. > > > For points 2 and 3 you might want to talk to Graham and Kal offline, what > you are trying to do sounds very like what they do with BrightstarDB > > On point 3 take a look at Andrew Matthew's old LinqToRdf code, his > approach used class generation so not necessarily a direct parallel but > essentially he would have an intermediate reference to the value inside a > property and the first time it was accessed resolve it, this is > particularly useful for properties that establish relationships between > classes since it avoids having to build the entire object graph at one time > > In essence lazy load > >> >>The question here is how do I best work with remote sources, >>especially sparql endpoints. Does dotNetRDF provide some cache for >>retrieved data, so that it isn't necessary to poll it every time for >>the same triples. This seems easy to achieve for CONSTRUCT queries, >>but how should it work for SELECT? > > No there is no cache currently, for CONSTRUCT results just stick them in a > Graph/TripleCollection > > Maybe the better option is to always use CONSTRUCT > >> >>Looking just now at the interfaces IStorageProvider is likely what I >>may suit my needs. Please confirm that I could/should use the >>InMemoryManager to access in-memory graphs and triple stores and the >>other implementations to access sparql endopints and third party >>stores. > > Yes that would work, InMemoryManager wraps the in-memory query engine with > the standard IStorageProvider interface so using IStorageProvider as your > common denominator may work best for you > > Rob > >> >>Thanks, >>Tom >> >>On Fri, Sep 21, 2012 at 10:30 PM, Rob Vesse <rv...@do...> wrote: >>> Well IGraph and ITripleStore can both be wrapped by ISparqlDataset >>> instances >>> >>> For remote things I am planning to write a dataset implementation that >>> would wrap another query engine (I.e. convert the calls into SPARQL >>> queries onto whatever the underlying engine is) because that helps >>>address >>> another open task I have but I haven't got very far with it just yet. >>> >>> So I'd recommend using ISparqlDataset as the common denominator provided >>> you're OK with talking to remote endpoints via this interface not being >>> supported just yet. >>> >>> Rob >>> >>> On 9/21/12 1:08 PM, "Tomasz Pluskiewicz" <tom...@gm...> >>> wrote: >>> >>>>Hi Rob >>>> >>>>As you already know I have started working on a ORM-like mapper based >>>>on dotNetRDF. I intend it to be as thin as possible and rely mostly on >>>>the underlying powers of your library. To make it possible I have >>>>defined an interfaces called IRomanticContext+dynamic proxies, which >>>>will hide the details of how RDF triples and graphs are manipulated. >>>> >>>>The question I have comes form the fact the I need multiple context >>>>types for different types of underlying data. I have indentified the >>>>IGraph, ITripleStore, ISparqlDataset and BaseEndopint types, which >>>>give access to various sources of RDF. Will I really need to wrap all >>>>of those to provide a uniform abstraction layer over dotNetRDF? Is >>>>there some kind of common denominator? >>>> >>>>Regards, >>>>Tom >>>> >>>>------------------------------------------------------------------------ >>>>-- >>>>---- >>>>Got visibility? >>>>Most devs has no idea what their production app looks like. >>>>Find out how fast your code is with AppDynamics Lite. >>>>http://ad.doubleclick.net/clk;262219671;13503038;y? >>>>http://info.appdynamics.com/FreeJavaPerformanceDownload.html >>>>_______________________________________________ >>>>dotNetRDF-develop mailing list >>>>dot...@li... >>>>https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop >>> >>> >>> >>> >>> >>> >>>------------------------------------------------------------------------- >>>----- >>> Got visibility? >>> Most devs has no idea what their production app looks like. >>> Find out how fast your code is with AppDynamics Lite. >>> http://ad.doubleclick.net/clk;262219671;13503038;y? >>> http://info.appdynamics.com/FreeJavaPerformanceDownload.html >>> _______________________________________________ >>> dotNetRDF-develop mailing list >>> dot...@li... >>> https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop >> >>-------------------------------------------------------------------------- >>---- >>Live Security Virtual Conference >>Exclusive live event will cover all the ways today's security and >>threat landscape has changed and how IT managers can respond. Discussions >>will include endpoint security, mobile security and the latest in malware >>threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ >>_______________________________________________ >>dotNetRDF-develop mailing list >>dot...@li... >>https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop > > > > > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > dotNetRDF-develop mailing list > dot...@li... > https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop |
From: Tomasz P. <tom...@gm...> - 2012-09-25 11:08:50
|
I'm all over it :) Have a look at my pull request [1]. I have extracted an interface and changed how the builder is initialized. Write what you think, I'm still not convinced it's ideal. For now it goes like that: // start builder statically (constructor private) // more factory methods would come IQueryBuilder queryBuilder = QueryBuilder.SelectAll().Where(triplePattern); SparqlQuery query1 = queryBuilder.GetExecutableQuery(); SparqlQuery query2 = queryBuilder.GetExecutableQuery(); // I added test for this Assert.AreNotSame(query1, query2); There are three issues however: 1. To change the API the least I made QueryBuilder also inherit INodeFactory and use the underlying SparqlQuery as decorated implementor. This again obfuscates the usage. Can think of a better solution? 2. The copy now fails in select tests 1 and 2 on creating GraphPattern. Is it just safe to check for null and skip that constructor? 3. I had to remove a bunch of invalid usings after merging with latest trunk changes Lastly I think that QueryBuiler chould contain just one overload for eg. the Where method and there could be an extension class, which defines handy overloads. I think it's how some of the dotNetRDF API works already. This needs to be thought over though. Thanks Tom [1] https://bitbucket.org/dotnetrdf/dotnetrdf/pull-request/1/changes-in-querybuilder-prototype On Tue, Sep 25, 2012 at 12:43 AM, Rob Vesse <rv...@do...> wrote: > Yes I think I actually like that approach better > > I did say it was a rough cut, send me a pull request if you make a start > on it otherwise I'll get to it when I get to it > > Might be nice to have that as our major new feature for 0.8.0 since I plan > on getting 0.7.2 out Wednesday time allowing > > Rob > > On 9/24/12 1:32 PM, "Tomasz Pluskiewicz" <tom...@gm...> > wrote: > >>Hi Rob >> >>The QueryBuilder starts very promising. Way better than the Algebra API. >> >>However I'm not convinced with the extension methods way. What I could >>suggest is a specialized builder class which holds the query inside >>and the user can retrieve it whenever he is done with building. >>Something along the below: >> >>public class QueryBuilder : IQueryBuilder >>{ >> private SparqlQuery _query = new SparqlQuery(); >> >> // such constructor only as a suggestion >> // could also create factory methods for the query types >> public QueryBuilder(SparqlQueryType queryType) >> { >> _query.QueryType = queryType; >> } >> >> // Now all methods are simmilar but not extension >> // and will return self. For example: >> public IQueryBuilder Where(IEnumerable<Triple> ts) >> { >> foreach (Triple t in ts) >> { >> _query = _query.Where(t.Subject, t.Predicate, t.Object); >> } >> return this; >> } >> >> public SparqlQuery GetExecutableQuery() >> { >> // not sure the Copy() is required >> // the internal API forbids any changes to the underlying query anyway >> // but shall that change any time, it could lead to unexpected results >> return _query.Copy(); >> } >>} >> >>I'm suggesting this, because currently the SparqlQuery has quite a few >>public getters and methods and at first it was very obscure what >>functionality the QueryBuilder actually provides. >> >>Also notice the IQueryBuilder interface. I think it would be >>beneficial to let the users actuall mock the builder and have the >>calls verified in unit tests. Last but not least, there could be not >>one but multiple interfaces implemented by the QueryBuilder class, >>which gives us power to order some of the calls if we ever need such a >>feature. >> >>It's already 10:30PM here so I won't be reworking the code today. >>Tomorrow maybe, depending on your thoughts on all this :). >> >>Tom >> >>On Mon, Sep 24, 2012 at 7:20 PM, Rob Vesse <rv...@do...> wrote: >>> Off the top of my head it should look something like this, assuming you >>> create the URIs as INode instances first: >>> >>> ISparqlAlgebra algebra = new Select( >>> new Filter( >>> new Join( >>> new LeftJoin( >>> new LeftJoin( >>> new BGP(), >>> new BGP(new TriplePattern(new VariablePattern("?item"), new >>> NodeMatchPattern(rdfType), new NodeMatchPattern(someClass))) >>> ), >>> new BGP(new TriplePattern(new VariablePattern("?item"), new >>> NodeMatchPattern(rdfType), new NodeMatchPattern(someOtherClass))) >>> ), >>> new BGP(new TriplePattern(new VariablePattern("?item"), new >>> NodeMatchPattern(foafName), new VariablePattern("?itemName"))) >>> ), >>> new UnaryExpressionFilter(new LangMatchesFunction(new >>>LangFunction(new >>> VariableTerm("itemName")), new ConstantTerm(en))) >>> ), >>> new String[] { "item" }); >>> >>> Not the prettiest thing to build, see the QueryBuilder class [1] on the >>> fluent-query [2] branch for an initial rough cut of a more user friendly >>> fluent style API, see the unit tests in that commit for some examples of >>> building queries >>> >>> Hopefully that style of API will be much more readable than the above >>>and >>> much more user friendly >>> >>> Rob >>> >>> [1] >>> >>>https://bitbucket.org/dotnetrdf/dotnetrdf/changeset/f0654d04f2612d6e215ff >>>17 >>> d166ba99c74e781af >>> [2] >>> >>>https://bitbucket.org/dotnetrdf/dotnetrdf/changesets/tip/branch(%22fluent >>>-q >>> uery%22) >>> >>> >>> On 9/24/12 5:40 AM, "Tomasz Pluskiewicz" <tom...@gm...> >>> wrote: >>> >>>>Hello again >>>> >>>>I tried to build some algebra programmatically but I failed miserably :) >>>> >>>>Could you please as an example help me with expressing the below >>>>SPARQL in Algebra API? >>>> >>>>SELECT ?item >>>>{ >>>> OPTIONAL { ?item a ex:someClass . } >>>> OPTIONAL { ?item a ex:someOtherClass . } >>>> ?item foaf:name ?itemName >>>> FILTER( langMatches( lang(?itemName), "en" )) >>>>} >>>> >>>>This should give me enough insight to get up to speed with the API. >>>> >>>>Thanks, >>>>Tom >>>> >>>>On Sat, Sep 22, 2012 at 7:02 PM, Tomasz Pluskiewicz >>>><tom...@gm...> wrote: >>>>> Also are there any introductory examples on creating SPARQL Algebra. >>>>> It could be the way to go for my initially. Are there many scenarios >>>>> when it would be impossible to convert it to a query? >>>>> >>>>> Tom >>>>> >>>>> On Sat, Sep 22, 2012 at 11:30 AM, Tomasz Pluskiewicz >>>>> <tom...@gm...> wrote: >>>>>> Thanks Rob >>>>>> >>>>>> I could look into it. Please point me int the right direction in the >>>>>> code where the internal API is located. >>>>>> >>>>>> Tom >>>>>> >>>>>> On Fri, Sep 21, 2012 at 10:26 PM, Rob Vesse <rv...@do...> >>>>>>wrote: >>>>>>> Hey Tom >>>>>>> >>>>>>> Right now it's somewhat limited, you can build the algebra >>>>>>> programmatically and try and convert it back to a query with the >>>>>>>AsQuery() >>>>>>> method but that isn't guaranteed to work (some algebras can't be >>>>>>>converted >>>>>>> back into queries). Otherwise you have to generate a string and >>>>>>>then >>>>>>> parse it. >>>>>>> >>>>>>> Most of the SparqlQuery API is protected internal/private, I have a >>>>>>>To Do >>>>>>> item to add a public fluent style API for building queries that I >>>>>>>will >>>>>>> likely do for the next release if that helps. I/you can start >>>>>>>building >>>>>>> that out in a feature branch if that would solve your issue? >>>>>>> >>>>>>> Rob >>>>>>> >>>>>>> On 9/21/12 11:39 AM, "Tomasz Pluskiewicz" >>>>>>><tom...@gm...> >>>>>>> wrote: >>>>>>> >>>>>>>>Hi >>>>>>>> >>>>>>>>Please tell me what are the options for building SPARQL >>>>>>>>programatically with dotNetRDF? Is there any such API? >>>>>>>> >>>>>>>>Regards, >>>>>>>>Tom >>>>>>>> >>>>>>>>-------------------------------------------------------------------- >>>>>>>>-- >>>>>>>>---- >>>>>>>>---- >>>>>>>>Got visibility? >>>>>>>>Most devs has no idea what their production app looks like. >>>>>>>>Find out how fast your code is with AppDynamics Lite. >>>>>>>>http://ad.doubleclick.net/clk;262219671;13503038;y? >>>>>>>>http://info.appdynamics.com/FreeJavaPerformanceDownload.html >>>>>>>>_______________________________________________ >>>>>>>>dotNetRDF-develop mailing list >>>>>>>>dot...@li... >>>>>>>>https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>>--------------------------------------------------------------------- >>>>>>>-- >>>>>>>------- >>>>>>> Got visibility? >>>>>>> Most devs has no idea what their production app looks like. >>>>>>> Find out how fast your code is with AppDynamics Lite. >>>>>>> http://ad.doubleclick.net/clk;262219671;13503038;y? >>>>>>> http://info.appdynamics.com/FreeJavaPerformanceDownload.html >>>>>>> _______________________________________________ >>>>>>> dotNetRDF-develop mailing list >>>>>>> dot...@li... >>>>>>> https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop >>>> >>>>------------------------------------------------------------------------ >>>>-- >>>>---- >>>>Live Security Virtual Conference >>>>Exclusive live event will cover all the ways today's security and >>>>threat landscape has changed and how IT managers can respond. >>>>Discussions >>>>will include endpoint security, mobile security and the latest in >>>>malware >>>>threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ >>>>_______________________________________________ >>>>dotNetRDF-develop mailing list >>>>dot...@li... >>>>https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop >>> >>> >>> >>> >>> >>> >>>------------------------------------------------------------------------- >>>----- >>> Live Security Virtual Conference >>> Exclusive live event will cover all the ways today's security and >>> threat landscape has changed and how IT managers can respond. >>>Discussions >>> will include endpoint security, mobile security and the latest in >>>malware >>> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ >>> _______________________________________________ >>> dotNetRDF-develop mailing list >>> dot...@li... >>> https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop >> >>-------------------------------------------------------------------------- >>---- >>Live Security Virtual Conference >>Exclusive live event will cover all the ways today's security and >>threat landscape has changed and how IT managers can respond. Discussions >>will include endpoint security, mobile security and the latest in malware >>threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ >>_______________________________________________ >>dotNetRDF-develop mailing list >>dot...@li... >>https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop > > > > > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > dotNetRDF-develop mailing list > dot...@li... > https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop |
From: Rob V. <rv...@do...> - 2012-09-24 22:44:40
|
Yes I think I actually like that approach better I did say it was a rough cut, send me a pull request if you make a start on it otherwise I'll get to it when I get to it Might be nice to have that as our major new feature for 0.8.0 since I plan on getting 0.7.2 out Wednesday time allowing Rob On 9/24/12 1:32 PM, "Tomasz Pluskiewicz" <tom...@gm...> wrote: >Hi Rob > >The QueryBuilder starts very promising. Way better than the Algebra API. > >However I'm not convinced with the extension methods way. What I could >suggest is a specialized builder class which holds the query inside >and the user can retrieve it whenever he is done with building. >Something along the below: > >public class QueryBuilder : IQueryBuilder >{ > private SparqlQuery _query = new SparqlQuery(); > > // such constructor only as a suggestion > // could also create factory methods for the query types > public QueryBuilder(SparqlQueryType queryType) > { > _query.QueryType = queryType; > } > > // Now all methods are simmilar but not extension > // and will return self. For example: > public IQueryBuilder Where(IEnumerable<Triple> ts) > { > foreach (Triple t in ts) > { > _query = _query.Where(t.Subject, t.Predicate, t.Object); > } > return this; > } > > public SparqlQuery GetExecutableQuery() > { > // not sure the Copy() is required > // the internal API forbids any changes to the underlying query anyway > // but shall that change any time, it could lead to unexpected results > return _query.Copy(); > } >} > >I'm suggesting this, because currently the SparqlQuery has quite a few >public getters and methods and at first it was very obscure what >functionality the QueryBuilder actually provides. > >Also notice the IQueryBuilder interface. I think it would be >beneficial to let the users actuall mock the builder and have the >calls verified in unit tests. Last but not least, there could be not >one but multiple interfaces implemented by the QueryBuilder class, >which gives us power to order some of the calls if we ever need such a >feature. > >It's already 10:30PM here so I won't be reworking the code today. >Tomorrow maybe, depending on your thoughts on all this :). > >Tom > >On Mon, Sep 24, 2012 at 7:20 PM, Rob Vesse <rv...@do...> wrote: >> Off the top of my head it should look something like this, assuming you >> create the URIs as INode instances first: >> >> ISparqlAlgebra algebra = new Select( >> new Filter( >> new Join( >> new LeftJoin( >> new LeftJoin( >> new BGP(), >> new BGP(new TriplePattern(new VariablePattern("?item"), new >> NodeMatchPattern(rdfType), new NodeMatchPattern(someClass))) >> ), >> new BGP(new TriplePattern(new VariablePattern("?item"), new >> NodeMatchPattern(rdfType), new NodeMatchPattern(someOtherClass))) >> ), >> new BGP(new TriplePattern(new VariablePattern("?item"), new >> NodeMatchPattern(foafName), new VariablePattern("?itemName"))) >> ), >> new UnaryExpressionFilter(new LangMatchesFunction(new >>LangFunction(new >> VariableTerm("itemName")), new ConstantTerm(en))) >> ), >> new String[] { "item" }); >> >> Not the prettiest thing to build, see the QueryBuilder class [1] on the >> fluent-query [2] branch for an initial rough cut of a more user friendly >> fluent style API, see the unit tests in that commit for some examples of >> building queries >> >> Hopefully that style of API will be much more readable than the above >>and >> much more user friendly >> >> Rob >> >> [1] >> >>https://bitbucket.org/dotnetrdf/dotnetrdf/changeset/f0654d04f2612d6e215ff >>17 >> d166ba99c74e781af >> [2] >> >>https://bitbucket.org/dotnetrdf/dotnetrdf/changesets/tip/branch(%22fluent >>-q >> uery%22) >> >> >> On 9/24/12 5:40 AM, "Tomasz Pluskiewicz" <tom...@gm...> >> wrote: >> >>>Hello again >>> >>>I tried to build some algebra programmatically but I failed miserably :) >>> >>>Could you please as an example help me with expressing the below >>>SPARQL in Algebra API? >>> >>>SELECT ?item >>>{ >>> OPTIONAL { ?item a ex:someClass . } >>> OPTIONAL { ?item a ex:someOtherClass . } >>> ?item foaf:name ?itemName >>> FILTER( langMatches( lang(?itemName), "en" )) >>>} >>> >>>This should give me enough insight to get up to speed with the API. >>> >>>Thanks, >>>Tom >>> >>>On Sat, Sep 22, 2012 at 7:02 PM, Tomasz Pluskiewicz >>><tom...@gm...> wrote: >>>> Also are there any introductory examples on creating SPARQL Algebra. >>>> It could be the way to go for my initially. Are there many scenarios >>>> when it would be impossible to convert it to a query? >>>> >>>> Tom >>>> >>>> On Sat, Sep 22, 2012 at 11:30 AM, Tomasz Pluskiewicz >>>> <tom...@gm...> wrote: >>>>> Thanks Rob >>>>> >>>>> I could look into it. Please point me int the right direction in the >>>>> code where the internal API is located. >>>>> >>>>> Tom >>>>> >>>>> On Fri, Sep 21, 2012 at 10:26 PM, Rob Vesse <rv...@do...> >>>>>wrote: >>>>>> Hey Tom >>>>>> >>>>>> Right now it's somewhat limited, you can build the algebra >>>>>> programmatically and try and convert it back to a query with the >>>>>>AsQuery() >>>>>> method but that isn't guaranteed to work (some algebras can't be >>>>>>converted >>>>>> back into queries). Otherwise you have to generate a string and >>>>>>then >>>>>> parse it. >>>>>> >>>>>> Most of the SparqlQuery API is protected internal/private, I have a >>>>>>To Do >>>>>> item to add a public fluent style API for building queries that I >>>>>>will >>>>>> likely do for the next release if that helps. I/you can start >>>>>>building >>>>>> that out in a feature branch if that would solve your issue? >>>>>> >>>>>> Rob >>>>>> >>>>>> On 9/21/12 11:39 AM, "Tomasz Pluskiewicz" >>>>>><tom...@gm...> >>>>>> wrote: >>>>>> >>>>>>>Hi >>>>>>> >>>>>>>Please tell me what are the options for building SPARQL >>>>>>>programatically with dotNetRDF? Is there any such API? >>>>>>> >>>>>>>Regards, >>>>>>>Tom >>>>>>> >>>>>>>-------------------------------------------------------------------- >>>>>>>-- >>>>>>>---- >>>>>>>---- >>>>>>>Got visibility? >>>>>>>Most devs has no idea what their production app looks like. >>>>>>>Find out how fast your code is with AppDynamics Lite. >>>>>>>http://ad.doubleclick.net/clk;262219671;13503038;y? >>>>>>>http://info.appdynamics.com/FreeJavaPerformanceDownload.html >>>>>>>_______________________________________________ >>>>>>>dotNetRDF-develop mailing list >>>>>>>dot...@li... >>>>>>>https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>>--------------------------------------------------------------------- >>>>>>-- >>>>>>------- >>>>>> Got visibility? >>>>>> Most devs has no idea what their production app looks like. >>>>>> Find out how fast your code is with AppDynamics Lite. >>>>>> http://ad.doubleclick.net/clk;262219671;13503038;y? >>>>>> http://info.appdynamics.com/FreeJavaPerformanceDownload.html >>>>>> _______________________________________________ >>>>>> dotNetRDF-develop mailing list >>>>>> dot...@li... >>>>>> https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop >>> >>>------------------------------------------------------------------------ >>>-- >>>---- >>>Live Security Virtual Conference >>>Exclusive live event will cover all the ways today's security and >>>threat landscape has changed and how IT managers can respond. >>>Discussions >>>will include endpoint security, mobile security and the latest in >>>malware >>>threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ >>>_______________________________________________ >>>dotNetRDF-develop mailing list >>>dot...@li... >>>https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop >> >> >> >> >> >> >>------------------------------------------------------------------------- >>----- >> Live Security Virtual Conference >> Exclusive live event will cover all the ways today's security and >> threat landscape has changed and how IT managers can respond. >>Discussions >> will include endpoint security, mobile security and the latest in >>malware >> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ >> _______________________________________________ >> dotNetRDF-develop mailing list >> dot...@li... >> https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop > >-------------------------------------------------------------------------- >---- >Live Security Virtual Conference >Exclusive live event will cover all the ways today's security and >threat landscape has changed and how IT managers can respond. Discussions >will include endpoint security, mobile security and the latest in malware >threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ >_______________________________________________ >dotNetRDF-develop mailing list >dot...@li... >https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop |
From: antonio n. <nun...@gm...> - 2012-09-24 22:34:29
|
It's all right now, I set wrong the compiling options of my project. Thank you Rob! -Antonio Nunziante Il giorno 24/set/2012 18:57, "Rob Vesse" <rv...@do...> ha scritto: > Hi Antonio > > What is the error message you received? > > DId you download the correct version for your target .Net version and > profile? > > Rob > > From: antonio nunziante <nun...@gm...> > Reply-To: dotNetRDF Developer Discussion and Feature Request < > dot...@li...> > Date: Monday, September 24, 2012 1:07 AM > To: dotNetRDF Developer Discussion and Feature Request < > dot...@li...> > Subject: Re: [dotNetRDF-Develop] Update System.UriFormatException: URI > not valid > > Hi Rob, > I'm trying to add reference to .ddl files in my project but Visual Studio > shows an error suggesting to verify the assembly. > I downloaded them from [3]. > > Regards, > -Antonio > > 2012/9/20 Rob Vesse <rv...@do...> > >> Hi Antonio >> >> This is a bug in the library, I filed this as CORE-278 [1] and have fixed >> this in Trunk >> >> Unfortunately there is no workaround currently so you can either wait for >> the new release (next week or so), build yourself from latest Trunk [2] or >> pick up a nightly build from [3] >> >> Regards, >> >> Rob Vesse >> >> [1]: http://dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=278 >> [2]: http://bitbucket.org/dotnetrdf/dotnetrdf >> [3]: >> http://dotnetrdf.hg.sourceforge.net/hgweb/dotnetrdf/binaries-nightly/file/tip/Libraries/Core >> >> From: antonio nunziante <nun...@gm...> >> Reply-To: dotNetRDF Developer Discussion and Feature Request < >> dot...@li...> >> Date: Thursday, September 20, 2012 3:55 AM >> To: dotNetRDF Developer Discussion and Feature Request < >> dot...@li...> >> Subject: [dotNetRDF-Develop] Update System.UriFormatException: URI not >> valid >> >> Hi all, >> >> I'm using the following instructions in order to update an OWLIM-Lite >> repository: >> >> *//Get an Update Parser >> SparqlUpdateParser parser = new SparqlUpdateParser(); >> >> //Generate a Command >> SparqlParameterizedString cmdString = new SparqlParameterizedString(); >> cmdString.CommandText = query; >> >> //Parse the command into a SparqlUpdateCommandSet >> SparqlUpdateCommandSet cmds = parser.ParseFromString(cmdString); >> >> //Connect to Sesame and create a GenericUpdateProcessor to apply the >> update >> SesameHttpProtocolConnector sesame = new >> SesameHttpProtocolConnector(endpointBaseUri, storeId); >> GenericUpdateProcessor processor = new GenericUpdateProcessor(sesame); >> processor.ProcessCommandSet(cmds); >> * >> >> Generally it works, but I receveid exception in >> "processor.ProcessCommandSet(cmds);" when probably the query string is too >> long. The exception is: >> >> >> *System.UriFormatException: URI not valid. String Uri too long. in >> System.Uri.EscapeString(String input, Int32 start, Int32 end, Char[] dest, >> Int32& destPos, Boolean isUriString, Char force1, Char force2, Char rsvd) >> in System.Uri.EscapeDataString(String stringToEscape) in >> VDS.RDF.Storage.SesameHttpProtocolVersion6Connector.Update(String >> sparqlUpdate) in >> VDS.RDF.Update.GenericUpdateProcessor.ProcessCommandSet(SparqlUpdateCommandSet >> commands) in TripleStoreController.RunUpdateSparqlQuery(String query, >> String endpointBaseUri, String storeId) in >> C:\Users\Nunziante\Dropbox\CRMPA\Progetti\SIRET\Documenti\OR1\D1.3\CompetenceModelDataManagement\CompetenceModelDataManagement\TripleStoreController.cs:riga >> 79* >> >> >> >> I hope anyone could help me. Thanks a lot >> -- >> * >> Antonio Nunziante >> * >> ------------------------------------------------------------------------------ >> Everyone hates slow websites. So do we. Make your web apps faster with >> AppDynamics Download AppDynamics Lite for free today: >> http://ad.doubleclick.net/clk;258768047;13503038;j? >> http://info.appdynamics.com/FreeJavaPerformanceDownload.html_______________________________________________dotNetRDF-develop mailing list >> dot...@li... >> https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop >> >> >> >> ------------------------------------------------------------------------------ >> Everyone hates slow websites. So do we. >> Make your web apps faster with AppDynamics >> Download AppDynamics Lite for free today: >> http://ad.doubleclick.net/clk;258768047;13503038;j? >> http://info.appdynamics.com/FreeJavaPerformanceDownload.html >> _______________________________________________ >> dotNetRDF-develop mailing list >> dot...@li... >> https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop >> >> > > > -- > * > Antonio Nunziante > * > ------------------------------------------------------------------------------ > Live Security Virtual Conference Exclusive live event will cover all the > ways today's security and threat landscape has changed and how IT managers > can respond. Discussions will include endpoint security, mobile security > and the latest in malware threats. > http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/_______________________________________________dotNetRDF-develop mailing list > dot...@li... > https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop > > > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > dotNetRDF-develop mailing list > dot...@li... > https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop > > |
From: <tr...@do...> - 2012-09-24 21:35:41
|
<p>The following issue has been updated by Rob Vesse:</p> <table border="0"> <tr> <td width="90px" valign="top"><b>Title:</b></td> <td>Properties in the Default Namespace may be incorrectly resolved by the RdfXmlParser when a Base URI is present</td> </tr> <tr> <td><b>Project:</b></td> <td>Core Library (dotNetRDF.dll)</td> </tr> <tr> <td colspan="2"><b>Changes:</b></td> </tr> <tr> <td colspan="2"> <ul> <li>Status changed from "In Progress" to "Completed" </li> <li>Resolution changed from "none" to "Fixed" </li> <li>Progress changed from "0.00 %" to "10,000.00 %" </li> </ul> </td> </tr> </table> <p> More information on this issue can be found at <a href="http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=281" target="_blank">http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=281</a></p> <p style="text-align:center;font-size:8pt;padding:5px;"> If you no longer wish to receive notifications, please visit <a href="http://www.dotnetrdf.org/tracker/Account/UserProfile.aspx" target="_blank">your profile</a> and change your notifications options. </p> |
From: <tr...@do...> - 2012-09-24 21:34:53
|
<p>A new comment has been added to the following issue.</p> <table border="0"> <tr> <td width="90px" valign="top"><b>Title:</b></td> <td>Properties in the Default Namespace may be incorrectly resolved by the RdfXmlParser when a Base URI is present</td> </tr> <tr> <td><b>Project:</b></td> <td>Core Library (dotNetRDF.dll)</td> </tr> <tr> <td><b>Created By:</b></td> <td>Rob Vesse</td> </tr> <tr> <td><b>Date:</b></td> <td>2012-09-24 10:33 PM</td> </tr> <tr> <td><b>Comment:</b></td> </tr> <tr> <td colspan="2"><p> The problem appears to be that the functions called to resolve such QNames are incorrectly passing the Base URI and that is being used as a fallback for the default namespace (which is a behaviour used by other parsers)</p> <p> The fix is relatively simple and is simply to not parse the Base URI in the cases where we are resolving a property QName</p></td> </tr> </table> <p> More information on this issue can be found at <a href="http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=281" target="_blank">http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=281</a></p> <p style="text-align:center;font-size:8pt;padding:5px;"> If you no longer wish to receive notifications, please visit <a href="http://www.dotnetrdf.org/tracker/Account/UserProfile.aspx" target="_blank">your profile</a> and change your notifications options. </p> |
From: <tr...@do...> - 2012-09-24 21:32:35
|
<p>The following issue has been added to a project that you are monitoring.</p> <table border="0"> <tr> <td width="90px" valign="top"><b>Title:</b></td> <td>Properties in the Default Namespace may be incorrectly resolved by the RdfXmlParser when a Base URI is present</td> </tr> <tr> <td><b>Project:</b></td> <td>Core Library (dotNetRDF.dll)</td> </tr> <tr> <td><b>Created By:</b></td> <td>Rob Vesse</td> </tr> <tr> <td><b>Milestone:</b></td> <td>0.7.2 Beta</td> </tr> <tr> <td><b>Category:</b></td> <td>Parsing</td> </tr> <tr> <td><b>Priority:</b></td> <td>High</td> </tr> <tr> <td><b>Type:</b></td> <td>Bug</td> </tr> <tr> <td><b>Description:</b></td> </tr> <tr> <td colspan="2"><p> As reported by Uldis Bojars on the mailing list there is indeed a bug with the resolution of property QNames in the RDF/XML parser that occurs when there is no default namespace but there is a Base URI set.</p></td> </tr> </table> <p> More information on this issue can be found at <a href="http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=281" target="_blank">http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=281</a></p> <p style="text-align:center;font-size:8pt;padding:5px;"> If you no longer wish to receive notifications, please visit <a href="http://www.dotnetrdf.org/tracker/Account/UserProfile.aspx" target="_blank">your profile</a> and change your notifications options. </p> |
From: Tomasz P. <tom...@gm...> - 2012-09-24 20:33:03
|
Hi Rob The QueryBuilder starts very promising. Way better than the Algebra API. However I'm not convinced with the extension methods way. What I could suggest is a specialized builder class which holds the query inside and the user can retrieve it whenever he is done with building. Something along the below: public class QueryBuilder : IQueryBuilder { private SparqlQuery _query = new SparqlQuery(); // such constructor only as a suggestion // could also create factory methods for the query types public QueryBuilder(SparqlQueryType queryType) { _query.QueryType = queryType; } // Now all methods are simmilar but not extension // and will return self. For example: public IQueryBuilder Where(IEnumerable<Triple> ts) { foreach (Triple t in ts) { _query = _query.Where(t.Subject, t.Predicate, t.Object); } return this; } public SparqlQuery GetExecutableQuery() { // not sure the Copy() is required // the internal API forbids any changes to the underlying query anyway // but shall that change any time, it could lead to unexpected results return _query.Copy(); } } I'm suggesting this, because currently the SparqlQuery has quite a few public getters and methods and at first it was very obscure what functionality the QueryBuilder actually provides. Also notice the IQueryBuilder interface. I think it would be beneficial to let the users actuall mock the builder and have the calls verified in unit tests. Last but not least, there could be not one but multiple interfaces implemented by the QueryBuilder class, which gives us power to order some of the calls if we ever need such a feature. It's already 10:30PM here so I won't be reworking the code today. Tomorrow maybe, depending on your thoughts on all this :). Tom On Mon, Sep 24, 2012 at 7:20 PM, Rob Vesse <rv...@do...> wrote: > Off the top of my head it should look something like this, assuming you > create the URIs as INode instances first: > > ISparqlAlgebra algebra = new Select( > new Filter( > new Join( > new LeftJoin( > new LeftJoin( > new BGP(), > new BGP(new TriplePattern(new VariablePattern("?item"), new > NodeMatchPattern(rdfType), new NodeMatchPattern(someClass))) > ), > new BGP(new TriplePattern(new VariablePattern("?item"), new > NodeMatchPattern(rdfType), new NodeMatchPattern(someOtherClass))) > ), > new BGP(new TriplePattern(new VariablePattern("?item"), new > NodeMatchPattern(foafName), new VariablePattern("?itemName"))) > ), > new UnaryExpressionFilter(new LangMatchesFunction(new LangFunction(new > VariableTerm("itemName")), new ConstantTerm(en))) > ), > new String[] { "item" }); > > Not the prettiest thing to build, see the QueryBuilder class [1] on the > fluent-query [2] branch for an initial rough cut of a more user friendly > fluent style API, see the unit tests in that commit for some examples of > building queries > > Hopefully that style of API will be much more readable than the above and > much more user friendly > > Rob > > [1] > https://bitbucket.org/dotnetrdf/dotnetrdf/changeset/f0654d04f2612d6e215ff17 > d166ba99c74e781af > [2] > https://bitbucket.org/dotnetrdf/dotnetrdf/changesets/tip/branch(%22fluent-q > uery%22) > > > On 9/24/12 5:40 AM, "Tomasz Pluskiewicz" <tom...@gm...> > wrote: > >>Hello again >> >>I tried to build some algebra programmatically but I failed miserably :) >> >>Could you please as an example help me with expressing the below >>SPARQL in Algebra API? >> >>SELECT ?item >>{ >> OPTIONAL { ?item a ex:someClass . } >> OPTIONAL { ?item a ex:someOtherClass . } >> ?item foaf:name ?itemName >> FILTER( langMatches( lang(?itemName), "en" )) >>} >> >>This should give me enough insight to get up to speed with the API. >> >>Thanks, >>Tom >> >>On Sat, Sep 22, 2012 at 7:02 PM, Tomasz Pluskiewicz >><tom...@gm...> wrote: >>> Also are there any introductory examples on creating SPARQL Algebra. >>> It could be the way to go for my initially. Are there many scenarios >>> when it would be impossible to convert it to a query? >>> >>> Tom >>> >>> On Sat, Sep 22, 2012 at 11:30 AM, Tomasz Pluskiewicz >>> <tom...@gm...> wrote: >>>> Thanks Rob >>>> >>>> I could look into it. Please point me int the right direction in the >>>> code where the internal API is located. >>>> >>>> Tom >>>> >>>> On Fri, Sep 21, 2012 at 10:26 PM, Rob Vesse <rv...@do...> >>>>wrote: >>>>> Hey Tom >>>>> >>>>> Right now it's somewhat limited, you can build the algebra >>>>> programmatically and try and convert it back to a query with the >>>>>AsQuery() >>>>> method but that isn't guaranteed to work (some algebras can't be >>>>>converted >>>>> back into queries). Otherwise you have to generate a string and then >>>>> parse it. >>>>> >>>>> Most of the SparqlQuery API is protected internal/private, I have a >>>>>To Do >>>>> item to add a public fluent style API for building queries that I will >>>>> likely do for the next release if that helps. I/you can start >>>>>building >>>>> that out in a feature branch if that would solve your issue? >>>>> >>>>> Rob >>>>> >>>>> On 9/21/12 11:39 AM, "Tomasz Pluskiewicz" >>>>><tom...@gm...> >>>>> wrote: >>>>> >>>>>>Hi >>>>>> >>>>>>Please tell me what are the options for building SPARQL >>>>>>programatically with dotNetRDF? Is there any such API? >>>>>> >>>>>>Regards, >>>>>>Tom >>>>>> >>>>>>---------------------------------------------------------------------- >>>>>>---- >>>>>>---- >>>>>>Got visibility? >>>>>>Most devs has no idea what their production app looks like. >>>>>>Find out how fast your code is with AppDynamics Lite. >>>>>>http://ad.doubleclick.net/clk;262219671;13503038;y? >>>>>>http://info.appdynamics.com/FreeJavaPerformanceDownload.html >>>>>>_______________________________________________ >>>>>>dotNetRDF-develop mailing list >>>>>>dot...@li... >>>>>>https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>>----------------------------------------------------------------------- >>>>>------- >>>>> Got visibility? >>>>> Most devs has no idea what their production app looks like. >>>>> Find out how fast your code is with AppDynamics Lite. >>>>> http://ad.doubleclick.net/clk;262219671;13503038;y? >>>>> http://info.appdynamics.com/FreeJavaPerformanceDownload.html >>>>> _______________________________________________ >>>>> dotNetRDF-develop mailing list >>>>> dot...@li... >>>>> https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop >> >>-------------------------------------------------------------------------- >>---- >>Live Security Virtual Conference >>Exclusive live event will cover all the ways today's security and >>threat landscape has changed and how IT managers can respond. Discussions >>will include endpoint security, mobile security and the latest in malware >>threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ >>_______________________________________________ >>dotNetRDF-develop mailing list >>dot...@li... >>https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop > > > > > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > dotNetRDF-develop mailing list > dot...@li... > https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop |
From: <tr...@do...> - 2012-09-24 18:12:06
|
<p>The following issue has been updated by Rob Vesse:</p> <table border="0"> <tr> <td width="90px" valign="top"><b>Title:</b></td> <td>RDF/XML parser may allow undeclared QNames to be resolved depending on how the parser is invoked</td> </tr> <tr> <td><b>Project:</b></td> <td>Core Library (dotNetRDF.dll)</td> </tr> <tr> <td colspan="2"><b>Changes:</b></td> </tr> <tr> <td colspan="2"> <ul> <li>Status changed from "In Progress" to "Closed" </li> <li>Resolution changed from "none" to "Won't Fix" </li> <li>Progress changed from "5,000.00 %" to "10,000.00 %" </li> </ul> </td> </tr> </table> <p> More information on this issue can be found at <a href="http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=280" target="_blank">http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=280</a></p> <p style="text-align:center;font-size:8pt;padding:5px;"> If you no longer wish to receive notifications, please visit <a href="http://www.dotnetrdf.org/tracker/Account/UserProfile.aspx" target="_blank">your profile</a> and change your notifications options. </p> |
From: <tr...@do...> - 2012-09-24 18:12:05
|
<p>A new comment has been added to the following issue.</p> <table border="0"> <tr> <td width="90px" valign="top"><b>Title:</b></td> <td>RDF/XML parser may allow undeclared QNames to be resolved depending on how the parser is invoked</td> </tr> <tr> <td><b>Project:</b></td> <td>Core Library (dotNetRDF.dll)</td> </tr> <tr> <td><b>Created By:</b></td> <td>Rob Vesse</td> </tr> <tr> <td><b>Date:</b></td> <td>2012-09-24 07:10 PM</td> </tr> <tr> <td><b>Comment:</b></td> </tr> <tr> <td colspan="2"><p> As described in the comments while the reported issue does show an inconsistency in behaviour depending on how the parser is invoked the actual behaviour seen is a valid interpretation of the specification</p> <p> A separate issue will be filed to consider adjusting all the IRdfReader implementations to set a file Base URI when parsing a file into a Graph as the FileLoader does currently</p></td> </tr> </table> <p> More information on this issue can be found at <a href="http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=280" target="_blank">http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=280</a></p> <p style="text-align:center;font-size:8pt;padding:5px;"> If you no longer wish to receive notifications, please visit <a href="http://www.dotnetrdf.org/tracker/Account/UserProfile.aspx" target="_blank">your profile</a> and change your notifications options. </p> |
From: <tr...@do...> - 2012-09-24 17:45:51
|
<p>The following issue has been updated by Rob Vesse:</p> <table border="0"> <tr> <td width="90px" valign="top"><b>Title:</b></td> <td>RDF/XML parser may allow undeclared QNames to be resolved depending on how the parser is invoked</td> </tr> <tr> <td><b>Project:</b></td> <td>Core Library (dotNetRDF.dll)</td> </tr> <tr> <td colspan="2"><b>Changes:</b></td> </tr> <tr> <td colspan="2"> <ul> <li>Status changed from "Confirmed" to "In Progress" </li> <li>Progress changed from "0.00 %" to "5,000.00 %" </li> </ul> </td> </tr> </table> <p> More information on this issue can be found at <a href="http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=280" target="_blank">http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=280</a></p> <p style="text-align:center;font-size:8pt;padding:5px;"> If you no longer wish to receive notifications, please visit <a href="http://www.dotnetrdf.org/tracker/Account/UserProfile.aspx" target="_blank">your profile</a> and change your notifications options. </p> |
From: <tr...@do...> - 2012-09-24 17:43:34
|
<p>A new comment has been added to the following issue.</p> <table border="0"> <tr> <td width="90px" valign="top"><b>Title:</b></td> <td>RDF/XML parser may allow undeclared QNames to be resolved depending on how the parser is invoked</td> </tr> <tr> <td><b>Project:</b></td> <td>Core Library (dotNetRDF.dll)</td> </tr> <tr> <td><b>Created By:</b></td> <td>Rob Vesse</td> </tr> <tr> <td><b>Date:</b></td> <td>2012-09-24 06:42 PM</td> </tr> <tr> <td><b>Comment:</b></td> </tr> <tr> <td colspan="2"><p> I believe the key part of the RDF/XML specification that applies is the following text:</p> <p> <span style="color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; ">Relative URI references are resolved into </span><a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference" style="color: rgb(102, 0, 153); font-family: sans-serif; font-size: medium; ">RDF URI references</a><span style="color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; "> according to the algorithm specified in</span><a href="http://www.w3.org/TR/2001/REC-xmlbase-20010627/" style="color: rgb(102, 0, 153); font-family: sans-serif; font-size: medium; ">XML Base</a><span style="color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; "> </span><a href="http://www.w3.org/TR/REC-rdf-syntax/#ref-xml-base" style="color: rgb(102, 0, 153); font-family: sans-serif; font-size: medium; ">[XML-BASE]</a><span style="color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; "> (and RFC 2396)</span></p> <p> <span style="color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; ">RFC 2396 (</span>http://www.ietf.org/rfc/rfc2396.txt) <span style="color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; ">is a document which discusses various properties of URIs, the section of interest is 5.1 which specifies how the Base URI is determined and allows the Base URI to be application determined</span></p> <p> <span style="color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; ">This would imply that our behaviour is acceptable since we are using an application defined Base URI when invoked one way but not another. The fix may actually be to be consistent in our behaviour in this regard when invoking parsers directly with a filename and a graph.</span></p></td> </tr> </table> <p> More information on this issue can be found at <a href="http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=280" target="_blank">http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=280</a></p> <p style="text-align:center;font-size:8pt;padding:5px;"> If you no longer wish to receive notifications, please visit <a href="http://www.dotnetrdf.org/tracker/Account/UserProfile.aspx" target="_blank">your profile</a> and change your notifications options. </p> |
From: <tr...@do...> - 2012-09-24 17:37:24
|
<p>The following issue has been added to a project that you are monitoring.</p> <table border="0"> <tr> <td width="90px" valign="top"><b>Title:</b></td> <td>RDF/XML parser may allow undeclared QNames to be resolved depending on how the parser is invoked</td> </tr> <tr> <td><b>Project:</b></td> <td>Core Library (dotNetRDF.dll)</td> </tr> <tr> <td><b>Created By:</b></td> <td>Rob Vesse</td> </tr> <tr> <td><b>Milestone:</b></td> <td>0.7.2 Beta</td> </tr> <tr> <td><b>Category:</b></td> <td>Parsing</td> </tr> <tr> <td><b>Priority:</b></td> <td>High</td> </tr> <tr> <td><b>Type:</b></td> <td>Bug</td> </tr> <tr> <td><b>Description:</b></td> </tr> <tr> <td colspan="2"><p> As reported by Uldis Bojars on the list the RDF/XML parser may allow QNames which are otherwise undeclared to be resolved depending on how the parser gets invoked</p> <p> </p> <p> Currently investigating and am not sure whether this is actually a bug since it may simply be the case that one form of invocation is setting a Base URI for the document while another is not.</p></td> </tr> </table> <p> More information on this issue can be found at <a href="http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=280" target="_blank">http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=280</a></p> <p style="text-align:center;font-size:8pt;padding:5px;"> If you no longer wish to receive notifications, please visit <a href="http://www.dotnetrdf.org/tracker/Account/UserProfile.aspx" target="_blank">your profile</a> and change your notifications options. </p> |
From: Rob V. <rv...@do...> - 2012-09-24 17:21:26
|
Off the top of my head it should look something like this, assuming you create the URIs as INode instances first: ISparqlAlgebra algebra = new Select( new Filter( new Join( new LeftJoin( new LeftJoin( new BGP(), new BGP(new TriplePattern(new VariablePattern("?item"), new NodeMatchPattern(rdfType), new NodeMatchPattern(someClass))) ), new BGP(new TriplePattern(new VariablePattern("?item"), new NodeMatchPattern(rdfType), new NodeMatchPattern(someOtherClass))) ), new BGP(new TriplePattern(new VariablePattern("?item"), new NodeMatchPattern(foafName), new VariablePattern("?itemName"))) ), new UnaryExpressionFilter(new LangMatchesFunction(new LangFunction(new VariableTerm("itemName")), new ConstantTerm(en))) ), new String[] { "item" }); Not the prettiest thing to build, see the QueryBuilder class [1] on the fluent-query [2] branch for an initial rough cut of a more user friendly fluent style API, see the unit tests in that commit for some examples of building queries Hopefully that style of API will be much more readable than the above and much more user friendly Rob [1] https://bitbucket.org/dotnetrdf/dotnetrdf/changeset/f0654d04f2612d6e215ff17 d166ba99c74e781af [2] https://bitbucket.org/dotnetrdf/dotnetrdf/changesets/tip/branch(%22fluent-q uery%22) On 9/24/12 5:40 AM, "Tomasz Pluskiewicz" <tom...@gm...> wrote: >Hello again > >I tried to build some algebra programmatically but I failed miserably :) > >Could you please as an example help me with expressing the below >SPARQL in Algebra API? > >SELECT ?item >{ > OPTIONAL { ?item a ex:someClass . } > OPTIONAL { ?item a ex:someOtherClass . } > ?item foaf:name ?itemName > FILTER( langMatches( lang(?itemName), "en" )) >} > >This should give me enough insight to get up to speed with the API. > >Thanks, >Tom > >On Sat, Sep 22, 2012 at 7:02 PM, Tomasz Pluskiewicz ><tom...@gm...> wrote: >> Also are there any introductory examples on creating SPARQL Algebra. >> It could be the way to go for my initially. Are there many scenarios >> when it would be impossible to convert it to a query? >> >> Tom >> >> On Sat, Sep 22, 2012 at 11:30 AM, Tomasz Pluskiewicz >> <tom...@gm...> wrote: >>> Thanks Rob >>> >>> I could look into it. Please point me int the right direction in the >>> code where the internal API is located. >>> >>> Tom >>> >>> On Fri, Sep 21, 2012 at 10:26 PM, Rob Vesse <rv...@do...> >>>wrote: >>>> Hey Tom >>>> >>>> Right now it's somewhat limited, you can build the algebra >>>> programmatically and try and convert it back to a query with the >>>>AsQuery() >>>> method but that isn't guaranteed to work (some algebras can't be >>>>converted >>>> back into queries). Otherwise you have to generate a string and then >>>> parse it. >>>> >>>> Most of the SparqlQuery API is protected internal/private, I have a >>>>To Do >>>> item to add a public fluent style API for building queries that I will >>>> likely do for the next release if that helps. I/you can start >>>>building >>>> that out in a feature branch if that would solve your issue? >>>> >>>> Rob >>>> >>>> On 9/21/12 11:39 AM, "Tomasz Pluskiewicz" >>>><tom...@gm...> >>>> wrote: >>>> >>>>>Hi >>>>> >>>>>Please tell me what are the options for building SPARQL >>>>>programatically with dotNetRDF? Is there any such API? >>>>> >>>>>Regards, >>>>>Tom >>>>> >>>>>---------------------------------------------------------------------- >>>>>---- >>>>>---- >>>>>Got visibility? >>>>>Most devs has no idea what their production app looks like. >>>>>Find out how fast your code is with AppDynamics Lite. >>>>>http://ad.doubleclick.net/clk;262219671;13503038;y? >>>>>http://info.appdynamics.com/FreeJavaPerformanceDownload.html >>>>>_______________________________________________ >>>>>dotNetRDF-develop mailing list >>>>>dot...@li... >>>>>https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop >>>> >>>> >>>> >>>> >>>> >>>> >>>>----------------------------------------------------------------------- >>>>------- >>>> Got visibility? >>>> Most devs has no idea what their production app looks like. >>>> Find out how fast your code is with AppDynamics Lite. >>>> http://ad.doubleclick.net/clk;262219671;13503038;y? >>>> http://info.appdynamics.com/FreeJavaPerformanceDownload.html >>>> _______________________________________________ >>>> dotNetRDF-develop mailing list >>>> dot...@li... >>>> https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop > >-------------------------------------------------------------------------- >---- >Live Security Virtual Conference >Exclusive live event will cover all the ways today's security and >threat landscape has changed and how IT managers can respond. Discussions >will include endpoint security, mobile security and the latest in malware >threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ >_______________________________________________ >dotNetRDF-develop mailing list >dot...@li... >https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop |
From: Rob V. <rv...@do...> - 2012-09-24 17:06:06
|
Ok, comments inline On 9/24/12 5:25 AM, "Tomasz Pluskiewicz" <tom...@gm...> wrote: >Rob, > >I think I can devise my own common denominator just for the sake of >executing SPARQL and that won't be a big thing. I would like to >confront you with some basic idea how I think the ORM solution could >work: > >1. The mapping API is used to map .net types to some rdf classes and >their methods/properties to rdf properties. This could get complicated >if one wants to achieve a more sophisticated workflow. For example >saving triples for particular relation to another graph. A trivial >example could be that an example graph: > >ex:FordFiesta a ex:Car ; ex:speed 150 ; ex:passengers 5 . >ex:HondaCivic a ex:Car ; ex:speed 160 ; ex:passengers 5 . > >could be used to retrieve Car (this being a .net type) instances, each >having a integer-valued Car#Speed property. Yep, with you so far > >2. The configuration API takes those mappings and creates a context >factory, which is used to wrap graphs, stores and endpoints thus >creating a context. A context will be something like NHibernate's >ISession or Entity Framewor's ObjectContext. The context is used to >access the underlying datasource transparently for example: > >IEnumerable<Car> cars = context.GetAll<Car>().Where(car => car.Speed > >150); // transform LINQ into SPARQL >Car fordFiesta = context.Get<Car>("ex:FordFiesta"); // here possibly >do a DESCRIBE or a ?s ?p ?o query on the given source > >I initially thought that for IGraph I could use simple triple-based >access but apparently the querying is quite complex from the start and >thus it would be a wasted effort, because at some point it would best >be switched to SPARQL anyway (hence my other SPARQL-building topic). > >3. Accessing property values would have to differ based on the source. >For in-memory sources it is easy: if the requested triple is present, >retrieve a value. For remote sources perform a query to get the actual >value for the accessed property. For points 2 and 3 you might want to talk to Graham and Kal offline, what you are trying to do sounds very like what they do with BrightstarDB On point 3 take a look at Andrew Matthew's old LinqToRdf code, his approach used class generation so not necessarily a direct parallel but essentially he would have an intermediate reference to the value inside a property and the first time it was accessed resolve it, this is particularly useful for properties that establish relationships between classes since it avoids having to build the entire object graph at one time In essence lazy load > >The question here is how do I best work with remote sources, >especially sparql endpoints. Does dotNetRDF provide some cache for >retrieved data, so that it isn't necessary to poll it every time for >the same triples. This seems easy to achieve for CONSTRUCT queries, >but how should it work for SELECT? No there is no cache currently, for CONSTRUCT results just stick them in a Graph/TripleCollection Maybe the better option is to always use CONSTRUCT > >Looking just now at the interfaces IStorageProvider is likely what I >may suit my needs. Please confirm that I could/should use the >InMemoryManager to access in-memory graphs and triple stores and the >other implementations to access sparql endopints and third party >stores. Yes that would work, InMemoryManager wraps the in-memory query engine with the standard IStorageProvider interface so using IStorageProvider as your common denominator may work best for you Rob > >Thanks, >Tom > >On Fri, Sep 21, 2012 at 10:30 PM, Rob Vesse <rv...@do...> wrote: >> Well IGraph and ITripleStore can both be wrapped by ISparqlDataset >> instances >> >> For remote things I am planning to write a dataset implementation that >> would wrap another query engine (I.e. convert the calls into SPARQL >> queries onto whatever the underlying engine is) because that helps >>address >> another open task I have but I haven't got very far with it just yet. >> >> So I'd recommend using ISparqlDataset as the common denominator provided >> you're OK with talking to remote endpoints via this interface not being >> supported just yet. >> >> Rob >> >> On 9/21/12 1:08 PM, "Tomasz Pluskiewicz" <tom...@gm...> >> wrote: >> >>>Hi Rob >>> >>>As you already know I have started working on a ORM-like mapper based >>>on dotNetRDF. I intend it to be as thin as possible and rely mostly on >>>the underlying powers of your library. To make it possible I have >>>defined an interfaces called IRomanticContext+dynamic proxies, which >>>will hide the details of how RDF triples and graphs are manipulated. >>> >>>The question I have comes form the fact the I need multiple context >>>types for different types of underlying data. I have indentified the >>>IGraph, ITripleStore, ISparqlDataset and BaseEndopint types, which >>>give access to various sources of RDF. Will I really need to wrap all >>>of those to provide a uniform abstraction layer over dotNetRDF? Is >>>there some kind of common denominator? >>> >>>Regards, >>>Tom >>> >>>------------------------------------------------------------------------ >>>-- >>>---- >>>Got visibility? >>>Most devs has no idea what their production app looks like. >>>Find out how fast your code is with AppDynamics Lite. >>>http://ad.doubleclick.net/clk;262219671;13503038;y? >>>http://info.appdynamics.com/FreeJavaPerformanceDownload.html >>>_______________________________________________ >>>dotNetRDF-develop mailing list >>>dot...@li... >>>https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop >> >> >> >> >> >> >>------------------------------------------------------------------------- >>----- >> Got visibility? >> Most devs has no idea what their production app looks like. >> Find out how fast your code is with AppDynamics Lite. >> http://ad.doubleclick.net/clk;262219671;13503038;y? >> http://info.appdynamics.com/FreeJavaPerformanceDownload.html >> _______________________________________________ >> dotNetRDF-develop mailing list >> dot...@li... >> https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop > >-------------------------------------------------------------------------- >---- >Live Security Virtual Conference >Exclusive live event will cover all the ways today's security and >threat landscape has changed and how IT managers can respond. Discussions >will include endpoint security, mobile security and the latest in malware >threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ >_______________________________________________ >dotNetRDF-develop mailing list >dot...@li... >https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop |
From: Rob V. <rv...@do...> - 2012-09-24 16:57:12
|
Hi Antonio What is the error message you received? DId you download the correct version for your target .Net version and profile? Rob From: antonio nunziante <nun...@gm...> Reply-To: dotNetRDF Developer Discussion and Feature Request <dot...@li...> Date: Monday, September 24, 2012 1:07 AM To: dotNetRDF Developer Discussion and Feature Request <dot...@li...> Subject: Re: [dotNetRDF-Develop] Update System.UriFormatException: URI not valid > Hi Rob, > I'm trying to add reference to .ddl files in my project but Visual Studio > shows an error suggesting to verify the assembly. > I downloaded them from [3]. > > Regards, > -Antonio > > 2012/9/20 Rob Vesse <rv...@do...> >> Hi Antonio >> >> This is a bug in the library, I filed this as CORE-278 [1] and have fixed >> this in Trunk >> >> Unfortunately there is no workaround currently so you can either wait for the >> new release (next week or so), build yourself from latest Trunk [2] or pick >> up a nightly build from [3] >> >> Regards, >> >> Rob Vesse >> >> [1]: http://dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=278 >> [2]: http://bitbucket.org/dotnetrdf/dotnetrdf >> [3]: >> http://dotnetrdf.hg.sourceforge.net/hgweb/dotnetrdf/binaries-nightly/file/tip >> /Libraries/Core >> >> From: antonio nunziante <nun...@gm...> >> Reply-To: dotNetRDF Developer Discussion and Feature Request >> <dot...@li...> >> Date: Thursday, September 20, 2012 3:55 AM >> To: dotNetRDF Developer Discussion and Feature Request >> <dot...@li...> >> Subject: [dotNetRDF-Develop] Update System.UriFormatException: URI not valid >> >>> Hi all, >>> >>> I'm using the following instructions in order to update an OWLIM-Lite >>> repository: >>> >>> //Get an Update Parser >>> SparqlUpdateParser parser = new SparqlUpdateParser(); >>> >>> //Generate a Command >>> SparqlParameterizedString cmdString = new SparqlParameterizedString(); >>> cmdString.CommandText = query; >>> >>> //Parse the command into a SparqlUpdateCommandSet >>> SparqlUpdateCommandSet cmds = parser.ParseFromString(cmdString); >>> >>> //Connect to Sesame and create a GenericUpdateProcessor to apply the update >>> SesameHttpProtocolConnector sesame = new >>> SesameHttpProtocolConnector(endpointBaseUri, storeId); >>> GenericUpdateProcessor processor = new GenericUpdateProcessor(sesame); >>> processor.ProcessCommandSet(cmds); >>> >>> >>> Generally it works, but I receveid exception in >>> "processor.ProcessCommandSet(cmds);" when probably the query string is too >>> long. The exception is: >>> >>> >>> System.UriFormatException: URI not valid. String Uri too long. in >>> System.Uri.EscapeString(String input, Int32 start, Int32 end, Char[] dest, >>> Int32& destPos, Boolean isUriString, Char force1, Char force2, Char rsvd) in >>> System.Uri.EscapeDataString(String stringToEscape) in >>> VDS.RDF.Storage.SesameHttpProtocolVersion6Connector.Update(String >>> sparqlUpdate) in >>> VDS.RDF.Update.GenericUpdateProcessor.ProcessCommandSet(SparqlUpdateCommandS >>> et commands) in TripleStoreController.RunUpdateSparqlQuery(String query, >>> String endpointBaseUri, String storeId) in >>> C:\Users\Nunziante\Dropbox\CRMPA\Progetti\SIRET\Documenti\OR1\D1.3\Competenc >>> eModelDataManagement\CompetenceModelDataManagement\TripleStoreController.cs: >>> riga 79 >>> >>> >>> >>> I hope anyone could help me. Thanks a lot >>> -- >>> Antonio Nunziante >>> >>> ---------------------------------------------------------------------------- >>> -- Everyone hates slow websites. So do we. Make your web apps faster with >>> AppDynamics Download AppDynamics Lite for free today: >>> http://ad.doubleclick.net/clk;258768047;13503038;j? >>> http://info.appdynamics.com/FreeJavaPerformanceDownload.html________________ >>> _______________________________ dotNetRDF-develop mailing list >>> dot...@li...https://lists.sourceforge.net/lists/l >>> istinfo/dotnetrdf-develop >> >> ----------------------------------------------------------------------------->> - >> Everyone hates slow websites. So do we. >> Make your web apps faster with AppDynamics >> Download AppDynamics Lite for free today: >> http://ad.doubleclick.net/clk;258768047;13503038;j? >> http://info.appdynamics.com/FreeJavaPerformanceDownload.html >> _______________________________________________ >> dotNetRDF-develop mailing list >> dot...@li... >> https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop >> > > > > -- > Antonio Nunziante > > ------------------------------------------------------------------------------ > Live Security Virtual Conference Exclusive live event will cover all the ways > today's security and threat landscape has changed and how IT managers can > respond. Discussions will include endpoint security, mobile security and the > latest in malware threats. > http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/_____________________ > __________________________ dotNetRDF-develop mailing list > dot...@li... > https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop |