Giter Club home page Giter Club logo

openskos's Introduction

Build Status

1. Install the OpenSKOS code


Docker development

Docker images were added to the OpenSkos project in 2017. If you wish to develop using docker, please proceed to section 8


Copy the code to a location of your choice.

Make sure all files are readable by your webserver. Make sure the directories data/uploads, cache, public/data/icons/assigned and public/data/icons/uploads are writable for the webserver.

For security reasons you can place the data directory outside your webserver's document root.

1.1 Composer

Run composer install to install some dependencies such as zend framework 1.12

1.2 Configuration

To configure OpenSKOS you have to rename:

APPROOT/application/configs/application.ini.dist

to

APPROOT/application/configs/application.ini

Now you can edit the APPROOT/application/configs/application.ini.

You can have separate config settings for specific deployments. The configuration section marked by the Environment Variable APPLICATION_ENV (see 2.1 Setting Up Your VHOST). Most settings are self explanatory.

If you experience any problems you may want to modify settings in the config, to show you more verbose error messages:

    resources.frontController.params.displayExceptions=1
    phpSettings.display_errors = 1

1.2.1 OAI-PMH setup

OpenSKOS includes a OAI harvester. To configure OAI Service providers, use the "instances" part of the configuration. Two types of instances are supported:

  • openskos (instances of OpenSKOS)
  • external (any OAI-PMH provider that provides SKOS/XML-RDF data)

The setup for "openskos" types is easy:

    instances.openskos.type=openskos
    instances.openskos.url=http://HOSTNAME
    instances.openskos.label=YOUR LABEL

For "external" types use this syntax:

    instances.example1.type=external
    instances.example1.url=http://HOSTNAME
    instances.example1.label=EXAMPLE LABEL
    #optional, default=oai_rdf
    instances.example1.metadataPrefix=METADATAPREFIX
    #optional:
    instances.example1.set=SETSPEC

You can define multiple instances by using a different key (in the above example the key example1 is used).

1.2.2 ConceptScheme ordering

The application.ini allows you to change the order in which concept schemes are listed everywhere. The scheme order is made in this sequence:

  • group the schemes according to their collection
  • order the groups by the desired collection order
  • sort the schemes inside each group alphabetically

The collection order can be set in the ini by setting the editor.schemeOrder.collections[]="<collectionUri>" All unlisted collections will be ordered after the listed ones. All listed collections that re not present in the DB will be skipped. In this way the ini supports collection ordering for more than 1 instances.

2. Webserver with PHP support

