stanbol-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rohana Rajapakse" <Rohana.Rajapa...@gossinteractive.com>
Subject RE: Delete, Update locally cached entities
Date Mon, 08 Aug 2011 08:36:07 GMT
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.

Regards

Rohana

-----Original Message-----
From: Rupert Westenthaler [mailto:rupert.westenthaler@gmail.com] 
Sent: 08 August 2011 09:18
To: stanbol-dev@incubator.apache.org
Subject: Re: Delete, Update locally cached entities

Hi

On Fri, Aug 5, 2011 at 5:52 PM, Rohana Rajapakse
<Rohana.Rajapakse@gossinteractive.com> 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:rupert.westenthaler@gmail.com]
> Sent: 02 August 2011 16:59
> To: stanbol-dev@incubator.apache.org
> Subject: Re: Delete, Update locally cached entities
>
> Hi
>
> On Tue, Aug 2, 2011 at 5:06 PM, Rohana Rajapakse
> <Rohana.Rajapakse@gossinteractive.com> 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:rupert.westenthaler@gmail.com]
>> Sent: 02 August 2011 15:12
>> To: stanbol-dev@incubator.apache.org
>> Subject: Re: Delete, Update locally cached entities
>>
>> On Tue, Aug 2, 2011 at 3:07 PM, Rohana Rajapakse
>> <Rohana.Rajapakse@gossinteractive.com> 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:rupert.westenthaler@gmail.com]
>>> Sent: 02 August 2011 12:49
>>> To: stanbol-dev@incubator.apache.org
>>> Subject: Re: Delete, Update locally cached entities
>>>
>>> On Tue, Aug 2, 2011 at 1:20 PM, Rohana Rajapakse
>>> <Rohana.Rajapakse@gossinteractive.com> 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:rupert.westenthaler@gmail.com]
>>>> Sent: 02 August 2011 11:06
>>>> To: stanbol-dev@incubator.apache.org
>>>> Subject: Re: Delete, Update locally cached entities
>>>>
>>>> Hi
>>>>
>>>> On Tue, Aug 2, 2011 at 10:42 AM, Rohana Rajapakse
>>>> <Rohana.Rajapakse@gossinteractive.com> 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             rupert.westenthaler@gmail.com
>>>> | Bodenlehenstraße 11                             ++43-699-11108907
>>>> | A-5500 Bischofshofen
>>>>
>>>
>>>
>>>
>>> --
>>> | Rupert Westenthaler             rupert.westenthaler@gmail.com
>>> | 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             rupert.westenthaler@gmail.com
>> | Bodenlehenstraße 11                             ++43-699-11108907
>> | A-5500 Bischofshofen
>>
>
>
>
> --
> | Rupert Westenthaler             rupert.westenthaler@gmail.com
> | Bodenlehenstraße 11                             ++43-699-11108907
> | A-5500 Bischofshofen
>



-- 
| Rupert Westenthaler             rupert.westenthaler@gmail.com
| Bodenlehenstraße 11                             ++43-699-11108907
| A-5500 Bischofshofen

Mime
View raw message