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
