Thanks all !

Martynas : I take a look on your application/framework. It means the
VUE is described in RDF as templates, isn'it? I will have to design by
example Quizz etc in RDF ? I guess I need some more hours to decript
how work Graphity, and I will do that when I get bored about
sesame/jena JPA and other reasoners stuff !

Ashish : " what benefit do you get converting Javabeans to RDF? "
- jbeans -> RDF : is a way to get data persistance.
- RDF because I need SWRL rule or equivalent on the data (say propose
learning support to student based on rules)
- I need OWL reasonning inferencing too.
=> OOP, and javabeans (JPA), is a stable and ubiquitous way to manage
the model of data. In a classical MVC architecture, with JSP and EL,
it's a simple and eprouved way to design a website.
Then thanks to JPA (PA4RDF or Alibaba with sesame), CURL actions will
be OOP. I will work on complex jbeans : QUIZZ and various type of
exercices and need complex object manipulations.
By the way, this do not mean all fonctionnality will be done with JPA.
By example, I will add a SWRL module (based on pellet?), that may
retrieve data with SPARQL, and reason on that statements.


Claude : Thanks for quick answer. I am comparing Alibaba
(https://bitbucket.org/openrdf/alibaba/src/master/object-repository/ =
ELMO's successor) VS your PA4RDF.
1)An interesting annotation in Alibaba is the @SPARQL annotation. I
guess the only way doing that with PA4RDF is an abstract/concrete
class with ARQ query inside ? Is there a way to get the URI of he
instance inside it ? (alibaba has the $this used in @SPARQL
annotation)
2)What about ordoned lists in PA4RDF ? Is Colllection<valueClass>
getX() keeps order ? Alibaba do not use collection.
3)On this page http://pa4rdf.sourceforge.net/examples/concreteClassSubject.html,
is this a mistake ?
"Iterator<String> authors = book.getAuthors();" should be
"Iterator<String> authors = book.getAuthor();" Right ?
4) " as setting the bean properties should be performed inside a
transaction and the transaction committed when all the properties have
been updated" : I guess you mean model.begin() / model.commit(). Then
a last question. Alibaba give ability to manage connection and model.
Is the only way to access the same model in the aplication is using a
static model (by example initialized when web appli begin ?)
5) The last one : When you say in your introduction : " map a RDF
triple (subject, predicate, object) to a Plain Old Java Object
(POJO)", this do not say that PA4RDF javabeans can't extends other
PA4RDF javabeans ? eg : JbeanUser <- JbeanStrudent


Thanks for answers



Nicolas PARIS


