Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DS-2061: Linked (Open) Data support for DSpace #568

merged 13 commits into from Oct 15, 2014


None yet
5 participants
Copy link

commented Jul 11, 2014

This commits adds a module dspace-rdf. The module will convert the
metadata stored in DSpace into RDF. The converted data will be provided
as serializations of RDF and a SPARQL endpoint.

This PR should not be merged yet, as there are some things left to be done. I create this PR now to share the code as early as possible. I would appreciate any comments and if possible help to get it merged into DSpace.

You can find more information on this contribution here:

pnbecker and others added some commits Mar 4, 2014

Export the repository's contents as RDF into the Semantic Web.
This commits adds a module dspace-rdf. The module will convert the
metadata stored in DSpace into RDF. The converted data will be provided
over a webinterface and a SPARQL endpoint.
Enhanced and renamed the DSORelationsConverterPlugin into SimpleDSOR...
Renamed the DSORelationsConverterPlugin into
Overhault the Plugin: it can be configured now and it can create
multiple links per DSO Relation.
Uses all possible identifiers to generate URIs.
This commit enables dspace-rdf to use all PersistentIdentifiers minted
by DSpace and not only handles. It makes advantage of the changes
introduced to DSpace by DS-1990. Persistent Identifers should and will
be used as fully functional http URIs only (e.g. a DOI will be used in
the form<doi> and not as doi:<doi>).
Repaired the build process after rebasing.
The dspace rdf war project wasn't build anymore as the activation of the
modules changed with the Mirage 2 contribution.
Enhanced the dspace-rdf command line interface.
Added the RDFizer to the launcher.xml configuration.
Added a command --convert-all.
Prints help if no options were given instead of starting reconvertion of
all content (which may take a lot of time).

@pnbecker pnbecker force-pushed the pnbecker:dspace-rdf branch to a448139 Sep 11, 2014


This comment has been minimized.

Copy link
Member Author

commented Sep 11, 2014

I just remerged this PR again and enhanced it further.

pnbecker added some commits Sep 22, 2014

Repackaging: moved everything into dspace-api except the webapp.
The modules dspace-rdf contains the webapp to provide the converted data
as rdf serialization only. Everything else (classes for conversion,
storage, content negotiation, ...) moved into dspace-api so it can be
used easily by every other part of DSpace.

This comment has been minimized.

Copy link

commented Oct 15, 2014

+1 I've been able to test this feature.

Some notes on this, as is. It requires you to run your own triple-store service. (i.e. this doesn't store/serve the data out of the box, but you run something like Apache Fuseki.
bin/fuseki-server --localhost --config /dspace/config/modules/rdf/fuseki-assembler.ttl
11:06:58 INFO Dataset path = /dspace
11:06:58 INFO Fuseki 1.1.1 2014-10-02T16:36:17+0100
11:06:58 INFO Incoming connections limited to localhost
11:06:58 INFO Started 2014/10/15 11:06:58 EDT on port 3030

Configure config/modules/rdf.cfg to have the uri to the triple store:
public.sparql.endpoint = http://localhost:3030/sparql

Then populate data:

/dspace/bin/dspace rdfizer -c
Lots of data will populate:
11:07:59 INFO [2] PUT http://localhost:3030/dspace/data?graph=http%3A%2F%2Flocalhost%3A8080%2Frdf%2Fresource%2F123456789%2F9178
11:07:59 INFO [2] 201 Created (114 ms)

I've added webapp /dspace/webapps/rdf to context path /rdf.

View the turtle of an item:

Using Chrome extension RestClient:
GET http://localhost:8080/xmlui/handle/10827/12771
Accept: text/turtle

And your turtle data looks like:

@prefix dc:    <> .
@prefix foaf:  <> .
@prefix bibo:  <> .
@prefix xsd:   <> .
@prefix void:  <> .
@prefix rdf:   <> .
@prefix dspace: <> .
@prefix dcterms: <> .

        dspace:hasBitstream        <http://localhost:8080/xmlui/bitstream/10827/12771/1/PRT_Map_Lee_2009.pdf> ;
        dspace:isPartOfCollection  <http://localhost:8080/rdf/resource/10827/10501> ;
        dc:date                    "2014-01-31T18:22:06Z"^^xsd:dateTime ;
        dc:format                  "application/pdf" ;
        dc:language                "English" ;
        dc:publisher               "South Carolina State Library" ;
        dc:rights                  "This is a government document; please see the rights statement available here:" ;
        dcterms:available          "2014-01-31T18:22:06Z"^^xsd:dateTime ;
        dcterms:created            "2009"^^xsd:dateTime ;
        dcterms:hasPart            <http://localhost:8080/xmlui/bitstream/10827/12771/1/PRT_Map_Lee_2009.pdf> ;
        dcterms:isPartOf           "South Carolina State Documents Depository" ;
        dcterms:isPartOf           <http://localhost:8080/rdf/resource/10827/10501> ;
        dcterms:issued             "2009" ;
        dcterms:title              "Map Lee Pascal - 2009" ;
        bibo:handle                "hdl:10827/12771" ;
        void:sparqlEndpoint        <http://localhost/fuseki/dspace/sparql> ;
        foaf:homepage              <http://localhost:8080/jspui> .

So, I'm fine with this as-is. Hopefully another PR can come for DSpace 5 that adds the sesame triple store so this can work out of the box. Such as:


This comment has been minimized.

Copy link

commented Oct 15, 2014

Just reconfirming, I am +1 on this feature as well.


peterdietz added a commit that referenced this pull request Oct 15, 2014

Merge pull request #568 from pnbecker/dspace-rdf
DS-2061: Linked (Open) Data support for DSpace

@peterdietz peterdietz merged commit c2e7ccb into DSpace:master Oct 15, 2014

1 check passed

continuous-integration/travis-ci The Travis CI build passed

kosarko pushed a commit to kosarko/DSpace that referenced this pull request Dec 15, 2016

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.