diff --git a/swh/indexer/metadata_dictionary/codemeta.py b/swh/indexer/metadata_dictionary/codemeta.py --- a/swh/indexer/metadata_dictionary/codemeta.py +++ b/swh/indexer/metadata_dictionary/codemeta.py @@ -67,9 +67,13 @@ namespace = m.group("namespace") localname = m.group("localname") if namespace == ATOM_URI and localname in ("title", "name"): - # Convert Atom name/title to Codemeta name; in case codemeta:name + # Convert Atom to Codemeta name; in case codemeta:name # is not provided or different doc["name"].append(self.xml_to_jsonld(child)) + elif namespace == ATOM_URI and localname in ("author", "email"): + # ditto for these author properties (note that author email is also + # covered by the previous test) + doc[localname].append(self.xml_to_jsonld(child)) elif namespace in _IGNORED_NAMESPACES: # SWORD-specific namespace that is not interesting to translate pass diff --git a/swh/indexer/tests/metadata_dictionary/test_codemeta.py b/swh/indexer/tests/metadata_dictionary/test_codemeta.py --- a/swh/indexer/tests/metadata_dictionary/test_codemeta.py +++ b/swh/indexer/tests/metadata_dictionary/test_codemeta.py @@ -213,6 +213,10 @@ Author 2 + + Author 3 + bar@example.org + """ @@ -223,6 +227,7 @@ "author": [ {"name": "Author 1", "email": "foo@example.org"}, {"name": "Author 2"}, + {"name": "Author 3", "email": "bar@example.org"}, ], }