Skip to content

Conversation

@Mazztok45
Copy link
Contributor

@Mazztok45 Mazztok45 commented Jun 11, 2024

Copy-pasted from the Codemeta website and adapted, the mappings could be described as follows:

The table below provides the crosswalk mapping between the swMATH-specific terms and the CodeMeta properties.
swMATH is an aggregator for research software in mathematics and related fields doi:10.4171/mag/118.

@progval
Copy link
Member

progval commented Jun 11, 2024

.gitignore Outdated
codemeta.Rproj
.DS_Store
.Rhistory
.idea
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be moved to your local ignore file

@@ -0,0 +1,75 @@
Property,swMATH
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this test pass now?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If this seems hard, please ignore the comment. I don't want to hold things back.

@Mazztok45
Copy link
Contributor Author

You'll need to change the file to have the same properties as https://github.com/codemeta/codemeta/blob/master/properties_description.csv

@moranegg has informed us that we could use any property of Schema.org we want with CodeMeta if some properties in CodeMeta are missing(https://codemeta.github.io/terms/) to describe our metadata.

@moranegg could you bring up some recommendations? Should we remove data we can not map or another way around must be found?

@moranegg
Copy link
Member

moranegg commented Jun 12, 2024

Hi @Mazztok45 ,
Thanks for the PR!

You'll need to change the file to have the same properties as https://github.com/codemeta/codemeta/blob/master/properties_description.csv

As @progval says, the order here is important for the aggregation of all the .csv files.

@moranegg has informed us that we could use any property of Schema.org we want with CodeMeta if some properties in CodeMeta are missing(https://codemeta.github.io/terms/) to describe our metadata.

You can use other schema.org properties in the instance file (codemeta.json) when declaring the schema.org context, so having both CodeMeta and schema.org in the context.

@moranegg could you bring up some recommendations? Should we remove data we can not map or another way around must be found?

For the crosswalks, there is the ASCL example where other properties that aren't mapped to CodeMeta properties are added at the bottom:
https://github.com/codemeta/codemeta/blob/master/crosswalks/ASCL.csv

readme,
hasSourceCode,
isSourceCodeOf,
collectionSize,articles_count
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would suggest at this moment to list the added properties that are mapped with schema.org with only the SwMath column and without the schema.org column:
,articles_count
,classification

Copy link
Contributor

@physikerwelt physikerwelt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This pull request adds a file swMATH.csv. My feeling is that some documentation what swMATH is etc should be added at the same time. You can reference our latest article about zbMATH

@physikerwelt
Copy link
Contributor

Swmath2codemeta is not a good title for a PR / commit message. You can look at https://github.com/codemeta/codemeta/commits/master/ for examples previously used in this repository. ChatGPT can assist you, or you can search for commit message with your favorite search engine.

The commit message

The table below provides the crosswalk mapping between the swMATH-specific terms and the CodeMeta properties.

Cf. https://ems.press/journals/mag/articles/8615954

is better but still not optimal.

After describing what you did in the commit message following the advice above, you can explain that this is the copy-and-paste template for the codemeta website.

Suggestion:
On the codemeta website the mappings could be described as follows:

The table below provides the crosswalk mapping between the swMATH-specific terms and the CodeMeta properties.
swMATH is an aggregator for research software in mathematics and related fields doi:10.4171/mag/118.

@Mazztok45 Mazztok45 changed the title Swmath2codemeta Add swMATH crosswalk Jul 12, 2024
@moranegg
Copy link
Member

@Mazztok45 is this PR ready?

@Mazztok45
Copy link
Contributor Author

I still need to align this work with the ongoing work in development to map swMATH to CodeMeta:

MaRDI4NFDI/python-zbMathRest2Oai@3e21287

There are still details we need to handle before processing with an update of the mapping.

@moranegg
Copy link
Member

moranegg commented Dec 3, 2024

Hi @Mazztok45 ,

Can you finalize before Dec. 10th?

Thanks!

@progval
Copy link
Member

progval commented Dec 9, 2024

@Mazztok45 your last commit replaced LF with CRLF as the line terminator, could you undo that change?

Copy link
Contributor

@physikerwelt physikerwelt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have reviewed the line endings. They seem to be correct to me now. However, some else needs to check the contents.

@progval
Copy link
Member

progval commented Dec 10, 2024

The Codemeta side looks fine to me, but I don't see definitions of swMath's terms that I can check against.

@Mazztok45
Copy link
Contributor Author

Mazztok45 commented Dec 10, 2024

Documentation_of_swMath_Database.md

Here is a prototype of a documentation of the swMATH SQL database. Most of the terms are close to the ones you can find in the API:

From the API, the swMATH looks like this for the software 4532:
https://oai.staging.mardi4nfdi.org/oai/OAIHandler?verb=GetRecord&metadataPrefix=zbmath_rest_api_software&identifier=oai:swmath.org:4532

The Codemeta mapped metadata of this software:
https://oai.staging.mardi4nfdi.org/oai/OAIHandler?verb=GetRecord&metadataPrefix=codemeta&identifier=oai:swmath.org:4532

I hope you find it helpful.

softwareRequirements,dependencies
softwareVersion,
storageRequirements,
supportingData,related_software
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't see related_software in the .md, and the examples don't match https://schema.org/supportingData

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Regarding this example, do you mean we should have on line 21, supportingData,id ?
If no what are we missing about exposing the related_software information?

 <related_software>
    <id>11008</id>
    <name>BayesDA</name>
  </related_software>

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Regarding this example, do you mean we should have on line 21, supportingData,id ?

Sorry, I missed the notification and the link doesn't work anymore. Is it this BayesDA? https://cran.r-project.org/web/packages/BayesDA/index.html

If yes, then it is software and not data.

If no what are we missing about exposing the related_software information?

 <related_software>
    <id>11008</id>
    <name>BayesDA</name>
  </related_software>

You currently can't express that information in CodeMeta.

However, you can produce codemeta.json document with a property you would define yourself, eg.

{
  "@context": "https://w3id.org/codemeta/3.0",
  "@type": "SoftwareSourceCode",
  "identifier": "rms",
  "name": "rms",
  "description": "blah blah blah",
  "https://zbmath.org/relatedSoftware": [
    "https://zbmath.org/software/11008",
    "https://zbmath.org/software/4515",
    // ...
  ],
}

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes it is BayesDA.

I believe data can be an acceptable compromise regarding no supportingSoftware term is available.
These software with data:

<codemeta:supportingData> <codemeta:name>MUMPS</codemeta:name> <codemeta:id>https://swmath.org/software/4013</codemeta:id> </codemeta:supportingData>

have been successfully deposited in SWH and can still in my opinion be understand by a reader and we would avoid creating extra term that are not standardized in Codemeta.

What is your opinion on it?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

have been successfully deposited in SWH

because SWH does not check it

can still in my opinion be understand by a reader

but not by a machine because it would have different meaning than one it expects.

Plus, https://schema.org/supportingData states that values must have type http://schema.org/DataFeed, so in order to make it valid you need to add "@type": "schema:DataFeed"

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Apologize for delayed reply. I just added a new term realtedSoftware to map related_software:
Mazztok45@1077530
Is it okay with you?

name,name
sameAs,homepage
url,zbmath_url
relatedLink,orms_id
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The .md says:

orms_id : an important id for every software could be (Runtime platform or script interpreter dependencies(Example - Java v1, Python2.3, .Net Framework 3.0). Supersedes runtime.)

I don't understand the definition grammatically, but it sounds like it would be a better match for runtimePlatform

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

orms_id

is the identifier of another software registry indexing this software, thus I believe relatedLink is relevant. What do you think about it?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is is the identifier of a registry, or the identifier of this software in an other registry?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

identifier of this software in another registry

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

then orms_id should be mapped to sameAs or identifier. relatedLink would be for a web page that talks about the software.

Copy link
Contributor Author

@Mazztok45 Mazztok45 Sep 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Moved the orms_id term to align with sameAs, grouping it with zbmath_url under an or condition.

This change logically groups these properties, as they all serve the same purpose: providing alternative identifiers for the same object.

See:
Mazztok45@3e0a41a

embargoEndDate,
funding,
issueTracker,
referencePublication,standard_articles
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you have an example or documentation for this one?

Copy link
Contributor Author

@Mazztok45 Mazztok45 Jun 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This example contains an example at the bottom:

 <standard_articles>
    <authors></authors>
    <id>5380273</id>
    <source>zbMATH Open Web Interface contents unavailable due to conflicting licenses.</source>
    <title>zbMATH Open Web Interface contents unavailable due to conflicting licenses.</title>
    <year>2008</year>
  </standard_articles>

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

referencePublication in Codemeta must be a URI, and I don't see a way to turn this data into a URI. However, your example is Sage which has a 2008 publication: https://zbmath.org/1168.20004 that URL would be suitable as a referencePublication.

Copy link
Contributor

@dgarijo dgarijo Aug 8, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In https://codemeta.github.io/terms/ it says that the range for referencePublication is a ScholarlyArticle. This may be a URI, but may also be a ScholarlyArticle object, right? You can maybe do something like:

"codemeta:referencePublication": {
        "@id": "https://zbmath.org/1168.20004",
    	"identifier": "5380273",
        "@type": "ScholarlyArticle",
        "title":"zbMATH Open Web Interface contents unavailable due to conflicting licenses."
    },

Having a URI would be ideal though

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, indeed. I thought "@type": "@id" disallowed objects but I was wrong. (And it makes sense, in retrospect.)

@moranegg moranegg added the non-breaking This label should be used on changes that are non-breaking label May 9, 2025
@moranegg moranegg added this to the v3.1 milestone May 9, 2025
@dgarijo
Copy link
Contributor

dgarijo commented Aug 8, 2025

just for context, we have been discussing a revision of the mapping here (with Maxence): https://github.com/Mazztok45/codemeta/blob/sssom-methodology/crosswalks-sssom/swmath/swmath-codemeta-mapping.csv I think @Mazztok45 has now improved the documentation of the original specification in https://github.com/MaRDI4NFDI/swMATH4EOSC/tree/main/developer_documentation/Documentation_swMATH.md. While it's not completely done, maybe this helps shedding some light into the remaining questions.
We are still not done with the mapping revisions in the other branch.

@moranegg moranegg merged commit bdd852d into codemeta:master Sep 17, 2025
3 checks passed
Mazztok45 added a commit to Mazztok45/codemeta that referenced this pull request Sep 24, 2025
Mazztok45 added a commit to Mazztok45/codemeta that referenced this pull request Oct 15, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

non-breaking This label should be used on changes that are non-breaking

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants