Thick Client for Fedora 4 and Content Model Architecture

48 views
Skip to first unread message

Wei Shi

unread,
Jun 30, 2015, 10:49:44 AM6/30/15
to fedora-c...@googlegroups.com
Hi,
We are currently doing development work on Fedora 3.7 instance. We use Fedora CMA heavily and the thick client is the main UI that we interact with Fedora repository.

Yesterday, I started to play with Fedora 4.2.0. The installation of web application "fcrepo-webapp-plus-rbacl-audit-4.2.0" went pretty well. But I cannot find any thick client download for Fedora 4.2.0. In addition, I cannot find the links that show me datastreams list and methods list like they did in Fedora 3.

My questions are:

Is there a thick client for Fedora 4?
Is Fedora 4 still supporting CMA? If so, what is the best way to manage them in Fedora 4?

Thanks,

Wei


Andrew Woods

unread,
Jun 30, 2015, 2:24:11 PM6/30/15
to Wei Shi, fedora-community
Hello Wei,
Thanks for your investigation of Fedora4. As you have likely noticed, Fedora4 is not just a version bump from Fedora3, but rather a completely retooled repository relying on the foundational Fedora sensibilities.

In response to your questions:
- There is no "Fedora4 thick client". The browser-based view of the repository (http:://host/context/rest/) exposes much of the Fedora4 capabilities. You should be able to browse within your repository to find all resources, datastreams or otherwise. It would be valuable to know what you would additionally like to see in such a "client". 
Also, you may be interested in experimenting with the fcrepo4-vagrant [1] box that has a Solr index and an external triplestore (Fuseki) already bundled and configured to facilitate proper search.

- Fedora4 does not support the legacy notion of CMA. Can you detail the exact functionality that you are expecting/desiring?

Regards,
Andrew

--
You received this message because you are subscribed to the Google Groups "Fedora Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email to fedora-communi...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Wei Shi

unread,
Jun 30, 2015, 5:23:29 PM6/30/15
to fedora-c...@googlegroups.com, shi...@umich.edu

Thanks Andrew.

Does the fcrepo4-vagrant include ACL and Audit features? I was not sure and chose the war with ACL and Audit features instead.

 

I think REST API should handle Object and Datastream manipulation well. In Fedora 3, In order to expose methods, I also need to associate content models to an object. Typically I add a triple in “RELS-EXT” datastream for one content model association. For example, in order to use infusionCModel methods,  I provide following triple to RELS-EXT:

 

Subjet: info:fedora/Application:infusion

Predicate: fedora-model:hasModel

Object: info:fedora/domain:infusionCModel

 

The “Application:infusion” is a PID for the infusion object. This object provides all required resources (data, js, css, xslt) to run the application

The “domain:infusionCModel” together with “domain:infusionSDef” and “domain:infusionSDep” provide interfaces and WSDL for “Application:infusion” to access other services. Currently, many services are running through SAXON engine that bundled with Fedora 3.

 

Now, my question for Fedora 4 is:\

1.       How do I associate a content model (or similar component) to a container?

2.       How do I define the interfaces that CMA provided in Fedora 3, so that my object (container) can utilize other applications’ services?


My email reply got rejected. So just paste the same email here.

 

Thanks,

 

Wei

Andrew Woods

unread,
Jun 30, 2015, 9:16:43 PM6/30/15
to Shi, Wei, Wei Shi, fedora-community
Hello Wei,
1. You can define any properties you like on F4 resources. If no validation is required, simply defining "<resource> rdf:type <some-content-model-type>" should do the trick.
* Updating properties after a resource has been created [1].
* Adding properties during resource creation [2].

2. The legacy notions of CMA do not exist in F4 (although there have been some recent discussions which may be of interest [3]). For the sake of clarity, could you describe the exact nature of other applications' services that you would like for a container to utilize. It is helpful to know about use cases that may inform potentially missing integrations.

Regards,
Andrew
[1] https://wiki.duraspace.org/display/FEDORA4x/RESTful+HTTP+API+-+Containers#RESTfulHTTPAPI-Containers-GreenPATCHModifythetriplesassociatedwitharesourcewithSPARQL-Update
[2] https://wiki.duraspace.org/display/FEDORA4x/RESTful+HTTP+API+-+Containers#RESTfulHTTPAPI-Containers-post-example3
[3] https://docs.google.com/document/d/1UHQMXgnGoIXfe33a6CM6k3IkL3SsYqzkkWBRMaJxMew/edit

On Tue, Jun 30, 2015 at 5:10 PM, Shi, Wei <shi...@med.umich.edu> wrote:

Thanks Andrew.

Does the fcrepo4-vagrant include ACL and Audit features? I was not sure and chose the war with ACL and Audit features instead.

 

I think REST API should handle Object and Datastream manipulation well. In Fedora 3, In order to expose methods, I also need to associate content models to an object. Typically I add a triple in “RELS-EXT” datastream for one content model association. For example, in order to use infusionCModel methods,  I provide following triple to RELS-EXT:

 

Subjet: info:fedora/Application:infusion

Predicate: fedora-model:hasModel

Object: info:fedora/domain:infusionCModel

 

The “Application:infusion” is a PID for the infusion object. This object provides all required resources (data, js, css, xslt) to run the application

The “domain:infusionCModel” together with “domain:infusionSDef” and “domain:infusionSDep” provide interfaces and WSDL for “Application:infusion” to access other services. Currently, many services are running through SAXON engine that bundled with Fedora 3.

 

Now, my question for Fedora 4 is:\

1.       How do I associate a content model (or similar component) to a container?

2.       How do I define the interfaces that CMA provided in Fedora 3, so that my object (container) can utilize other applications’ services?

 

Thanks,

 

Wei

**********************************************************
Electronic Mail is not secure, may not be read every day, and should not be used for urgent or sensitive issues


Egbert Gramsbergen

unread,
Jul 1, 2015, 10:39:46 AM7/1/15
to Andrew Woods, Shi, Wei, Wei Shi, fedora-community

To me, it sounds like this use case, which was also motivated from the wish to retain some CMA-like functionality:

https://wiki.duraspace.org/pages/viewpage.action?pageId=68059414

 

Egbert Gramsbergen

Wei Shi

unread,
Jul 1, 2015, 1:50:10 PM7/1/15
to fedora-c...@googlegroups.com, shi...@umich.edu, shi...@med.umich.edu
[3] is very interesting.
I use Fedora 3 as platform to host couple of my Single Page Application (SPA).

Here is my user stories:
As an application developer, I want to use Fedora to host my Single Page Application (SPA) so that
  .The UI html can be stored as datastream and presented to end user
  .The required web files (.js, .css etc) used by UI can be referenced (either in Fedora repository, or on the web)
  . SPA consumed REST services are managed by Fedora
  . SPA consumed REST services can be defined via Fedora proxy model (CMA etc.)

I am pretty much using out of box CMA features, and it satisfies what we need. Beside SAXON engine, we also created separate web applications to provide web services on the same server that Fedora installed.
In order to bind the local web service with Fedora objects, I just need to specify the address location in CMA WSDL datastream:

      <http:address location="http://localhost:8080/<mylocalwebservice>/"/>

and provide detail binding information.

Thanks,

Wei
Reply all
Reply to author
Forward
0 new messages