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

Use of datacite:hasIdentifier #20

Open
vroddon opened this issue Sep 22, 2021 · 10 comments
Open

Use of datacite:hasIdentifier #20

vroddon opened this issue Sep 22, 2021 · 10 comments

Comments

@vroddon
Copy link
Member

vroddon commented Sep 22, 2021

I have created an real example that follows the metashare ontology, so you could see what is the correct structure and vocabulary using the metashare ontology, how we have designed it. The example is the CC-BY-4.0 licence (see attachment). I know that unfortunately all this information cannot derive directly from the metashare xml records, we need to design an extra mapping.

<http://nlpli.ilsp.gr/example/data/> a owl:Ontology;
  owl:imports datacite:2018-01-20, ms:2.0.0, <http://w3id.org/meta-share/omtd-share/> .

:cc0 a ms:LicenceTerms;
  datacite:hasIdentifier :cc_by_40_id;
  ms:conditionOfUse ms:attribution;
  ms:licenceCategory ms:allowsDirectAccess, ms:allowsProcessing;
  ms:licenceTermsAlternativeName "CC-BY-4.0"@en;
  ms:licenceTermsName "Creative Commons Attribution 4.0 International"@en;
  ms:licenceTermsShortName "CC-BY-4.0"@en;
  ms:licenceTermsURL "https://creativecommons.org/licenses/by/4.0/"^^xsd:anyURI, "https://creativecommons.org/licenses/by/4.0/legalcode"^^xsd:anyURI;
  rdfs:label "CC-BY-4.0"@en .

:cc_by_40_id a ms:LicenceIdentifier;
  datacite:usesIdentifierScheme ms:SPDX;
  literal:hasLiteralValue "CC-BY-4.0";
  rdfs:label "CC-BY-4.0 id"@en .

As you could see in the example the relation between a LicenceTerms and its identifier is represented using the datacite:hasIdentifier property and following datacite suggestions we use the property literal:hasLiteralValue to declare the actual value. Though, we are not sure if this is the right approach. We know that it is good as we reuse existing vocabulary, but both vocabularies are not maintained and more importantly are not dereferencable and one needs to manuall search in order to find them. Do you think that this is the right way to approach the issue? Do you think that literal:hasLiteralValue has the correct semantics for our case?

@vroddon
Copy link
Member Author

vroddon commented Sep 22, 2021

For @gkirtzou : This is the first time I see datacite, but it looks good!

@gkirtzou
Copy link
Collaborator

The automatically generated rdf representation from metashare xml record

_:license <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://w3id.org/meta-share/meta-share/LicenceTerms> .
_:license <http://w3id.org/meta-share/meta-share/LicenceIdentifier> "CC-BY-4.0".
_:license <http://www.w3.org/2000/01/rdf-schema#seeAlso> <https://spdx.org/licenses/CC-BY-4.0> .
_:license <http://w3id.org/meta-share/meta-share/licenceTermsName> "Creative Commons Attribution 4.0 International"@en .
_:license <http://www.w3.org/2000/01/rdf-schema#label> "Creative Commons Attribution 4.0 International"@en .
_:license <http://w3id.org/meta-share/meta-share/licenceTermsShortName> "CC-BY-4.0"@en .
_:license <http://w3id.org/meta-share/meta-share/licenceTermsURL> <https://creativecommons.org/licenses/by/4.0/legalcode> .
_:license <http://w3id.org/meta-share/meta-share/licenceTermsURL> <https://creativecommons.org/licenses/by/4.0/> .
_:license <http://w3id.org/meta-share/meta-share/conditionOfUse> <http://w3id.org/meta-share/meta-share/attribution> .
_:license <http://w3id.org/meta-share/meta-share/licenceCategory> <http://w3id.org/meta-share/meta-share/allowsDirectAccess> .
_:license <http://w3id.org/meta-share/meta-share/licenceCategory> <http://w3id.org/meta-share/meta-share/allowsProcessing> .

@vroddon
Copy link
Member Author

vroddon commented Sep 22, 2021

This was represented in Metashare XML as follows...

<?xml version="1.0" encoding="UTF-8"?>
<ms:MetadataRecord xsi:schemaLocation="http://w3id.org/meta-share/meta-share/ https://live.european-language-grid.eu/metadata-schema/ELG-SHARE.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ms="http://w3id.org/meta-share/meta-share/">
<ms:metadataCreationDate>2020-02-27</ms:metadataCreationDate>
<ms:metadataLastDateUpdated>2020-10-21</ms:metadataLastDateUpdated>
<ms:metadataCurator>
<ms:actorType>Person</ms:actorType>
<ms:surname xml:lang="en">admin</ms:surname>
<ms:givenName xml:lang="en">elg</ms:givenName>
</ms:metadataCurator>
<ms:compliesWith>http://w3id.org/meta-share/meta-share/ELG-SHARE</ms:compliesWith>
<ms:metadataCreator>
<ms:actorType>Person</ms:actorType>
<ms:surname xml:lang="en">admin</ms:surname>
<ms:givenName xml:lang="en">elg</ms:givenName>
</ms:metadataCreator>
<ms:DescribedEntity>
<ms:LicenceTerms>
<ms:entityType>LicenceTerms</ms:entityType>
<ms:LicenceIdentifier ms:LicenceIdentifierScheme="http://w3id.org/meta-share/meta-share/SPDX">CC-BY-4.0</ms:LicenceIdentifier>
<ms:licenceTermsName xml:lang="en">Creative Commons Attribution 4.0 International</ms:licenceTermsName>
<ms:licenceTermsShortName xml:lang="en">CC-BY-4.0</ms:licenceTermsShortName>
<ms:licenceTermsURL>https://creativecommons.org/licenses/by/4.0/legalcode</ms:licenceTermsURL>
<ms:licenceTermsURL>https://creativecommons.org/licenses/by/4.0/</ms:licenceTermsURL>
<ms:conditionOfUse>http://w3id.org/meta-share/meta-share/attribution</ms:conditionOfUse>
<ms:licenceCategory>http://w3id.org/meta-share/meta-share/allowsDirectAccess</ms:licenceCategory>
<ms:licenceCategory>http://w3id.org/meta-share/meta-share/allowsProcessing</ms:licenceCategory>
</ms:LicenceTerms>
</ms:DescribedEntity>
</ms:MetadataRecord>

@vroddon
Copy link
Member Author

vroddon commented Sep 22, 2021

This is a clear mistake:
'
_:license http://w3id.org/meta-share/meta-share/LicenceIdentifier "CC-BY-4.0".
'
because LicenseIdentifier is a class, not a property. Instead, use

_:license datacite:usesIdentifierScheme
[
a ms:LicenceIdentifier;
datacite:usesIdentifierScheme ms:SPDX;
literal:hasLiteralValue "CC-BY-4.0";
rdfs:label "CC-BY-4.0 id"@en .
] ;

@vroddon
Copy link
Member Author

vroddon commented Sep 22, 2021

Solved! for the given text, the following output (after transformation NTRIPLES --> TURTLE is made)

image

@vroddon
Copy link
Member Author

vroddon commented Sep 22, 2021

@pennyl67 @gkirtzou This issue has been solved and deployed. Can be tested on https://rdflicense.linkeddata.es/service.html

@vroddon vroddon closed this as completed Sep 22, 2021
@pennyl67
Copy link
Collaborator

@vroddon I just made a test and I'm puzzled; although you have identified an error in the representation, the output seems to be still the wrong one, i.e.

_:genid1 http://w3id.org/meta-share/meta-share/LicenceIdentifier http://w3id.org/meta-share/meta-share/SPDX .
_:genid1 http://purl.org/spar/literal/hasLiteralValue "LGPL-3.0-only" .
_:genid1 http://www.w3.org/2000/01/rdf-schema#label "LGPL-3.0-only id"@en .
_:genid1 http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://w3id.org/meta-share/meta-share/LicenceIdentifier .

In the above, the first triple links the identifier to "SPDX" with the "LicenceIdentifier", but

  • the LicenceIdentifier is a class and
  • the SPDX is the LicenceIdentifierScheme.
    I think the correct representation is the one that you have added in a previous comment, i.e., copying from the previous comment:

[]
a ms:LicenceIdentifier;
datacite:usesIdentifierScheme ms:SPDX;
literal:hasLiteralValue "CC-BY-4.0";
rdfs:label "CC-BY-4.0 id"@en .

(I've kept as is, but I'm still not sure whether rdfs:label is required or of any help)

@pennyl67 pennyl67 reopened this Sep 22, 2021
@vroddon
Copy link
Member Author

vroddon commented Sep 22, 2021

Yes! same RDF, different serializations. The first one is NTRIPLES, the second TURTLE.
In NTRIPLES there is no way to represent blanknodes but naming URLs as "_:something", where "something" is a uniquely generated string (in this case, I chose "genid"). If you copy the output of the service into a RDF transformation software you will get the second.

Maybe it is cleaner not using blank nodes.

@pennyl67
Copy link
Collaborator

I'm still confused :-(
My problem is not the "_:something" but the association of _:genid directly with SPDX without the property datacite:usesIdentifierScheme. Is that the blank node you're referring to?

@pennyl67
Copy link
Collaborator

pennyl67 commented Oct 3, 2021

And I just spotted an error in the first representation:

_:license datacite:usesIdentifierScheme
[
a ms:LicenceIdentifier;
datacite:usesIdentifierScheme ms:SPDX;
literal:hasLiteralValue "CC-BY-4.0";
rdfs:label "CC-BY-4.0 id"@en .
] ;

the correct one should be

_:license datacite:usesIdentifierScheme
[
a ms:LicenceIdentifier;
datacite:usesIdentifierScheme ms:SPDX;
literal:hasLiteralValue "CC-BY-4.0";
rdfs:label "CC-BY-4.0 id"@en .
] ;

should be
_:license datacite:hasIdentifier
[
a ms:LicenceIdentifier;
datacite:usesIdentifierScheme ms:SPDX;
literal:hasLiteralValue "CC-BY-4.0";
rdfs:label "CC-BY-4.0 id"@en .
] ;

i.e. the first row has the wrong property

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants