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