2015-01-07 12:02 GMT+01:00 Claude Warren <[email protected]>:
> I was asked to comment on this thread and so as the developer for PA4RDF I
> will.
>
> PA4RDF was originally an interface only mapping: Annotated Interface
> directly mapping onto the RDF structure with the Subject of the triples
> being the instance of the interface and various properties of the subject
> mapped to methods.  PA4RDF did all the mapping from RDF data types to Java
> data types and back.  It also had a nomenclature to distinguish between
> properties that should be single instance and those that can be multiple
> instance.
>
> The use of Interface only became to unwieldy so it has been extended to
> handle abstract and concrete classes.  It still handles all the conversions
> and ensuring that the property is single instance when required.
>
> It was later extended again to handle triggers (of a sort) wherein specific
> methods can be called after the getter, setter or remover methods.  This is
> to assist the developer in maintaining internal consistency.
>
> Now as to weather or not it works in the MVC environment.  My experience is
> that it does.  That was primarily why I wrote it.  I started out by looking
> at using the standard JPA annotations to read/write the graph but found
> that the impedance mismatch was to great.
>
> PA4RDF does not make copies of the data, it uses the Jena model interface
> directly.  Since the Resources in the Model always have access to the
> current state of the model the PA4RDF annotated beans always have access to
> the current state of the model.  They are never disconnected. (Disconnected
> operation is a planned feature).  The lack of disconnection has some impact
> on program design as setting the bean properties should be performed inside
> a transaction and the transaction committed when all the properties have
> been updated.
>
> The example cited above (
> http://pa4rdf.sourceforge.net/examples/concreteClassSubject.html) handles
> the case where there is no interface to annotate and the developer may be
> plugging PA4RDF into an existing class.
>
> For most projects with simple beans the annotated interface (
> http://pa4rdf.sourceforge.net/examples/interface.html) is a better example.
>
> If you have a requirement to process some of the properties before
> returning them (in the PA4RDF examples returning a "cite" for a book, you
> can annotate an abstract class.  You could also have the abstract class
> extend an annotated interface and that would work as well).
>
> Finally, the concrete example is also used in cases where you can not pass
> an abstract class or an interface to some other class.  I don't recall the
> specific case but I do remember encountering the case where I needed the
> ability to create a concrete class as the tool I was using would not allow
> an Abstract class or Interface to be used).
>
> I think you will find that PA4RDF works well as a replacement for JPA and
> has additional capabilities that exploit the underlying Model.  If it
> doesn't I am more than willing to accept code fixes and ideas.  Also any
> documentation would be gladly accepted.
>
> Claude Warren
>
>
>
>
>
> On Wed, Jan 7, 2015 at 6:29 AM, Ashish Nijhara <[email protected]>
> wrote:
>
>> Nicolas: It is important to understand why would you like RDF into
>> JavaBeans. I mean in that case, a regular java application with RDBMS would
>> also do the job or? So, if you consider for a second, you would have
>> Javabeans being the objects updated by the application, internally you want
>> to convert them to RDF and store them in a triple store. The architecture,
>> however correct, sounds clunky unless there is a deep reason to have such
>> an architecture and not intuitive.
>>
>> I agree with Martynas, RDF opens a lot more possibilities.
>>
>> To answer the questions
>> 1) Are there good practice or some DAO to design  ?
>> As mentioned above, what benefit do you get converting Javabeans to RDF? If
>> no benefit, then stick to one paradigm and keep it simple!!
>> 2) In term of performances, is it better to use ARQ (sparql) OR jena
>> ontologie API ?
>> For getting bulk information out, my experience has been SPARQL is better.
>> (3) is it a good choice to store all in a triple store ? (versus
>> traditional relational databases) )
>> Storing things in a triple store is better, in RDBMS you may end up using
>> Jena SDB to store triples in RDBMS which gets clunky and slow.
>>
>> On Wed, Jan 7, 2015 at 5:53 AM, Martynas Jusevičius <[email protected]
>> >
>> wrote:
>>
>> > Nicolas: fair enough. However you should know that by simply replacing
>> > the relational DB with a triplestore while using the same
>> > object-oriented programming approach you're not getting even half of
>> > the advantages of semantic technologies. RDF opens possibilities for
>> > new software design patterns.
>> >
>> > On Tue, Jan 6, 2015 at 9:37 PM, Nicolas Paris <[email protected]>
>> wrote:
>> > > Martynas : Thanks for the link. Maybe your solution is excellent, but
>> > > I don't want to lose me  : classical MVC, is a security for me and the
>> > > project.
>> > >
>> > > Olivier : The Elmo documentation is great. Do you think my application
>> > > could be done with sesame ? I mean, sesame has a triple store, a
>> > > reasoner, and looks like having a javabeans system much advanced than
>> > > jena/PA4RDF have ?
>> > > Anyway, jena/PA4RDF can actually do the job ; the documentation for
>> > > PA4RDF is just really poor.
>> > > Nicolas PARIS
>> > >
>> > >
>> > > 2015-01-06 10:48 GMT+01:00 Olivier Rossel <[email protected]>:
>> > >> Martynas,
>> > >>
>> > >> that is a bit off-topic but maybe you could organize a webinar so you
>> > >> can show us some features of graphityhq.
>> > >>
>> > >> Nicolas:
>> > >>
>> > >> honestly, i know not very much about PA4RDF,
>> > >> I use Elmo (rebranded as AliBaba) :
>> > >>
>> >
>> http://sourceforge.net/projects/sesame/files/AliBabaElmo/1.5/openrdf-elmo-1.5.zip/download
>> > >>
>> > >> There is a nice user guide in the zip file, that gives a lot of
>> details
>> > >> about how to annotate beans so the persistence is transparent.
>> > >> I think inheritance is explained too.
>> > >>
>> > >> On Tue, Jan 6, 2015 at 2:29 AM, Martynas Jusevičius
>> > >> <[email protected]> wrote:
>> > >>> Nicolas,
>> > >>>
>> > >>> I suggest you also take a look at Graphity Client:
>> > >>> https://github.com/Graphity/graphity-client
>> > >>>
>> > >>> You don't really need an object layer representing your RDF classes
>> > >>> above Jena, it is a bottleneck. You can express both the webapp
>> > >>> structure and the instance data as RDF, and define a mapping from
>> HTTP
>> > >>> access to RDF state changes over SPARQL.
>> > >>>
>> > >>> Here's an example of how that structure (sitemap ontology) looks
>> like:
>> > >>>
>> >
>> http://lists.w3.org/Archives/Public/public-declarative-apps/2015Jan/0000.html
>> > >>>
>> > >>> Here's an example of an editing interface:
>> > >>>
>> >
>> http://linkeddatahub.com/bibframe/instances?mode=http%3A%2F%2Fgraphity.org%2Fgc%23CreateMode
>> > >>>
>> > >>> Disclaimer: I'm the main developer.
>> > >>>
>> > >>>
>> > >>> Martynas
>> > >>> graphityhq.com
>> > >>>
>> > >>> On Mon, Jan 5, 2015 at 9:07 PM, Nicolas Paris <[email protected]>
>> > wrote:
>> > >>>> Thanks for answers !
>> > >>>>
>> > >>>> - About http://callimachusproject.org/ : interesting but I have to
>> > >>>> create application from scratch, because very specific
>> > >>>>
>> > >>>> - About PA4RDF : It seems very interessant. Any other tutorial,
>> > >>>> related post or tip ?
>> > >>>> Olivier, what do you exactly mean by "a bean <-> graph mapper" ?
>> > >>>> I generate an OWL ontology, that is my structure of data. I will
>> > >>>> modelise beans inspiring this structure. Say owl properties will be
>> > >>>> java class properties. And RDF class's inheritance will be mapped to
>> > >>>> java inheritance. Do you agree ?
>> > >>>> However, it appears that the POJO class of PA4RDF limits the
>> > inheritance.
>> > >>>> The example here
>> > >>>> http://pa4rdf.sourceforge.net/examples/concreteClassSubject.html
>> > >>>> could feet with user <- student  inheritance ? Or will I have to
>> > >>>> duplicate code for Teacher & Student as they inherite from User ?
>> > >>>>
>> > >>>> Thanks again for this link Olivier !
>> > >>>> Nicolas PARIS
>> > >>>>
>> > >>>>
>> > >>>> 2015-01-05 15:44 GMT+01:00 Olivier Rossel <[email protected]
>> >:
>> > >>>>> There was a discussion some weeks ago about PA4RDF.
>> > >>>>> It might be a good starting point, in you think a bean <-> graph
>> > mapper
>> > >>>>> could be useful in your case.
>> > >>>>>
>> > >>>>> Also http://callimachusproject.org/ could be another interesting
>> > >>>>> project to investigate in your  case.
>> > >>>>>
>> > >>>>> On Mon, Jan 5, 2015 at 2:41 PM, Nicolas Paris <[email protected]
>> >
>> > wrote:
>> > >>>>>> Hello,
>> > >>>>>>
>> > >>>>>> I am creating a web semantic application, were persistant data is
>> > all
>> > >>>>>> stored in triple store (TDB).
>> > >>>>>> I mean, users(foaf), parameters etc.
>> > >>>>>> This application is an e-learning application, with exercices
>> > >>>>>> proposition based on reasonners.
>> > >>>>>>
>> > >>>>>> I want to use a classic MVC design pattern (jsp / servlets /
>> > javabeans).
>> > >>>>>> So a javabeans user, teacher, and student with heritage.
>> > >>>>>> My naïve aproach would be to initialise jbeans from TDB, using
>> jena
>> > >>>>>> model getInstance etc. Or Sparql Querys with ARQ
>> > >>>>>> and my setters will do both :
>> > >>>>>> - set jbeans propertys
>> > >>>>>> - modify triple (dataset jena setProperty ; dataset commit ,  OR
>> > SPARQL querys)
>> > >>>>>>
>> > >>>>>> Example bad pseudo-code:
>> > >>>>>> Class student extends user {
>> > >>>>>> private Integer age;
>> > >>>>>> private Ressource student = myModel.getIndividual(
>> > >>>>>> "http://www.myexample.com/mySchema#student1"; );
>> > >>>>>>
>> > >>>>>> public void setAge(Integer age){
>> > >>>>>> this.age = age; //modify jbeans property
>> > >>>>>> student.setPropertyValue("http://www.myexample.com/mySchema#age
>> > ","1^^integer")
>> > >>>>>> # modify TDB valyue
>> > >>>>>> }
>> > >>>>>>
>> > >>>>>> }
>> > >>>>>>
>> > >>>>>>
>> > >>>>>> 1) Are there good practice or some DAO to design  ?
>> > >>>>>> 2) In term of performances, is it better to use ARQ (sparql) OR
>> jena
>> > >>>>>> ontologie API ?
>> > >>>>>> (3) is it a good choice to store all in a triple store ? (versus
>> > >>>>>> traditional relational databases) )
>> > >>>>>>
>> > >>>>>> Thanks a lot
>> > >>>>>>
>> > >>>>>>
>> > >>>>>>
>> > >>>>>> Nicolas PARIS
>> >
>>
>
>
>
> --
> I like: Like Like - The likeliest place on the web
> <http://like-like.xenei.com>
> LinkedIn: http://www.linkedin.com/in/claudewarren

Reply via email to