You can install your favourite webserver with PHP support. All development and testing was done using Apache/2.2.15 with PHP 5.3.8 Make sure your PHP installation supports at least one supported Database adapters (see http://framework.zend.com/manual/en/zend.db.adapter.html or otherwise: https://docs.zendframework.com/zend-db/adapter/)

2.1 Setting Up Your VHOST

The following is a sample VHOST you might want to consider for your project.

<VirtualHost *:80>
   DocumentRoot "/PATH/TO/CODE/public"
   ServerName YOUR.SERVER.NAME

   # This should be omitted in the production environment
   SetEnv APPLICATION_ENV development

   <Directory "/PATH/TO/CODE/public">
       Options Indexes MultiViews FollowSymLinks
       AllowOverride All
       Order allow,deny
       Allow from all
   </Directory>

</VirtualHost>

3. Database setup

Install your choice of Zend Framework supported Database engine (see http://framework.zend.com/manual/en/zend.db.adapter.html or otherwise: https://docs.zendframework.com/zend-db/adapter/). The credentials to access your database can be configured in the application's configuration.

Once you have created an empty database, you have to run the SQL script APPROOT/data/openskos-create.sql to create the db-tables.

You also have to run the php-script to create a tenant:

php APPROOT/tools/tenant.php --code INST_CODE --name INST_NAME --email EMAIL --password PWD create

With this account created you can login into the dashboard, where you can manage all the other entities of the application.

4. Apache Jena Fuseki setup

Openskos is compatible with Fuseki 2 or Fuzeki 3 for storage. It has been tested up to Fuzeki 3.8 (the latest stable version at time of writing)

Installing Fuseki 2 for development purposes:

  1. Download Fuseki 2 from here download
  2. Install stand alone fuseki server. The instructions are the same as on getting started page
  3. Unpack the downloaded file with unzip or tar zxfv to a <fuseki folder> of your choice
  4. chmod +x fuseki-server
  5. Symlink or copy the content of: <openskos folder>/data/fuseki/configuration/ to <fuseki folder>/run/configuration/
  6. Go to <fuseki folder> and run the server with ./fuseki-server --update
  7. The docs say that Fuseki requires Java 7, but if you have the error Unsupported major.minor version 52.0 try updating your Java, or go for Java 8 directly.
  8. Now you will have the fuseki server up and running on http://localhost:3030/ with "openskos" dataset defined. This is also the default config in openskos' application.ini.dist - item sparql

4.1 Jena Updates

Several bug fixes were made to the rules/openskos.ttl file in October 2018, on both the OpenSkos 2.2 (Master at time of update ) and Meertens Merge (Development at time of update) branches. When upgrading to these versions, please update the configuration files on the Jena server to the versions located in ./data/fuseki/configuration.

5. Apache Solr Setup

You have to have a java VM installed prior to installing Solr! The version of Solr used during development was 7.4.0. Other versions going back to Solr 4 are supported, but it will be necessary to adapt the Solr configuration files to the syntax for these versions.

http://www.apache.org/dyn/closer.cgi/lucene/solr/

  • go to the example directory and create a directory named openskos
  • copy the data/solr/conf directory of the OpenSKOS checkout to the SOLR-INSTALL_DIR/example/openskos directory

You can now start Solr (in this example with 1,024 MB memory assigned):

    java -Dsolr.solr.home="./openskos" -Xms1024m -Xmx1024m -jar start.jar

5.1 Solr Updates

The Solr configuration file was substantially altered during the Meertens Merge project. If upgrading, you will need to take the example solrconfig.xml and schema.xml from ./data/solr, and adapt them to your Solr version.

After updating the configuration, you should delete the contents of the Solr database and re-index using the ./tools/jena2Solr.php script. If you skip this step, OpenSkos will remain functional, but the internal content of the Solr core will become inconsistent as records are updated.

6. Data Ingest

Once you have the application running you can start adding data, managed in collections.

You can create a collection in the dashboard.

There are three ways to populate a collection:

6.1 REST-interface

Send data via the REST-API, e.g. like this:

curl -H "Accept: text/xml" -X POST -T sample-concept.rdf http://localhost/OpenSKOS/public/api/concept

You find the required format of the input data described in the API-docs under: http://openskos.org/api#concept-create

You may send only one concept per call. Also, you have to identify the tenant and provide the API key, which you assign to the user in the dashboard.

6.2 Uploader

Upload a dataset (a SKOS/RDF file) via a form in the dashboard:Manage collections. Here you can provide many concepts within one file (XPath: /rdf:RDF/rdf:Description)

Once you successfully upload the file, it is scheduled for import, as seen in dashboard:Manage jobs.

The import job can be started with ./tools/jobs.php, a CLI script intended to be run with a Cron like task runner.

6.3 OAI ???

Third possiblity is to replicate an existing dataset via OAI-PMH, either from other OpenSKOS-instances or from an external source providing SKOS-data.

??? For this, you set the [OAI baseURL]-field of a collection to the OAI-PMH endpoint of an external provider and let the source be harvested.

The harvest job can be started with ./tools/harvest.php, another CLI script meant to be run as a cron-task. ???

6.4 Migrate from OpenSKOS v1

It is possible to migrate the data from the SOLR core used by a OpenSKOS v1 instance directly into a v2 instance

tools/migrate.php --endpoint http://<solr server>:8180/ciss/<core name>/select

Once this is complete the data from the v1 instance will be available in the triple store used by OpenSKOS v2.

6.5 API Documentation

Generate API Documentation

npm install
npm run doc

Visit: http://example.com/apidoc/

6.6. Using the API

Full HTML documentation of the API is supplied and is available in HTML at <baseruri>/apidoc

7. Development

7.1. Migration from OpenSKOS-1 to OpenSKOS-2.2

WARNING: It is very strongly recommended to back up all data before performing the following steps

In OpenSkos 2.2 Tenants and Collections in MySQL have been migrated from MySQL to the Jena triple store.

To migrate from OpenSKOS 1.0 or 2.1 to 2.2, first read sections 4.1 and 5.1 about updating the Jena and Solr configurations. Both steps are necessary when upgrading to OpenSkos 2.2

Then perform the following steps:

-- /tools/migrate_tenant_collection.php (migrates tenants and collections from MySQL to institutions and sets of Triple store)

-- optionally /tools/labelsToXl.php (this is a picturae script slightly extended by Meertens), if skos xl labels are demanded.

Examples of the corresponding command lines are:

php migrate_tenant_collection.php --db-hostname=localhost --db-database=geheim 
--db-password=geheim --db-username=ookgeheim --debug=1

Adding skos xl labels is also possible since version 2.1. To activate, first edit the tenant to enable SkosXL, and then update Jena with:

labelsToXl.php –add=1

The SOLR schema.xml file has been updated in version 2.2. Having completed the migration, please empty the core, and then update the schema.xml file. Then fill the Solr database with the script:

php tools/jena2solr.php

Max notations are now maintained in a separate MySQL table. Use the script ./data/dbchanges/20180724.sql to update the db schema.

Then execute: php tools/updateMaxNotation.php

-- Publisher URI And extra triple needs to be added to concepts to allow continued functioning of OpenSKOS.

php tools/fillConceptPublisher.php

7.2. Import (/tools/skos2openskos.php)

Example of a command line:

php skos2openskos.php --setUri=http://htdl/clavas-org/set 
--userUri=http://localhost:89/clavas/public/api/users/4d1140e5-f5ff-45da-b8de-3d8a2c28415f 
--file=clavas-organisations.xml

8 Development using Docker

TL;DR;

composer install [--ignore-platform-reqs]
php vendor/bin/phing config

docker network create openskos
docker-compose up 

# go to localhost:9001 and create a dataset matching in name with application.ini sparql.queryUri if it's missing

sudo chmod 777 data/solr
sudo chmod 666 data/solr/*
sudo chown -R 8983:8983 data/solr
docker exec -it openskos-php-fpm php vendor/bin/phing solr.create.core
docker exec -it openskos-php-fpm php tools/tenant.php --code CODE --name NAME --email EMAIL --password PASSWORD create
docker exec -it openskos-php-fpm php tools/jena2solr.php

# go to localhost:9000 and log in using your just-created credentials

8.1 Installing docker

To test / develop the application go to the root folder, and run:

docker-compose up
composer install
docker exec -it openskos-php-fpm ./vendor/bin/phing install.dev

8.2 Updating the configuration

Then copy the file ./application/configs/application.ini.dist to ./application/configs/application.ini

Under the section ; Solr configuration: add the following:

solr.host=openskos-solr
solr.port=8983
solr.context=/solr/openskos

Under the section '; Apache Jena Fuseki configuration:' add the following

sparql.queryUri=http://openskos-jena-fuseki:3030/openskos/query
sparql.updateUri=http://openskos-jena-fuseki:3030/openskos/update

Configuring Jena

You can then create an empty graph with the name openskos in the Jena interface at http://localhost:9001. The admin username:password combination is admin and admin. Here you can create a persistent dataset named openskos

Under the section ; Database configuration: add the following

resources.db.adapter=pdo_mysql
resources.db.params.host=openskos-mysql
resources.db.params.username=root
resources.db.params.password=secr3t
resources.db.params.charset=utf8
resources.db.params.dbname=openskos
resources.db.isDefaultTableAdapter = true

8.3 Running OpenSkos

Create a test tenant / user in the openskos application

docker exec -it openskos-php-fpm php ./tools/tenant.php create -e development --code=pic --name=Picturae [email protected] --password=test

Now you can login on http://localhost:9000/editor/login

openskos's People

Contributors

bencomp avatar benhillier avatar cdekok avatar dthornley avatar gsergiu avatar maldimirov avatar menzowindhouwer avatar mightymax avatar picturae-build avatar rwd avatar vronk avatar wmelder avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

openskos's Issues

Slow response when searching

Several people, including myself, observed that searching in the OpenSKOS editor is slow, especially when a large number of Concepts match the query.

Implicit Semantic Relation not correct

Hi there,

When I look at the detail page http://openskos.beeldengeluid.nl/api/concept/042db8a6-33f1-c7e8-0c0e-f03eec330972.html
I see a field with the "title implicit semantic relation" with a skos:related that is not right.
It used to be right but because the underlying concept has changed this skos:related relation can not be there anymore. It points to a term that was a concept before (and it was a RT before), but is now an altLabel. Somehow this should be updated, because the term isn't a concept anymore, so it cannot have relations.

Regards,
Willem

Looking for openskos RDF schema

I see in the RDF triples some openskos specific vocabulary (e.g openskos:inSkosCollection). Can you point me to the schema defining these? I assume it's in this repository but didn't know where to look exactly.

validation error datetime

Hi there,

one of the developers asked me to post this question.. it's in Dutch.. it seems quite obvious that we have a format issue here with responseDate... looks some kind of daylight savings or time zone issue... I don't know.. haven't dug into it yet..

regards,
Willem

Ik loop tegen iets geks aan. Ik heb de OAI-PMH XSD gedownload van: (http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd) en ben bezig om de XML die ik terug krijg van OpenSKOS met de call:
(http://openskos.org/oai-pmh?verb=ListRecords&metadataPrefix=oai_rdf&from=2011-09-01T12:00:00Z)

Hierbij loop ik echter tegen het probleem aan dat deze niet valideert tegen de xsd? Het ging eerst in code niet goed maar ook XMLSpy geeft aan dat de XML niet valide is volgens dit schema. De exacte melding is:

Value '2012-02-13T15:26:06+0100' is not allowed for element .
Hint: A valid value would be '2001-12-17T09:30:47Z'.
Error location: OAI-PMH / responseDate
Details
cvc-datatype-valid.1.2.1: For type definition 'xs:dateTime' the string '2012-02-13T15:26:06+0100' does not match a literal in the lexical space of built-in type definition 'xs:dateTime'.
cvc-simple-type.1: For type definition 'xs:dateTime' the string '2012-02-13T15:26:06+0100' is not valid.
cvc-type.3.1.3: The normalized value '2012-02-13T15:26:06+0100' is not valid with respect to the type definition 'xs:dateTime'.
cvc-elt.5.2.1: The element is not valid with respect to the actual type definition 'xs:dateTime'.

Doe ik iets verkeerd of heb enig idee waar hem dit in zit?

Master branch: http://accept.openskos.beeldengeluid.nl.pictura-dp.nl/api/find-concepts?q=ab&fl=uri

The same issue like at Meertens branch: falilure at
http://accept.openskos.beeldengeluid.nl.pictura-dp.nl/api/find-concepts?q=ab&fl=uri

Personally I have fixed it at Meertens branch by adding an "if" to OpenSkos2/Api/Response/ResultSet/RdfResponse.php on line 95:
if ($skosResource !== null) {
// to bypass the case when no childNodes at all, when only uri is /requested
foreach ($skosResource->childNodes as $child) {
$skosResource->parentNode->appendChild($child->cloneNode(true));
}
$resource->removeChild($skosResource);
}

querying for a specific field e.g. prefLabel does not seem to work

Hi all,

I want to do something similar to the instruction:

"Once the user selects a label from the autocomplete list, you have to lookup the matching Concept. You can do this by querying the find API with the selected label, for example if the user selects the label "Dantons Dood":
/api/find-concepts?q=prefLabel:"Dood Paard"&fl=uri "

but it seems that querying on the prefLabel or other fields does not work for me. For instance I'm getting results for:

openskos.org/api/find-concepts?q="zeelieden"&format=json

but NOT for:

openskos.org/api/find-concepts?q=prefLabel:"zeelieden"&format=json

and I'm sure there is at least one result, which has "zeelieden" for the prefLabel.

Am I doing something wrong or is this a bug?

Kind regards,

Jaap

autocomplete needs parameters to filter results

Currentlty the autocomplete API call will return results from all concept schemes or collections. It should become possible to specify those, i.e., to limit the results to a specific vocabulary.

openskos/public/api/dut will now return any concept with a label containing dut

openskos/public/api/dut?conceptScheme=http://example.com/myVocab should limit the result to only concepts who are a member of the http://example.com/myVocab concept scheme. The same can be done for collections, sets and tenants.

documentation improvement

Install document should bear below info ,

In case of apache 2.4

Order allow,deny
Allow from all

needs to be replaced with

Require all granted

conflicted tenant information on creation is not blocked

A concept can have one and only one tenant. However, now when a concept is created it is possible to mention two different tenants: as the request parameter and as an openskos:tenant element in the body. The tenant is set as in the openskos:tenant element. E.g (replace uuid!)

https://openskos.meertens.knaw.nl/ccrtest/api/concept?tenant=meertens&collection=clarin&key=

<?xml version="1.0" encoding="utf-8" ?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:skos="http://www.w3.org/2004/02/skos/core#" xmlns:openskos="http://openskos.org/xmlns#" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:dcmi="http://dublincore.org/documents/dcmi-terms/#" > <rdf:Description rdf:about="http://hdl.handle.net/11148/126">
<rdf:type rdf:resource="http://www.w3.org/2004/02/skos/core#Concept"/>
<skos:prefLabel xml:lang="nl">testPrefLable_2277</skos:prefLabel>
<skos:inScheme  rdf:resource="http://meertens/scheme/example1"/>
<openskos:collection rdf:resource="https://openskos.meertens.knaw.nl/ccrtest/api/collection/meertens:clarin"/>
<openskos:tenant>mi</openskos:tenant>
</rdf:Description>
</rdf:RDF>

configuratie application database

Hi there,

This issue is about running a local instance of the OpenSkos repository. I used my own Windows machine to install all necessary components and ran into the following error message:

http://localhost:81/oai-pmh

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'openskos.collection' doesn't exist

What tables need to be created for openskos in the database?

all help is welcome!

regards,
Willem

Uploader

Hello everyone! I am testing OpenSKOS with Docker and it's great ! I would have a question regarding the uploader a skos file in dashboard:Manage collections . I don't get it there is a button for the uploading my turtle file do you have a manual to use OpenSKOS? I have an error for the manage job I don't know if it's normal .Thank you very much.
image
image

Question about retrieving collections and schemes + questions on FoLiA Set Definition interoperability

I couldn't find this in the documentation so would like to ask it here:

  • Can I retrieve a SKOS Collection by URI?
  • Can I retrieve all concepts pertaining to a collection?
  • Can I retrieve all collections pertaining to a collection?
  • Can I retrieve a SKOS ConceptScheme by URI?
  • Can I retrieve all concepts pertaining to a concept scheme?

When I try to query a collection by URI through find-concepts?id= (not sure if that's supposed to work, it's not a concept after all), I encounter issue #64

Can't upload data

Hi,

the upload facilities seem to be missing from collection management. I should except these at /dashboard/collections.

regards,
Willem

no default status assignment on creation of the concept

When a new concept is created via API without a status in the body, the status"Candidate should be assigned to it by default. This is not the case either in openskos1 or in openskos2. Example request:

http://editor.openskos.org/api/concept?autoGenerateIdentifiers=true&tenant=beg&collection=test&key=

The body:

<?xml version="1.0" encoding="UTF-8"?>  <rdf:RDF xmlns:dcterms="http://purl.org/dc/terms/" xmlns:ns0="http://dublincore.org/documents/dcmi-terms/#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:skos="http://www.w3.org/2004/02/skos/core#" xmlns:openskos="http://openskos.org/xmlns#">
<rdf:Description>
  <rdf:type rdf:resource="http://www.w3.org/2004/02/skos/core#Concept"/>
  <dcterms:creator rdf:resource="http://example.org/someguy"/>
  <skos:prefLabel xml:lang="nl">test-create-with-creator-1</skos:prefLabel>
  <skos:scopeNote xml:lang="nl">Nederlands</skos:scopeNote>
  <skos:example xml:lang="nl">example test</skos:example>
  <skos:definition xml:lang="nl">definition!</skos:definition>
  <skos:editorialNote xml:lang="nl">testje (voor def ingevoegd)</skos:editorialNote>
  <openskos:set rdf:resource="http://editor.openskos.org/api/collections/beg:test"/>
 <skos:inScheme rdf:resource="http://example.org/iets"/>
</rdf:Description>
</rdf:RDF>

Shibboleth ePPN field blocks creation of new users

When creating a new user it sometimes is not sufficient to complete all required fields. The system simply does not create the user, without an error message.

Inspection at the MySQL database level showed, that it seems to be impossible to create a new user database record with an empty eppn field. Error message:

MySQL said: [Documentation]
#1062 - Duplicate entry 'meertens' for key 'eduPersonPrincipalName'

Work-around: specify a unique eppn in the OpenSKOS Editor, even if you don't need it.

resumptionToken should be empty at end of list

Hi There,

here's another issue, which seems to me like a bug, from one of the developers (in Dutch):

"Ik loop tegen een nieuw probleem aan bij het harvesten. Wanneer je een call doet als: http://openskos.org/oai-pmh?verb=ListRecords&metadataPrefix=oai_rdf&from=2011-09-01T12:00:00Z

Dan zie je helemaal onderaan in de XML de omvang van de totale lijst + een token voor de volgende 100:

YTo0OntzOjQ6InZlcmIiO3M6MTE6Ikxpc3RSZWNvcmRzIjtzOjE0OiJtZXRhZGF0YVByZWZpeCI7czo3OiJvYWlfcmRmIjtzOjQ6ImZyb20iO3M6MjU6IjIwMTEtMDktMDFUMTI6MDA6MDArMDA6MDAiO3M6NDoicGFnZSI7aToyO30=

Volgens de documentatie is de completeListSize dus het totaal aantal concepten in de lijst en dat je daarnaast weet je ook dat je het einde van de lijst hebt bereikt doordat het resumptionToken aan het eind leeg is. Ik heb dit zo geïmplementeerd en tot mijn verbazing kreeg ik na de 172515 concepten die er zouden moeten zijn gewoon weer een token voor de volgende 100, en daarna weer.. en weer.
Uiteindelijk liep mijn test applicatie uit zijn geheugen na iets van 274000 concepten te hebben ingelezen.

Ik heb verder niet onderzocht wat ik er werd aangeboden maar het lijkt er in ieder geval op dat de completeListSize niet helemaal het juiste aantal aangeeft."

regards,
Willem

not all records are listed and datestamps written with 2 hour difference

Hi there,

the following has occured (written in Dutch):

"Dan nog een raar dingetje. Als ik het volgende verzoek doe:

http://www.openskos.org/oai-pmh?verb=ListRecords&metadataPrefix=oai_dc&from=2012-03-27T12:00:00Z

Dan krijg ik een mutatie terug met datestamp 2012-03-27T14:57:21.067Z en dat klopt ook.
Doe ik het volgende verzoek (1 uur later): http://www.openskos.org/oai-pmh?verb=ListRecords&metadataPrefix=oai_dc&from=2012-03-27T13:00:00Z

Dan krijg ik geen mutatie terug terwijl ik dezelfde mutatie als net zou verwachten (want 14:57 is later dan 13:00 volgens mij). Hoe zit dit?

The record mentioned was edited, so the example will not show. Here is another example (that should be reproducable):

http://www.openskos.org/oai-pmh?verb=ListRecords&metadataPrefix=oai_rdf&from=2012-03-28T13:05:00Z

geeft:

2012-03-28T17:22:44Z http://www.openskos.org/oai-pmh 2a1bebe2-75da-40dc-e722-d8060622e08c 2012-03-28T15:05:41.651Z beg beg:gtaa beg:gtaa:bf33b47a-3139-86be-55b8-dc1dc459eaa5 beg:gtaa:e7f69d0a-d4ed-28e6-fa1f-c0381d8e45dc - - waters/skos:prefLabel H2O/skos:altLabel skos:notation215916/skos:notation /rdf:Description /rdf:RDF

Query met een minuut later geeft niets meer.

http://www.openskos.org/oai-pmh?verb=ListRecords&metadataPrefix=oai_rdf&from=2012-03-28T13:06:00Z

2012-03-28T17:24:43Z http://www.openskos.org/oai-pmh The combination of the values of the from, until, set and metadataPrefix arguments results in an empty list.

Het volgende valt op:

  •      Als ik een mutatie doe (via de api) en ik vraag deze mutatie op, dan zie ik een dateStamp staan van 2 uur eerder.
    
  •      Bij het opvragen moet ik er nog eens 2 uur van aftrekken, dan pas zie ik het resultaat.
    

Het lijkt dus iets te zijn met een 2 uurs afwijking

But, it seems that if no modifications are made still not all records show up.

regards,
Willem

OAI-PMH doesn't support deletes

Since OpenSkos has a REST API that supports CRUD actions, it surprised me that the OAI-PMH server does not support deletes. These are relevant to any harvester and therefor I can't see why this shouldn't be supported. The result of this request http://openskos.org/oai-pmh?verb=Identify shows that deletedRecords = no. More detail on this OAI-PMH feature here: http://www.openarchives.org/OAI/openarchivesprotocol.html#DeletedRecords. I would expect at least 'transient', but would prefer 'persistent'. When will OpenSkos support this feature?

Fatal error on AP_CollectionsController

I got an error when running open skos with ZendFramework-1.12.17, aparentely because the headAction function is not implemented. (probably it didn't exist in the previus versions of zend rest service )

Collection management error

After creating an OpenSKOS database using the MySQL Workbench I added a new Tenant and a new User.
Using the Dashboard functionality I tried to do 'Beheer collecties' and clicked on 'Maak een nieuwe collectie aan'.
This results in the following error message:

An error occurred

Application error

It doesn't report anything else on the error. Is there any other way to find out what went wrong?

regards,
Willem

a concept without skos:notation can be created

When one sends a request "creation of a concept", where a notation is not given in the request body, the concept can be still created and without some by-default-generated notation

The example request for the openskos 1 backend

https://openskos.meertens.knaw.nl/ccrtest/api/concept?tenant=meertens&collection=clarin&key=

<?xml version="1.0" encoding="utf-8" ?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:skos="http://www.w3.org/2004/02/skos/core#" xmlns:openskos="http://openskos.org/xmlns#" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:dcmi="http://dublincore.org/documents/dcmi-terms/#" > <rdf:Description rdf:about="http://hdl.handle.net/11148/aaa">
<rdf:type rdf:resource="http://www.w3.org/2004/02/skos/core#Concept"/>
<skos:prefLabel xml:lang="nl">testPrefLable_2277</skos:prefLabel>
<skos:inScheme  rdf:resource="http://meertens/scheme/example1"/>
<openskos:collection rdf:resource="https://openskos.meertens.knaw.nl/ccrtest/api/collection/meertens:clarin"/>
<openskos:tenant>meertens</openskos:tenant>
</rdf:Description>
</rdf:RDF>

The example request for the openskos 2 backend
http://editor.openskos.org/api/concept?autoGenerateIdentifiers=false&tenant=beg&collection=test&key=

<?xml version="1.0" encoding="utf-8" ?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:skos="http://www.w3.org/2004/02/skos/core#" xmlns:openskos="http://openskos.org/xmlns#" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:dcmi="http://dublincore.org/documents/dcmi-terms/#" > <rdf:Description rdf:about="http://192.168.99.100/api/collections/mi:collection/testNotation_2277">
<rdf:type rdf:resource="http://www.w3.org/2004/02/skos/core#Concept"/>
<skos:prefLabel xml:lang="nl">testPrefLable_2277</skos:prefLabel>
<skos:inScheme  rdf:resource="http://meertens/scheme/example1"/>
<openskos:set rdf:resource="http://ergens/api/collections/mi:collection"/>
<openskos:tenant>mi</openskos:tenant>
</rdf:Description>
</rdf:RDF>

Problems with PHP 5.4

On the system with PHP 5.4 the /api page generates an error:

Class Api_IndexController contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (Zend_Rest_Controller::headAction) in (...)/application/api/controllers/IndexController.php on line 22

As there looks like a permanent problem with PHP class model I would advice to adjust the README to suggest to strictly stick to PHP 5.3

Add headAction function to all Rest Controllers

[19-Apr-2016 16:12:04 UTC] PHP Fatal error: Class Api_InstitutionsController contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (Zend_Rest_Controller::headAction) in /opt/solr/openskos/OpenSKOS-master/application/api/controllers/InstitutionsController.php on line 23

see also #53

dynamic examples

Wouldn't it be a great idea to make the examples on the main pages more dynamic? I mean that the examples actually fit the repository that they refers to? The chance that the examples are broken and that people are disappointed on using openskos would be minimized.

regards,
Willem

Solr 3.4 query parse exception in editor

With Solr 3.4, browsing for concepts using the editor results in an exception:

SEVERE: org.apache.solr.common.SolrException: org.apache.lucene.queryParser.ParseException: Cannot parse '((LexicalLabelsPhrase:() OR DocumentationPropertiesText:())) AND deleted:false': '*' or '?' not allowed as first character in WildcardQuery

Switching to Solr 3.6 resolves this.

Should the README be updated to recommend Solr 3.6 instead of 3.4?

strange warning when importing a collection (jan 2013 version of OpenSKOS)

My Meertens collegue Matthijs Brouwer reported the following warning:

  • Nieuwe collectie met code "test1" en title "Testcollectie 1" aangemaakt, geen OAI baseURL geselecteerd
  • File met RDF-data geïmporteerd via "Import new data"
  • "php jobs.php list" geeft

id tenant collection created task
4319 matthijs test1 2013-01-23 11:47:22 import 50ffbfba2b1a1_junte.rdf 4306770

  • "php jobs.php process" voert job uit, maar geeft ook

PHP Notice: Undefined property: OpenSKOS_Rdf_Parser::$_duplicateConceptSchemes in /data/diversen/openskos/library/OpenSKOS/Rdf/Parser.php on line 517

Notice: Undefined property: OpenSKOS_Rdf_Parser::$_duplicateConceptSchemes in /data/diversen/openskos/library/OpenSKOS/Rdf/Parser.php on line 517
PHP Warning: array_merge(): Argument #2 is not an array in /data/diversen/openskos/tools/jobs.php on line 234

Warning: array_merge(): Argument #2 is not an array in /data/diversen/openskos/tools/jobs.php on line 234

Docker Compose

Hi there,

I was hoping to test an instance of openSkos through the docker-compose file. However, the docker compose is unable to build because it keeps trying to access a site that is 404. I suspect that there needs to be an edit to change it to the archive site rather than the site that it is currently at.

Or if there is an easier way to get access to an instance that would be great, too.

set selection doesn't work with from parameter

It seems as if set selection isn't working as the from parameter is filled as well.

Wanneer je de volgende URL bekijkt: http://openskos.org/oai-pmh?verb=ListRecords&metadataPrefix=oai_rdf&set=beng&from=2011-04-02T12:29:09Z

Zie je dat, ondanks dat ik alleen de set beng opvraag ik ook een andere set terug krijg, bv:

  <header>
             <identifier>00009a68-d043-54f8-4c20-f44ee968a749</identifier>
             <datestamp>2012-04-02T07:11:40.125Z</datestamp>
             <setSpec>rkd</setSpec>
             <setSpec>rkd:aat-ned</setSpec>
             <setSpec>rkd:aat-ned:84b94239-31e7-f430-68b8-04e4630fb916</setSpec>
  </header>
  <metadata>
             <rdf:RDF xmlns:skos="http://www.w3.org/2004/02/skos/core#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
                          <rdf:Description rdf:about="http://service.aat-ned.nl/skos/1000291033">
                                       <skos:inScheme rdf:resource="http://service.aat-ned.nl/"/>
                                       <rdf:type rdf:resource="http://www.w3.org/2004/02/skos/core#Concept"/>
                                       <skos:prefLabel xml:lang="en-US">floating dock</skos:prefLabel>
                          </rdf:Description>
             </rdf:RDF>
  </metadata>
</record>```

OAI-PMH uses wrong DC namespace

Hi there,

I just ran a test on the repository explorer (http://re.cs.uct.ac.za/) (always nice to do). In total16 tests failed, not all of them critical. Results show a lot of 'Schema Validation failed' errors. Usually I don't pay too much attention to these, but in this case I see that the element has the following DC declaration:

xmlns:dc="http://dublincore.org/documents/dcmi-namespace/"

Isn't this wrong? When resolved, this URL shows an HTML page, that contains some text on the proper namespace to use for dc terms elements : http://purl.org/dc/terms/ and for unqualified DC: http://purl.org/dc/elements/1.1/ would be appropriate.

Having written the above text, I noticed that the records also contain a dc declaration, which is correct: xmlns:dc="http://purl.org/dc/elements/1.1/". So it seems that the mistake in the namespace declaration is made right on the record level. Still it is not very nice showing this wrong URI.

For example (this request): http://openskos.org/oai-pmh?verb=ListRecords&metadataPrefix=oai_dc

regards,
Willem

Difference between end-points

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.