On Mon, Aug 8, 2011 at 10:36 AM, Rohana Rajapakse <[email protected]> wrote: > Hi, > > I think having a "strict update mode" (as it does now) as well as a "full > update mode" (using an additional switch) to allow both add and update will > serve all requirements.
I would also prefer to have both "strict" and "full" by using an additional switch. I will try to find some time to implement this in the coming days. see also https://issues.apache.org/jira/browse/STANBOL-308 best Rupert > > Regards > > Rohana > > -----Original Message----- > From: Rupert Westenthaler [mailto:[email protected]] > Sent: 08 August 2011 09:18 > To: [email protected] > Subject: Re: Delete, Update locally cached entities > > Hi > > On Fri, Aug 5, 2011 at 5:52 PM, Rohana Rajapakse > <[email protected]> wrote: >> >> Hi, >> >> Thanks to Rupert, I can now add entities from an RDF file. >> >> However, neither the POST nor the PUT requests add entities that are new >> among other existing ones. The updateOrCreateEntity(...) method needs all >> the entities being added not to present in the index (during adding >> entities). Also it does not add any new entities in the update mode. >> > > Exactly, this is how it is implemented right now. > >> I think we need another method that updates existing entities AND adds new >> entities. >> > > Would you prefer to > > 1. allow also the addition of new entities in "update mode" (PUT > requests) as default or > > 2. the usage of an additional switch that tells the Entityhub to also > allow the creation/update of Entities. > > POST http://localhost:8080/entityhub/entity?update=true/false (to > enable/disable update of existing entities for POST requests; > default=false) > PUT http://localhost:8080/entityhub/entity?create=ture/false (to > enable/disable the creation of new entities for PUT requests; > default=false) > > best > Rupert > >> >> Regards >> >> Rohana >> >> -----Original Message----- >> From: Rupert Westenthaler [mailto:[email protected]] >> Sent: 02 August 2011 16:59 >> To: [email protected] >> Subject: Re: Delete, Update locally cached entities >> >> Hi >> >> On Tue, Aug 2, 2011 at 5:06 PM, Rohana Rajapakse >> <[email protected]> wrote: >>> Thanks, I think understand it now. I will think of a user case for deleting >>> cache of referenced site entities. At the moment I am playing with >>> entityhub to see what it can de. >>> >>> >>> By the way, I tried creating all entities from the rdf file available here >>> http://openlylocal.com/councils.rdf (I have downloaded the file into my >>> local disk in the name "councils.rdf") >>> >>> Here is the curl I used: >>> >>> curl -X POST -H "Content-Type: application/rdf+xml" --data "@councils.rdf" >>> http://localhost:8080/entityhub/entity >>> >>> I don't know if it worked (no error messages). >> >> It had not worked, because in the RepresentationReader (the component >> that reads the Entities from the parsed RDF data) there was a >> restriction to only create Entities if a rdf:type property where >> present for a Resource. I removed this restriction in revision 1153171 >> [1]. >> >>> >>> Then I tried to retrieve the entity with id/uri >>> http://openlylocal.com/id/councils/180 which is present in the source rdf >>> file. >>> >>> The curl I used is: >>> >>> curl >>> http://localhost:8080/entityhub/entity?id=http://openlylocal.com/id/councils/180 >>> >> >> After this fix this should work as expected. >> >> best >> Rupert Westenthaler >> >> [1] http://svn.apache.org/viewvc?view=revision&revision=1153171 >> >>> >>> >>> -----Original Message----- >>> From: Rupert Westenthaler [mailto:[email protected]] >>> Sent: 02 August 2011 15:12 >>> To: [email protected] >>> Subject: Re: Delete, Update locally cached entities >>> >>> On Tue, Aug 2, 2011 at 3:07 PM, Rohana Rajapakse >>> <[email protected]> wrote: >>>> Thanks a lot Rupert. >>>> >>>> I am interested in deleting an entity locally cached for a referenced site >>>> too. Aren't they (locally managed entities and referenced site entities >>>> cached locally) stored in the same way (in a Solr/Clerrezza Yard)? Aren't >>>> they treated the same/similar (as symbols) once you store them locally? I >>>> thought they were, because you can work with (referenced entities) >>>> off-line once you have locally cached/stored them. >>>> >>> By directly using the Java API of the Yard it would be possible but >>> via the RESTful interface there is currently no way to delete a >>> locally cached version. >>> >>> The idea behind this is that >>> >>> * entities of the "/entityhub/entity" are considered as locally >>> managed. Therefore you can create/update and delete them. >>> * entities of "/entityhub/site/{siteId}/entity" are considered as >>> governed by this site and therefore read only. >>> >>> However as mentioned in my first replay deleting a locally cached >>> version (e.g. to force the update to a current remote version) is >>> absolutely something that should be supported. >>> >>> If you have a usage scenario that would require a ReferencedSite that >>> also allows full CRUD access please let me know. I would be very >>> interested! >>> >>> >>> If you want to try to directly use the Java API I would suggest to use >>> something like this >>> >>> @Reference >>> org.apache.stanbol.entityhub.servicesapi.yard.YardManager yardManager; >>> >>> @Reference >>> org.apache.stanbol.entityhub.servicesapi.site.ReferencedSiteManager >>> siteManager; >>> >>> //the entity we want to remove from the local cache >>> Siring entityToRemoveTheLocallyCacheVersion = "urn:demo" >>> >>> //1. get the referenced site >>> >>> //a) first possibility to use the ReferencedSiteManager: >>> >>> String siteId = "mySite"; //the site in question >>> ReferencedSite site = siteManager.getReferencedSite(siteId); >>> >>> // b) Second possibility would be to directly inject the Referenced >>> // site or use a ServiceTracker by filtering on the >>> // "org.apache.stanbol.entityhub.site.id" property with the siteId >>> // value >>> >>> //2. get the ID of the Yard used to cache local entities >>> >>> //first check if the site uses a local cache >>> CacheStrategy cacheStrategy = site.getConfiguration().getCacheStrategy >>> if(cacheStrategy == CacheStrategy.none){ >>> throw new IllegalStateException("Site does not use a local Cache!") >>> } >>> >>> //Note that the cacheID is also used as ID for the Yard >>> String yardId = site.getConfiguration().getCacheId(); >>> if(yardId == null) { >>> //this should not be the case if "cacheStrategy != CacheStrategy.none" >>> throw new IllegalStateException("Yard ID of ReferencedSite "+siteId+ >>> " is NULL even that CacheStrategy is set to "+cacheStrategy); >>> } >>> >>> //3. get the Yard with that ID >>> // here again you can use the YardManager or optionally also a >>> // ServiceTracker with a filter on the >>> // "org.apache.stanbol.entityhub.yard.id" property with the value >>> // of yardId >>> >>> Yard localCache = yardManager.getYard(yardId) >>> if(localCache != null={ >>> localCache.remove(entityToRemoveTheLocallyCacheVersion); >>> } //else local cache is currently not available >>> >>> >>> BTW: there is no direct way to get the Yard from the ReferencedSite >>> interface. This is the reason why you need to lookup the Yard via the >>> YardManager. >>> >>> best >>> Rupert Westenthaler >>> >>>> Please point me to any detailed documentation on the web (if any). >>>> >>>> Rohana >>>> >>>> >>>> -----Original Message----- >>>> From: Rupert Westenthaler [mailto:[email protected]] >>>> Sent: 02 August 2011 12:49 >>>> To: [email protected] >>>> Subject: Re: Delete, Update locally cached entities >>>> >>>> On Tue, Aug 2, 2011 at 1:20 PM, Rohana Rajapakse >>>> <[email protected]> wrote: >>>>> Hi, >>>>> >>>>> I was under the impression that the entityhub/entity can be used for >>>>> managing local (cached) entities. I am confused with what this >>>>> page/endpoint http://localhost:8080/entityhub/entity says (page to >>>>> get/create/update/delete Entities Managed by the entity hub). Am I >>>>> missing something here? >>>>> >>>> >>>> Yeas the entityhub/entity endpoint supports full CRUD. I was thinking >>>> you talk about updating an entity locally cached for a referenced site >>>> ... >>>> >>>> Here are some examples for the "entityhub/entity" service endpoint: >>>> >>>> create all entities within the parsed RDF graph >>>> >>>> curl -X POST -H "Content-Type: application/rdf+xml" --data >>>> "@{rdfXmlFile}" http://localhost:8080/entityhub/entity >>>> >>>> Note that Entities are created for all subjects used in triples of the >>>> parsed RDF data. E.g. parsing a RDF file containing a SKOS thesaurus >>>> should create Entities for all skos:Concept's and the >>>> skos:ConcpetScheme. >>>> >>>> If one only want to create a specific Entity (and ignore all other >>>> triples) one needs to specify the ID of the Entity to create as >>>> additional parameter. >>>> >>>> curl -X POST -H "Content-Type: application/rdf+xml" --data >>>> "@{rdfXmlFile}" http://localhost:8080/entityhub/entity?id={entity-uri} >>>> >>>> This will only create the Entity with the id {entity-uri} and ignore >>>> all triples within the parsed {rdfXmlFile} that use an other URI as >>>> subject. >>>> >>>> >>>> >>>> Retrieval works the same as for referenced sites >>>> >>>> curl http://localhost:8080/entityhub/entity?id={entity-uri} >>>> >>>> >>>> >>>> Update works the same way. Only use -X PUT instead of -X POST >>>> >>>> >>>> To delete an Entity use >>>> >>>> curl -X DELETE http://localhost:8080/entityhub/entity?id={entity-id} >>>> >>>> >>>> best >>>> Rupert Westenthaler >>>> >>>>> >>>>> Rohana >>>>> >>>>> -----Original Message----- >>>>> From: Rupert Westenthaler [mailto:[email protected]] >>>>> Sent: 02 August 2011 11:06 >>>>> To: [email protected] >>>>> Subject: Re: Delete, Update locally cached entities >>>>> >>>>> Hi >>>>> >>>>> On Tue, Aug 2, 2011 at 10:42 AM, Rohana Rajapakse >>>>> <[email protected]> wrote: >>>>>> How do you delete/update locally cached entities in Entityhub? Which >>>>>> endpoint(s) can I use? Can someone pass me a sample CURL instructions >>>>>> please. >>>>>> >>>>> ReferencedSites are read only. Via the RESTful interface there is no >>>>> possibility to delete/update entities. >>>>> Currently there is also no possibility to control the behavior of the >>>>> local cache. >>>>> >>>>> The preferred way to provide this feature would be to use the HTTP >>>>> Cache-Control headers [1] as described by [2]. >>>>> This would allow to update the local cache by adding the >>>>> "Cache-Control: max-age=0" to a request. >>>>> >>>>> To support this one would also need to extend the interface of the >>>>> ReferencedSite to allow to parse CacheControl parameters along with >>>>> requests. >>>>> >>>>> If this would solve your issue I can create an JIRA issue for this new >>>>> feature. >>>>> >>>>> best >>>>> Rupert Westenthaler >>>>> >>>>> [1] http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9 >>>>> [2] >>>>> http://incubator.apache.org/stanbol/docs/trunk/entityhub/entityhubandlinkeddata.html#cache-controlhttpwwww3orgprotocolsrfc2616rfc2616-sec14htmlsec149 >>>>> >>>>>> >>>>>> >>>>>> Thanks >>>>>> >>>>>> >>>>>> >>>>>> Rohana >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> Sign-up for our monthly newsletter www.gossinteractive.com/newsletter >>>>>> >>>>>> Registered Office: c/o Bishop Fleming, Cobourg House, Mayflower Street, >>>>>> Plymouth, PL1 1LG. Company Registration No: 3553908 >>>>>> >>>>>> This email contains proprietary information, some or all of which may be >>>>>> legally privileged. It is for the intended recipient only. If an >>>>>> addressing or transmission error has misdirected this email, please >>>>>> notify the author by replying to this email. If you are not the intended >>>>>> recipient you may not use, disclose, distribute, copy, print or rely on >>>>>> this email. >>>>>> >>>>>> Email transmission cannot be guaranteed to be secure or error free, as >>>>>> information may be intercepted, corrupted, lost, destroyed, arrive late >>>>>> or incomplete or contain viruses. This email and any files attached to >>>>>> it have been checked with virus detection software before transmission. >>>>>> You should nonetheless carry out your own virus check before opening any >>>>>> attachment. GOSS Interactive Ltd accepts no liability for any loss or >>>>>> damage that may be caused by software viruses. >>>>>> >>>>>> wn virus check before opening any attachment. GOSS Interactive Ltd >>>>>> accepts no liability for any loss or damage that may be caused by >>>>>> software viruses. >>>>>> >>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> | Rupert Westenthaler [email protected] >>>>> | Bodenlehenstraße 11 ++43-699-11108907 >>>>> | A-5500 Bischofshofen >>>>> >>>> >>>> >>>> >>>> -- >>>> | Rupert Westenthaler [email protected] >>>> | Bodenlehenstraße 11 ++43-699-11108907 >>>> | A-5500 Bischofshofen >>>> >>>> >>>> >>>> >>>> Sign-up for our free client webinar: http://www.gossinteractive.com/webinar >>>> >>>> Registered Office: c/o Bishop Fleming, Cobourg House, Mayflower Street, >>>> Plymouth, PL1 1LG. Company Registration No: 3553908 >>>> >>>> This email contains proprietary information, some or all of which may be >>>> legally privileged. It is for the intended recipient only. If an >>>> addressing or transmission error has misdirected this email, please notify >>>> the author by replying to this email. If you are not the intended >>>> recipient you may not use, disclose, distribute, copy, print or rely on >>>> this email. >>>> >>>> Email transmission cannot be guaranteed to be secure or error free, as >>>> information may be intercepted, corrupted, lost, destroyed, arrive late or >>>> incomplete or contain viruses. This email and any files attached to it >>>> have been checked with virus detection software before transmission. You >>>> should nonetheless carry out your own virus check before opening any >>>> attachment. GOSS Interactive Ltd accepts no liability for any loss or >>>> damage that may be caused by software viruses. >>>> >>>> >>>> >>>> >>> >>> >>> >>> -- >>> | Rupert Westenthaler [email protected] >>> | Bodenlehenstraße 11 ++43-699-11108907 >>> | A-5500 Bischofshofen >>> >> >> >> >> -- >> | Rupert Westenthaler [email protected] >> | Bodenlehenstraße 11 ++43-699-11108907 >> | A-5500 Bischofshofen >> > > > > -- > | Rupert Westenthaler [email protected] > | Bodenlehenstraße 11 ++43-699-11108907 > | A-5500 Bischofshofen > -- | Rupert Westenthaler [email protected] | Bodenlehenstraße 11 ++43-699-11108907 | A-5500 Bischofshofen
